def test_type_attribute(self): printer = xml_to_printer_object(self.xml) expected = r'''PartPOneVoiceOne = {a'1\shortfermata }''' result = printer.score_dict['voices'] assert trim(expected) == trim(result)
def test_rights_without_attributes(self): rights = r'''<rights>Copyright by X.Y.</rights>''' xml = score(rights) printer = xml_to_printer_object(xml) expected = r'''\header {copyright = "Copyright by X.Y." }''' result = printer.score_dict['header'] assert trim(expected) == trim(result)
def test_rights_with_attributes(self): rights = r'''<rights type="arrangement">X.Y.</rights>''' xml = score(rights) printer = xml_to_printer_object(xml) expected = r'''\header {copyright = "Arrangement: X.Y." }''' result = printer.score_dict['header'] assert trim(expected) == trim(result)
def font_size_test(self, fontsize, cmd): from string import Template xml = header + direction(fontsize=fontsize, fontstyle='italic') + footer printer = xml_to_printer_object(xml) expected = Template(r'''PartPOneVoiceOne = {| % 1 c'1 -\markup { $cmd \italic {D.S. al Coda} } }''').substitute(cmd=cmd) result = printer.score_dict['voices'] assert trim(expected) == trim(result)
def scaling_test(self, millimeters, tenths, page_format): page_width, page_height = [x * (tenths / millimeters) for x in page_format] xml = score(millimeters=millimeters, tenths=tenths, page_height=page_height, page_width=page_width) printer = xml_to_printer_object(xml) result = printer.score_dict['paper'] return result
def test_work_number_and_work_title(): xml = score(work_number="Op. 42", work_title="Work") printer = xml_to_printer_object(xml) expected = r'\header {opus = "Op. 42" title = "Work"}' result = printer.score_dict['header'] assert trim(expected) == trim(result)
def test_notehead_color(): score = "".join([header, note_header, notehead("#FF0000"), note_footer, footer]) printer = xml_to_printer_object(score) expected = r"""PartPOneVoiceOne = { \clef "treble" \key c \major \time 4/4 \once \override NoteHead #'color = #(rgb-color 1.0 0.0 0.0) g'4}""" result = printer.score_dict["voices"] assert trim(expected) == trim(result)
def scaling_test(self, millimeters, tenths, page_format): page_width, page_height = [ x * (tenths / millimeters) for x in page_format ] xml = score(millimeters=millimeters, tenths=tenths, page_height=page_height, page_width=page_width) printer = xml_to_printer_object(xml) result = printer.score_dict['paper'] return result
def test_multilined_headers(): printer = xml_to_printer_object(score) expected = r""" \header { poet = \markup \column { \line { "German: Friedrich Heinrich Ranke (1798-1876) "} \line { "Latin: John Francis Wade (1711-1786)"} } composer = "John Francis Wade (1711-1786)"}""" result = printer.score_dict["header"] assert trim(expected) == trim(result)
def test_notehead_color(): score = ''.join( [header, note_header, notehead('#FF0000'), note_footer, footer]) printer = xml_to_printer_object(score) expected = r'''PartPOneVoiceOne = { \clef "treble" \key c \major \time 4/4 \once \override NoteHead #'color = #(rgb-color 1.0 0.0 0.0) g'4}''' result = printer.score_dict['voices'] assert trim(expected) == trim(result)
def test_multilined_headers(): printer = xml_to_printer_object(score) expected = r''' \header { poet = \markup \column { \line { "German: Friedrich Heinrich Ranke (1798-1876) "} \line { "Latin: John Francis Wade (1711-1786)"} } composer = "John Francis Wade (1711-1786)"}''' result = printer.score_dict['header'] assert trim(expected) == trim(result)
def test_stem_color_and_stem_direction(): from musicxml2ly_conversion import conversion_settings conversion_settings.convert_stem_directions = True score = "".join([header, note_header, stem(color="#FF0000", direction="down"), note_footer, footer]) printer = xml_to_printer_object(score) expected = r"""PartPOneVoiceOne = { \clef "treble" \key c \major \time 4/4 \stemDown \once \override Stem #'color = #(rgb-color 1.0 0.0 0.0) g'4 }""" result = printer.score_dict["voices"] assert trim(expected) == trim(result)
def test_stem_color_and_stem_direction(): from musicxml2ly_conversion import conversion_settings conversion_settings.convert_stem_directions = True score = ''.join([ header, note_header, stem(color='#FF0000', direction='down'), note_footer, footer ]) printer = xml_to_printer_object(score) expected = r'''PartPOneVoiceOne = { \clef "treble" \key c \major \time 4/4 \stemDown \once \override Stem #'color = #(rgb-color 1.0 0.0 0.0) g'4 }''' result = printer.score_dict['voices'] assert trim(expected) == trim(result)
def test_breathing_sign(): printer = xml_to_printer_object(score) expected = r'''PartOneVoiceNone = {\numericTimeSignature\time 4/4 c'8 [ d'8 ] \breathe }''' result = printer.score_dict['voices'] assert trim(expected) == trim(result)