def test_mp_indexer_4(self): # that a list with two types is properly filtered when it's given as a Stream # --> test lengths # --> two events at each offset actual = indexer.stream_indexer(0, [self.in_stream], verbatim, [base.ElementWrapper])[1] self.assertSequenceEqual(list(self.in_series.index), list(actual.index)) self.assertSequenceEqual(list(self.in_series.values), list(actual.values))
def test_multi_event_2(self): # Test this: # offset: 0.0 | 0.5 | 1.0 | 1.5 | 2.0 # part 1: [1] | [2][6] | [3] | [4][7] | [5][8] # part 2: [1] | [2][6] | [3][7] | [4] | [5][8] part_1 = stream.Stream() for i in xrange(5): obj = base.ElementWrapper(i) obj.offset = 0.5 * i obj.duration = duration.Duration(0.5) part_1.append(obj) part_2 = stream.Stream() for i in xrange(5): obj = base.ElementWrapper(i) obj.offset = 0.5 * i obj.duration = duration.Duration(0.5) part_2.append(obj) add_these = [(part_1, 0.5, 6), (part_1, 1.5, 7), (part_1, 2.0, 8), (part_2, 0.5, 6), (part_2, 1.0, 7), (part_2, 2.0, 8)] for part, offset, number in add_these: zed = base.ElementWrapper(number) zed.duration = duration.Duration(0.5) part.insert(offset, zed) expected = pandas.Series({0.0: u'(0, 0)', 0.5: u'(1, 1)', 1.0: u'(2, 2)', 1.5: u'(3, 3)', 2.0: u'(4, 4)'}) actual = indexer.stream_indexer(0, [part_1, part_2], verbatim_variable)[1] self.assertSequenceEqual(list(expected.index), list(actual.index)) self.assertSequenceEqual(list(expected), list(actual))
def test_stream_indexer(self): result = indexer.stream_indexer(0, [self.in_stream], verbatim, [base.ElementWrapper])[1] # that we get a Series back when a Stream is given self.assertIs(type(result), pandas.Series) # the verbatim function is designed to produce exactly what is given self.assertEqual(len(result), len(self.in_stream)) self.assertSequenceEqual(list(result), [elt.obj for elt in self.in_stream])
def test_mp_indexer_5(self): # test _4, but we want both ElementWrapper and Rest objects (we should only get # the "first" events) actual = indexer.stream_indexer(0, [self.shared_mixed_list], verbatim_rests, [base.ElementWrapper, note.Rest])[1] self.assertSequenceEqual(list(self.shared_mixed_rests_series.index), list(actual.index)) self.assertSequenceEqual(list(self.shared_mixed_rests_series.values), list(actual.values))
def test_mp_indexer_3(self): # same as test _2, but the Strame is pickled # ** inputted Streams are pickled # --> test values # --> one event at each offset input_stream = converter.freeze(stream.Stream(self.mixed_list), u'pickle') actual = indexer.stream_indexer(0, [input_stream], verbatim, [base.ElementWrapper])[1] self.assertSequenceEqual(list(self.mixed_series_notes.index), list(actual.index)) self.assertSequenceEqual(list(self.mixed_series_notes.values), list(actual.values))
def test_indexer_init_10(self): # when no "types" is specified, make sure it returns everything in the Stream # setup the input stream the_stream = stream.Stream() the_stream.append(note.Note(u'D#2', quarterLength=0.5)) the_stream.append(note.Rest(quarterLength=0.5)) the_stream.append(clef.TrebleClef()) # setup the expected Series expected = pandas.Series({0.0: note.Note(u'D#2', quarterLength=0.5), 0.5: note.Rest(quarterLength=0.5), 1.0: clef.TrebleClef()}) # run the test; verify results actual = indexer.stream_indexer(12, [the_stream], verbatim_ser) # check the multiprocessing token is returned, then get rid of it self.assertEqual(2, len(actual)) self.assertEqual(12, actual[0]) actual = actual[1] # check both the index and values are equal self.assertSequenceEqual(list(expected.index), list(actual.index)) self.assertSequenceEqual(list(expected.values), list(actual.values))
def test_multi_event_1(self): # Test this: # offset: 0.0 | 0.5 | 1.0 | 1.5 | 2.0 # part 1: [0] | [1] | [2] | [3] | [4] # part 2: [0] | [1] | [2] | [3] | [4] part_1 = stream.Stream() for i in xrange(5): obj = base.ElementWrapper(i) obj.offset = 0.5 * i obj.duration = duration.Duration(0.5) part_1.append(obj) part_2 = stream.Stream() for i in xrange(5): obj = base.ElementWrapper(i) obj.offset = 0.5 * i obj.duration = duration.Duration(0.5) part_2.append(obj) expected = pandas.Series({0.0: u'(0, 0)', 0.5: u'(1, 1)', 1.0: u'(2, 2)', 1.5: u'(3, 3)', 2.0: u'(4, 4)'}) actual = indexer.stream_indexer(0, [part_1, part_2], verbatim_variable)[1] self.assertSequenceEqual(list(expected.index), list(actual.index)) self.assertSequenceEqual(list(expected), list(actual))