@@ -12,53 +12,68 @@ import (
12
12
"github.com/geomyidia/midiserver/pkg/types"
13
13
)
14
14
15
+ const (
16
+ Bb uint8 = 34
17
+ Volume uint8 = 40
18
+ )
19
+
15
20
type MidiMessageTestSuite struct {
16
21
suite.Suite
17
- batch interface {}
18
- meter interface {}
19
- tempo interface {}
22
+ batch interface {}
23
+ device interface {}
24
+ noteOn interface {}
20
25
}
21
26
22
27
func (suite * MidiMessageTestSuite ) SetupTest () {
23
- batchBytes := []byte {0x38 , 0x33 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x34 , 0x36 , 0x44 , 0x36 , 0x39 , 0x36 , 0x34 , 0x36 , 0x39 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x35 , 0x36 , 0x32 , 0x36 , 0x31 , 0x37 , 0x34 , 0x36 , 0x33 , 0x36 , 0x38 , 0x36 , 0x43 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x33 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x36 , 0x36 , 0x34 , 0x36 , 0x35 , 0x37 , 0x36 , 0x36 , 0x39 , 0x36 , 0x33 , 0x36 , 0x35 , 0x36 , 0x31 , 0x30 , 0x30 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x35 , 0x36 , 0x44 , 0x36 , 0x35 , 0x37 , 0x34 , 0x36 , 0x35 , 0x37 , 0x32 , 0x36 , 0x43 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x32 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x39 , 0x36 , 0x45 , 0x37 , 0x35 , 0x36 , 0x44 , 0x36 , 0x35 , 0x37 , 0x32 , 0x36 , 0x31 , 0x37 , 0x34 , 0x36 , 0x46 , 0x37 , 0x32 , 0x36 , 0x31 , 0x30 , 0x34 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x42 , 0x36 , 0x34 , 0x36 , 0x35 , 0x36 , 0x45 , 0x36 , 0x46 , 0x36 , 0x44 , 0x36 , 0x39 , 0x36 , 0x45 , 0x36 , 0x31 , 0x37 , 0x34 , 0x36 , 0x46 , 0x37 , 0x32 , 0x36 , 0x31 , 0x30 , 0x34 , 0x36 , 0x41 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x39 , 0x37 , 0x34 , 0x36 , 0x35 , 0x36 , 0x44 , 0x37 , 0x30 , 0x36 , 0x46 , 0x35 , 0x46 , 0x36 , 0x32 , 0x37 , 0x30 , 0x36 , 0x44 , 0x36 , 0x31 , 0x34 , 0x34 , 0x36 , 0x41 , 0xa }
24
- meterBytes := []byte {0x38 , 0x33 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x34 , 0x36 , 0x44 , 0x36 , 0x39 , 0x36 , 0x34 , 0x36 , 0x39 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x35 , 0x36 , 0x44 , 0x36 , 0x35 , 0x37 , 0x34 , 0x36 , 0x35 , 0x37 , 0x32 , 0x36 , 0x43 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x32 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x39 , 0x36 , 0x45 , 0x37 , 0x35 , 0x36 , 0x44 , 0x36 , 0x35 , 0x37 , 0x32 , 0x36 , 0x31 , 0x37 , 0x34 , 0x36 , 0x46 , 0x37 , 0x32 , 0x36 , 0x31 , 0x30 , 0x36 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x42 , 0x36 , 0x34 , 0x36 , 0x35 , 0x36 , 0x45 , 0x36 , 0x46 , 0x36 , 0x44 , 0x36 , 0x39 , 0x36 , 0x45 , 0x36 , 0x31 , 0x37 , 0x34 , 0x36 , 0x46 , 0x37 , 0x32 , 0x36 , 0x31 , 0x30 , 0x38 , 0x36 , 0x41 , 0xa }
25
- tempoBytes := []byte {0x38 , 0x33 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x34 , 0x36 , 0x44 , 0x36 , 0x39 , 0x36 , 0x34 , 0x36 , 0x39 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x39 , 0x37 , 0x34 , 0x36 , 0x35 , 0x36 , 0x44 , 0x37 , 0x30 , 0x36 , 0x46 , 0x35 , 0x46 , 0x36 , 0x32 , 0x37 , 0x30 , 0x36 , 0x44 , 0x36 , 0x31 , 0x34 , 0x34 , 0xa }
28
+ batchBytes := []byte {0x38 , 0x33 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x34 , 0x36 , 0x44 , 0x36 , 0x39 , 0x36 , 0x34 , 0x36 , 0x39 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x35 , 0x36 , 0x32 , 0x36 , 0x31 , 0x37 , 0x34 , 0x36 , 0x33 , 0x36 , 0x38 , 0x36 , 0x43 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x32 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x32 , 0x36 , 0x39 , 0x36 , 0x34 , 0x36 , 0x44 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x31 , 0x30 , 0x33 , 0x30 , 0x39 , 0x36 , 0x39 , 0x35 , 0x37 , 0x39 , 0x43 , 0x41 , 0x35 , 0x33 , 0x34 , 0x42 , 0x41 , 0x30 , 0x42 , 0x34 , 0x41 , 0x46 , 0x41 , 0x43 , 0x46 , 0x43 , 0x45 , 0x44 , 0x37 , 0x30 , 0x39 , 0x38 , 0x36 , 0x34 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x38 , 0x36 , 0x44 , 0x36 , 0x35 , 0x37 , 0x33 , 0x37 , 0x33 , 0x36 , 0x31 , 0x36 , 0x37 , 0x36 , 0x35 , 0x37 , 0x33 , 0x36 , 0x43 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x34 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x36 , 0x36 , 0x34 , 0x36 , 0x35 , 0x37 , 0x36 , 0x36 , 0x39 , 0x36 , 0x33 , 0x36 , 0x35 , 0x36 , 0x31 , 0x30 , 0x30 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x37 , 0x36 , 0x33 , 0x36 , 0x38 , 0x36 , 0x31 , 0x36 , 0x45 , 0x36 , 0x45 , 0x36 , 0x35 , 0x36 , 0x43 , 0x36 , 0x31 , 0x30 , 0x30 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x37 , 0x36 , 0x45 , 0x36 , 0x46 , 0x37 , 0x34 , 0x36 , 0x35 , 0x35 , 0x46 , 0x36 , 0x46 , 0x36 , 0x45 , 0x36 , 0x43 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x32 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x35 , 0x37 , 0x30 , 0x36 , 0x39 , 0x37 , 0x34 , 0x36 , 0x33 , 0x36 , 0x38 , 0x36 , 0x31 , 0x32 , 0x32 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x38 , 0x37 , 0x36 , 0x36 , 0x35 , 0x36 , 0x43 , 0x36 , 0x46 , 0x36 , 0x33 , 0x36 , 0x39 , 0x37 , 0x34 , 0x37 , 0x39 , 0x36 , 0x31 , 0x32 , 0x38 , 0x36 , 0x41 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x38 , 0x36 , 0x45 , 0x36 , 0x46 , 0x37 , 0x34 , 0x36 , 0x35 , 0x35 , 0x46 , 0x36 , 0x46 , 0x36 , 0x36 , 0x36 , 0x36 , 0x36 , 0x31 , 0x32 , 0x32 , 0x36 , 0x41 , 0x36 , 0x41 , 0xa }
29
+ deviceBytes := []byte {0x38 , 0x33 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x34 , 0x36 , 0x44 , 0x36 , 0x39 , 0x36 , 0x34 , 0x36 , 0x39 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x35 , 0x36 , 0x32 , 0x36 , 0x31 , 0x37 , 0x34 , 0x36 , 0x33 , 0x36 , 0x38 , 0x36 , 0x43 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x32 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x32 , 0x36 , 0x39 , 0x36 , 0x34 , 0x36 , 0x44 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x31 , 0x30 , 0x31 , 0x31 , 0x46 , 0x46 , 0x31 , 0x33 , 0x35 , 0x43 , 0x37 , 0x38 , 0x44 , 0x35 , 0x34 , 0x31 , 0x35 , 0x43 , 0x38 , 0x38 , 0x31 , 0x38 , 0x43 , 0x44 , 0x45 , 0x37 , 0x32 , 0x32 , 0x35 , 0x32 , 0x46 , 0x46 , 0x30 , 0x32 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x38 , 0x36 , 0x44 , 0x36 , 0x35 , 0x37 , 0x33 , 0x37 , 0x33 , 0x36 , 0x31 , 0x36 , 0x37 , 0x36 , 0x35 , 0x37 , 0x33 , 0x36 , 0x43 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x31 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x36 , 0x36 , 0x34 , 0x36 , 0x35 , 0x37 , 0x36 , 0x36 , 0x39 , 0x36 , 0x33 , 0x36 , 0x35 , 0x36 , 0x31 , 0x30 , 0x30 , 0x36 , 0x41 , 0x36 , 0x41 , 0xa }
30
+ noteOnBytes := []byte {0x38 , 0x33 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x34 , 0x36 , 0x44 , 0x36 , 0x39 , 0x36 , 0x34 , 0x36 , 0x39 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x35 , 0x36 , 0x32 , 0x36 , 0x31 , 0x37 , 0x34 , 0x36 , 0x33 , 0x36 , 0x38 , 0x36 , 0x43 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x32 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x32 , 0x36 , 0x39 , 0x36 , 0x34 , 0x36 , 0x44 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x31 , 0x30 , 0x44 , 0x45 , 0x39 , 0x35 , 0x30 , 0x37 , 0x37 , 0x39 , 0x45 , 0x36 , 0x30 , 0x41 , 0x34 , 0x33 , 0x39 , 0x41 , 0x42 , 0x43 , 0x38 , 0x33 , 0x33 , 0x32 , 0x37 , 0x41 , 0x44 , 0x46 , 0x37 , 0x30 , 0x44 , 0x39 , 0x36 , 0x31 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x38 , 0x36 , 0x44 , 0x36 , 0x35 , 0x37 , 0x33 , 0x37 , 0x33 , 0x36 , 0x31 , 0x36 , 0x37 , 0x36 , 0x35 , 0x37 , 0x33 , 0x36 , 0x43 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x31 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x37 , 0x36 , 0x45 , 0x36 , 0x46 , 0x37 , 0x34 , 0x36 , 0x35 , 0x35 , 0x46 , 0x36 , 0x46 , 0x36 , 0x45 , 0x36 , 0x43 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x30 , 0x32 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x35 , 0x37 , 0x30 , 0x36 , 0x39 , 0x37 , 0x34 , 0x36 , 0x33 , 0x36 , 0x38 , 0x36 , 0x31 , 0x32 , 0x32 , 0x36 , 0x38 , 0x30 , 0x32 , 0x36 , 0x34 , 0x30 , 0x30 , 0x30 , 0x38 , 0x37 , 0x36 , 0x36 , 0x35 , 0x36 , 0x43 , 0x36 , 0x46 , 0x36 , 0x33 , 0x36 , 0x39 , 0x37 , 0x34 , 0x37 , 0x39 , 0x36 , 0x31 , 0x32 , 0x38 , 0x36 , 0x41 , 0x36 , 0x41 , 0x36 , 0x41 , 0xa }
31
+
26
32
opts := & erl.Opts {IsHexEncoded : true }
27
33
bPkt , _ := packets .NewPacket (batchBytes , opts )
28
34
suite .batch , _ = bPkt .Term ()
29
- mPkt , _ := packets .NewPacket (meterBytes , opts )
30
- suite .meter , _ = mPkt .Term ()
31
- tPkt , _ := packets .NewPacket (tempoBytes , opts )
32
- suite .tempo , _ = tPkt .Term ()
35
+ dPkt , _ := packets .NewPacket (deviceBytes , opts )
36
+ suite .device , _ = dPkt .Term ()
37
+ nPkt , _ := packets .NewPacket (noteOnBytes , opts )
38
+ suite .noteOn , _ = nPkt .Term ()
33
39
34
40
}
35
41
36
- func (suite * MidiMessageTestSuite ) TestConvertTempo () {
37
- converted , err := messages .Convert (suite .tempo )
42
+ func (suite * MidiMessageTestSuite ) TestConvertDevice () {
43
+ id , converted , err := messages .Convert (suite .device )
38
44
suite .NoError (err )
39
- suite .Equal (types .MidiTempoType (), converted [0 ].Op )
40
- suite .Equal (uint8 (68 ), converted [0 ].Args .Tempo )
45
+ suite .Equal ("11ff135c-78d5-415c-8818-cde72252ff02" , id )
46
+ suite .Equal (types .MidiDeviceType (), converted [0 ].Op )
47
+ suite .Equal (uint8 (0 ), converted [0 ].Args .Device )
41
48
}
42
49
43
- func (suite * MidiMessageTestSuite ) TestConvertMeter () {
44
- converted , err := messages .Convert (suite .meter )
50
+ func (suite * MidiMessageTestSuite ) TestConvertNoteOn () {
51
+ id , converted , err := messages .Convert (suite .noteOn )
45
52
suite .NoError (err )
46
- suite .Equal (types .MidiMeterType (), converted [0 ].Op )
47
- suite .Equal (uint8 (6 ), converted [0 ].Args .Meter .Numerator )
48
- suite .Equal (uint8 (8 ), converted [0 ].Args .Meter .Denominator )
53
+ suite .Equal ("de950779-e60a-439a-bc83-327adf70d961" , id )
54
+ suite .Equal (types .MidiNoteOnType (), converted [0 ].Op )
55
+ suite .Equal (Bb , converted [0 ].Args .NoteOn .Pitch )
56
+ suite .Equal (Volume , converted [0 ].Args .NoteOn .Velocity )
49
57
}
50
58
51
59
func (suite * MidiMessageTestSuite ) TestConvertBatch () {
52
- converted , err := messages .Convert (suite .batch )
60
+ id , converted , err := messages .Convert (suite .batch )
53
61
suite .NoError (err )
54
- suite .Equal (3 , len (converted ))
62
+ suite .Equal ("30969579-ca53-4ba0-b4af-acfced709864" , id )
63
+ suite .Equal (4 , len (converted ))
64
+ suite .Equal (1 , converted [0 ].Id )
55
65
suite .Equal (types .MidiDeviceType (), converted [0 ].Op )
56
66
suite .Equal (uint8 (0 ), converted [0 ].Args .Device )
57
- suite .Equal (types .MidiMeterType (), converted [1 ].Op )
58
- suite .Equal (uint8 (4 ), converted [1 ].Args .Meter .Numerator )
59
- suite .Equal (uint8 (4 ), converted [1 ].Args .Meter .Denominator )
60
- suite .Equal (types .MidiTempoType (), converted [2 ].Op )
61
- suite .Equal (uint8 (68 ), converted [2 ].Args .Tempo )
67
+ suite .Equal (2 , converted [1 ].Id )
68
+ suite .Equal (types .MidiChannelType (), converted [1 ].Op )
69
+ suite .Equal (uint8 (0 ), converted [1 ].Args .Channel )
70
+ suite .Equal (3 , converted [2 ].Id )
71
+ suite .Equal (types .MidiNoteOnType (), converted [2 ].Op )
72
+ suite .Equal (Bb , converted [2 ].Args .NoteOn .Pitch )
73
+ suite .Equal (Volume , converted [2 ].Args .NoteOn .Velocity )
74
+ suite .Equal (4 , converted [3 ].Id )
75
+ suite .Equal (types .MidiNoteOffType (), converted [3 ].Op )
76
+ suite .Equal (Bb , converted [3 ].Args .NoteOff )
62
77
}
63
78
64
79
// In order for 'go test' to run this suite, we need to create
0 commit comments