grok_media_image_geometry_test.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package service
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/require"
  5. "github.com/tidwall/gjson"
  6. )
  7. func TestApplyGrokImagineImageGeometryMapsOpenAISize(t *testing.T) {
  8. t.Parallel()
  9. out, err := applyGrokImagineImageGeometry([]byte(`{"model":"grok-imagine-image-2.0","prompt":"hi","size":"1152x1536"}`))
  10. require.NoError(t, err)
  11. require.False(t, gjson.GetBytes(out, "size").Exists())
  12. require.Equal(t, "2k", gjson.GetBytes(out, "resolution").String())
  13. require.Equal(t, "3:4", gjson.GetBytes(out, "aspect_ratio").String())
  14. }
  15. func TestApplyGrokImagineImageGeometryKeepsClientGeometry(t *testing.T) {
  16. t.Parallel()
  17. out, err := applyGrokImagineImageGeometry([]byte(`{"size":"1024x1024","resolution":"2K","aspect_ratio":"16:9"}`))
  18. require.NoError(t, err)
  19. require.False(t, gjson.GetBytes(out, "size").Exists())
  20. require.Equal(t, "2k", gjson.GetBytes(out, "resolution").String())
  21. require.Equal(t, "16:9", gjson.GetBytes(out, "aspect_ratio").String())
  22. }
  23. func TestSanitizeGrokMediaForwardBodyConvertsImageSize(t *testing.T) {
  24. t.Parallel()
  25. out, contentType, err := sanitizeGrokMediaForwardBody(
  26. GrokMediaEndpointImagesGenerations,
  27. []byte(`{"model":"grok-imagine-image","prompt":"hi","size":"1024x1024"}`),
  28. "application/json",
  29. )
  30. require.NoError(t, err)
  31. require.Equal(t, "application/json", contentType)
  32. require.False(t, gjson.GetBytes(out, "size").Exists())
  33. require.Equal(t, "1k", gjson.GetBytes(out, "resolution").String())
  34. require.Equal(t, "1:1", gjson.GetBytes(out, "aspect_ratio").String())
  35. }
  36. func TestParseGrokMediaRequestKeepsImageResolutionOutOfVideoNormalize(t *testing.T) {
  37. t.Parallel()
  38. info := ParseGrokMediaRequest("application/json", []byte(`{"model":"grok-imagine-image-2.0","resolution":"2K","aspect_ratio":"16:9"}`))
  39. require.Equal(t, "2k", info.ImageResolution)
  40. require.Equal(t, "16:9", info.AspectRatio)
  41. require.Equal(t, VideoBillingResolution480P, info.Resolution)
  42. }
  43. func TestGrokImagineAspectRatioFromSize(t *testing.T) {
  44. t.Parallel()
  45. require.Equal(t, "1:1", grokImagineAspectRatioFromSize("1024x1024"))
  46. require.Equal(t, "3:4", grokImagineAspectRatioFromSize("1152x1536"))
  47. require.Equal(t, "4:3", grokImagineAspectRatioFromSize("1536x1152"))
  48. require.Equal(t, "16:9", grokImagineAspectRatioFromSize("1792x1024"))
  49. }