-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtrack_test.go
33 lines (28 loc) · 855 Bytes
/
track_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
package midi
import (
"testing"
"github.com/moutend/go-midi/event"
)
func TestTrack_Serialize(t *testing.T) {
event1, _ := event.NewTextEvent(nil, []byte("txt1"))
event2, _ := event.NewTextEvent(nil, []byte("txt2"))
event3, _ := event.NewTextEvent(nil, []byte("txt3"))
track := &Track{
Events: []event.Event{
event1,
event2,
event3,
},
}
expected := []byte{0x4d, 0x54, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x18, 0x00, 0xff, 0x01, 0x04, 0x74, 0x78, 0x74, 0x31, 0x00, 0xff, 0x01, 0x04, 0x74, 0x78, 0x74, 0x32, 0x00, 0xff, 0x01, 0x04, 0x74, 0x78, 0x74, 0x33}
actual := track.Serialize()
if len(expected) != len(actual) {
t.Fatalf("expected: %v bytes actual: %v bytes", len(expected), len(actual))
}
for i, e := range expected {
a := actual[i]
if e != a {
t.Fatalf("expected[%v] = 0x%x actual[%v] = 0x%x", i, e, i, a)
}
}
}