def testConversionClassMatch(self): from xml.etree.ElementTree import fromstring as El from music21.musicxml.xmlToM21 import MeasureParser from music21 import clef # need to get music21.clef.X, not X, because # we are comparing the result to a translation outside # clef.py src = [ [('G', 1, 0), clef.FrenchViolinClef], [('G', 2, 0), clef.TrebleClef], [('G', 2, -1), clef.Treble8vbClef], [('G', 2, 1), clef.Treble8vaClef], [('G', 3, 0), clef.GSopranoClef], [('C', 1, 0), clef.SopranoClef], [('C', 2, 0), clef.MezzoSopranoClef], [('C', 3, 0), clef.AltoClef], [('C', 4, 0), clef.TenorClef], [('C', 5, 0), clef.CBaritoneClef], [('F', 3, 0), clef.FBaritoneClef], [('F', 4, 0), clef.BassClef], [('F', 4, 1), clef.Bass8vaClef], [('F', 4, -1), clef.Bass8vbClef], [('F', 5, 0), clef.SubBassClef], [('TAB', 5, 0), clef.TabClef] ] MP = MeasureParser() for params, className in src: sign, line, octaveChange = params mxClef = El(r'<clef><sign>' + sign + '</sign><line>' + str(line) + '</line>' + '<clef-octave-change>' + str(octaveChange) + '</clef-octave-change></clef>') c = MP.xmlToClef(mxClef) # environLocal.printDebug([type(c).__name__]) self.assertEqual(c.sign, params[0]) self.assertEqual(c.line, params[1]) self.assertEqual(c.octaveChange, params[2]) self.assertIsInstance(c, className, f'Failed Conversion of classes: {c} is not a {className}')
def testConversionClassMatch(self): from xml.etree.ElementTree import fromstring as El from music21.musicxml.xmlToM21 import MeasureParser from music21 import clef # need to get music21.clef.X, not X, because # we are comparing the result to a translation outside # clef.py src = [ [('G', 1, 0), clef.FrenchViolinClef], [('G', 2, 0), clef.TrebleClef], [('G', 2, -1), clef.Treble8vbClef], [('G', 2, 1), clef.Treble8vaClef], [('G', 3, 0), clef.GSopranoClef], [('C', 1, 0), clef.SopranoClef], [('C', 2, 0), clef.MezzoSopranoClef], [('C', 3, 0), clef.AltoClef], [('C', 4, 0), clef.TenorClef], [('C', 5, 0), clef.CBaritoneClef], [('F', 3, 0), clef.FBaritoneClef], [('F', 4, 0), clef.BassClef], [('F', 4, 1), clef.Bass8vaClef], [('F', 4, -1), clef.Bass8vbClef], [('F', 5, 0), clef.SubBassClef], [('TAB', 5, 0), clef.TabClef] ] MP = MeasureParser() for params, className in src: sign, line, octaveChange = params mxClef = El(r'<clef><sign>' + sign + '</sign><line>' + str(line) + '</line>' + '<clef-octave-change>' + str(octaveChange) + '</clef-octave-change></clef>') c = MP.xmlToClef(mxClef) #environLocal.printDebug([type(c).__name__]) self.assertEqual(c.sign, params[0]) self.assertEqual(c.line, params[1]) self.assertEqual(c.octaveChange, params[2]) self.assertEqual(isinstance(c, className), True, 'Failed Conversion of classes: %s is not a %s' % (c, className))