@@ -123,6 +123,45 @@ def test_datagram_too_short(self):
123123 self .assertRaises (osc_types .ParseError , osc_types .get_rgba , dgram , 2 )
124124
125125
126+ class TestMidi (unittest .TestCase ): # TODO
127+
128+ def test_get_midi (self ):
129+ cases = {
130+ b"\x00 \x00 \x00 \x00 " : ((0 ,0 ,0 ,0 ), 4 ),
131+ b"\x00 \x00 \x00 \x02 " : ((0 ,0 ,0 ,1 ), 4 ),
132+ b"\x00 \x00 \x00 \x02 " : ((0 ,0 ,0 ,2 ), 4 ),
133+ b"\x00 \x00 \x00 \x03 " : ((0 ,0 ,0 ,3 ), 4 ),
134+
135+ b"\x00 \x00 \x01 \x00 " : ((0 ,0 ,1 ,0 ), 4 ),
136+ b"\x00 \x01 \x00 \x00 " : ((0 ,1 ,0 ,0 ), 4 ),
137+ b"\x01 \x00 \x00 \x00 " : ((1 ,0 ,0 ,0 ), 4 ),
138+
139+ b"\x00 \x00 \x00 \x01 GARBAGE" : ((0 ,0 ,0 ,1 ), 4 ),
140+ }
141+
142+ for dgram , expected in cases .items ():
143+ self .assertEqual (
144+ expected , osc_types .get_midi (dgram , 0 ))
145+
146+ def test_get_midi_raises_on_type_error (self ):
147+ cases = [b'' , True ]
148+
149+ for case in cases :
150+ self .assertRaises (osc_types .ParseError , osc_types .get_midi , case , 0 )
151+
152+ def test_get_midi_raises_on_wrong_start_index (self ):
153+ self .assertRaises (
154+ osc_types .ParseError , osc_types .get_midi , b'\x00 \x00 \x00 \x11 ' , 1 )
155+
156+ def test_get_midi_raises_on_wrong_start_index_negative (self ):
157+ self .assertRaises (
158+ osc_types .ParseError , osc_types .get_midi , b'\x00 \x00 \x00 \x00 ' , - 1 )
159+
160+ def test_datagram_too_short (self ):
161+ dgram = b'\x00 ' * 3
162+ self .assertRaises (osc_types .ParseError , osc_types .get_midi , dgram , 2 )
163+
164+
126165class TestDate (unittest .TestCase ):
127166 def test_get_ttag (self ):
128167 cases = {
0 commit comments