def testUpdateAccidentalDisplayOctaves(self): ''' test if octave display is working ''' def proc1(_pList, _past): for p in _pList: p.updateAccidentalDisplay(pitchPast=_past, cautionaryPitchClass=True, cautionaryNotImmediateRepeat=False) _past.append(p) def proc2(_pList, _past): for p in _pList: p.updateAccidentalDisplay(pitchPast=_past, cautionaryPitchClass=False, cautionaryNotImmediateRepeat=False) _past.append(p) def compare(_past, _result): # environLocal.printDebug(['accidental compare']) for i in range(len(_result)): p = _past[i] if p.accidental is None: pName = None pDisplayStatus = None else: pName = p.accidental.name pDisplayStatus = p.accidental.displayStatus targetName = _result[i][0] targetDisplayStatus = _result[i][1] self.assertEqual(pName, targetName) self.assertEqual( pDisplayStatus, targetDisplayStatus, f'{i}: {p} display: {pDisplayStatus}, target {targetDisplayStatus}' ) pList = [Pitch('c#3'), Pitch('c#4'), Pitch('c#3'), Pitch('c#4')] result = [('sharp', True), ('sharp', True), ('sharp', False), ('sharp', False)] proc1(pList, []) compare(pList, result) pList = [Pitch('c#3'), Pitch('c#4'), Pitch('c#3'), Pitch('c#4')] proc2(pList, []) compare(pList, result) a4 = Pitch('a4') past = [Pitch('a#3'), Pitch('c#'), Pitch('c')] # will not add a natural because match is pitchSpace a4.updateAccidentalDisplay(pitchPast=past, cautionaryPitchClass=False) self.assertEqual(a4.accidental, None)
def testUpdateAccidentalDisplaySimple(self): '''Test updating accidental display. ''' past = [Pitch('A#3'), Pitch('C#'), Pitch('C')] a = Pitch('c') a.accidental = Accidental('natural') a.accidental.displayStatus = True self.assertEqual(a.name, 'C') self.assertTrue(a.accidental.displayStatus) a.updateAccidentalDisplay(pitchPast=past, overrideStatus=True) self.assertFalse(a.accidental.displayStatus) b = copy.deepcopy(a) self.assertFalse(b.accidental.displayStatus) self.assertEqual(b.accidental.name, 'natural')