Sepearate Generation
This commit is contained in:
@@ -24,21 +24,11 @@ def notes(names):
|
||||
return tuple(dataclasses.replace(fixtures.note(F(i, 2), F(i + 1, 2), name), event_id=f'n{i}') for i, name in enumerate(names))
|
||||
|
||||
class LeadReferenceTests(unittest.TestCase):
|
||||
def test_accepted_pair_preserves_sounding_pitch_exact_time_and_harmony(self):
|
||||
reference, = references.load_library(pathlib.Path('data/lead_phrases'))
|
||||
self.assertEqual((len(reference.notes), len(reference.decorated), reference.duration), (31, 36, 32))
|
||||
self.assertEqual(reference.notes[0].pitch.number(), 62)
|
||||
self.assertEqual(reference.notes[1].end - reference.notes[1].start, F(3, 2))
|
||||
choices = list(passages.choices(tuple(chord for _, chord in reference.harmony)))
|
||||
minor = tests.scale_fixtures.library().scale('harmonic_minor', 1, 'D')
|
||||
choices[5] = dataclasses.replace(choices[5], scale=minor)
|
||||
harmony = harmonic.Harmony(tuple(choices))
|
||||
for variant in (reference.notes, reference.decorated):
|
||||
self.assertTrue(harmony.evaluate(variant, complete=True).valid)
|
||||
placed = generator.solo.placement.place(variant, F(120))
|
||||
self.assertTrue(placed)
|
||||
self.assertTrue(all(1 <= n.position.fret <= 12 for n in placed[1]))
|
||||
self.assertTrue(all(m.context and m.duration in (8, 16) for m in reference.windows()))
|
||||
def test_authored_sounding_phrase_is_valid_without_audition_files(self):
|
||||
original=tuple(dataclasses.replace(n,start=n.start*2,end=n.end*2) for n in notes(('c','e','g','e')))
|
||||
harmony=harmonic.Harmony(passages.choices(('CM7',)))
|
||||
self.assertTrue(harmony.evaluate(original,complete=True).valid)
|
||||
self.assertTrue(generator.solo.placement.place(original,F(120)))
|
||||
def test_feature_selection_finds_the_relationship_not_the_first_three(self):
|
||||
original = notes(('c', 'd', 'e', 'c', 'g', 'f', 'd'))
|
||||
feature, = references.identifying_features(original, 'test')
|
||||
|
||||
Reference in New Issue
Block a user