@@ -50,15 +50,15 @@ class ScaleLibraryTests(unittest.TestCase):
|
||||
self.assertEqual(len(scale.pitches), 7)
|
||||
self.assertEqual(scale.notes[0], root)
|
||||
self.assertEqual(library.chord_mode(scale, root), (1, scale.label()))
|
||||
self.assertEqual(library.scale('harmonic-minor', 3, 'C').notes, ('C', 'D', 'E', 'F', 'G#', 'A', 'B'))
|
||||
self.assertEqual(library.scale('harmonic-minor', 7, 'C').notes, ('C', 'Db', 'Eb', 'Fb', 'Gb', 'Ab', 'Bbb'))
|
||||
self.assertEqual(library.scale('harmonic_minor', 3, 'C').notes, ('C', 'D', 'E', 'F', 'G#', 'A', 'B'))
|
||||
self.assertEqual(library.scale('harmonic_minor', 7, 'C').notes, ('C', 'Db', 'Eb', 'Fb', 'Gb', 'Ab', 'Bbb'))
|
||||
self.assertEqual(library.scale('major', 1, 'C#').pitches, library.scale('major', 1, 'Db').pitches)
|
||||
self.assertNotEqual(library.scale('major', 1, 'C#').notes, library.scale('major', 1, 'Db').notes)
|
||||
def test_incomplete_unexpected_and_inconsistent_xml_patterns_are_rejected(self):
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
root = pathlib.Path(directory) / 'scales'
|
||||
shutil.copytree('data/scales', root)
|
||||
path = root / 'harmonic-minor-scale-modes/0003.xml'
|
||||
path = root / 'harmonic_minor_scale_modes/0003.xml'
|
||||
original = path.read_text()
|
||||
path.unlink()
|
||||
with self.assertRaisesRegex(ValueError, '21 scale patterns'):
|
||||
@@ -89,7 +89,7 @@ class ScaleSelectionTests(unittest.TestCase):
|
||||
self.assertEqual(library.chord_mode(ending[1].scale, 'A'), (5, 'A Phrygian Dominant'))
|
||||
self.assertEqual(library.chord_mode(ending[4].scale, 'C'), (2, 'C Dorian'))
|
||||
def test_actual_song_uses_minor_tonic_triads_without_forcing_sevenths(self):
|
||||
source = generator.musicxml.load_musicxml(pathlib.Path('data/songs/autumn-leaves.xml'))
|
||||
source = generator.musicxml.load_musicxml(pathlib.Path('data/songs/autumn_leaves.xml'))
|
||||
spans = generator.scales.timeline.read(source['staves'][0])
|
||||
choices = generator.scales.selection.select(spans, generator.scales.timeline.Solo(4, spans[-1].end, 'Solo'), tests.scale_fixtures.library())
|
||||
self.assertTrue(all(c.scale for c in choices))
|
||||
|
||||
Reference in New Issue
Block a user