@@ -9,7 +9,7 @@ import generator.arrange.pickup
|
||||
import generator.model
|
||||
import generator.musicxml
|
||||
import generator.parts
|
||||
import generator.playback
|
||||
import tests.score_events
|
||||
import generator.score
|
||||
import tests.test_musicxml
|
||||
import tests.test_parts
|
||||
@@ -31,10 +31,10 @@ class ArrangementPickupTests(unittest.TestCase):
|
||||
result = generator.arrange.generate.arrange_document(document, part)
|
||||
generator.model.validate_document(result)
|
||||
measures = result['staves'][0]['measures']
|
||||
self.assertEqual(len(measures), 176)
|
||||
self.assertEqual([m['number'] for m in measures], [str(i) for i in range(1, 177)])
|
||||
self.assertEqual([m['number'] for m in measures if m.get('section_label')], ['1', '9', '41', '73', '105', '137', '169'])
|
||||
self.assertEqual(sum(generator.model.fraction(m['duration']) for m in measures), 704)
|
||||
self.assertEqual(len(measures), 168)
|
||||
self.assertEqual([m['number'] for m in measures], [str(i) for i in range(1, 169)])
|
||||
self.assertEqual([m['number'] for m in measures if m.get('section_label')], ['1', '9', '41', '73', '105', '137'])
|
||||
self.assertEqual(sum(generator.model.fraction(m['duration']) for m in measures), 672)
|
||||
timelines.append([m['duration'] for m in measures])
|
||||
if path.stem == 'autumn_leaves' and part in ('vocal', 'electric'):
|
||||
for boundary in ([8, 136] if part == 'vocal' else [40]):
|
||||
@@ -49,7 +49,7 @@ class ArrangementPickupTests(unittest.TestCase):
|
||||
opening = '<note><rest/><duration>1</duration><type>quarter</type></note>' + tests.test_musicxml.xml_note(duration=3, kind='half', extra='<dot/>')
|
||||
document = source(opening, implicit=False)
|
||||
result = generator.arrange.generate.arrange_document(document, 'vocal')
|
||||
self.assertEqual(len(result['staves'][0]['measures']), 14)
|
||||
self.assertEqual(len(result['staves'][0]['measures']), 12)
|
||||
self.assertEqual(generator.score.body_start_measure_index(document['staves'][0]['measures']), 0)
|
||||
def test_short_pickup_ties_and_octave_spans_survive_each_melody_entry(self):
|
||||
document = source(tests.test_musicxml.xml_note(duration=1, kind='quarter', extra='<tie type="start"/>'), tests.test_musicxml.xml_note(extra='<tie type="stop"/>'))
|
||||
@@ -59,7 +59,7 @@ class ArrangementPickupTests(unittest.TestCase):
|
||||
result = generator.arrange.generate.arrange_document(document, part)
|
||||
generator.model.validate_document(result)
|
||||
measures = result['staves'][0]['measures']
|
||||
self.assertEqual(len(measures), 7)
|
||||
self.assertEqual(len(measures), 6)
|
||||
for boundary in boundaries:
|
||||
pickup = generator.score.measure_notes(measures[boundary - 1])[-1]
|
||||
downbeat = generator.score.measure_notes(measures[boundary])[0]
|
||||
@@ -67,7 +67,7 @@ class ArrangementPickupTests(unittest.TestCase):
|
||||
self.assertEqual(pickup['pitches'][0]['tie_to'], downbeat['pitches'][0]['id'])
|
||||
self.assertEqual(downbeat['pitches'][0]['tie_from'], pickup['pitches'][0]['id'])
|
||||
self.assertTrue(any(generator.model.fraction(s['start']) == boundary * 4 - 1 and generator.model.fraction(s['end']) == boundary * 4 for s in result['staves'][0]['octave_shifts']))
|
||||
self.assertTrue(generator.playback.compile_timeline(result)['events'])
|
||||
self.assertTrue(tests.score_events.timeline(result)['events'])
|
||||
def test_pickup_truncates_outgoing_music_without_discarding_earlier_notes(self):
|
||||
opening = '<note><rest/><duration>1</duration><type>quarter</type></note>' + tests.test_musicxml.xml_note('D', 3, 'half', extra='<dot/><lyric><text>doo</text></lyric>')
|
||||
document = source(opening)
|
||||
|
||||
Reference in New Issue
Block a user