package helper import ( "testing" "github.com/stretchr/testify/require" ) func TestDerivedInputMode(t *testing.T) { mode, err := derivedInputMode(map[string]any{}, nil) require.NoError(t, err) require.Equal(t, "t2v", mode) mode, err = derivedInputMode(map[string]any{"image": "frame.png"}, nil) require.NoError(t, err) require.Equal(t, "i2v", mode) mode, err = derivedInputMode(map[string]any{"image": "frame.png", "video": "clip.mp4"}, nil) require.NoError(t, err) require.Equal(t, "v2v", mode) } func TestDerivedVideoInput(t *testing.T) { value, err := derivedVideoInput(map[string]any{}, nil) require.NoError(t, err) require.Equal(t, false, value) value, err = derivedVideoInput(map[string]any{"video_url": "https://example.test/input.mp4"}, nil) require.NoError(t, err) require.Equal(t, true, value) value, err = derivedVideoInput(map[string]any{ "metadata": map[string]any{ "content": []any{ map[string]any{ "type": "video_url", "video_url": map[string]any{ "url": "https://example.test/input.mp4", }, }, }, }, }, nil) require.NoError(t, err) require.Equal(t, true, value) value, err = derivedVideoInput(map[string]any{ "metadata": `{"content":[{"type":"video_url","video_url":{"url":"https://example.test/input.mp4"}}]}`, }, nil) require.NoError(t, err) require.Equal(t, true, value) value, err = derivedVideoInput(map[string]any{ "metadata": map[string]any{ "content": []any{ map[string]any{ "type": "image_url", "image_url": map[string]any{ "url": "https://example.test/input.png", }, }, }, }, }, nil) require.NoError(t, err) require.Equal(t, false, value) } func TestDerivedResolutionHelpers(t *testing.T) { mp, err := derivedMegapixels(map[string]any{"resolution": "1280x720"}, nil) require.NoError(t, err) require.InDelta(t, 0.9216, mp, 0.0001) ratio, err := derivedAspectRatio(map[string]any{"options": map[string]any{"size": "1280x720"}}, nil) require.NoError(t, err) require.Equal(t, "16:9", ratio) } func TestHasNonEmptyValue(t *testing.T) { require.False(t, hasNonEmptyValue("")) require.False(t, hasNonEmptyValue(" ")) require.False(t, hasNonEmptyValue(nil)) require.False(t, hasNonEmptyValue([]any{})) require.True(t, hasNonEmptyValue([]any{"x"})) require.True(t, hasNonEmptyValue("x")) require.True(t, hasNonEmptyValue(0)) }