初始化

This commit is contained in:
Ran
2026-08-25 17:59:42 +08:00
commit 4b7380dd9b
408 changed files with 327400 additions and 0 deletions
@@ -0,0 +1,48 @@
package apimart
import (
"encoding/json"
"testing"
)
func TestVideoCapabilities(t *testing.T) {
capabilities, ok := VideoCapabilities("doubao-seedance-2.0")
if !ok {
t.Fatal("expected Seedance 2 capabilities")
}
if capabilities.ReferenceImages.MaxCount != 9 || capabilities.ReferenceAudios.MaxCount != 3 || capabilities.ReferenceVideos.MaxCount != 3 {
t.Fatalf("unexpected reference limits: %+v", capabilities)
}
}
func TestBuildSeedance2PayloadSupportsVideoAndAudioReferences(t *testing.T) {
input := json.RawMessage(`{
"prompt":"test",
"size":"16:9",
"duration":5,
"video_urls":["https://example.com/reference.mp4"],
"audio_urls":["https://example.com/reference.mp3"]
}`)
payload, err := BuildSeedance2Payload("doubao-seedance-2.0", input)
if err != nil {
t.Fatalf("BuildSeedance2Payload() error = %v", err)
}
if videos, ok := payload["video_urls"].([]string); !ok || len(videos) != 1 {
t.Fatalf("video_urls = %#v", payload["video_urls"])
}
if audios, ok := payload["audio_urls"].([]string); !ok || len(audios) != 1 {
t.Fatalf("audio_urls = %#v", payload["audio_urls"])
}
}
func TestBuildSeedance2PayloadRejectsTooManyVideos(t *testing.T) {
input := json.RawMessage(`{
"prompt":"test",
"size":"16:9",
"duration":5,
"video_urls":["https://example.com/1.mp4","https://example.com/2.mp4","https://example.com/3.mp4","https://example.com/4.mp4"]
}`)
if _, err := BuildSeedance2Payload("doubao-seedance-2.0", input); err == nil {
t.Fatal("expected too many reference videos to be rejected")
}
}