Package
ci / checks (push) Successful in 48m34s

This commit is contained in:
khodowany
2026-09-30 19:46:37 -05:00
parent 2a1aa2c67a
commit 09656a9d60
6621 changed files with 698 additions and 774 deletions
+4 -4
View File
@@ -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))