@@ -1,9 +1,9 @@
|
||||
import generator.validation
|
||||
import copy
|
||||
import fractions
|
||||
import pathlib
|
||||
import unittest
|
||||
|
||||
import generator.arrange.form
|
||||
import generator.arrange.generate
|
||||
import generator.arrange.pickup
|
||||
import generator.model
|
||||
@@ -29,7 +29,7 @@ class ArrangementPickupTests(unittest.TestCase):
|
||||
for part in generator.parts.PART_TYPES:
|
||||
with self.subTest(song=path.stem, part=part):
|
||||
result = generator.arrange.generate.arrange_document(document, part)
|
||||
generator.model.validate_document(result)
|
||||
generator.validation.validate_document(result)
|
||||
measures = result['staves'][0]['measures']
|
||||
self.assertEqual(len(measures), 171)
|
||||
self.assertEqual([m['number'] for m in measures], [str(i) for i in range(1, 172)])
|
||||
@@ -57,7 +57,7 @@ class ArrangementPickupTests(unittest.TestCase):
|
||||
for part, boundaries in (('vocal', (1, 5)), ('electric', (2,))):
|
||||
with self.subTest(part=part):
|
||||
result = generator.arrange.generate._arrange_document(generator.parts.prepare_document(document), part, owned={'melody', 'vocal'})
|
||||
generator.model.validate_document(result)
|
||||
generator.validation.validate_document(result)
|
||||
measures = result['staves'][0]['measures']
|
||||
self.assertEqual(len(measures), 9)
|
||||
for boundary in boundaries:
|
||||
@@ -84,13 +84,13 @@ class ArrangementPickupTests(unittest.TestCase):
|
||||
self.assertEqual(notes[1]['lyrics'][0]['syllables'][0]['text'], 'doo')
|
||||
self.assertEqual([generator.model.fraction(n['onset']) for n in notes], [0, 1])
|
||||
document['staves'][0]['measures'] = [destination]
|
||||
generator.model.validate_document(document)
|
||||
generator.validation.validate_document(document)
|
||||
def test_pickup_harmonies_are_planned_for_every_part_at_the_same_offset(self):
|
||||
document = source(tests.test_parts.xml_harmony('F') + tests.test_musicxml.xml_note('F', 1, 'quarter'))
|
||||
prepared = generator.parts.prepare_document(document)
|
||||
for part in generator.parts.PART_TYPES:
|
||||
result = generator.arrange.generate.arrange_document(document, part)
|
||||
generator.model.validate_document(result)
|
||||
generator.validation.validate_document(result)
|
||||
for index in (0, 1, 4):
|
||||
chords = result['staves'][0]['measures'][index]['harmonies']
|
||||
self.assertEqual([(generator.model.fraction(h['onset']), h['root']['letter']) for h in chords], [(0, 'c'), (3, 'f')])
|
||||
@@ -102,7 +102,7 @@ class ArrangementPickupTests(unittest.TestCase):
|
||||
document = source(notes, divisions=3)
|
||||
for part in ('vocal', 'electric'):
|
||||
result = generator.arrange.generate.arrange_document(document, part)
|
||||
generator.model.validate_document(result)
|
||||
generator.validation.validate_document(result)
|
||||
spans = result['staves'][0]['tuplets']
|
||||
self.assertEqual(len(spans), 2 if part == 'vocal' else 1)
|
||||
self.assertEqual(len({s['id'] for s in spans}), len(spans))
|
||||
|
||||
Reference in New Issue
Block a user