+5
-12
@@ -10,7 +10,7 @@ import generator.model
|
||||
import generator.musicxml
|
||||
import generator.musicxml_writer
|
||||
import generator.pitch
|
||||
import generator.practice.generate
|
||||
import tests.arrangement_fixtures
|
||||
import tests.rhythm_fixtures
|
||||
import tests.test_musicxml
|
||||
|
||||
@@ -58,9 +58,9 @@ class HarmonyTests(unittest.TestCase):
|
||||
self.assertEqual(chord['symbol'], label)
|
||||
self.assertTrue(chord['chord_optional'])
|
||||
self.assertTrue(chord['parenthesized'])
|
||||
practice = generator.practice.generate.practice_document(source, 'vocal', rhythms=tests.rhythm_fixtures.library())['staves'][0]['measures'][0]['harmonies'][0]
|
||||
self.assertNotIn('chord_optional', practice)
|
||||
self.assertEqual(generator.harmony.symbol(practice), label)
|
||||
arranged = tests.arrangement_fixtures.section_document(source, 'vocal', rhythms=tests.rhythm_fixtures.library())['staves'][0]['measures'][0]['harmonies'][0]
|
||||
self.assertNotIn('chord_optional', arranged)
|
||||
self.assertEqual(generator.harmony.symbol(arranged), label)
|
||||
source['staves'][0]['measures'][0]['transpose'] = {'diatonic': 1, 'chromatic': 2, 'octave_change': 0}
|
||||
shifted = generator.pitch.concert_document(source)
|
||||
result = shifted['staves'][0]['measures'][0]['harmonies'][0]
|
||||
@@ -90,14 +90,7 @@ class HarmonyTests(unittest.TestCase):
|
||||
self.assertEqual(generator.harmony.symbol(chord), 'Cm7')
|
||||
source = tests.test_musicxml.parse(tests.test_musicxml.xml_score(chord_xml('7', 'dominant', extra='<degree><degree-value>9</degree-value><degree-alter>-1</degree-alter><degree-type>add</degree-type></degree>') + tests.test_musicxml.xml_note()))
|
||||
self.assertEqual(source['staves'][0]['measures'][0]['harmonies'][0]['symbol'], 'C7b9')
|
||||
def test_current_exercise_and_song_exports_import_without_edits(self):
|
||||
exercise = generator.musicxml.load_musicxml(pathlib.Path('data/practice/0001.xml'))
|
||||
measures = exercise['staves'][0]['measures']
|
||||
self.assertEqual(len(measures), 20)
|
||||
self.assertEqual(sum(len(n['pitches']) for m in measures for v in m['voices'] for n in v['notes']), 70)
|
||||
self.assertEqual(measures[1]['harmonies'][0]['symbol'], 'Bm9')
|
||||
self.assertEqual(measures[3]['harmonies'][0]['symbol'], 'DmM7')
|
||||
self.assertEqual(measures[0]['voices'][0]['notes'][0]['duration'], generator.model.rational(1))
|
||||
def test_current_song_exports_import_without_edits(self):
|
||||
for name, count, key in (('autumn-leaves', 33, 'F'), ('it-could-happen-to-you', 32, 'Eb')):
|
||||
source = generator.musicxml.load_musicxml(pathlib.Path('data/songs') / f'{name}.xml')
|
||||
self.assertEqual(len(source['staves'][0]['measures']), count)
|
||||
|
||||
Reference in New Issue
Block a user