def test_average_pitch_range(self): feature = vs.separators.neural.network.features.voice_level.AveragePitchRange note1 = vs.Note("C", 4, (0, 0), onset=0) note2 = vs.Note("G", 4, (0, 0), onset=1) voice1 = vs.Voice(note1) voice2 = vs.Voice(note2) voice1.link(voice2) active_voices = vs.ActiveVoices() MIN_PITCH = vs.separators.neural.network.features.constants.MIN_PITCH MAX_PITCH = vs.separators.neural.network.features.constants.MAX_PITCH GRANULARITY = vs.separators.neural.network.features.constants.GRANULARITY interval = (MAX_PITCH - MIN_PITCH) / GRANULARITY true_data = [0] * len(np.arange(MIN_PITCH, MAX_PITCH, interval)) true_data[5] = 1 expected_data = feature.generate(voice2, active_voices) self.assertEqual(true_data, expected_data)
def test_position_difference(self): feature = vs.separators.neural.network.features.pair_level.PositionDifference note1 = vs.Note("C", 4, (0, 0), index=0) note2 = vs.Note("D", 4, (0, 0), index=1) note3 = vs.Note("E", 4, (0, 1), index=0) voice1 = vs.Voice(note1) voice2 = vs.Voice(note2) active_voices = vs.ActiveVoices() active_voices.insert([voice1, voice2]) data = feature.generate(note3, voice1, active_voices) self.assertEqual(len(data), 1) self.assertEqual(data[0], 1)
def test_equal(self): note = vs.Note(name="C", octave=4, location=(0, 0)) voice = vs.Voice(note) with self.subTest("equal"): self.assertEqual(self.voice, voice) with self.subTest("hash"): self.assertEqual(hash(self.voice), hash(voice))
def setUp(self): path = os.path.dirname(os.path.abspath(__file__)) self.score = vs.Score(f"{path}/test.musicxml") voice1 = vs.Voice(self.score[0][0]) voice2 = vs.Voice(self.score[0][1]) voice3 = vs.Voice(self.score[1][0]) voice4 = vs.Voice(self.score[1][1]) self.active_voices = vs.ActiveVoices() self.active_voices.insert([voice1, voice2]) voice1.link(voice3) voice1.link(voice4) voice2.link(voice3) voice2.link(voice4) self.active_voices.insert([voice3, voice4])
def test_link(self): right_voice = vs.Voice(self.note) self.voice.link(right_voice) with self.subTest("left voice left length"): self.assertEqual(len(self.voice.left), 0) with self.subTest("left voice right length"): self.assertEqual(len(self.voice.right), 1) with self.subTest("right voice left length"): self.assertEqual(len(right_voice.left), 1) with self.subTest("right voice right length"): self.assertEqual(len(right_voice.right), 0) with self.subTest("left voice right value"): self.assertEqual(next(iter(self.voice.right)), right_voice) with self.subTest("right voice left value"): self.assertEqual(next(iter(right_voice.left)), self.voice)
def setUp(self): self.note = vs.Note(name="C", octave=4, location=(0, 0)) self.voice = vs.Voice(self.note)
def test_less_than(self): note_d = vs.Note(name="D", octave=4, location=(0, 0)) voice_d = vs.Voice(note_d) self.assertLess(self.voice, voice_d)
def test_not_equal(self): note = vs.Note(name="D", octave=4, location=(0, 0)) voice = vs.Voice(note) self.assertNotEqual(self.voice, voice)