Soloing
This commit is contained in:
@@ -24,6 +24,18 @@ def fixture(symbol='C7',target=None,scale=None):
|
||||
|
||||
|
||||
class EnclosureContracts(unittest.TestCase):
|
||||
def test_existing_upper_can_continue_without_a_new_attack(self):
|
||||
h,notes,c=fixture('Dm',note(4,8,'d'))
|
||||
upper=dataclasses.replace(notes[0],start=F(5,2))
|
||||
contract=dataclasses.replace(c,upper=upper,approach_start=F(3))
|
||||
self.assertTrue(h.evaluate((upper,*notes[1:]),enclosures=(contract,)).valid)
|
||||
# Joining a tie must not hide an exposed long non-chord upper neighbor.
|
||||
long_upper=dataclasses.replace(upper,start=F(1))
|
||||
invalid=dataclasses.replace(contract,upper=long_upper)
|
||||
self.assertFalse(h.evaluate((long_upper,*notes[1:]),enclosures=(invalid,)).valid)
|
||||
split=(dataclasses.replace(upper,end=F(3)),dataclasses.replace(upper,start=F(3),continuation=True,event_id='tie'),*notes[1:])
|
||||
self.assertEqual(h.evaluate(split,enclosures=(contract,)),h.evaluate((upper,*notes[1:]),enclosures=(contract,)))
|
||||
|
||||
def test_worked_examples_and_actual_collection_membership(self):
|
||||
hm=tests.scale_fixtures.library().scale('harmonic_minor',1,'D')
|
||||
for symbol,target,scale,expected in (
|
||||
|
||||
Reference in New Issue
Block a user