-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrate_test.go
89 lines (64 loc) · 1.97 KB
/
rate_test.go
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
77
78
79
80
81
82
83
84
85
86
87
88
89
package timecode
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestNewRate(t *testing.T) {
t.Parallel()
rate, err := NewRate(30, false)
assert.Nil(t, err)
assert.Equal(t, rate.FPS(), 30.0)
assert.Equal(t, rate.DropFrame(), false)
rate, err = NewRate(30, true)
assert.Nil(t, err)
assert.Equal(t, rate.FPS(), 30.0)
assert.Equal(t, rate.DropFrame(), true)
_, err = NewRate(0, true)
assert.NotNil(t, err)
_, err = NewRate(-100, true)
assert.NotNil(t, err)
}
func TestSMTPERates(t *testing.T) {
assert.Equal(t, R2997.FPS(), 29.97)
assert.Equal(t, R2997.DropFrame(), false)
assert.Equal(t, R2997DF.FPS(), 29.97)
assert.Equal(t, R2997DF.DropFrame(), true)
assert.Equal(t, R30.FPS(), 30.0)
assert.Equal(t, R30.DropFrame(), false)
assert.Equal(t, R5994.FPS(), 59.94)
assert.Equal(t, R5994.DropFrame(), false)
assert.Equal(t, R5994DF.FPS(), 59.94)
assert.Equal(t, R5994DF.DropFrame(), true)
assert.Equal(t, R25.FPS(), 25.0)
assert.Equal(t, R25.DropFrame(), false)
assert.Equal(t, R50.FPS(), 50.0)
assert.Equal(t, R50.DropFrame(), false)
assert.Equal(t, R2398.FPS(), 23.98)
assert.Equal(t, R2398.DropFrame(), false)
assert.Equal(t, R60.FPS(), 60.0)
assert.Equal(t, R60.DropFrame(), false)
assert.Equal(t, R120.FPS(), 120.0)
assert.Equal(t, R120.DropFrame(), false)
assert.Equal(t, R240.FPS(), 240.0)
assert.Equal(t, R240.DropFrame(), false)
}
func TestParseRate(t *testing.T) {
rate, err := ParseRate("30000/1001", false)
assert.Nil(t, err)
assert.Equal(t, 29.97, rate.FPS())
rate, err = ParseRate("24000/1001", false)
assert.Nil(t, err)
assert.Equal(t, 23.98, rate.FPS())
rate, err = ParseRate("60000/1001", false)
assert.Nil(t, err)
assert.Equal(t, 59.94, rate.FPS())
rate, err = ParseRate("30/1", false)
assert.Nil(t, err)
assert.Equal(t, 30.0, rate.FPS())
_, err = ParseRate("30/0", false)
assert.NotNil(t, err)
_, err = ParseRate("invalid", false)
assert.NotNil(t, err)
_, err = ParseRate("", false)
assert.NotNil(t, err)
}