Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 

88 rader
2.3 KiB

  1. package helper
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/require"
  5. )
  6. func TestDerivedInputMode(t *testing.T) {
  7. mode, err := derivedInputMode(map[string]any{}, nil)
  8. require.NoError(t, err)
  9. require.Equal(t, "t2v", mode)
  10. mode, err = derivedInputMode(map[string]any{"image": "frame.png"}, nil)
  11. require.NoError(t, err)
  12. require.Equal(t, "i2v", mode)
  13. mode, err = derivedInputMode(map[string]any{"image": "frame.png", "video": "clip.mp4"}, nil)
  14. require.NoError(t, err)
  15. require.Equal(t, "v2v", mode)
  16. }
  17. func TestDerivedVideoInput(t *testing.T) {
  18. value, err := derivedVideoInput(map[string]any{}, nil)
  19. require.NoError(t, err)
  20. require.Equal(t, false, value)
  21. value, err = derivedVideoInput(map[string]any{"video_url": "https://example.test/input.mp4"}, nil)
  22. require.NoError(t, err)
  23. require.Equal(t, true, value)
  24. value, err = derivedVideoInput(map[string]any{
  25. "metadata": map[string]any{
  26. "content": []any{
  27. map[string]any{
  28. "type": "video_url",
  29. "video_url": map[string]any{
  30. "url": "https://example.test/input.mp4",
  31. },
  32. },
  33. },
  34. },
  35. }, nil)
  36. require.NoError(t, err)
  37. require.Equal(t, true, value)
  38. value, err = derivedVideoInput(map[string]any{
  39. "metadata": `{"content":[{"type":"video_url","video_url":{"url":"https://example.test/input.mp4"}}]}`,
  40. }, nil)
  41. require.NoError(t, err)
  42. require.Equal(t, true, value)
  43. value, err = derivedVideoInput(map[string]any{
  44. "metadata": map[string]any{
  45. "content": []any{
  46. map[string]any{
  47. "type": "image_url",
  48. "image_url": map[string]any{
  49. "url": "https://example.test/input.png",
  50. },
  51. },
  52. },
  53. },
  54. }, nil)
  55. require.NoError(t, err)
  56. require.Equal(t, false, value)
  57. }
  58. func TestDerivedResolutionHelpers(t *testing.T) {
  59. mp, err := derivedMegapixels(map[string]any{"resolution": "1280x720"}, nil)
  60. require.NoError(t, err)
  61. require.InDelta(t, 0.9216, mp, 0.0001)
  62. ratio, err := derivedAspectRatio(map[string]any{"options": map[string]any{"size": "1280x720"}}, nil)
  63. require.NoError(t, err)
  64. require.Equal(t, "16:9", ratio)
  65. }
  66. func TestHasNonEmptyValue(t *testing.T) {
  67. require.False(t, hasNonEmptyValue(""))
  68. require.False(t, hasNonEmptyValue(" "))
  69. require.False(t, hasNonEmptyValue(nil))
  70. require.False(t, hasNonEmptyValue([]any{}))
  71. require.True(t, hasNonEmptyValue([]any{"x"}))
  72. require.True(t, hasNonEmptyValue("x"))
  73. require.True(t, hasNonEmptyValue(0))
  74. }