def test_GraceContainer_parentage_01(): """ Lone grace container main leaf is none. """ grace_container = abjad.GraceContainer("c'4 d'4 e'4 f'4") assert grace_container._main_leaf is None
def test_LilyPondParser__functions__grace_01(): target = abjad.Container( [abjad.Note("c'4"), abjad.Note("d'4"), abjad.Note("e'2")]) grace = abjad.GraceContainer([abjad.Note("g''16"), abjad.Note("fs''16")]) abjad.attach(grace, target[2]) assert format(target) == abjad.String.normalize(r""" { c'4 d'4 \grace { g''16 fs''16 } e'2 } """) string = r"{ c'4 d'4 \grace { g''16 fs''16} e'2 }" parser = abjad.parser.LilyPondParser() result = parser(string) assert format(target) == format(result) and target is not result
def test_GraceContainer_parentage_03(): """ Grace containers bound to leaf have their correct main leaf after assignment. """ note = abjad.Note(1, (1, 4)) after_grace = abjad.AfterGraceContainer([abjad.Note("e'16")]) abjad.attach(after_grace, note) grace = abjad.GraceContainer([abjad.Note("e'16")]) abjad.attach(grace, note) assert after_grace._main_leaf is note assert grace._main_leaf is note after_grace[:] = [] notes = [abjad.Note("c'8"), abjad.Note("d'8")] after_grace.extend(notes) grace[:] = [] notes = [abjad.Note("c'8"), abjad.Note("d'8")] grace.extend(notes) assert after_grace._main_leaf is note assert grace._main_leaf is note after_grace[:] = [] grace[:] = [] assert after_grace._main_leaf is note assert grace._main_leaf is note
def test_Note___copy___05(): """ Deepcopy orphan note. """ note = abjad.Note("c'4") articulation = abjad.Articulation('staccato') abjad.attach(articulation, note) grace = abjad.GraceContainer("d'16") abjad.attach(grace, note) abjad.override(note).note_head.color = 'red' assert format(note) == abjad.String.normalize(r""" \grace { d'16 } \once \override NoteHead.color = #red c'4 - \staccato """) new_note = copy.deepcopy(note) assert not new_note is note assert format(new_note) == format(note)
def test_Leaf__split_by_durations_15(): """ Grace notes are removed from second split leaf. """ note = abjad.Note("c'4") grace = abjad.GraceContainer([abjad.Note(0, (1, 32))]) abjad.attach(grace, note) new_leaves = note._split_by_durations([abjad.Duration(1, 16)]) staff = abjad.Staff(new_leaves) assert format(staff) == abjad.String.normalize(r""" \new Staff { \grace { c'32 } c'16 ~ c'8. } """), print(format(staff)) abjad.inspect(staff).wellformed()
def test_scoretools_Container_append_06(): r'''Can not insert grace container into container. ''' staff = abjad.Staff("c' d' e'") grace_container = abjad.GraceContainer("f'16 g'") assert pytest.raises(Exception, 'staff.append(grace_container)')
def test_scoretools_GraceContainer_06(): r'''Grace containers can be appended. ''' grace_container = abjad.GraceContainer("c'8 c'8") note = abjad.Note(1, (1, 4)) grace_container.append(note) assert len(grace_container) == 3 assert grace_container[-1] is note
def test_scoretools_GraceContainer_07(): r'''Grace containers can be extended. ''' grace_container = abjad.GraceContainer("c'8 c'8") ns = abjad.Note(1, (1, 4)) * 2 grace_container.extend(ns) assert len(grace_container) == 4 assert tuple(grace_container[-2:]) == tuple(ns)
def test_Container_append_06(): """ Can not insert grace container into container. """ staff = abjad.Staff("c' d' e'") grace_container = abjad.GraceContainer("f'16 g'") with pytest.raises(Exception): staff.append(grace_container)
def test_GraceContainer_07(): """ Grace containers can be extended. """ grace_container = abjad.GraceContainer("c'8 c'8") ns = abjad.Note(1, (1, 4)) * 2 grace_container.extend(ns) assert len(grace_container) == 4 assert tuple(grace_container[-2:]) == tuple(ns)
def test_GraceContainer_06(): """ Grace containers can be appended. """ grace_container = abjad.GraceContainer("c'8 c'8") note = abjad.Note(1, (1, 4)) grace_container.append(note) assert len(grace_container) == 3 assert grace_container[-1] is note
def test_GraceContainer_02(): grace_container = abjad.GraceContainer("c'8 c'8 c'8") assert format(grace_container) == abjad.String.normalize(r""" \grace { c'8 c'8 c'8 } """)
def test_scoretools_GraceContainer_02(): grace_container = abjad.GraceContainer("c'8 c'8 c'8") assert format(grace_container) == abjad.String.normalize(r''' \grace { c'8 c'8 c'8 } ''')
def test_scoretools_GraceContainer_parentage_02(): r'''Grace containers bound to leaf do have parent. ''' note = abjad.Note(1, (1, 4)) grace_container = abjad.GraceContainer() abjad.attach(grace_container, note) grace_container = abjad.inspect(note).get_grace_container() assert isinstance(grace_container, abjad.GraceContainer) assert grace_container._carrier is note assert grace_container._carrier is note
def test_GraceContainer_parentage_02(): """ Grace containers bound to leaf do have parent. """ note = abjad.Note(1, (1, 4)) grace_container = abjad.GraceContainer() abjad.attach(grace_container, note) grace_container = abjad.inspect(note).grace_container() assert isinstance(grace_container, abjad.GraceContainer) assert grace_container._main_leaf is note assert grace_container._main_leaf is note
def test_scoretools_Leaf__split_by_durations_17(): r'''Grace notes are removed from second split leaf. ''' note = abjad.Note("c'4") grace = abjad.GraceContainer([abjad.Note(0, (1, 32))]) abjad.attach(grace, note) halves = note._split_by_durations([abjad.Duration(1, 16)]) assert len(halves[0]) == 1 assert len(halves[1]) == 1 grace_container = abjad.inspect(halves[0][0]).get_grace_container() assert len(grace_container) == 1 assert not hasattr(halves[1][0], 'grace') is None
def test_Note_grace_01(): """ Attaches one grace note. """ note = abjad.Note("c'4") grace_container = abjad.GraceContainer([abjad.Note(2, (1, 16))]) abjad.attach(grace_container, note) assert format(note) == abjad.String.normalize(r""" \grace { d'16 } c'4 """)
def test_scoretools_Note_grace_01(): r'''Attaches one grace note. ''' note = abjad.Note("c'4") grace_container = abjad.GraceContainer([abjad.Note(2, (1, 16))]) abjad.attach(grace_container, note) assert format(note) == abjad.String.normalize( r''' \grace { d'16 } c'4 ''' )
def test_scoretools_GraceContainer_01(): notes = [ abjad.Note(0, (1, 16)), abjad.Note(2, (1, 16)), abjad.Note(4, (1, 16)) ] grace_container = abjad.GraceContainer(notes) assert format(grace_container) == abjad.String.normalize(r''' \grace { c'16 d'16 e'16 } ''') assert isinstance(grace_container, abjad.Container) assert len(grace_container) == 3
def test_scoretools_Note_grace_02(): r'''Attaches several grace notes. ''' note = abjad.Note("c'4") grace_notes = [abjad.Note(0, (1, 16)), abjad.Note(2, (1, 16)), abjad.Note(4, (1, 16))] grace_container = abjad.GraceContainer(grace_notes) abjad.attach(grace_container, note) assert format(note) == abjad.String.normalize( r''' \grace { c'16 d'16 e'16 } c'4 ''' )
def test_Note___copy___06(): """ Deepcopy note in score. """ staff = abjad.Staff("c'8 [ c'8 e'8 f'8 ]") note = staff[0] articulation = abjad.Articulation("staccato") abjad.attach(articulation, note) grace = abjad.GraceContainer("d'16") abjad.attach(grace, note) abjad.override(note).note_head.color = "red" assert format(staff) == abjad.String.normalize( r""" \new Staff { \grace { d'16 } \once \override NoteHead.color = #red c'8 - \staccato [ c'8 e'8 f'8 ] } """ ) new_note = copy.deepcopy(note) assert new_note is not note assert abjad.inspect(note).parentage().parent is staff assert abjad.inspect(new_note).parentage().parent is not staff assert isinstance(abjad.inspect(new_note).parentage().parent, abjad.Staff) assert format(new_note) == format(note) assert format(abjad.inspect(note).parentage().parent) == format( abjad.inspect(new_note).parentage().parent )
def test_Note_grace_02(): """ Attaches several grace notes. """ note = abjad.Note("c'4") grace_notes = [ abjad.Note(0, (1, 16)), abjad.Note(2, (1, 16)), abjad.Note(4, (1, 16)) ] grace_container = abjad.GraceContainer(grace_notes) abjad.attach(grace_container, note) assert format(note) == abjad.String.normalize(r""" \grace { c'16 d'16 e'16 } c'4 """)
def test_scoretools_GraceContainer_parentage_03(): r'''Grace containers bound to leaf have their correct carrier after assignment. ''' note = abjad.Note(1, (1, 4)) after_grace = abjad.AfterGraceContainer([abjad.Note("e'16")]) abjad.attach(after_grace, note) grace = abjad.GraceContainer([abjad.Note("e'16")]) abjad.attach(grace, note) assert after_grace._carrier is note assert grace._carrier is note after_grace[:] = [] notes = [abjad.Note("c'8"), abjad.Note("d'8")] after_grace.extend(notes) grace[:] = [] notes = [abjad.Note("c'8"), abjad.Note("d'8")] grace.extend(notes) assert after_grace._carrier is note assert grace._carrier is note after_grace[:] = [] grace[:] = [] assert after_grace._carrier is note assert grace._carrier is note
def test_scoretools_GraceContainer_parentage_01(): r'''Lone grace container carrier is none. ''' gracecontainer = abjad.GraceContainer("c'4 d'4 e'4 f'4") assert gracecontainer._carrier is None