File size: 1,865 Bytes
0f07ba7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package http_test

import (
	"encoding/json"

	openai "github.com/mudler/LocalAI/core/http/endpoints/openai"
	"github.com/mudler/LocalAI/core/schema"

	. "github.com/onsi/ginkgo/v2"
	. "github.com/onsi/gomega"
)

var _ = Describe("MapOpenAIToVideo", func() {
	It("maps size and seconds correctly", func() {
		cases := []struct {
			name     string
			input    *schema.OpenAIRequest
			raw      map[string]interface{}
			expectsW int32
			expectsH int32
			expectsF int32
			expectsN int32
		}{
			{
				name: "size in input",
				input: &schema.OpenAIRequest{
					PredictionOptions: schema.PredictionOptions{
						BasicModelRequest: schema.BasicModelRequest{Model: "m"},
					},
					Size: "256x128",
				},
				expectsW: 256,
				expectsH: 128,
			},
			{
				name:  "size in raw and seconds as string",
				input: &schema.OpenAIRequest{PredictionOptions: schema.PredictionOptions{BasicModelRequest: schema.BasicModelRequest{Model: "m"}}},
				raw:   map[string]interface{}{"size": "720x480", "seconds": "2"},
				expectsW: 720,
				expectsH: 480,
				expectsF: 30,
				expectsN: 60,
			},
			{
				name:  "seconds as number and fps override",
				input: &schema.OpenAIRequest{PredictionOptions: schema.PredictionOptions{BasicModelRequest: schema.BasicModelRequest{Model: "m"}}},
				raw:   map[string]interface{}{"seconds": 3.0, "fps": 24.0},
				expectsF: 24,
				expectsN: 72,
			},
		}

		for _, c := range cases {
			By(c.name)
			vr := openai.MapOpenAIToVideo(c.input, c.raw)
			if c.expectsW != 0 {
				Expect(vr.Width).To(Equal(c.expectsW))
			}
			if c.expectsH != 0 {
				Expect(vr.Height).To(Equal(c.expectsH))
			}
			if c.expectsF != 0 {
				Expect(vr.FPS).To(Equal(c.expectsF))
			}
			if c.expectsN != 0 {
				Expect(vr.NumFrames).To(Equal(c.expectsN))
			}

			b, err := json.Marshal(vr)
			Expect(err).ToNot(HaveOccurred())
			_ = b
		}
	})
})