package image import ( "strings" "testing" ) func TestPromptSubjectUsesTranslationFirst(t *testing.T) { t.Parallel() if got := promptSubject(" apple ", "ябълка"); got != "apple" { t.Fatalf("promptSubject() = %q, want %q", got, "apple") } } func TestPromptSubjectFallsBackToOriginalWord(t *testing.T) { t.Parallel() if got := promptSubject(" ", "ябълка"); got != "ябълка" { t.Fatalf("promptSubject() = %q, want %q", got, "ябълка") } } func TestSanitizeSceneDescriptionRemovesLabelsAndFences(t *testing.T) { t.Parallel() scene := "```text\nScene: A bright apple sits centered on a wooden table.\n```" if got := sanitizeSceneDescription(scene); got != "A bright apple sits centered on a wooden table" { t.Fatalf("sanitizeSceneDescription() = %q", got) } } func TestUsableSceneDescriptionRejectsTrivialContent(t *testing.T) { t.Parallel() if usableSceneDescription("A") { t.Fatal("usableSceneDescription() unexpectedly accepted trivial scene") } if usableSceneDescription("A single, perfectly") { t.Fatal("usableSceneDescription() unexpectedly accepted incomplete scene fragment") } } func TestFallbackVisualDirectionForPhrase(t *testing.T) { t.Parallel() got := fallbackVisualDirection("to indulge someone") if got == "" || !usableSceneDescription(got) { t.Fatalf("fallbackVisualDirection() returned unusable phrase direction: %q", got) } } func TestFallbackVisualDirectionForSingleWord(t *testing.T) { t.Parallel() got := fallbackVisualDirection("apple") if got == "" || !strings.Contains(got, "single apple") { t.Fatalf("fallbackVisualDirection() = %q", got) } }