§
    ƒØjØ‘ ã                  óx  — d Z ddlmZ ddlZddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ  G d„ dej         ¦  «        Z!e"dk    rddlZ ej#        e!¦  «         dS dS )z$
Tests for :mod:`music21.mei.base`.
é    )ÚannotationsN)ÚElementTree)Údefaultdict)ÚFraction)Úmock)Úarticulations)Úbar)Úclef©Úduration)Ú
instrument)Úinterval)Úkey)Úmetadata)Úmeter©Únote)Úpitch)Úspanner)Ústream)Útie)Úbase)Ú_XMLID)ÚMEI_NSc            	      óÞ)  — e Zd Zd„ Zd„ Zd„ Zd„ Z ej        d¦  «         ej        d¦  «         ej        d¦  «         ej        d¦  «         ej        d	¦  «         ej        d
¦  «         ej        d¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z ej        d ¦  «        d!„ ¦   «         Z ej        d"¦  «        d#„ ¦   «         Zd$„ Zd%„ Z d&„ Z! ej        d'¦  «         ej        d(¦  «         ej        d)¦  «        d*„ ¦   «         ¦   «         ¦   «         Z" ej        d'¦  «         ej        d(¦  «         ej        d)¦  «        d+„ ¦   «         ¦   «         ¦   «         Z#d,„ Z$d-„ Z%d.„ Z&d/„ Z'd0„ Z(d1„ Z)d2„ Z*d3„ Z+d4„ Z, ej        d5¦  «        d6„ ¦   «         Z-d7„ Z.d8„ Z/d9„ Z0d:„ Z1 ej        d;¦  «        d<„ ¦   «         Z2 ej        d;¦  «        d=„ ¦   «         Z3 ej        d;¦  «        d>„ ¦   «         Z4 ej        d;¦  «        d?„ ¦   «         Z5 ej        d;¦  «        d@„ ¦   «         Z6 ej        d;¦  «        dA„ ¦   «         Z7 ej        d;¦  «        dB„ ¦   «         Z8 ej        dC¦  «        dD„ ¦   «         Z9 ej        dC¦  «        dE„ ¦   «         Z: ej        dC¦  «        dF„ ¦   «         Z;dG„ Z<dH„ Z=dI„ Z>dJ„ Z?dK„ Z@dL„ ZAdM„ ZBdN„ ZCdO„ ZDdP„ ZEdQ„ ZFdR„ ZGdS„ ZHdT„ ZIdU„ ZJdV„ ZKdW„ ZLdX„ ZM ej        d5¦  «        dY„ ¦   «         ZN ej        d5¦  «        dZ„ ¦   «         ZO ej        d[¦  «         ej        d\¦  «         ej        d]¦  «         ej        d^¦  «        d_„ ¦   «         ¦   «         ¦   «         ¦   «         ZPd`„ ZQda„ ZR ej        d[¦  «         ej        d\¦  «         ej        d]¦  «         ej        d^¦  «         ej        db¦  «        dc„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ZSdd„ ZT ej        d[¦  «         ej        d\¦  «         ej        d]¦  «         ej        d^¦  «         ej        d ¦  «         ej        de¦  «         ej        df¦  «        dg„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ZUdh„ ZV ej        d[¦  «         ej        d\¦  «         ej        d]¦  «         ej        d^¦  «         ej        di¦  «         ej        dj¦  «        dk„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ZWdl„ ZX ej        d[¦  «         ej        d\¦  «         ej        d]¦  «         ej        d^¦  «         ej        dm¦  «        dn„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ZYdo„ ZZ ej        d[¦  «         ej        d\¦  «         ej        d]¦  «         ej        d^¦  «         ej        dp¦  «        dq„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Z[dr„ Z\ ej        ds¦  «         ej        d^¦  «         ej        di¦  «        dt„ ¦   «         ¦   «         ¦   «         Z]du„ Z^dv„ Z_dw„ Z` ej        dx¦  «        dy„ ¦   «         Za ej        dx¦  «        dz„ ¦   «         Zb ej        d{¦  «        d|„ ¦   «         Zc ej        d{¦  «        d}„ ¦   «         Zdeed~„ ¦   «         Zf ej        d¦  «         ej        d\¦  «         ej        d^¦  «         ej        d€¦  «        d�„ ¦   «         ¦   «         ¦   «         ¦   «         Zgd‚„ Zh ej        d¦  «         ej        d\¦  «         ej        d^¦  «         ej        d€¦  «        dƒ„ ¦   «         ¦   «         ¦   «         ¦   «         Zid„„ Zj ej        d¦  «         ej        d\¦  «         ej        d^¦  «         ej        d€¦  «         ej        d ¦  «         ej        de¦  «         ej        df¦  «        d…„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Zkd†„ Zl ej        d¦  «         ej        d\¦  «         ej        d^¦  «         ej        d€¦  «         ej        di¦  «        d‡„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Zmdˆ„ Zn ej        d¦  «         ej        d\¦  «         ej        d^¦  «         ej        d€¦  «         ej        dm¦  «        d‰„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ZodŠ„ Zp ej        d‹¦  «         ej        dŒ¦  «         ej        d�¦  «        dŽ„ ¦   «         ¦   «         ¦   «         Zq ej        d‹¦  «         ej        dŒ¦  «         ej        d�¦  «        d�„ ¦   «         ¦   «         ¦   «         Zr ej        d‹¦  «         ej        dŒ¦  «         ej        d�¦  «        d�„ ¦   «         ¦   «         ¦   «         Zsd‘„ Ztd’„ Zud“„ Zv ej        d‹¦  «         ej        dŒ¦  «         ej        d�¦  «        d”„ ¦   «         ¦   «         ¦   «         Zw ej        d€¦  «         ej        d•¦  «         ej        d–¦  «        d—„ ¦   «         ¦   «         ¦   «         Zx ej        d€¦  «         ej        d•¦  «         ej        d–¦  «        d˜„ ¦   «         ¦   «         ¦   «         Zy ej        d€¦  «         ej        d•¦  «         ej        d–¦  «        d™„ ¦   «         ¦   «         ¦   «         Zzdš„ Z{d›„ Z|dœ„ Z} ej        d�¦  «        dž„ ¦   «         Z~dŸ„ Z ej        d ¦  «         ej        d¡¦  «         ej        d¢¦  «         ej        d£¦  «         ej        d¤¦  «        d¥„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Z€d¦„ Z�d§„ Z‚ ej        d¨¦  «         ej        d ¦  «         ej        d¡¦  «         ej        d¢¦  «         ej        d£¦  «         ej        d¤¦  «        d©„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Zƒdª„ Z„ ej        d«¦  «         ej        d¨¦  «         ej        d ¦  «         ej        d¡¦  «         ej        d¢¦  «         ej        d£¦  «         ej        d¤¦  «        d¬„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Z…d­„ Z† ej        d«¦  «         ej        d¨¦  «         ej        d ¦  «         ej        d¡¦  «         ej        d¢¦  «         ej        d£¦  «         ej        d¤¦  «        d®„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Z‡d¯„ Zˆ ej        d°¦  «        d±„ ¦   «         Z‰d²„ ZŠd³„ Z‹ ej        d¡¦  «         ej        d¢¦  «        d´„ ¦   «         ¦   «         ZŒdµ„ Z� ej        d¡¦  «         ej        d¢¦  «         ej        d¶¦  «        d·„ ¦   «         ¦   «         ¦   «         ZŽd¸„ Z�d¹„ Z�dº„ Z‘ ej        d5¦  «        d»„ ¦   «         Z’d¼„ Z“d½„ Z”d¾„ Z• ej        d¿¦  «        dÀ„ ¦   «         Z–dÁ„ Z—dÂ„ Z˜dÃ„ Z™dÄ„ ZšdÅ„ Z›dÆ„ ZœdÇ„ Z�dÈ„ ZždÉ„ ZŸ ej        d5¦  «        dÊ„ ¦   «         Z  ej        d¿¦  «        dË„ ¦   «         Z¡ ej        d¿¦  «         ej        d5¦  «        dÌ„ ¦   «         ¦   «         Z¢dÍ„ Z£dÎ„ Z¤ ej        d5¦  «        dÏ„ ¦   «         Z¥dÐ„ Z¦ ej        d5¦  «        dÑ„ ¦   «         Z§dÒ„ Z¨dÓ„ Z©dÔ„ Zª ej        dÕ¦  «        dÖ„ ¦   «         Z« ej        dÕ¦  «        d×„ ¦   «         Z¬ ej        dÕ¦  «        dØ„ ¦   «         Z­ ej        dÕ¦  «        dÙ„ ¦   «         Z®dÚ„ Z¯ ej        d\¦  «         ej        di¦  «         ej        dÛ¦  «        dÜ„ ¦   «         ¦   «         ¦   «         Z° ej        d\¦  «         ej        di¦  «         ej        dÛ¦  «        dÝ„ ¦   «         ¦   «         ¦   «         Z± ej        d\¦  «         ej        di¦  «         ej        dÛ¦  «        dÞ„ ¦   «         ¦   «         ¦   «         Z²dß„ Z³dà„ Z´dá„ Zµdâ„ Z¶ ej        dã¦  «        dä„ ¦   «         Z· ej        d¨¦  «        då„ ¦   «         Z¸ ej        dæ¦  «        dç„ ¦   «         Z¹ ej        dæ¦  «        dè„ ¦   «         Zºdé„ Z»dê„ Z¼dë„ Z½dì„ Z¾dí„ Z¿dî„ ZÀ ej        dï¦  «         ej        dð¦  «         ej        dñ¦  «         ej        dò¦  «         ej        d•¦  «        dó„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ZÁdô„ ZÂ ej        dï¦  «         ej        dð¦  «         ej        dñ¦  «         ej        dò¦  «         ej        d•¦  «        dõ„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ZÃdö„ ZÄ ej        dï¦  «         ej        dð¦  «         ej        dñ¦  «         ej        dò¦  «         ej        d°¦  «        d÷„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ZÅ ej        dï¦  «         ej        dð¦  «         ej        dñ¦  «         ej        dò¦  «         ej        d5¦  «        dø„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ZÆdù„ ZÇ ej        dú¦  «        dû„ ¦   «         ZÈ ej        dü¦  «         ej        dú¦  «         ej        dý¦  «         ej        dþ¦  «        dÿ„ ¦   «         ¦   «         ¦   «         ¦   «         ZÉ�d „ ZÊ ej        �d¦  «         ej        �d¦  «         ej        �d¦  «         ej        d°¦  «        �d„ ¦   «         ¦   «         ¦   «         ¦   «         ZË�d„ ZÌ ej        �d¦  «         ej        �d¦  «         ej        �d¦  «         ej        d°¦  «        �d„ ¦   «         ¦   «         ¦   «         ¦   «         ZÍ�d„ ZÎ ej        �d¦  «         ej        �d¦  «         ej        �d¦  «         ej        d°¦  «        �d„ ¦   «         ¦   «         ¦   «         ¦   «         ZÏ�d	„ ZÐ ej        d5¦  «         ej        �d¦  «         ej        �d¦  «         ej        �d¦  «         ej        d°¦  «        �d
„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ZÑ ej        d5¦  «        �d„ ¦   «         ZÒ�d„ ZÓ�d„ ZÔ�d„ ZÕ	 �d„ ZÖ�d„ Z×�dS (  ÚTestc                óê   — t          j        ¦   «         }|                      |j        ¦  «         |                      |j        t          ¦  «         |                      |j        t          j	        ¦  «         dS )zU
        __init__(): no argument gives an "empty" MeiToM21Converter instance
        N)
r   ÚMeiToM21ConverterÚassertIsNotNoneÚdocumentRootÚassertIsInstanceÚm21Attrr   Ú
slurBundler   ÚSpannerBundle)ÚselfÚactuals     úŠ/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/music21/mei/test_base.pyÚ	testInit1zTest.testInit1=   sc   € õ Ô'Ñ)Ô)ˆØ×Ò˜VÔ0Ñ1Ô1Ð1Ø×Ò˜fœn­kÑ:Ô:Ð:Ø×Ò˜fÔ/µÔ1FÑGÔGÐGÐGÐGó    c                ó@  — d}t          j        |¦  «        }|                      |j        ¦  «         |                      t
          › d�|j        j        ¦  «         |                      |j        t          ¦  «         |                      |j
        t          j        ¦  «         dS )zC
        __init__(): a valid MEI file is prepared properly
        z¾<?xml version="1.0" encoding="UTF-8"?>
                       <mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="2013">
                       <music><score></score></music></mei>ÚmeiN)r   r   r   r    ÚassertEqualr   Útagr!   r"   r   r#   r   r$   )r%   Ú	inputFiler&   s      r'   Ú	testInit2zTest.testInit2F   s�   € ð?ˆ	õ Ô'¨	Ñ2Ô2ˆð 	×Ò˜VÔ0Ñ1Ô1Ð1Ø×Ò�F˜˜˜¨Ô)<Ô)@ÑAÔAÐAØ×Ò˜fœn­kÑ:Ô:Ð:Ø×Ò˜fÔ/µÔ1FÑGÔGÐGÐGÐGr)   c                ó  — d}|                       t          j        t          j        |¦  «         	 t          j        |¦  «         dS # t          j        $ r6}|                      t          j        |j        d         ¦  «         Y d}~dS d}~ww xY w)zL
        __init__(): an invalid XML file causes an MeiValidityError
        zthis is not an XML filer   N)ÚassertRaisesr   ÚMeiValidityErrorr   r,   Ú_INVALID_XML_DOCÚargs©r%   r.   ÚtheErrors      r'   Ú	testInit3zTest.testInit3V   sœ   € ð .ˆ	Ø×Ò�$Ô/µÔ1GÈÑSÔSÐSð	FÝÔ" 9Ñ-Ô-Ð-Ð-Ð-øÝÔ$ð 	Fð 	Fð 	FØ×Ò�TÔ2°H´MÀ!Ô4DÑEÔEÐEÐEÐEÐEÐEÐEÐEøøøøð	Føøøs   ¯A ÁB
Á+BÂB
c                ó@  — d}|                       t          j        t          j        |¦  «         	 t          j        |¦  «         dS # t          j        $ rI}|                      t          j                             d¦  «        |j        d         ¦  «         Y d}~dS d}~ww xY w)zG
        __init__(): a MusicXML file causes an MeiElementError
        a(  <?xml version="1.0" encoding="UTF-8"?>
                       <!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.1 Partwise//EN"
                                                       "http://www.musicxml.org/dtds/partwise.dtd">
                       <score-partwise></score-partwise>zscore-partwiser   N)r1   r   ÚMeiElementErrorr   r,   Ú_WRONG_ROOT_ELEMENTÚformatr4   r5   s      r'   Ú	testInit4zTest.testInit4a   s°   € ð<ˆ	ð 	×Ò�$Ô.µÔ0FÈ	ÑRÔRÐRð	bÝÔ" 9Ñ-Ô-Ð-Ð-Ð-øÝÔ#ð 	bð 	bð 	bØ×Ò�TÔ5×<Ò<Ð=MÑNÔNÐPXÔP]Ð^_ÔP`ÑaÔaÐaÐaÐaÐaÐaÐaÐaøøøøð	bøøøs   ¯A ÁBÁ>BÂBzmusic21.mei.base._ppSlurszmusic21.mei.base._ppTieszmusic21.mei.base._ppBeamszmusic21.mei.base._ppTupletszmusic21.mei.base._ppConcludez!music21.mei.base.scoreFromElementzmusic21.mei.base.makeMetadatac                óÖ  — t          j        ¦   «         }t          j        t          j        ¬¦  «        |_        d|j        j        _        t          j        t          j
        ¬¦  «        }	|	|_        dt          › dt          › d�}
|                     ¦   «         }|                      |	|¦  «         |                     |¦  «         |                     |¦  «         |                     |¦  «         |                     |¦  «         |                     |¦  «         |j        j                             |
¦  «         |                     d|j        ¦  «         |                     |j        ¦  «         dS )z8
        MeiToM21Converter.run(): that it works
        ©Úspec_seté   ú.//úmusic//ÚscoreN)r   r   r   Ú	MagicMockÚETreeÚElementr    ÚfindÚreturn_valuer   ÚStreamr   ÚrunÚassertIsÚassert_called_once_withr#   )r%   ÚmockMetaÚmockScoreFEÚmockConcludeÚ
mockTupletÚ	mockBeamsÚmockTiesÚ	mockSlursÚtestConvÚexpScoreÚexpDocRootQueryr&   s               r'   ÚtestRun1zTest.testRun1o   s@  € õ Ô)Ñ+Ô+ˆÝ $¤½¼Ð FÑ FÔ FˆÔØ23ˆÔÔ"Ô/Ý”>­6¬=Ð9Ñ9Ô9ˆØ#+ˆÔ Ø<¥Ð<Ð<­vÐ<Ð<Ð<ˆà—’‘”ˆà�Š�h Ñ'Ô'Ð'Ø×*Ò*¨8Ñ4Ô4Ð4Ø×)Ò)¨(Ñ3Ô3Ð3Ø×(Ò(¨Ñ2Ô2Ð2Ø×)Ò)¨(Ñ3Ô3Ð3Ø×,Ò,¨XÑ6Ô6Ð6ØÔÔ"×:Ò:¸?ÑKÔKÐKØ×+Ò+¨A¨xÔ/BÑCÔCÐCØ×(Ò(¨Ô)>Ñ?Ô?Ð?Ð?Ð?r)   c                ó  — d}t          j        d¦  «        }t          j        |¦  «        }|                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         dS )zB
        safePitch(): when ``name`` is a valid pitch name
        úD#6N©r   ÚPitchr   Ú	safePitchr,   ÚnameÚ
accidentalÚoctave©r%   r]   Úexpectedr&   s       r'   ÚtestSafePitch1zTest.testSafePitch1’   s}   € ð ˆÝ”;˜uÑ%Ô%ˆÝ” Ñ%Ô%ˆØ×Ò˜œ¨¬Ñ4Ô4Ð4Ø×Ò˜Ô,¨fÔ.?Ñ@Ô@Ð@Ø×Ò˜œ¨&¬-Ñ8Ô8Ð8Ð8Ð8r)   c                ó  — d}t          j        ¦   «         }t          j        |¦  «        }|                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         dS )zF
        safePitch(): when ``name`` is not a valid pitch name
        Ú NrZ   r`   s       r'   ÚtestSafePitch2zTest.testSafePitch2�   sy   € ð ˆÝ”;‘=”=ˆÝ” Ñ%Ô%ˆØ×Ò˜œ¨¬Ñ4Ô4Ð4Ø×Ò˜Ô,¨fÔ.?Ñ@Ô@Ð@Ø×Ò˜œ¨&¬-Ñ8Ô8Ð8Ð8Ð8r)   c                ó  — t          j        d¦  «        }t          j        ddd¬¦  «        }|                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         dS )z_
        safePitch(): when ``name`` is not given, but there are various ``**keywords``
        rY   ÚDú#Ú6©r]   r^   r_   NrZ   ©r%   ra   r&   s      r'   ÚtestSafePitch3zTest.testSafePitch3¨   s   € õ ”;˜uÑ%Ô%ˆÝ” S°SÀÐEÑEÔEˆØ×Ò˜œ¨¬Ñ4Ô4Ð4Ø×Ò˜Ô,¨fÔ.?Ñ@Ô@Ð@Ø×Ò˜œ¨&¬-Ñ8Ô8Ð8Ð8Ð8r)   c                ó  — t          j        d¦  «        }t          j        ddd¬¦  «        }|                      |j        |j        ¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         dS )z8
        safePitch(): when 2nd argument is None
        ÚD6rg   Nri   rj   rZ   rk   s      r'   ÚtestSafePitch4zTest.testSafePitch4²   s   € õ ”;˜tÑ$Ô$ˆÝ” S°TÀ#ÐFÑFÔFˆØ×Ò˜œ¨¬Ñ4Ô4Ð4Ø×Ò˜Ô,¨fÔ.?Ñ@Ô@Ð@Ø×Ò˜œ¨&¬-Ñ8Ô8Ð8Ð8Ð8r)   c                óR  — t          j        t          j        ¬¦  «        g}t          j        d¬¦  «        |d         _        t          j        t          j        ¬¦  «        }t          j        |¬¦  «        |_        dg}t          j        |¦  «        }|                      ||¦  «         dS )z?
        allPartsPresent(): one <staffDef>, no repeats
        r>   Ú1©rH   r   N)	r   rD   rE   rF   ÚgetÚfindallr   ÚallPartsPresentÚassertSequenceEqual)r%   Ú	staffDefsÚelemra   r&   s        r'   ÚtestAllPartsPresent1zTest.testAllPartsPresent1¼   s�   € õ ”^­U¬]Ð;Ñ;Ô;Ð<ˆ	Ýœ>°sÐ;Ñ;Ô;ˆ	�!ŒÔÝŒ~¥u¤}Ð5Ñ5Ô5ˆÝ”~°9Ð=Ñ=Ô=ˆŒØ�5ˆÝÔ% dÑ+Ô+ˆØ× Ò  ¨6Ñ2Ô2Ð2Ð2Ð2r)   c                ó   — d„ t          d¦  «        D ¦   «         }t          d¦  «        D ]2}t          j        t          |dz   ¦  «        ¬¦  «        ||         _        Œ3t          j        t
          j        ¬¦  «        }t          j        |¬¦  «        |_        t          d¦  «        }t          j
        |¦  «        }|                      ||¦  «         dS )z5
        allPartsPresent(): four <staffDef>s
        c                óL   — g | ]!}t          j        t          j        ¬ ¦  «        ‘Œ"S ©r>   ©r   rD   rE   rF   ©Ú.0Ú_s     r'   ú
<listcomp>z-Test.testAllPartsPresent2.<locals>.<listcomp>Ì   s'   € ÐNÐNÐNÀ•T”^­U¬]Ð;Ñ;Ô;ÐNÐNÐNr)   é   é   rr   r>   Ú1234N©Úranger   rD   Ústrrs   rE   rF   rt   Úlistr   ru   rv   ©r%   rw   Úirx   ra   r&   s         r'   ÚtestAllPartsPresent2zTest.testAllPartsPresent2È   sº   € ð OÐNÅUÈ1ÁXÄXÐNÑNÔNˆ	Ý�q‘”ð 	Gð 	GˆAÝ#œ~½3¸qÀ1¹u¹:¼:ÐFÑFÔFˆI�aŒLÔÐÝŒ~¥u¤}Ð5Ñ5Ô5ˆÝ”~°9Ð=Ñ=Ô=ˆŒÝ˜‘<”<ˆÝÔ% dÑ+Ô+ˆØ× Ò  ¨6Ñ2Ô2Ð2Ð2Ð2r)   c                ó¦  — d„ t          d¦  «        D ¦   «         }t          d¦  «        D ]5}t          j        t          |dz  dz   ¦  «        ¬¦  «        ||         _        Œ6t          j        t
          j        ¬¦  «        }t          j        |¬¦  «        |_        t          d¦  «        }t          j
        |¦  «        }|                      ||¦  «         dS )	zM
        allPartsPresent(): four unique <staffDef>s, several repeats
        c                óL   — g | ]!}t          j        t          j        ¬ ¦  «        ‘Œ"S r|   r}   r~   s     r'   r�   z-Test.testAllPartsPresent3.<locals>.<listcomp>Ù   s'   € ÐOÐOÐOÀ•T”^­U¬]Ð;Ñ;Ô;ÐOÐOÐOr)   é   r‚   rƒ   rr   r>   r„   Nr…   r‰   s         r'   ÚtestAllPartsPresent3zTest.testAllPartsPresent3Õ   sÀ   € ð PÐOÅUÈ2ÁYÄYÐOÑOÔOˆ	Ý�r‘”ð 	Mð 	MˆAÝ#œ~½3ÀÀAÁÈ¹{Ñ;KÔ;KÐLÑLÔLˆI�aŒLÔÐÝŒ~¥u¤}Ð5Ñ5Ô5ˆÝ”~°9Ð=Ñ=Ô=ˆŒÝ˜‘<”<ˆÝÔ% dÑ+Ô+ˆØ× Ò  ¨6Ñ2Ô2Ð2Ð2Ð2r)   c                óT  — t          j        t          j        ¬¦  «        }|                      t
          j        t
          j        |¦  «         	 t          j        |¦  «         dS # t
          j        $ r6}|                      t
          j	        |j
        d         ¦  «         Y d}~dS d}~ww xY w)z:
        allPartsPresent(): error: no <staffDef>s
        r>   r   N)r   rD   rE   rF   r1   r   r2   ru   r,   Ú_SEEMINGLY_NO_PARTSr4   )r%   rx   ÚmvErrs      r'   ÚtestAllPartsPresent4zTest.testAllPartsPresent4â   sª   € õ Œ~¥u¤}Ð5Ñ5Ô5ˆØ×Ò�$Ô/µÔ1EÀtÑLÔLÐLð	FÝÔ  Ñ&Ô&Ð&Ð&Ð&øÝÔ$ð 	Fð 	Fð 	FØ×Ò�TÔ5°u´zÀ!´}ÑEÔEÐEÐEÐEÐEÐEÐEÐEøøøøð	Føøøs   ÁA" Á"B'Á1+B"Â"B'c                óš   — t          j        ddddœ¬¦  «        }d}t          j        |¦  «        }|                      ||j        ¦  «         dS )zG
        _timeSigFromAttrs(): that it works (integration test)
        ú{mei}staffDefÚ3Ú8©úmeter.countú
meter.unit©Úattribú3/8N)rE   rF   r   Ú_timeSigFromAttrsr,   ÚratioString)r%   rx   ÚexpectedRatioStringr&   s       r'   ÚtestTimeSigFromAttrszTest.testTimeSigFromAttrsí   sW   € õ Œ}˜_ÀSÐX[Ð5\Ð5\Ð]Ñ]Ô]ˆØ#ÐÝÔ'¨Ñ-Ô-ˆØ×ÒÐ,¨fÔ.@ÑAÔAÐAÐAÐAr)   c                óÜ   — t          j        dddddœ¬¦  «        }d}t          j        |¦  «        }|                      |t
          j        ¦  «         |                      ||j        ¦  «         dS )	zd
        _keySigFromAttrs(): using @key.pname, @key.accid, and @key.mode (integration test)
        r•   ÚBÚfÚminor)ú	key.pnamez	key.accidúkey.moder›   zb-N)	rE   rF   r   Ú_keySigFromAttrsr!   r   ÚKeyr,   ÚtonicPitchNameWithCase)r%   rx   ÚexpectedTPNWCr&   s       r'   ÚtestKeySigFromAttrs1zTest.testKeySigFromAttrs1ö   s   € õ Œ}˜_À3ÐUXØBIð6Kð 6Kð Lñ Lô LˆàˆÝÔ& tÑ,Ô,ˆØ×Ò˜f¥c¤gÑ.Ô.Ð.Ø×Ò˜¨Ô(EÑFÔFÐFÐFÐFr)   c                ó  — t          j        ddddœ¬¦  «        }d}d}t          j        |¦  «        }|                      |t
          j        ¦  «         |                      ||j        ¦  «         |                      ||j	        ¦  «         dS )zV
        _keySigFromAttrs(): using @key.sig, and @key.mode (integration test)
        r•   Ú6sr¥   )úkey.sigr§   r›   é   N)
rE   rF   r   r¨   r!   r   ÚKeySignaturer,   ÚsharpsÚmode)r%   rx   ÚexpectedSharpsÚexpectedModer&   s        r'   ÚtestKeySigFromAttrs2zTest.testKeySigFromAttrs2  sŠ   € õ Œ}˜_ÀÐSZÐ5[Ð5[Ð\Ñ\Ô\ˆØˆØˆÝÔ& tÑ,Ô,ˆØ×Ò˜f¥cÔ&6Ñ7Ô7Ð7Ø×Ò˜¨¬Ñ7Ô7Ð7Ø×Ò˜ v¤{Ñ3Ô3Ð3Ð3Ð3r)   c                óÚ   — t          j        ddddœ¬¦  «        }d}t          j        |¦  «        }|                      |t
          j        ¦  «         |                      ||j        ¦  «         dS )zX
        _transpositionFromAttrs(): descending transposition (integration test)
        r•   ú-3ú-2©ú
trans.semiú
trans.diatr›   úm-3N©	rE   rF   r   Ú_transpositionFromAttrsr!   r   ÚIntervalr,   ÚdirectedName©r%   rx   ÚexpectedNamer&   s       r'   ÚtestTranspositionFromAttrs1z Test.testTranspositionFromAttrs1  ón   € õ Œ}˜_ÀDÐX\Ð5]Ð5]Ð^Ñ^Ô^ˆØˆÝÔ-¨dÑ3Ô3ˆØ×Ò˜f¥hÔ&7Ñ8Ô8Ð8Ø×Ò˜ vÔ':Ñ;Ô;Ð;Ð;Ð;r)   c                óÚ   — t          j        ddddœ¬¦  «        }d}t          j        |¦  «        }|                      |t
          j        ¦  «         |                      ||j        ¦  «         dS )zW
        _transpositionFromAttrs(): ascending transposition (integration test)
        r•   Ú7Ú4rº   r›   ÚP5Nr¾   rÂ   s       r'   ÚtestTranspositionFromAttrs2z Test.testTranspositionFromAttrs2  sn   € õ Œ}˜_ÀCÐWZÐ5[Ð5[Ð\Ñ\Ô\ˆØˆÝÔ-¨dÑ3Ô3ˆØ×Ò˜f¥hÔ&7Ñ8Ô8Ð8Ø×Ò˜ vÔ':Ñ;Ô;Ð;Ð;Ð;r)   c                óÚ   — t          j        ddddœ¬¦  «        }d}t          j        |¦  «        }|                      |t
          j        ¦  «         |                      ||j        ¦  «         dS )zX
        _transpositionFromAttrs(): large ascending interval (integration test)
        r•   Ú19Ú11rº   r›   ÚP12Nr¾   rÂ   s       r'   ÚtestTranspositionFromAttrs3z Test.testTranspositionFromAttrs3!  rÅ   r)   c                óÚ   — t          j        ddddœ¬¦  «        }d}t          j        |¦  «        }|                      |t
          j        ¦  «         |                      ||j        ¦  «         dS )zU
        _transpositionFromAttrs(): alternate octave spec (integration test)
        r•   Ú12Ú0rº   r›   ÚP8Nr¾   rÂ   s       r'   ÚtestTranspositionFromAttrs4z Test.testTranspositionFromAttrs4+  sn   € õ Œ}˜_ÀDÐX[Ð5\Ð5\Ð]Ñ]Ô]ˆØˆÝÔ-¨dÑ3Ô3ˆØ×Ò˜f¥hÔ&7Ñ8Ô8Ð8Ø×Ò˜ vÔ':Ñ;Ô;Ð;Ð;Ð;r)   c                óÚ   — t          j        ddddœ¬¦  «        }d}t          j        |¦  «        }|                      |t
          j        ¦  «         |                      ||j        ¦  «         dS )zc
        _transpositionFromAttrs(): alternate large descending interval (integration test)
        r•   z-19z-4rº   r›   zP-12Nr¾   rÂ   s       r'   ÚtestTranspositionFromAttrs5z Test.testTranspositionFromAttrs55  sn   € õ Œ}˜_ÀEÐY]Ð5^Ð5^Ð_Ñ_Ô_ˆØˆÝÔ-¨dÑ3Ô3ˆØ×Ò˜f¥hÔ&7Ñ8Ô8Ð8Ø×Ò˜ vÔ':Ñ;Ô;Ð;Ð;Ð;r)   c                óÚ   — t          j        ddddœ¬¦  «        }d}t          j        |¦  «        }|                      |t
          j        ¦  «         |                      ||j        ¦  «         dS )zf
        _transpositionFromAttrs(): alternate ascending sixteenth interval (integration test)
        r•   Ú26rq   rº   r›   ÚM16Nr¾   rÂ   s       r'   ÚtestTranspositionFromAttrs6z Test.testTranspositionFromAttrs6?  sn   € õ Œ}˜_ÀDÐX[Ð5\Ð5\Ð]Ñ]Ô]ˆØˆÝÔ-¨dÑ3Ô3ˆØ×Ò˜f¥hÔ&7Ñ8Ô8Ð8Ø×Ò˜ vÔ':Ñ;Ô;Ð;Ð;Ð;r)   c                ób   — d}d}t          j        |¦  «        }|                      ||¦  «         dS )z@
        removeOctothorpe(): when there's an octothorpe
        z%#14ccdc11-8090-49f4-b094-5935f534131az$14ccdc11-8090-49f4-b094-5935f534131aN©r   ÚremoveOctothorper,   ©r%   Úxmlidra   r&   s       r'   ÚtestRemoveOctothorpe1zTest.testRemoveOctothorpe1I  s:   € ð 8ˆØ9ˆÝÔ& uÑ-Ô-ˆØ×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r)   c                ób   — d}d}t          j        |¦  «        }|                      ||¦  «         dS )zD
        removeOctothorpe(): when there's not an octothorpe
        z$b05c3007-bc49-4bc2-a970-bb5700cb634dNrÜ   rÞ   s       r'   ÚtestRemoveOctothorpe2zTest.testRemoveOctothorpe2R  s:   € ð 7ˆØ9ˆÝÔ& uÑ-Ô-ˆØ×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r)   zmusic21.mei.base._makeArticListc                óÂ   — t          j        dddi¬¦  «        }d|_        t          j        |¦  «        }|                      d|¦  «         |                     d¦  «         dS )z@
        articFromElement(): very straight-forward test
        ÚarticÚyesr›   r@   N)rE   rF   rH   r   ÚarticFromElementr,   rL   )r%   ÚmockMakeListrx   r&   s       r'   ÚtestArticFromElementzTest.testArticFromElement[  se   € õ
 Œ}˜W¨g°uÐ-=Ð>Ñ>Ô>ˆØ$%ˆÔ!ÝÔ& tÑ,Ô,ˆØ×Ò˜˜FÑ#Ô#Ð#Ø×,Ò,¨UÑ3Ô3Ð3Ð3Ð3r)   z$music21.mei.base._accidentalFromAttrc                óÂ   — t          j        dddi¬¦  «        }d|_        t          j        |¦  «        }|                      d|¦  «         |                     d¦  «         dS )z@
        accidFromElement(): very straight-forward test
        Úaccidrå   r›   r@   N)rE   rF   rH   r   ÚaccidFromElementr,   rL   )r%   Ú	mockAccidrx   r&   s       r'   ÚtestAccidFromElementzTest.testAccidFromElementf  se   € õ
 Œ}˜W¨g°uÐ-=Ð>Ñ>Ô>ˆØ!"ˆ	ÔÝÔ& tÑ,Ô,ˆØ×Ò˜˜FÑ#Ô#Ð#Ø×)Ò)¨%Ñ0Ô0Ð0Ð0Ð0r)   c                óä   — t          j        ¦   «         }d|_        d|t          j        ¦   «         t          j        ¦   «         dg}d}t          j        |¦  «        }|                      ||¦  «         dS )z*
        getVoiceId(): usual case
        é*   Né„  )r   ÚVoiceÚidrI   ÚPartr   Ú
getVoiceIdr,   )r%   ÚtheVoiceÚ	fromThesera   r&   s        r'   ÚtestGetVoiceId1zTest.testGetVoiceId1q  sb   € õ ”<‘>”>ˆØˆŒØ˜8¥V¤]¡_¤_µf´k±m´mÀSÐIˆ	ØˆÝ” Ñ+Ô+ˆØ×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r)   c                ó¢   — dt          j        ¦   «         t          j        ¦   «         dg}|                      t          t
          j        |¦  «         dS )zD
        getVoiceId(): no Voice objects causes RuntimeError
        Nrð   )r   rI   ró   r1   ÚRuntimeErrorr   rô   )r%   rö   s     r'   ÚtestGetVoiceId2zTest.testGetVoiceId2|  s>   € ð �6œ=™?œ?­F¬K©M¬M¸3Ð?ˆ	Ø×Ò�,­¬¸ÑCÔCÐCÐCÐCr)   c                ó  — t          j        ¦   «         }d|_        t          j        ¦   «         }d|_        d|t          j        ¦   «         t          j        ¦   «         |dg}|                      t          t          j        |¦  «         dS )zG
        getVoiceId(): three Voice objects causes RuntimeError
        rï   é   Nrð   )	r   rñ   rò   rI   ró   r1   rù   r   rô   )r%   Ú
firstVoiceÚ
otherVoicerö   s       r'   ÚtestGetVoiceId3zTest.testGetVoiceId3ƒ  sg   € õ ”\‘^”^ˆ
Øˆ
ŒÝ”\‘^”^ˆ
Øˆ
ŒØ˜:¥v¤}¡¤½¼¹¼ÀzÐSVÐWˆ	Ø×Ò�,­¬¸ÑCÔCÐCÐCÐCr)   zmusic21.mei.base.metaSetTitlez music21.mei.base.metaSetComposerzmusic21.mei.base.metaSetDatec                ó¬  — t          j        t          j        ¬¦  «        }d|j        _        t          j        |¦  «        }|                      |t          j
        ¦  «         |j                             dt          › d�¦  «         |                      d|j        ¦  «         |                      d|j        ¦  «         |                      d|j        ¦  «         dS )zA
        makeMetadata() when there is no <work> element.
        r>   NrA   Úworkr   )r   rD   rE   rF   rG   rH   r   ÚmakeMetadatar!   r   ÚMetadatarL   r   r,   Ú
call_count)r%   ÚmockDateÚmockComposerÚ	mockTitler    r&   s         r'   ÚtestMakeMeta1zTest.testMakeMeta1‘  sÀ   € õ ”~­u¬}Ð=Ñ=Ô=ˆØ)-ˆÔÔ&åÔ" <Ñ0Ô0ˆà×Ò˜f¥hÔ&7Ñ8Ô8Ð8ØÔ×1Ò1Ð2D½Ð2DÐ2DÐ2DÑEÔEÐEØ×Ò˜˜HÔ/Ñ0Ô0Ð0Ø×Ò˜˜LÔ3Ñ4Ô4Ð4Ø×Ò˜˜IÔ0Ñ1Ô1Ð1Ð1Ð1r)   c                óü  — t          j        t          j        ¬¦  «        }t          j        t          j        ¬¦  «        }||j        _        d„ |_        d„ |_        d„ |_        t          j        |¦  «        }|  	                    |t          j        ¦  «         |j                             dt          › d�¦  «         |                     ||¦  «         |                     ||¦  «         |                     ||¦  «         dS )z@
        makeMetadata() when there is a <work> element.
        r>   c                ó   — |S ©N© ©ÚunusedÚys     r'   ú<lambda>z$Test.testMakeMeta2.<locals>.<lambda>­  s   € °€ r)   c                ó   — |S r  r  r  s     r'   r  z$Test.testMakeMeta2.<locals>.<lambda>®  s   € °Q€ r)   c                ó   — |S r  r  r  s     r'   r  z$Test.testMakeMeta2.<locals>.<lambda>¯  s   € °!€ r)   rA   r  N)r   rD   rE   rF   rG   rH   Úside_effectr   r  r!   r   r  rL   r   )r%   r  r  r  r    ÚmockWorkr&   s          r'   ÚtestMakeMeta2zTest.testMakeMeta2£  sì   € õ ”~­u¬}Ð=Ñ=Ô=ˆÝ”>­5¬=Ð9Ñ9Ô9ˆØ)1ˆÔÔ&Ø2Ð2ˆÔØ#6Ð#6ˆÔ Ø 3Ð 3ˆ	ÔåÔ" <Ñ0Ô0ˆà×Ò˜f¥hÔ&7Ñ8Ô8Ð8ØÔ×1Ò1Ð2D½Ð2DÐ2DÐ2DÑEÔEÐEØ×(Ò(¨°6Ñ:Ô:Ð:Ø×,Ò,¨X°vÑ>Ô>Ð>Ø×)Ò)¨(°FÑ;Ô;Ð;Ð;Ð;r)   c                óh  — d}t          j        |¦  «        }d}d}t          j        ¦   «         }t	          j        ||¦  «        }|                      ||¦  «         |                      t          |d¦  «        ¦  «         |  	                    ||j
        ¦  «         |  	                    ||j        ¦  «         dS )zG
        metaSetTitle() with a title and tempo but no subtitle
        zÄ<work xmlns="http://www.music-encoding.org/ns/mei">
            <titleStmt>
                <title>Symphony No. 7</title>
            </titleStmt>
            <tempo>Adagio</tempo>
        </work>zSymphony No. 7ÚAdagioÚsubtitleN)rE   Ú
fromstringr   r  r   ÚmetaSetTitlerK   ÚassertFalseÚhasattrr,   ÚtitleÚmovementName)r%   r  ÚexpTitleÚexpMovementNameÚmetar&   s         r'   ÚtestMetaTitle1zTest.testMetaTitle1¹  s®   € ðˆõ Ô Ñ%Ô%ˆØ#ˆØ"ˆÝÔ Ñ"Ô"ˆåÔ" 4¨Ñ.Ô.ˆà�Š�d˜FÑ#Ô#Ð#Ø×Ò�  zÑ2Ô2Ñ3Ô3Ð3Ø×Ò˜ 6¤<Ñ0Ô0Ð0Ø×Ò˜¨&Ô*=Ñ>Ô>Ð>Ð>Ð>r)   c                ób  — d}t          j        |¦  «        }d}t          j        ¦   «         }t	          j        ||¦  «        }|                      ||¦  «         |                      t          |d¦  «        ¦  «         |  	                    ||j
        ¦  «         |                      |j        ¦  «         dS )zE
        metaSetTitle() with a title, subtitle, but no tempo
        zá<work xmlns="http://www.music-encoding.org/ns/mei">
            <titleStmt>
                <title>Symphony No. 7</title>
                <title type="subtitle">in one movement</title>
            </titleStmt>
        </work>z Symphony No. 7 (in one movement)r  N)rE   r  r   r  r   r  rK   r  r  r,   r  ÚassertIsNoner  )r%   r  r  r!  r&   s        r'   ÚtestMetaTitle2zTest.testMetaTitle2Ï  s§   € ðˆõ Ô Ñ%Ô%ˆØ5ˆÝÔ Ñ"Ô"ˆåÔ" 4¨Ñ.Ô.ˆà�Š�d˜FÑ#Ô#Ð#Ø×Ò�  zÑ2Ô2Ñ3Ô3Ð3Ø×Ò˜ 6¤<Ñ0Ô0Ð0Ø×Ò˜&Ô-Ñ.Ô.Ð.Ð.Ð.r)   c                óâ   — d}t          j        |¦  «        }t          j        ¦   «         }t	          j        ||¦  «        }|                      ||¦  «         |                      |j        ¦  «         dS )z5
        metaSetComposer() with no composers
        ú4<work xmlns="http://www.music-encoding.org/ns/mei"/>N)	rE   r  r   r  r   ÚmetaSetComposerrK   r$  Úcomposer)r%   r  r!  r&   s       r'   ÚtestMetaComposer1zTest.testMetaComposer1ä  sj   € ð JˆÝÔ Ñ%Ô%ˆÝÔ Ñ"Ô"ˆåÔ% d¨DÑ1Ô1ˆà�Š�d˜FÑ#Ô#Ð#Ø×Ò˜&œ/Ñ*Ô*Ð*Ð*Ð*r)   c                óè   — d}t          j        |¦  «        }d}t          j        ¦   «         }t	          j        ||¦  «        }|                      ||¦  «         |                      ||j        ¦  «         dS )zC
        metaSetComposer() with one composer in <respStmt>
        zò<work xmlns="http://www.music-encoding.org/ns/mei">
            <titleStmt>
                <respStmt>
                    <persName role="composer">Jean Sibelius</persName>
                </respStmt>
            </titleStmt>
        </work>úJean SibeliusN©	rE   r  r   r  r   r(  rK   r,   r)  ©r%   r  ÚexpComposerr!  r&   s        r'   ÚtestMetaComposer2zTest.testMetaComposer2ñ  sr   € ðˆõ Ô Ñ%Ô%ˆØ%ˆÝÔ Ñ"Ô"ˆåÔ% d¨DÑ1Ô1ˆà�Š�d˜FÑ#Ô#Ð#Ø×Ò˜ f¤oÑ6Ô6Ð6Ð6Ð6r)   c                óè   — d}t          j        |¦  «        }d}t          j        ¦   «         }t	          j        ||¦  «        }|                      ||¦  «         |                      ||j        ¦  «         dS )zC
        metaSetComposer() with one composer in <composer>
        z§<work xmlns="http://www.music-encoding.org/ns/mei">
            <titleStmt>
                <composer>Jean Sibelius</composer>
            </titleStmt>
        </work>r,  Nr-  r.  s        r'   ÚtestMetaComposer3zTest.testMetaComposer3  sr   € ðˆõ
 Ô Ñ%Ô%ˆØ%ˆÝÔ Ñ"Ô"ˆåÔ% d¨DÑ1Ô1ˆà�Š�d˜FÑ#Ô#Ð#Ø×Ò˜ f¤oÑ6Ô6Ð6Ð6Ð6r)   c                óú   — d}t          j        |¦  «        }d}d}t          j        ¦   «         }t	          j        ||¦  «        }|                      ||¦  «         |j        ||fvr|                      d¦  «         dS dS )zN
        metaSetComposer() with two composers, one specified each way
        a&  <work xmlns="http://www.music-encoding.org/ns/mei">
            <titleStmt>
                <respStmt>
                    <persName role="composer">Jean Sibelius</persName>
                </respStmt>
                <composer>Sibelius, Jean</composer>
            </titleStmt>
        </work>)r,  úSibelius, Jean)r4  r,  z+composer names do not match in either orderN)	rE   r  r   r  r   r(  rK   Ú	composersÚfail)r%   r  ÚexpComposers1ÚexpComposers2r!  r&   s         r'   ÚtestMetaComposer4zTest.testMetaComposer4  sŽ   € ðˆõ Ô Ñ%Ô%ˆØ;ˆØ;ˆÝÔ Ñ"Ô"ˆåÔ% d¨DÑ1Ô1ˆà�Š�d˜FÑ#Ô#Ð#ØÔ M°=Ð#AÐAÐAØ�IŠIÐCÑDÔDÐDÐDÐDð BÐAr)   c                óè   — d}t          j        |¦  «        }d}t          j        ¦   «         }t	          j        ||¦  «        }|                      ||¦  «         |                      ||j        ¦  «         dS )z-
        metaSetDate() with no dates
        r'  N©	rE   r  r   r  r   ÚmetaSetDaterK   r,   ÚdateCreated©r%   r  ÚexpDater!  r&   s        r'   ÚtestMetaDate1zTest.testMetaDate1.  sr   € ð JˆÝÔ Ñ%Ô%ˆØˆÝÔ Ñ"Ô"ˆåÔ! $¨Ñ-Ô-ˆà�Š�d˜FÑ#Ô#Ð#Ø×Ò˜ &Ô"4Ñ5Ô5Ð5Ð5Ð5r)   c                óè   — d}t          j        |¦  «        }d}t          j        ¦   «         }t	          j        ||¦  «        }|                      ||¦  «         |                      ||j        ¦  «         dS )z-
        metaSetDate() with @isodate
        zØ<work xmlns="http://www.music-encoding.org/ns/mei">
            <history>
                <creation>
                    <date isodate="1924-03-02"/>
                </creation>
            </history>
        </work>ú
1924/03/02Nr;  r>  s        r'   ÚtestMetaDate2zTest.testMetaDate2<  ós   € ðˆõ Ô Ñ%Ô%ˆØˆÝÔ Ñ"Ô"ˆåÔ! $¨Ñ-Ô-ˆà�Š�d˜FÑ#Ô#Ð#Ø×Ò˜ &Ô"4Ñ5Ô5Ð5Ð5Ð5r)   c                óè   — d}t          j        |¦  «        }d}t          j        ¦   «         }t	          j        ||¦  «        }|                      ||¦  «         |                      ||j        ¦  «         dS )z)
        metaSetDate() with text
        zÓ<work xmlns="http://www.music-encoding.org/ns/mei">
            <history>
                <creation>
                    <date>1924-03-02</date>
                </creation>
            </history>
        </work>rB  Nr;  r>  s        r'   ÚtestMetaDate3zTest.testMetaDate3P  rD  r)   zmusic21.mei.base.environLocalc                óZ  — d}t          j        |¦  «        }d}t          j                             d¦  «        }t          j        ¦   «         }t          j        ||¦  «        }|                      ||¦  «         |  	                    ||j
        ¦  «         |j                             |¦  «         dS )z4
        metaSetDate() with text that fails
        zÕ<work xmlns="http://www.music-encoding.org/ns/mei">
            <history>
                <creation>
                    <date>2 March 1924</date>
                </creation>
            </history>
        </work>Nz2 March 1924)rE   r  r   Ú_MISSED_DATEr;   r   r  r<  rK   r,   r=  ÚwarnrL   )r%   ÚmockEnvironr  r?  ÚexpWarnr!  r&   s          r'   ÚtestMetaDate4zTest.testMetaDate4d  s    € ð
ˆõ Ô Ñ%Ô%ˆØˆÝÔ#×*Ò*¨>Ñ:Ô:ˆÝÔ Ñ"Ô"ˆåÔ! $¨Ñ-Ô-ˆà�Š�d˜FÑ#Ô#Ð#Ø×Ò˜ &Ô"4Ñ5Ô5Ð5ØÔ×0Ò0°Ñ9Ô9Ð9Ð9Ð9r)   c                óè   — d}t          j        |¦  «        }d}t          j        ¦   «         }t	          j        ||¦  «        }|                      ||¦  «         |                      ||j        ¦  «         dS )z=
        metaSetDate() with @notbefore and @notafter
        zä<work xmlns="http://www.music-encoding.org/ns/mei">
            <history>
                <creation>
                    <date notbefore="1915" notafter="1924"/>
                </creation>
            </history>
        </work>ú1915/--/-- to 1924/--/--Nr;  r>  s        r'   ÚtestMetaDate5zTest.testMetaDate5{  ós   € ðˆõ Ô Ñ%Ô%ˆØ,ˆÝÔ Ñ"Ô"ˆåÔ! $¨Ñ-Ô-ˆà�Š�d˜FÑ#Ô#Ð#Ø×Ò˜ &Ô"4Ñ5Ô5Ð5Ð5Ð5r)   c                óè   — d}t          j        |¦  «        }d}t          j        ¦   «         }t	          j        ||¦  «        }|                      ||¦  «         |                      ||j        ¦  «         dS )z<
        metaSetDate() with @startdate and @enddate
        zã<work xmlns="http://www.music-encoding.org/ns/mei">
            <history>
                <creation>
                    <date startdate="1915" enddate="1924"/>
                </creation>
            </history>
        </work>rN  Nr;  r>  s        r'   ÚtestMetaDate6zTest.testMetaDate6�  rP  r)   c                óv   — d}d}ddddœ}d}t          j        |||¦  «        }|                      ||¦  «         dS )z^
        _attrTranslator(): the usual case works properly when "attr" is in "mapping"
        ÚtwoÚnumbersrƒ   é   é   ©ÚonerT  ÚthreeN)r   Ú_attrTranslatorr,   )r%   Úattrr]   Úmappingra   r&   s         r'   ÚtestAttrTranslator1zTest.testAttrTranslator1¦  sR   € ð ˆØˆØ A°Ð2Ð2ˆØˆÝÔ% d¨D°'Ñ:Ô:ˆØ×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r)   c                ó"  — d}d}ddddœ}d}|                       t          j        t          j        |||¦  «         	 t          j        |||¦  «         d	S # t          j        $ r,}|                      ||j        d         ¦  «         Y d	}~d	S d	}~ww xY w)
zY
        _attrTranslator(): exception is raised properly when "attr" isn't found
        ÚfourrU  rƒ   rV  rW  rX  z.Unexpected value for "numbers" attribute: fourr   N)r1   r   ÚMeiValueErrorr[  r,   r4   )r%   r\  r]   r]  ra   r’   s         r'   ÚtestAttrTranslator2zTest.testAttrTranslator2±  sµ   € ð ˆØˆØ A°Ð2Ð2ˆØCˆØ×Ò�$Ô,­dÔ.BÀDÈ$ÐPWÑXÔXÐXð	6ÝÔ   t¨WÑ5Ô5Ð5Ð5Ð5øÝÔ!ð 	6ð 	6ð 	6Ø×Ò˜X u¤z°!¤}Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5øøøøð	6øøøs   »A ÁBÁ"!B	Â	Bz music21.mei.base._attrTranslatorc                ót   — d}t          j        |¦  «         |                     |dt           j        ¦  «         dS )zS
        _accidentalFromAttr(): ensure proper arguments to _attrTranslator
        Úsrê   N)r   Ú_accidentalFromAttrrL   Ú_ACCID_ATTR_DICT©r%   Ú	mockTransr\  s      r'   ÚtestAccidentalzTest.testAccidental¿  s;   € ð
 ˆÝÔ  Ñ&Ô&Ð&Ø×)Ò)¨$°½Ô9NÑOÔOÐOÐOÐOr)   c                ót   — d}t          j        |¦  «         |                     |dt           j        ¦  «         dS )zQ
        _accidGesFromAttr(): ensure proper arguments to _attrTranslator
        rd  ú	accid.gesN)r   Ú_accidGesFromAttrrL   Ú_ACCID_GES_ATTR_DICTrg  s      r'   ÚtestAccidGeszTest.testAccidGesÈ  s;   € ð
 ˆÝÔ˜tÑ$Ô$Ð$Ø×)Ò)¨$°½TÔ=VÑWÔWÐWÐWÐWr)   c                ót   — d}t          j        |¦  «         |                     |dt           j        ¦  «         dS )zS
        _qlDurationFromAttr(): ensure proper arguments to _attrTranslator
        rd  ÚdurN)r   Ú_qlDurationFromAttrrL   Ú_DUR_ATTR_DICTrg  s      r'   ÚtestDurationzTest.testDurationÑ  s;   € ð
 ˆÝÔ  Ñ&Ô&Ð&Ø×)Ò)¨$°µtÔ7JÑKÔKÐKÐKÐKr)   c                óÚ   — d}t          j        dd¬¦  «        |_        d}t          j        |¦  «        }|                     |dt          j        ¦  «         |                      ||¦  «         dS )zU
        _articulationFromAttr(): ensure proper arguments to _attrTranslator
        ÚmarcÚasdfr@   )r]   rH   )r@   rä   N)r   rD   rH   r   Ú_articulationFromAttrrL   Ú_ARTIC_ATTR_DICTr,   )r%   rh  r\  ra   r&   s        r'   ÚtestArticulation1zTest.testArticulation1Ú  sl   € ð
 ˆÝ!%¤°VÈ!Ð!LÑ!LÔ!Lˆ	ÔØˆÝÔ+¨DÑ1Ô1ˆØ×)Ò)¨$°½Ô9NÑOÔOÐOØ×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r)   c                ó"  — d}t           j        t           j        f}t          j        |¦  «        }|                      d|j        ¦  «         t          t          |¦  «        ¦  «        D ](}||         }||         }|  	                    ||¦  «         Œ)dS )zJ
        _articulationFromAttr(): proper handling of "marc-stacc"
        z
marc-staccr   N)
r   ÚStrongAccentÚStaccator   rw  r,   r  r†   Úlenr!   ©r%   rh  r\  ra   r&   rŠ   Ú
actualHereÚexpectedHeres           r'   ÚtestArticulation2zTest.testArticulation2æ  s”   € ð
 ˆÝ!Ô.µÔ0FÐGˆÝÔ+¨DÑ1Ô1ˆØ×Ò˜˜IÔ0Ñ1Ô1Ð1Ý•s˜8‘}”}Ñ%Ô%ð 	<ð 	<ˆAØ œˆJØ# Aœ;ˆLØ×!Ò! *¨lÑ;Ô;Ð;Ð;ð	<ð 	<r)   c                ó"  — d}t           j        t           j        f}t          j        |¦  «        }|                      d|j        ¦  «         t          t          |¦  «        ¦  «        D ](}||         }||         }|  	                    ||¦  «         Œ)dS )zI
        _articulationFromAttr(): proper handling of "ten-stacc"
        z	ten-staccr   N)
r   ÚTenutor|  r   rw  r,   r  r†   r}  r!   r~  s           r'   ÚtestArticulation3zTest.testArticulation3ô  s”   € ð
 ˆÝ!Ô(­-Ô*@ÐAˆÝÔ+¨DÑ1Ô1ˆØ×Ò˜˜IÔ0Ñ1Ô1Ð1Ý•s˜8‘}”}Ñ%Ô%ð 	<ð 	<ˆAØ œˆJØ# Aœ;ˆLØ×!Ò! *¨lÑ;Ô;Ð;Ð;ð	<ð 	<r)   c                ó~  — d}d}t          j        |¦  «        |_        |                      t           j        t           j        |¦  «         |                     |dt           j        ¦  «         	 t          j        |¦  «         dS # t           j        $ r,}|                      ||j        d         ¦  «         Y d}~dS d}~ww xY w)zG
        _articulationFromAttr(): proper handling of not-found
        Úgarbagezerror messagerä   r   N)	r   ra  r  r1   rw  rL   rx  r,   r4   )r%   rh  r\  ra   r’   s        r'   ÚtestArticulation4zTest.testArticulation4  sÆ   € ð
 ˆØ"ˆÝ $Ô 2°8Ñ <Ô <ˆ	ÔØ×Ò�$Ô,­dÔ.HÈ$ÑOÔOÐOØ×)Ò)¨$°½Ô9NÑOÔOÐOð	6ÝÔ& tÑ,Ô,Ð,Ð,Ð,øÝÔ!ð 	6ð 	6ð 	6Ø×Ò˜X u¤z°!¤}Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5øøøøð	6øøøs   Á+B ÂB<Â!B7Â7B<z&music21.mei.base._articulationFromAttrc                ót   — d}dg|_         dg}t          j        |¦  «        }|                      ||¦  «         dS )zN
        _makeArticList(): properly handles single-articulation lists
        ÚaccÚaccentN)rH   r   Ú_makeArticListr,   )r%   Ú	mockArticr\  ra   r&   s        r'   ÚtestArticList1zTest.testArticList1  sF   € ð
 ˆØ"* ˆ	ÔØ�:ˆÝÔ$ TÑ*Ô*ˆØ×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r)   c                óŒ   ‡— d}dgdgdggŠˆfd„|_         g d¢}t          j        |¦  «        }|                      ||¦  «         dS )zM
        _makeArticList(): properly handles multi-articulation lists
        zacc stacc marcrŠ  ÚstaccatoÚmarcatoc                ó.   •— ‰                      d¦  «        S ©Nr   ©Úpop©r  ÚmockReturnss    €r'   r  z%Test.testArticList2.<locals>.<lambda>#  s   ø€ ¨{¯ª¸qÑ/AÔ/A€ r)   )rŠ  r�  r�  N©r  r   r‹  r,   ©r%   rŒ  r\  ra   r&   r–  s        @r'   ÚtestArticList2zTest.testArticList2  sd   ø€ ð
  ˆØ �z J <°)°Ð=ˆØ AÐ AÐ AÐ Aˆ	ÔØ4Ð4Ð4ˆÝÔ$ TÑ*Ô*ˆØ×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r)   c                óŽ   ‡— d}dgddgdggŠˆfd„|_         g d¢}t          j        |¦  «        }|                      ||¦  «         dS )zO
        _makeArticList(): properly handles the compound articulations
        zacc marc-stacc marcrŠ  r�  r�  c                 ó.   •— ‰                      d¦  «        S r’  r“  r•  s    €r'   r  z%Test.testArticList3.<locals>.<lambda>/  s   ø€ °·²ÀÑ0BÔ0B€ r)   )rŠ  r�  r�  r�  Nr—  r˜  s        @r'   ÚtestArticList3zTest.testArticList3(  sg   ø€ ð
 %ˆØ �z I¨zÐ#:¸Y¸KÐHˆØ BÐ BÐ BÐ Bˆ	ÔØ?Ð?Ð?ˆÝÔ$ TÑ*Ô*ˆØ×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r)   c                óh   — d}d}d}t          j        ||¦  «        }|                      ||¦  «         dS )zK
        _getOctaveShift(): properly handles positive displacement
        Ú15ÚaboverV  N©r   Ú_getOctaveShiftr,   ©r%   ÚdisÚdisPlacera   r&   s        r'   ÚtestOctaveShift1zTest.testOctaveShift14  sA   € ð ˆØˆØˆÝÔ% c¨8Ñ4Ô4ˆØ×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r)   c                óh   — d}d}d}t          j        ||¦  «        }|                      ||¦  «         dS )zK
        _getOctaveShift(): properly handles negative displacement
        Ú22ÚbelowéýÿÿÿNr   r¢  s        r'   ÚtestOctaveShift2zTest.testOctaveShift2>  sA   € ð ˆØˆØˆÝÔ% c¨8Ñ4Ô4ˆØ×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r)   c                óh   — d}d}d}t          j        ||¦  «        }|                      ||¦  «         dS )zW
        _getOctaveShift(): properly handles positive displacement with "None"
        r—   Nrƒ   r   r¢  s        r'   ÚtestOctaveShift3zTest.testOctaveShift3H  sA   € ð ˆØˆØˆÝÔ% c¨8Ñ4Ô4ˆØ×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r)   c                óh   — d}d}d}t          j        ||¦  «        }|                      ||¦  «         dS )zF
        _getOctaveShift(): properly positive two "None" args
        Nr   r   r¢  s        r'   ÚtestOctaveShift4zTest.testOctaveShift4R  sA   € ð ˆØˆØˆÝÔ% c¨8Ñ4Ô4ˆØ×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r)   c                óv  — d}t          j        dd¬¦  «        t          j        d¦  «        f}t          j        |¦  «        }|                      t          |d         ¦  «        t          |d         ¦  «        ¦  «         |                      t          |d         ¦  «        t          |d         ¦  «        ¦  «         dS )	z-
        _barlineFromAttr(): rptboth
        ÚrptbothÚendrV  ©ÚtimesÚstartr   rƒ   N)r	   ÚRepeatr   Ú_barlineFromAttrr,   Útype©r%   Úrightra   r&   s       r'   ÚtestBarlineFromAttr1zTest.testBarlineFromAttr1\  sš   € ð ˆÝ”J˜u¨AÐ.Ñ.Ô.µ´
¸7Ñ0CÔ0CÐDˆÝÔ& uÑ-Ô-ˆØ×Ò�˜h qœkÑ*Ô*­D°¸´©O¬OÑ<Ô<Ð<Ø×Ò�˜h qœkÑ*Ô*­D°¸´©O¬OÑ<Ô<Ð<Ð<Ð<r)   c                ó>  — d}t          j        dd¬¦  «        }t          j        |¦  «        }|                      t          |¦  «        t          |¦  «        ¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         dS )z,
        _barlineFromAttr(): rptend
        Úrptendr±  rV  r²  N©r	   rµ  r   r¶  r,   r·  Ú	directionr³  r¸  s       r'   ÚtestBarlineFromAttr2zTest.testBarlineFromAttr2f  s‹   € ð ˆÝ”:˜e¨1Ð-Ñ-Ô-ˆÝÔ& uÑ-Ô-ˆØ×Ò�˜h™œ­¨f©¬Ñ6Ô6Ð6Ø×Ò˜Ô+¨XÔ-?Ñ@Ô@Ð@Ø×Ò˜œ¨¬Ñ8Ô8Ð8Ð8Ð8r)   c                ó:  — d}t          j        d¦  «        }t          j        |¦  «        }|                      t          |¦  «        t          |¦  «        ¦  «         |                      |j        |j        ¦  «         |                      |j        |j        ¦  «         dS )z.
        _barlineFromAttr(): rptstart
        Úrptstartr´  Nr½  r¸  s       r'   ÚtestBarlineFromAttr3zTest.testBarlineFromAttr3q  s†   € ð ˆÝ”:˜gÑ&Ô&ˆÝÔ& uÑ-Ô-ˆØ×Ò�˜h™œ­¨f©¬Ñ6Ô6Ð6Ø×Ò˜Ô+¨XÔ-?Ñ@Ô@Ð@Ø×Ò˜œ¨¬Ñ8Ô8Ð8Ð8Ð8r)   c                óú   — d}t          j        d¦  «        }t          j        |¦  «        }|                      t          |¦  «        t          |¦  «        ¦  «         |                      |j        |j        ¦  «         dS )z5
        _barlineFromAttr(): end (--> final)
        r±  ÚfinalN)r	   ÚBarliner   r¶  r,   r·  r¸  s       r'   ÚtestBarlineFromAttr4zTest.testBarlineFromAttr4|  sj   € ð ˆÝ”;˜wÑ'Ô'ˆÝÔ& uÑ-Ô-ˆØ×Ò�˜h™œ­¨f©¬Ñ6Ô6Ð6Ø×Ò˜œ¨¬Ñ6Ô6Ð6Ð6Ð6r)   c                óú   — d}t          j        d¦  «        }t          j        |¦  «        }|                      t          |¦  «        t          |¦  «        ¦  «         |                      |j        |j        ¦  «         dS )z%
        _tieFromAttr(): "i"
        rd   r´  N©r   ÚTier   Ú_tieFromAttrr,   r·  r¸  s       r'   ÚtestTieFromAttr1zTest.testTieFromAttr1†  sj   € ð ˆÝ”7˜7Ñ#Ô#ˆÝÔ" 5Ñ)Ô)ˆØ×Ò�˜h™œ­¨f©¬Ñ6Ô6Ð6Ø×Ò˜œ¨¬Ñ6Ô6Ð6Ð6Ð6r)   c                óú   — d}t          j        d¦  «        }t          j        |¦  «        }|                      t          |¦  «        t          |¦  «        ¦  «         |                      |j        |j        ¦  «         dS )z&
        _tieFromAttr(): "ti"
        rd   ÚcontinueNrÈ  r¸  s       r'   ÚtestTieFromAttr2zTest.testTieFromAttr2�  ój   € ð ˆÝ”7˜:Ñ&Ô&ˆÝÔ" 5Ñ)Ô)ˆØ×Ò�˜h™œ­¨f©¬Ñ6Ô6Ð6Ø×Ò˜œ¨¬Ñ6Ô6Ð6Ð6Ð6r)   c                óú   — d}t          j        d¦  «        }t          j        |¦  «        }|                      t          |¦  «        t          |¦  «        ¦  «         |                      |j        |j        ¦  «         dS )z%
        _tieFromAttr(): "m"
        rd   rÍ  NrÈ  r¸  s       r'   ÚtestTieFromAttr3zTest.testTieFromAttr3š  rÏ  r)   c                óú   — d}t          j        d¦  «        }t          j        |¦  «        }|                      t          |¦  «        t          |¦  «        ¦  «         |                      |j        |j        ¦  «         dS )z%
        _tieFromAttr(): "t"
        rd   ÚstopNrÈ  r¸  s       r'   ÚtestTieFromAttr4zTest.testTieFromAttr4¤  sh   € ð ˆÝ”7˜6‘?”?ˆÝÔ" 5Ñ)Ô)ˆØ×Ò�˜h™œ­¨f©¬Ñ6Ô6Ð6Ø×Ò˜œ¨¬Ñ6Ô6Ð6Ð6Ð6r)   c                ó  — t          j        ddddœ¬¦  «        }d|_        t          j        |¦  «        }|                      |t          j        ¦  «         |                      d|j	        ¦  «         |                      d|j        ¦  «         d	S )
zG
        sylFromElement() where @con is given and @wordpos="i"
        ÚsylrŠ   rd  ©ÚwordposÚconr›   ÚChriÚbeginzChri N©
rE   rF   Útextr   ÚsylFromElementr!   r   ÚLyricr,   Úsyllabic©r%   rx   r&   s      r'   ÚtestSyl1zTest.testSyl1±  s…   € õ Œ}˜U°sÀ3Ð+GÐ+GÐHÑHÔHˆØˆŒ	åÔ$ TÑ*Ô*ˆà×Ò˜f¥d¤jÑ1Ô1Ð1Ø×Ò˜ &¤/Ñ2Ô2Ð2Ø×Ò˜ &¤+Ñ.Ô.Ð.Ð.Ð.r)   c                ó  — t          j        ddddœ¬¦  «        }d|_        t          j        |¦  «        }|                      |t          j        ¦  «         |                      d|j	        ¦  «         |                      d|j        ¦  «         d	S )
zG
        sylFromElement() where @con is given and @wordpos="m"
        rÖ  ÚmÚtr×  r›   ÚstoÚmiddlez~sto~NrÜ  rá  s      r'   ÚtestSyl2zTest.testSyl2¾  s…   € õ Œ}˜U°sÀ3Ð+GÐ+GÐHÑHÔHˆØˆŒ	åÔ$ TÑ*Ô*ˆà×Ò˜f¥d¤jÑ1Ô1Ð1Ø×Ò˜ 6¤?Ñ3Ô3Ð3Ø×Ò˜ &¤+Ñ.Ô.Ð.Ð.Ð.r)   c                ó  — t          j        ddddœ¬¦  «        }d|_        t          j        |¦  «        }|                      |t          j        ¦  «         |                      d|j	        ¦  «         |                      d|j        ¦  «         d	S )
zK
        sylFromElement() where @con is not given and @wordpos="t"
        rÖ  rå  Údr×  r›   Úpherr±  z-pherNrÜ  rá  s      r'   ÚtestSyl3zTest.testSyl3Ë  s…   € õ Œ}˜U°sÀ3Ð+GÐ+GÐHÑHÔHˆØˆŒ	åÔ$ TÑ*Ô*ˆà×Ò˜f¥d¤jÑ1Ô1Ð1Ø×Ò˜ ¤Ñ0Ô0Ð0Ø×Ò˜ &¤+Ñ.Ô.Ð.Ð.Ð.r)   c                ó  — t          j        d¦  «        }d|_        t          j        |¦  «        }|                      |t          j        ¦  «         |                      d|j	        ¦  «         |                      d|j        ¦  «         dS )zB
        sylFromElement() where @wordpos is not specified
        rÖ  ÚshoeÚsingleNrÜ  rá  s      r'   ÚtestSyl4zTest.testSyl4Ø  sx   € õ Œ}˜UÑ#Ô#ˆØˆŒ	åÔ$ TÑ*Ô*ˆà×Ò˜f¥d¤jÑ1Ô1Ð1Ø×Ò˜ 6¤?Ñ3Ô3Ð3Ø×Ò˜ ¤Ñ-Ô-Ð-Ð-Ð-r)   c                ó*  — t          j        dddi¬¦  «        }t          j        t          › d�¦  «        }d|_        |                     |¦  «         t          j        |d¬¦  «        }|                      d	t          |¦  «        ¦  «         |  	                    |d
         t          j        ¦  «         |                      d|d
         j        ¦  «         |                      d|d
         j        ¦  «         |                      d|d
         j        ¦  «         dS )z@
        verseFromElement() with one <syl> and @n given
        ÚverseÚnÚ42r›   rÖ  úHin-r@   ©ÚbackupNrƒ   r   rÛ  ÚHinrï   N)rE   rF   r   rÝ  Úappendr   ÚverseFromElementr,   r}  r!   r   rß  rà  Únumber)r%   rx   rÖ  r&   s       r'   Ú
testVerse1zTest.testVerse1å  só   € õ Œ}˜W¨c°4¨[Ð9Ñ9Ô9ˆÝŒm�v˜N˜N˜NÑ+Ô+ˆØˆŒØ�Š�CÑÔÐåÔ& t°QÐ7Ñ7Ô7ˆà×Ò˜�C ™KœKÑ(Ô(Ð(Ø×Ò˜f Qœi­¬Ñ4Ô4Ð4Ø×Ò˜ &¨¤)Ô"4Ñ5Ô5Ð5Ø×Ò˜  q¤	¤Ñ/Ô/Ð/Ø×Ò˜˜V AœYÔ-Ñ.Ô.Ð.Ð.Ð.r)   c                óü  — t          j        d¦  «        }t          j        t          › d�¦  «        }d|_        |                     |¦  «         t          j        t          › d�¦  «        }d|_        |                     |¦  «         t          j        t          › d�¦  «        }d|_        |                     |¦  «         t          j        |d¬¦  «        }|                      dt          |¦  «        ¦  «         |D ]=}|  	                    |t          j        ¦  «         |                      d|j        ¦  «         Œ>|                      d	|d
         j        ¦  «         |                      d|d
         j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         dS )zF
        verseFromElement() with three <syl> and @n not given
        rò  rÖ  rõ  z-de-z-mithr@   rö  rW  rÛ  r   rø  rç  rƒ   Úder±  rV  ÚmithN)rE   rF   r   rÝ  rù  r   rú  r,   r}  r!   r   rß  rû  rà  )r%   rx   rÖ  r&   ÚeachSyls        r'   Ú
testVerse2zTest.testVerse2ö  sÁ  € õ Œ}˜WÑ%Ô%ˆÝŒm�v˜N˜N˜NÑ+Ô+ˆØˆŒØ�Š�CÑÔÐÝŒm�v˜N˜N˜NÑ+Ô+ˆØˆŒØ�Š�CÑÔÐÝŒm�v˜N˜N˜NÑ+Ô+ˆØˆŒØ�Š�CÑÔÐåÔ& t°QÐ7Ñ7Ô7ˆà×Ò˜�C ™KœKÑ(Ô(Ð(Øð 	0ð 	0ˆGØ×!Ò! '­4¬:Ñ6Ô6Ð6Ø×Ò˜Q ¤Ñ/Ô/Ð/Ð/Ø×Ò˜ &¨¤)Ô"4Ñ5Ô5Ð5Ø×Ò˜  q¤	¤Ñ/Ô/Ð/Ø×Ò˜ 6¨!¤9Ô#5Ñ6Ô6Ð6Ø×Ò˜˜v aœyœ~Ñ.Ô.Ð.Ø×Ò˜  q¤	Ô 2Ñ3Ô3Ð3Ø×Ò˜ ¨¤¤Ñ0Ô0Ð0Ð0Ð0r)   c                ó”  — t          j        dddi¬¦  «        }t          j        t          › d�¦  «        }d|_        |                     |¦  «         t          j        |¦  «        }|                      dt          |¦  «        ¦  «         |  	                    |d         t          j        ¦  «         |                      d	|d         j        ¦  «         |                      d
|d         j        ¦  «         |                      d|d         j        ¦  «         |j                             t
          j                             d¦  «        ¦  «         dS )zB
        verseFromElement() with one <syl> and invalid @n
        rò  ró  Úmistaker›   rÖ  rõ  rƒ   r   rÛ  rø  N©rE   rF   r   rÝ  rù  r   rú  r,   r}  r!   r   rß  rà  rû  rI  rL   Ú_BAD_VERSE_NUMBERr;   ©r%   rJ  rx   rÖ  r&   s        r'   Ú
testVerse3zTest.testVerse3  s  € õ
 Œ}˜W¨c°9Ð-=Ð>Ñ>Ô>ˆÝŒm�v˜N˜N˜NÑ+Ô+ˆØˆŒØ�Š�CÑÔÐåÔ& tÑ,Ô,ˆà×Ò˜�C ™KœKÑ(Ô(Ð(Ø×Ò˜f Qœi­¬Ñ4Ô4Ð4Ø×Ò˜ &¨¤)Ô"4Ñ5Ô5Ð5Ø×Ò˜  q¤	¤Ñ/Ô/Ð/Ø×Ò˜˜F 1œIÔ,Ñ-Ô-Ð-ØÔ×0Ò0µÔ1G×1NÒ1NÈyÑ1YÔ1YÑZÔZÐZÐZÐZr)   c                óŒ  — t          j        d¦  «        }t          j        t          › d�¦  «        }d|_        |                     |¦  «         t          j        |¦  «        }|                      dt          |¦  «        ¦  «         |  	                    |d         t          j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         |j                             t
          j                             d¦  «        ¦  «         d	S )
z=
        verseFromElement() with one <syl> and no @n
        rò  rÖ  rõ  rƒ   r   rÛ  rø  ÚNoneNr  r  s        r'   Ú
testVerse4zTest.testVerse4%  s  € õ
 Œ}˜WÑ%Ô%ˆÝŒm�v˜N˜N˜NÑ+Ô+ˆØˆŒØ�Š�CÑÔÐåÔ& tÑ,Ô,ˆà×Ò˜�C ™KœKÑ(Ô(Ð(Ø×Ò˜f Qœi­¬Ñ4Ô4Ð4Ø×Ò˜ &¨¤)Ô"4Ñ5Ô5Ð5Ø×Ò˜  q¤	¤Ñ/Ô/Ð/Ø×Ò˜˜F 1œIÔ,Ñ-Ô-Ð-ØÔ×0Ò0µÔ1G×1NÒ1NÈvÑ1VÔ1VÑWÔWÐWÐWÐWr)   zmusic21.note.Notez)music21.mei.base._processEmbeddedElementszmusic21.mei.base.safePitchzmusic21.mei.base.makeDurationc           	     ó�  — t          j        dddddddœ¬¦  «        }d	|_        d
|_        t          j        ¦   «         }||_        g |_        |}t          j        |d¦  «        }|                      |||¦  «         |                     ddd¦  «         |                     dd¦  «         |                     |j        ¦  «         |                      d|j	        j
        ¦  «         |                      d|j        j        j
        ¦  «         |                      d|j        j
        ¦  «         |                      |j        |j        ¦  «         dS )zØ
        noteFromElement(): all the basic attributes (i.e., @pname, @accid, @oct, @dur, @dots)

        (mostly-unit test; mock out Note, _processEmbeddedElements(),
         safePitch(), and makeDuration())
        r   rg   rd  Ú2rÈ   rq   ©Úpnamerê   Úoctrp  Údotsr›   úmakeDuration() returnúsafePitch() returnNrh   ç      ð?rƒ   r   )rE   rF   rH   r   rD   r   ÚnoteFromElementr,   rL   rò   r  r   Úextendr   r   )	r%   ÚmockMakeDurationÚmockSafePitchÚmockProcEmbElÚmockNoterx   ÚmockNewNotera   r&   s	            r'   Ú	testUnit1zTest.testUnit1?  sM  € õ Œ}˜V°cÀCÐPSÐ\_Ø58ð-:ð -:ð ;ñ ;ô ;ˆà(?ÐÔ%Ø%9ˆÔ"Ý”nÑ&Ô&ˆØ +ˆÔØ%'ˆÔ"ØˆåÔ% d¨DÑ1Ô1ˆà×Ò˜ ;°Ñ7Ô7Ð7Ø×-Ò-¨c°3¸Ñ<Ô<Ð<Ø×0Ò0°°aÑ8Ô8Ð8Ø×(Ò(¨Ô)CÑDÔDÐDØ×Ò˜˜KœNÔ5Ñ6Ô6Ð6Ø×Ò˜˜KÔ5Ô<ÔGÑHÔHÐHØ×Ò˜˜KœOÔ6Ñ7Ô7Ð7Ø×ÒÐ)Ô6¸Ô8LÑMÔMÐMÐMÐMr)   c           	     ó  — t          j        dddddddœ¬¦  «        }t          j        |¦  «        }|                      d	|j        ¦  «         |                      d
|j        ¦  «         |                      d|j        j        ¦  «         dS )zÈ
        noteFromElement(): all the elements that go in Note.__init__()...
                           'pname', 'accid', 'oct', 'dur', 'dots'
        (corresponds to testUnit1() with no mocks)
        r   rg   rd  r  rÈ   rq   r  r›   úD#2ç      ø?rƒ   N©	rE   rF   r   r  r,   ÚnameWithOctaveÚquarterLengthr   r  rá  s      r'   ÚtestIntegration1azTest.testIntegration1a^  s–   € õ Œ}˜V°cÀCÐPSÐ\_Ø58ð-:ð -:ð ;ñ ;ô ;ˆåÔ% dÑ+Ô+ˆØ×Ò˜ Ô 5Ñ6Ô6Ð6Ø×Ò˜˜fÔ2Ñ3Ô3Ð3Ø×Ò˜˜FœOÔ0Ñ1Ô1Ð1Ð1Ð1r)   c                ó  — t          j        ddddddœ¬¦  «        }t          j        |¦  «        }|                      d|j        ¦  «         |                      d	|j        ¦  «         |                      d
|j        j        ¦  «         dS )zÕ
        noteFromElement(): all the elements that go in Note.__init__()...
                           'pname', 'accid', 'oct', 'dur', 'dots'
        (this has different arguments than testIntegration1a())
        r   rg   ró  r  rÈ   )r  rê   r  rp  r›   ÚD2r  r   Nr  rá  s      r'   ÚtestIntegration1bzTest.testIntegration1bk  s‰   € õ Œ}˜V°cÀCÐPSÐ\_Ð,`Ð,`ÐaÑaÔaˆÝÔ% dÑ+Ô+ˆØ×Ò˜˜vÔ4Ñ5Ô5Ð5Ø×Ò˜˜fÔ2Ñ3Ô3Ð3Ø×Ò˜˜FœOÔ0Ñ1Ô1Ð1Ð1Ð1r)   z!music21.mei.base.pitch.Accidentalc                ó  — t          j        dddddœ¬¦  «        }d|_        d|_        d	|_        t          j        ¦   «         }||_        d
dt          j        ¦   «         g|_        |}t          j        dd¦  «        t          j        dd
¦  «        g}	t          j	        |d¦  «        }
|  
                    |||
¦  «         |                     ddd¦  «         |j        |j        _        |  
                    d
|j        j        j        ¦  «         |                      |j        j        j        d         d         d         t
          j        ¦  «         |  
                    |	|j        ¦  «         |                     |j        ¦  «         |  
                    d|j        j        ¦  «         |  
                    d|j        j        j        ¦  «         |  
                    d|j        j        ¦  «         |  
                    |j        |j        ¦  «         dS )zÊ
        noteFromElement(): adds <artic>, <accid>, and <dot> elements held within

        (mostly-unit test; mock out Note, _processEmbeddedElements(),
        safePitch(), and makeDuration())
        r   rg   r  rÈ   ©r  r  rp  r›   r  r  zan accidentalrƒ   rh   r  r   N)rE   rF   rH   r   rD   r   r|  Úcallr   r  r,   rL   r   r^   rù  r  r!   Úcall_args_listrò   r  r   r   )r%   rì   r  r  r  r  rx   r  ra   ÚexpMockMakeDurr&   s              r'   Ú	testUnit2zTest.testUnit2w  sá  € õ Œ}˜V°cÀ#ÈcÐ,RÐ,RÐSÑSÔSˆà(?ÐÔ%Ø%9ˆÔ"Ø!0ˆ	ÔÝ”nÑ&Ô&ˆØ +ˆÔØ&'¨­mÔ.DÑ.FÔ.FÐ%GˆÔ"ØˆÝœ) C¨Ñ+Ô+­T¬Y°s¸AÑ->Ô->Ð?ˆåÔ% d¨DÑ1Ô1ˆà×Ò˜ ;°Ñ7Ô7Ð7Ø×-Ò-¨c°4¸Ñ=Ô=Ð=Ø'0Ô'=ˆÔÔ$Ø×Ò˜˜KÔ5Ô<ÔGÑHÔHÐHØ×Ò˜kÔ7Ô>ÔMÈaÔPÐQRÔSÐTUÔVÝ+Ô4ñ	6ô 	6ð 	6à×Ò˜Ð)9Ô)HÑIÔIÐIØ×(Ò(¨Ô)CÑDÔDÐDØ×Ò˜˜KœNÔ5Ñ6Ô6Ð6Ø×Ò˜˜KÔ5Ô<ÔGÑHÔHÐHØ×Ò˜˜KœOÔ6Ñ7Ô7Ð7Ø×ÒÐ)Ô6¸Ô8LÑMÔMÐMÐMÐMr)   c                óÞ  — t          j        dddddœ¬¦  «        }|                     t          j        t          › d�¦  «        ¦  «         |                     t          j        t          › d�ddi¬¦  «        ¦  «         |                     t          j        t          › d	�d	d
i¬¦  «        ¦  «         t	          j        |¦  «        }|                      d|j        ¦  «         |                      d|j        ¦  «         |                      d|j	        j
        ¦  «         |                      dt          |j        ¦  «        ¦  «         |                      |j        d         t          j        ¦  «         dS )z�
        noteFromElement(): adds <artic>, <accid>, and <dot> elements held within
        (corresponds to testUnit2() with no mocks)
        r   rg   r  r'  r›   Údoträ   Ústaccrê   rd  r  g      @rƒ   r   N)rE   rF   rù  r   r   r  r,   r   r!  r   r  r}  r   r!   r|  rá  s      r'   ÚtestIntegration2zTest.testIntegration2�  sF  € õ
 Œ}˜V°cÀ#ÈcÐ,RÐ,RÐSÑSÔSˆØ�Š•E”M¥V . . .Ñ1Ô1Ñ2Ô2Ð2Ø�Š•E”M¥VÐ"2Ð"2Ð"2¸GÀWÐ;MÐNÑNÔNÑOÔOÐOØ�Š•E”M¥VÐ"2Ð"2Ð"2¸GÀS¸>ÐJÑJÔJÑKÔKÐKåÔ% dÑ+Ô+ˆà×Ò˜ Ô 5Ñ6Ô6Ð6Ø×Ò˜˜fÔ2Ñ3Ô3Ð3Ø×Ò˜˜FœOÔ0Ñ1Ô1Ð1Ø×Ò˜�C Ô 4Ñ5Ô5Ñ6Ô6Ð6Ø×Ò˜fÔ2°1Ô5µ}Ô7MÑNÔNÐNÐNÐNr)   zmusic21.mei.base._tieFromAttrzmusic21.mei.base.addSlursc                óÜ  — t          j        ddddddddd	d
dddt          dddi¬¦  «        }d|_        d|_        t	          j        ¦   «         }	|	|_        g |_        dg|_        d|_        |	}
t          j        |d¦  «        }|                      |
|	|¦  «         | 	                    ddd¦  «         | 	                    dd¦  «         | 	                    |j        ¦  «         |                      d|	j
        ¦  «         |	j        j         	                    dg¦  «         |                      d|	j        ¦  «         |                      |j        |	j        ¦  «         | 	                    ||	d¦  «         dS )zÒ
        noteFromElement(): adds @xml:id, @artic, and @tie attributes, and the slurBundle

        (mostly-unit test; mock out Note, _processEmbeddedElements(),
        safePitch(), and makeDuration())
        r   r  rg   rê   rd  r  r  rp  rÈ   r  rq   rä   r.  Ú123r   Úi1r›   r  r  ú	staccato!úa tie!úslur bundlerh   r  rƒ   N)rE   rF   r   rH   r   rD   r   r  r,   rL   rò   r   r  r   r   )r%   ÚmockSlurÚmockTieÚmockArticListr  r  r  r  rx   r  ra   r&   s               r'   Ú	testUnit3zTest.testUnit3¯  s…  € õ Œ}˜V¨W°c¸7ÀCÈÐPSÐUZÐ\_Ø-3°S¸'À7ÍFÐTYØ-2°Dð-:ð ;ñ ;ô ;ˆð )@ÐÔ%Ø%9ˆÔ"Ý”nÑ&Ô&ˆØ +ˆÔØ%'ˆÔ"Ø&1 ]ˆÔ"Ø'ˆÔØˆåÔ% d¨MÑ:Ô:ˆà×Ò˜ ;°Ñ7Ô7Ð7Ø×-Ò-¨c°3¸Ñ<Ô<Ð<Ø×0Ò0°°aÑ8Ô8Ð8Ø×(Ò(¨Ô)CÑDÔDÐDØ×Ò˜ ¤Ñ/Ô/Ð/ØÔ!Ô(×@Ò@À+ÀÑOÔOÐOØ×Ò˜ ;¤?Ñ3Ô3Ð3Ø×ÒÐ)Ô6¸Ô8LÑMÔMÐMØ×(Ò(¨¨{¸MÑJÔJÐJÐJÐJr)   c                óŽ  — t          j        ddddddddd	d
dt          dddddi¬¦  «        }t          j        ¦   «         }t          j        ||¦  «        }|                      d|j        ¦  «         |                      d|j	        ¦  «         |                      d|j
        j        ¦  «         |                      d|j        ¦  «         |                      dt          |j        ¦  «        ¦  «         |                      |j        d         t          j        ¦  «         |                      t#          j        d¦  «        |j        ¦  «         dS )z•
        noteFromElement(): adds @xml:id, @artic, and @tie attributes, and the slurBundle
        (corresponds to testUnit3() with no mocks)
        r   r  rg   rê   rd  r  r  rp  rÈ   r  rq   Úasdf1234rä   r.  r   r2  r›   r  r  rƒ   r   r´  N)rE   rF   r   r   r$   r   r  r,   r   r!  r   r  rò   r}  r   r!   r|  r   rÉ  ©r%   rx   r#   r&   s       r'   ÚtestIntegration3zTest.testIntegration3Ö  s8  € õ
 Œ}˜V¨W°c¸7ÀCÈÐPSÐUZÐ\_Ø-3°S½&À*ÈgÐW^Ø-2°Dð-:ð ;ñ ;ô ;ˆõ Ô*Ñ,Ô,ˆ
åÔ% d¨JÑ7Ô7ˆà×Ò˜ Ô 5Ñ6Ô6Ð6Ø×Ò˜˜fÔ2Ñ3Ô3Ð3Ø×Ò˜˜FœOÔ0Ñ1Ô1Ð1Ø×Ò˜ V¤YÑ/Ô/Ð/Ø×Ò˜�C Ô 4Ñ5Ô5Ñ6Ô6Ð6Ø×Ò˜fÔ2°1Ô5µ}Ô7MÑNÔNÐNØ×Ò�œ Ñ)Ô)¨6¬:Ñ6Ô6Ð6Ð6Ð6r)   zmusic21.mei.base.scaleToTupletzmusic21.pitch.Accidentalc                óº  — t          j        ddddddddddœ¬	¦  «        }d
|_        t          j        ¦   «         }t          j        ¦   «         |_        t          j        ¦   «         |_        d|j        _        ||_        g |_        d|_        d|_        |j        }	t          j        |d¦  «        }
|  	                    |	|
¦  «         | 
                    ddd¦  «         | 
                    dd¦  «         | 
                    |j        ¦  «         | 
                    ||¦  «         | 
                    d¦  «         |  	                    d|j        j        j        ¦  «         dS )z­
        noteFromElement(): adds tuplet-related attributes; plus @m21Beam where the
            duration doesn't require adjusting beams

        (mostly-unit test)
        r   rg   r  rÈ   Ú5r´  rd  ©r  r  rp  Úm21TupletNumÚm21TupletNumbaseÚm21TupletSearchrk  Úm21Beamr›   r  Úquarterzmade the tupletzthe accidentalr5  Nr  r   rh   )rE   rF   rH   r   rD   Úbeamsr·  r   r  r,   rL   Úfillr  )r%   rì   rP   r  r  r  r  rx   r  ra   r&   s              r'   Ú	testUnit4zTest.testUnit4ê  sg  € õ Œ}˜V°cÀ#ÈcØ=@ÐVYØ@GØ:=È'ð-Sð -Sð Tñ Tô Tˆð &:ˆÔ"Ý”nÑ&Ô&ˆÝ œNÑ,Ô,ˆÔÝ(,¬Ñ(8Ô(8ÐÔ%Ø-6ÐÔ%Ô*Ø +ˆÔØ%'ˆÔ"Ø"3ˆ
ÔØ!1ˆ	ÔØÔ*ˆåÔ% d¨MÑ:Ô:ˆà×Ò˜ 6Ñ*Ô*Ð*Ø×-Ò-¨c°4¸Ñ=Ô=Ð=Ø×0Ò0°°aÑ8Ô8Ð8Ø×(Ò(¨Ô)CÑDÔDÐDØ×*Ò*¨;¸Ñ=Ô=Ð=Ø×)Ò)¨#Ñ.Ô.Ð.Ø×Ò˜˜KÔ-Ô2Ô=Ñ>Ô>Ð>Ð>Ð>r)   c                óâ  — t          j        ddddddddddœ¬	¦  «        }t          j        ¦   «         }t	          j        ||¦  «        }|                      d
|j        ¦  «         |                      d|j        ¦  «         |                      d|j	        j
        ¦  «         |                      d|j        ¦  «         |                      d|j        ¦  «         |                      d|j        ¦  «         dS )ze
        noteFromElement(): @m21TupletNum
        (corresponds to testUnit4() with no mocks)
        r   rg   r  rÈ   r?  r´  rd  r@  r›   r  r  rE  N)rE   rF   r   r$   r   r  r,   r   r!  r   r·  rA  rB  rC  r<  s       r'   ÚtestIntegration4zTest.testIntegration4  sÿ   € õ
 Œ}˜V°cÀ#ÈcØ=@ÐVYØ@GØ:=È'ð-Sð -Sð Tñ Tô Tˆõ Ô*Ñ,Ô,ˆ
åÔ% d¨JÑ7Ô7ˆà×Ò˜ Ô 5Ñ6Ô6Ð6Ø×Ò˜˜fÔ2Ñ3Ô3Ð3Ø×Ò˜ F¤OÔ$8Ñ9Ô9Ð9Ø×Ò˜˜fÔ1Ñ2Ô2Ð2Ø×Ò˜˜fÔ5Ñ6Ô6Ð6Ø×Ò˜ &Ô"8Ñ9Ô9Ð9Ð9Ð9r)   zmusic21.duration.GraceDurationc           	     ód  — t          j        dddddddœ¬¦  «        }t          j        t          › d	�¦  «        }|                     |¦  «         d
|_        t          j        ¦   «         }t          j        ¦   «         |_        ||_        t          j        t          j	        ¬¦  «        g|_        t          j        t          j        ¬¦  «        |_        d|j        _        |}	t          j        |d¦  «        }
|                      |	|
¦  «         |                     ddd¦  «         |                     dd¦  «         |                     |j        ¦  «         |j        j                             dd¦  «         |                      |j        |j
        ¦  «         |                      |j        |j        ¦  «         dS )z¦
        noteFromElement(): test @grace and @m21Beam where the duration requires adjusting beams,
            and contained <syl>

        (mostly-unit test)
        r   rg   r  Ú16r´  r‰  ©r  r  rp  rD  Úgracer›   rÖ  r  r>   Ú16thr5  Nç      Ð?r   )rE   rF   r   rù  rH   r   rD   rF  r   rß  r   ÚDurationr·  r   r  r,   rL   rG  Úlyrics)r%   Ú	mockGracer  r  r  r  rx   ÚsylElemr  ra   r&   s              r'   Ú	testUnit5zTest.testUnit5%  s“  € õ Œ}˜V°cÀ#ÈdØ8?È%ð-Qð -Qð Rñ Rô Rˆå”-¥6   Ñ/Ô/ˆØ�Š�GÑÔÐØ%9ˆÔ"Ý”nÑ&Ô&ˆÝ œNÑ,Ô,ˆÔØ +ˆÔÝ&*¤n½d¼jÐ&IÑ&IÔ&IÐ%JˆÔ"Ý!%¤½Ô9JÐ!KÑ!KÔ!Kˆ	ÔØ&,ˆ	ÔÔ#ØˆåÔ% d¨MÑ:Ô:ˆà×Ò˜ 6Ñ*Ô*Ð*Ø×-Ò-¨c°4¸Ñ=Ô=Ð=Ø×0Ò0°°qÑ9Ô9Ð9Ø×(Ò(¨Ô)CÑDÔDÐDØÔÔ×6Ò6°v¸wÑGÔGÐGØ×Ò˜Ô/°Ô1EÑFÔFÐFØ×Ò˜Ô3°[Ô5GÑHÔHÐHÐHÐHr)   c           	     óž  — t          j        dddddddœ¬¦  «        }t          j        t          › d	�¦  «        }d
|_        |                     |¦  «         t          j        ¦   «         }t          j        ||¦  «        }|  	                    d|j
        ¦  «         |  	                    d|j        ¦  «         |  	                    d|j        j        ¦  «         |  	                    d|j        j        d         j        ¦  «         |  	                    d|j        j        d         j        ¦  «         |  	                    d|j        j        d         j        ¦  «         |  	                    d|j        j        d         j        ¦  «         |  	                    dt#          |j        ¦  «        ¦  «         |  	                    d
|j        d         j        ¦  «         dS )z½
        noteFromElement(): test @grace and @m21Beam where the duration requires adjusting beams,
            and contained <syl>
        (corresponds to testUnit5() with no mocks)
        r   rg   r  rL  r´  r‰  rM  r›   rÖ  zwords!r$  ç        rO  rƒ   r   rV  N)rE   rF   r   rÝ  rù  r   r$   r   r  r,   r   r!  r   r·  rF  Ú	beamsListrû  r}  rR  )r%   rx   rT  r#   r&   s        r'   ÚtestIntegration5zTest.testIntegration5H  s£  € õ Œ}˜V°cÀ#ÈdØ8?È%ð-Qð -Qð Rñ Rô Rˆå”-¥6   Ñ/Ô/ˆØˆŒØ�Š�GÑÔÐÝÔ*Ñ,Ô,ˆ
åÔ% d¨JÑ7Ô7ˆà×Ò˜˜vÔ4Ñ5Ô5Ð5Ø×Ò˜˜fÔ2Ñ3Ô3Ð3Ø×Ò˜ ¤Ô!5Ñ6Ô6Ð6Ø×Ò˜˜FœLÔ2°1Ô5Ô<Ñ=Ô=Ð=Ø×Ò˜ &¤,Ô"8¸Ô";Ô"@ÑAÔAÐAØ×Ò˜˜FœLÔ2°1Ô5Ô<Ñ=Ô=Ð=Ø×Ò˜ &¤,Ô"8¸Ô";Ô"@ÑAÔAÐAØ×Ò˜�C ¤Ñ.Ô.Ñ/Ô/Ð/Ø×Ò˜ 6¤=°Ô#3Ô#8Ñ9Ô9Ð9Ð9Ð9r)   z!music21.mei.base.verseFromElementc                óè  ‡— d}t          j        |¦  «        }d|_        t          j        ¦   «         }t          j        ¦   «         |_        ||_        g |_        |}t          j        d¬¦  «        t          j        d¬¦  «        gt          j        d¬¦  «        ggŠˆfd„}	|	|_        ‰d         d         ‰d         d	         ‰d	         d         g}
t          j        |d
¦  «        }|  	                    ||¦  «         |  	                    |
|j
        ¦  «         |  	                    d|j        ¦  «         |                     t          j        d	¬¦  «         |                     t          j        d¬¦  «         dS )zW
        noteFromElement(): test contained <verse>

        (mostly-unit test)
        á  <note pname="D" oct="2" dur="16" xmlns="http://www.music-encoding.org/ns/mei">
            <verse>
                <syl>au</syl>
                <syl>luong</syl>
            </verse>
            <verse>
                <syl>sun</syl>
            </verse>
        </note>
        r  Úau©r]   ÚluongÚsunc                óX   •— t           › d�| j        k    sJ ‚‰                     d¦  «        S )zK
            Check that it gets called with the right elements
            rò  r   )r   r-   r”  )Ú
inner_elemr÷  Ú
vfeReturnss     €r'   ÚmockVerseFESideEffectz-Test.testUnit6.<locals>.mockVerseFESideEffect‚  s3   ø€ õ Ð#Ð#Ð# z¤~Ò5Ð5Ð5Ð5Ø—>’> !Ñ$Ô$Ð$r)   r   rƒ   r5  rV  rö  N)rE   r  rH   r   rD   rF  r  r   r  r,   rR  r  Úassert_any_callÚANY)r%   ÚmockVerseFEÚunused_mockMakeDurationr  r  r  rx   r  ra   rc  Ú	expLyricsr&   rb  s               @r'   Ú	testUnit6zTest.testUnit6a  sq  ø€ ð	ˆõ Ô Ñ%Ô%ˆØ%9ˆÔ"Ý”nÑ&Ô&ˆÝ œNÑ,Ô,ˆÔØ +ˆÔØ%'ˆÔ"Øˆå”~¨4Ð0Ñ0Ô0µ$´.ÀgÐ2NÑ2NÔ2NÐOÝ”~¨5Ð1Ñ1Ô1Ð2ð4ˆ
ð	%ð 	%ð 	%ð 	%ð 	%ð #8ˆÔØ ”] 1Ô% z°!¤}°QÔ'7¸ÀA¼ÀqÔ9IÐJˆ	åÔ% d¨MÑ:Ô:ˆà×Ò˜ 6Ñ*Ô*Ð*Ø×Ò˜ F¤MÑ2Ô2Ð2Ø×Ò˜˜KÔ2Ñ3Ô3Ð3Ø×#Ò#¥D¤H°aÐ#Ñ8Ô8Ð8Ø×#Ò#¥D¤H°aÐ#Ñ8Ô8Ð8Ð8Ð8r)   c                óš  — d}t          j        |¦  «        }t          j        ¦   «         }t	          j        ||¦  «        }|                      dt          |j        ¦  «        ¦  «         |                      d|j        d         j	        ¦  «         |                      d|j        d         j	        ¦  «         |                      d|j        d         j	        ¦  «         |                      d|j        d         j
        ¦  «         |                      d|j        d         j
        ¦  «         |                      d|j        d         j
        ¦  «         d	S )
zn
        noteFromElement(): test contained <verse>
        (corresponds to testUnit6() with no mocks)
        r[  rW  r\  r   r^  rƒ   r_  rV  N)rE   r  r   r$   r   r  r,   r}  rR  rÝ  rû  r<  s       r'   ÚtestIntegration6zTest.testIntegration6“  s!  € ð
	ˆõ Ô Ñ%Ô%ˆÝÔ*Ñ,Ô,ˆ
åÔ% d¨JÑ7Ô7ˆà×Ò˜�C ¤Ñ.Ô.Ñ/Ô/Ð/Ø×Ò˜˜vœ}¨QÔ/Ô4Ñ5Ô5Ð5Ø×Ò˜ &¤-°Ô"2Ô"7Ñ8Ô8Ð8Ø×Ò˜ ¤¨aÔ 0Ô 5Ñ6Ô6Ð6Ø×Ò˜˜FœM¨!Ô,Ô3Ñ4Ô4Ð4Ø×Ò˜˜FœM¨!Ô,Ô3Ñ4Ô4Ð4Ø×Ò˜˜FœM¨!Ô,Ô3Ñ4Ô4Ð4Ð4Ð4r)   zmusic21.note.Restc                óÖ  — t          j        dddddt          dddd	dd
di¬¦  «        }d|_        t	          j        d¦  «        }||_        d|_        |j        }t          j        |¦  «        }|                      ||¦  «         | 	                    |j        ¬¦  «         | 	                    dd¦  «         | 	                    |j        |¦  «         |                      d|j
        ¦  «         dS )z]
        restFromElement(): test @dur, @dots, @xml:id, and tuplet-related attributes
        Úrestrp  rÈ   r  rq   úthe idrA  r?  rB  Úm21TupletTyper´  r›   zthe durationznew restÚ
tupletizedr   r  rƒ   N)rE   rF   r   rH   r   rD   r   ÚrestFromElementr,   rL   rò   )r%   rP   ÚmockMakeDurÚmockRestrx   ÚmockNewRestra   r&   s           r'   ÚtestUnit1TestRestFromElementz!Test.testUnit1TestRestFromElement´  sÿ   € õ Œ}˜V¨U°C¸ÀÅfÈhØ-;¸SÐBTÐVYØ-<¸gð-Gð Hñ Hô Hˆð $2ˆÔ Ý”n ZÑ0Ô0ˆØ +ˆÔØ".ˆ
ÔØÔ*ˆåÔ% dÑ+Ô+ˆà×Ò˜ 6Ñ*Ô*Ð*Ø×(Ò(°+Ô2JÐ(ÑKÔKÐKØ×+Ò+¨C°Ñ3Ô3Ð3Ø×*Ò*¨8Ô+@À$ÑGÔGÐGØ×Ò˜ ;¤>Ñ2Ô2Ð2Ð2Ð2r)   c                óš  — t          j        dddddt          dddd	dd
di¬¦  «        }t          j        |¦  «        }|                      t          dd¦  «        |j        ¦  «         |                      d|j        j	        ¦  «         |                      d|j
        ¦  «         |                      d|j        j        d         j        ¦  «         dS )z}
        restFromElement(): test @dur, @dots, @xml:id, and tuplet-related attributes

        (without mock objects)
        rm  rp  rÈ   r  rq   rn  rA  r?  rB  ro  r´  r›   r°   r@   rƒ   r   N)rE   rF   r   r   rq  r,   r   r!  r   r  rò   Útupletsr·  rá  s      r'   ÚtestIntegration1zTest.testIntegration1Ì  sÐ   € õ Œ}˜V¨U°C¸ÀÅfÈhØ-;¸SÐBTÐVYØ-<¸gð-Gð Hñ Hô Hˆõ Ô% dÑ+Ô+ˆà×Ò� ! Q™œ¨Ô)=Ñ>Ô>Ð>Ø×Ò˜˜FœOÔ0Ñ1Ô1Ð1Ø×Ò˜ 6¤9Ñ-Ô-Ð-Ø×Ò˜ &¤/Ô"9¸!Ô"<Ô"AÑBÔBÐBÐBÐBr)   c                ó0  — t          j        dddddt          dddd	dd
di¬¦  «        }t          j        |¦  «        }|                      |t          j        ¦  «         |                      |j	        j
        ¦  «         |                      d|j        ¦  «         dS )z^
        spaceFromElement(): test @dur, @dots, @xml:id, and tuplet-related attributes
        rm  rp  rÈ   r  rq   rn  rA  r?  rB  ro  r´  r›   N)rE   rF   r   r   ÚspaceFromElementr!   r   ÚRestÚ
assertTrueÚstyleÚhideObjectOnPrintr,   rò   rá  s      r'   ÚtestUnit2TestRestFromElementz!Test.testUnit2TestRestFromElementÝ  s�   € õ Œ}˜V¨U°CØ-3°SÝ-3°XØ-;¸SØ-?ÀØ-<¸gð-/ð 0ñ 0ô 0ˆõ Ô& tÑ,Ô,ˆØ×Ò˜f¥d¤iÑ0Ô0Ð0Ø�Š˜œÔ6Ñ7Ô7Ð7Ø×Ò˜ 6¤9Ñ-Ô-Ð-Ð-Ð-r)   c                óš  — t          j        dddddt          dddd	dd
di¬¦  «        }t          j        |¦  «        }|                      t          dd¦  «        |j        ¦  «         |                      d|j        j	        ¦  «         |                      d|j
        ¦  «         |                      d|j        j        d         j        ¦  «         dS )z~
        spaceFromElement(): test @dur, @dots, @xml:id, and tuplet-related attributes

        (without mock objects)
        Úspacerp  rÈ   r  rq   rn  rA  r?  rB  ro  r´  r›   r°   r@   rƒ   r   N)rE   rF   r   r   rz  r,   r   r!  r   r  rò   rw  r·  rá  s      r'   Ú#testIntegration2TestRestFromElementz(Test.testIntegration2TestRestFromElementí  sÐ   € õ Œ}˜W¨e°S¸&À#ÅvÈxØ.<¸cÐCUÐWZØ.=¸wð.Hð Iñ Iô Iˆõ Ô& tÑ,Ô,ˆà×Ò� ! Q™œ¨Ô)=Ñ>Ô>Ð>Ø×Ò˜˜FœOÔ0Ñ1Ô1Ð1Ø×Ò˜ 6¤9Ñ-Ô-Ð-Ø×Ò˜ &¤/Ô"9¸!Ô"<Ô"AÑBÔBÐBÐBÐBr)   z music21.mei.base.restFromElementc                óÎ   — t          j        dddi¬¦  «        }d|_        t          j        |¦  «        }|                      |j        |¦  «         |                     |d¦  «         dS )z[
        mRestFromElement(): reacts properly to an Element with the @dur attribute
        ÚmRestrp  r  r›   zthe restN)rE   rF   rH   r   ÚmRestFromElementr,   rL   ©r%   ÚmockRestFromElementrx   r&   s       r'   ÚtestUnit3TestRestFromElementz!Test.testUnit3TestRestFromElementþ  sk   € õ
 Œ}˜W¨e°S¨\Ð:Ñ:Ô:ˆØ+5ÐÔ(åÔ& tÑ,Ô,ˆà×ÒÐ,Ô9¸6ÑBÔBÐBØ×3Ò3°D¸$Ñ?Ô?Ð?Ð?Ð?r)   c                ó  — t          j        d¦  «        }t          j        ¦   «         |_        t          j        |¦  «        }|                      |j        |¦  «         |                     |d¦  «         |  	                    |j
        ¦  «         dS )z^
        mRestFromElement(): reacts properly to an Element without the @dur attribute
        r„  N)rE   rF   r   rD   rH   r   r…  r,   rL   r|  Úm21wasMRestr†  s       r'   ÚtestUnit4TestRestFromElementz!Test.testUnit4TestRestFromElement  s   € õ
 Œ}˜WÑ%Ô%ˆÝ+/¬>Ñ+;Ô+;ÐÔ(åÔ& tÑ,Ô,ˆà×ÒÐ,Ô9¸6ÑBÔBÐBØ×3Ò3°D¸$Ñ?Ô?Ð?Ø�Š˜Ô*Ñ+Ô+Ð+Ð+Ð+r)   z!music21.mei.base.spaceFromElementc                óÎ   — t          j        dddi¬¦  «        }d|_        t          j        |¦  «        }|                      |j        |¦  «         |                     |d¦  «         dS )z\
        mSpaceFromElement(): reacts properly to an Element with the @dur attribute
        ÚmSpacerp  r  r›   z
the spacerN)rE   rF   rH   r   ÚmSpaceFromElementr,   rL   ©r%   Ú	mockSpacerx   r&   s       r'   ÚtestUnit5TestRestFromElementz!Test.testUnit5TestRestFromElement  si   € õ
 Œ}˜X¨u°c¨lÐ;Ñ;Ô;ˆØ!-ˆ	ÔåÔ'¨Ñ-Ô-ˆà×Ò˜Ô/°Ñ8Ô8Ð8Ø×)Ò)¨$°Ñ5Ô5Ð5Ð5Ð5r)   c                ó  — t          j        d¦  «        }t          j        ¦   «         |_        t          j        |¦  «        }|                      |j        |¦  «         |                     |d¦  «         |  	                    |j
        ¦  «         dS )z_
        mSpaceFromElement(): reacts properly to an Element without the @dur attribute
        r�  N)rE   rF   r   rD   rH   r   rŽ  r,   rL   r|  rŠ  r�  s       r'   ÚtestUnit6TestRestFromElementz!Test.testUnit6TestRestFromElement&  s}   € õ
 Œ}˜XÑ&Ô&ˆÝ!%¤Ñ!1Ô!1ˆ	ÔåÔ'¨Ñ-Ô-ˆà×Ò˜Ô/°Ñ8Ô8Ð8Ø×)Ò)¨$°Ñ5Ô5Ð5Ø�Š˜Ô*Ñ+Ô+Ð+Ð+Ð+r)   c                óF   — t          j        t          › d�| ||||¬¦  «        S )zM
        Factory function for the Element objects that are a <note>.
        r   r  )rE   rF   r   )r  rê   ÚoctArgrp  r  s        r'   ÚmakeNoteElemsChordFromElementz"Test.makeNoteElemsChordFromElement;  s0   € õ
 Œ}¥˜_˜_˜_°EÀØ!'¨S°tð=ñ =ô =ð 	=r)   zmusic21.chord.Chordz music21.mei.base.noteFromElementc                óÎ  ‡— t          j        ddddœ¬¦  «        }d„ dD ¦   «         }|D ]}|                     |¦  «         Œd‰_        d	|_        t	          j        ¦   «         }||_        g |_        t          j        |d
¦  «        }	|                      ||	¦  «         | 	                    dd¦  «         | 	                    ˆfd„t          d¦  «        D ¦   «         ¬¦  «         |                      d|j        j        ¦  «         |                      d|j        j        j        ¦  «         |                      d|j        j        ¦  «         |                      |j        |j        ¦  «         d
S )zh
        chordFromElement(): all the basic attributes (i.e., @pname, @accid, @oct, @dur, @dots)
        ÚchordrÈ   rq   ©rp  r  r›   c           	     óJ   — g | ] }t                                |d ddd ¦  «        ‘Œ!S ©NrÈ   r—   ©r   r–  ©r   Úxs     r'   r�   z2Test.testUnit1ChordFromElement.<locals>.<listcomp>M  ó>   € ð 2ð 2ð 2Øõ ×:Ò:¸1¸dÀCÈÈdÑSÔSð 2ð 2ð 2r)   ©ÚcÚeÚgúa noter  Nr  rƒ   c                ó   •— g | ]	}‰j         ‘Œ
S r  rr   ©r   r€   ÚmockNoteFromEs     €r'   r�   z2Test.testUnit1ChordFromElement.<locals>.<listcomp>[  ó   ø€ Ð0^Ð0^Ð0^ÐPQ°Ô1KÐ0^Ð0^Ð0^r)   rW  ©Únotesr   )rE   rF   rù  rH   r   rD   r   ÚchordFromElementr,   rL   r†   rò   r  r   r  r   r   )
r%   r§  r  r  Ú	mockChordrx   ÚnoteElementsÚeachElementÚmockNewChordr&   s
    `        r'   ÚtestUnit1ChordFromElementzTest.testUnit1ChordFromElementC  s~  ø€ õ Œ}˜W°SÀ#Ð-FÐ-FÐGÑGÔGˆð2ð 2Ø!0ð2ñ 2ô 2ˆà'ð 	%ð 	%ˆKØ�KŠK˜Ñ$Ô$Ð$Ð$Ø%-ˆÔ"Ø(?ÐÔ%Ý”~Ñ'Ô'ˆØ!-ˆ	ÔØ%'ˆÔ"åÔ& t¨TÑ2Ô2ˆà×Ò˜ vÑ.Ô.Ð.Ø×0Ò0°°aÑ8Ô8Ð8Ø×)Ò)Ð0^Ð0^Ð0^Ð0^ÕUZÐ[\ÑU]ÔU]Ð0^Ñ0^Ô0^Ð)Ñ_Ô_Ð_Ø×Ò˜˜LœOÔ6Ñ7Ô7Ð7Ø×Ò˜˜LÔ6Ô=ÔHÑIÔIÐIØ×Ò˜˜LÔ,Ô7Ñ8Ô8Ð8Ø×ÒÐ)Ô6¸Ô8MÑNÔNÐNÐNÐNr)   c                óæ   — t          j        ddddœ¬¦  «        }d„ dD ¦   «         }|D ]}|                     |¦  «         Œd}t          j        |¦  «        }|                      ||j        ¦  «         d	S )
zœ
        chordFromElement(): all the basic attributes (i.e., @pname, @accid, @oct, @dur, @dots)

        (corresponds to testUnit1() with no mocks)
        r˜  rÈ   rq   r™  r›   c           	     óJ   — g | ] }t                                |d ddd¦  «        ‘Œ!S ©ró  rÈ   r—   rÒ   rœ  r�  s     r'   r�   z9Test.testIntegration1ChordFromElement.<locals>.<listcomp>h  ó>   € ð 2ð 2ð 2Øõ ×:Ò:¸1¸cÀ3ÈÈSÑQÔQð 2ð 2ð 2r)   r   ú\Chord {C-natural in octave 4 | E-natural in octave 4 | G-natural in octave 4} Dotted QuarterN)rE   rF   rù  r   r«  r,   ÚfullName©r%   rx   r­  r®  rÃ   r&   s         r'   Ú testIntegration1ChordFromElementz%Test.testIntegration1ChordFromElementa  s˜   € õ Œ}˜W°SÀ#Ð-FÐ-FÐGÑGÔGˆð2ð 2Ø!0ð2ñ 2ô 2ˆà'ð 	%ð 	%ˆKØ�KŠK˜Ñ$Ô$Ð$Ð$ðBˆåÔ& tÑ,Ô,ˆØ×Ò˜ v¤Ñ7Ô7Ð7Ð7Ð7r)   c                ó&  ‡— t          j        ddddœ¬¦  «        }d„ dD ¦   «         }|D ]}|                     |¦  «         Œ|                     t          j        t          › d�d	¬
¦  «        ¦  «         d‰_        d|_        t          j        ¦   «         }||_        t          j        ¦   «         g|_        |}	t          j
        |d¦  «        }
|                      |	||
¦  «         |                     dd¦  «         |                     ˆfd„t          d¦  «        D ¦   «         ¬¦  «         |                      d|j        j        j        ¦  «         |                      |j        j        j        d         d         d         t          j        ¦  «         |                      d|j        j        ¦  «         |                      d|j        j        j        ¦  «         |                      d|j        j        ¦  «         |                      |j        |j        ¦  «         dS )zI
        chordFromElement(): adds an <artic> element held within
        r˜  rÈ   rq   r™  r›   c           	     óJ   — g | ] }t                                |d ddd ¦  «        ‘Œ!S r›  rœ  r�  s     r'   r�   z2Test.testUnit2ChordFromElement.<locals>.<listcomp>z  rŸ  r)   r   rä   r.  ©rä   r¤  r  Nr  rƒ   c                ó   •— g | ]	}‰j         ‘Œ
S r  rr   r¦  s     €r'   r�   z2Test.testUnit2ChordFromElement.<locals>.<listcomp>Š  r¨  r)   rW  r©  r   )rE   rF   rù  r   rH   r   rD   r   r|  r   r«  r,   rL   r†   r  r!   r)  rò   r  r   r   )r%   r§  r  r  r¬  rx   r­  r®  r¯  ra   r&   s    `         r'   ÚtestUnit2ChordFromElementzTest.testUnit2ChordFromElementq  s  ø€ õ Œ}˜W°SÀ#Ð-FÐ-FÐGÑGÔGˆð2ð 2Ø!0ð2ñ 2ô 2ˆà'ð 	%ð 	%ˆKØ�KŠK˜Ñ$Ô$Ð$Ð$Ø�Š•E”M¥VÐ"2Ð"2Ð"2¸'ÐBÑBÔBÑCÔCÐCØ%-ˆÔ"Ø(?ÐÔ%Ý”~Ñ'Ô'ˆØ!-ˆ	ÔÝ&3Ô&<Ñ&>Ô&>Ð%?ˆÔ"ØˆåÔ& t¨TÑ2Ô2ˆà×Ò˜ <°Ñ8Ô8Ð8Ø×0Ò0°°aÑ8Ô8Ð8Ø×)Ò)Ð0^Ð0^Ð0^Ð0^ÕUZÐ[\ÑU]ÔU]Ð0^Ñ0^Ô0^Ð)Ñ_Ô_Ð_Ø×Ò˜˜LÔ6Ô=ÔHÑIÔIÐIØ×Ò˜lÔ8Ô?ÔNÈqÔQÐRSÔTÐUVÔWÝ+Ô4ñ	6ô 	6ð 	6à×Ò˜˜LœOÔ6Ñ7Ô7Ð7Ø×Ò˜˜LÔ6Ô=ÔHÑIÔIÐIØ×Ò˜˜LÔ,Ô7Ñ8Ô8Ð8Ø×ÒÐ)Ô6¸Ô8MÑNÔNÐNÐNÐNr)   c                óî  — t          j        ddddœ¬¦  «        }d„ dD ¦   «         }|D ]}|                     |¦  «         Œ|                     t          j        t          › d�d	¬
¦  «        ¦  «         d}t	          j        |¦  «        }|                      ||j        ¦  «         |                      dt          |j	        ¦  «        ¦  «         |  
                    |j	        d         t          j        ¦  «         dS )zŽ
        noteFromElement(): adds <artic>, <accid>, and <dot> elements held within

        (corresponds to testUnit2() with no mocks)
        r˜  rÈ   rq   r™  r›   c           	     óJ   — g | ] }t                                |d ddd¦  «        ‘Œ!S r³  rœ  r�  s     r'   r�   z9Test.testIntegration2ChordFromElement.<locals>.<listcomp>š  r´  r)   r   rä   r.  r»  rµ  rƒ   r   N)rE   rF   rù  r   r   r«  r,   r¶  r}  r   r!   r|  r·  s         r'   Ú testIntegration2ChordFromElementz%Test.testIntegration2ChordFromElement“  s  € õ Œ}˜W°SÀ#Ð-FÐ-FÐGÑGÔGˆð2ð 2Ø!0ð2ñ 2ô 2ˆà'ð 	%ð 	%ˆKØ�KŠK˜Ñ$Ô$Ð$Ð$Ø�Š•E”M¥VÐ"2Ð"2Ð"2¸'ÐBÑBÔBÑCÔCÐCðBˆåÔ& tÑ,Ô,ˆØ×Ò˜ v¤Ñ7Ô7Ð7Ø×Ò˜�C Ô 4Ñ5Ô5Ñ6Ô6Ð6Ø×Ò˜fÔ2°1Ô5µ}Ô7MÑNÔNÐNÐNÐNr)   c                ó  ‡— t          j        dddddddt          dd	d
i¬¦  «        }d„ dD ¦   «         }	|	D ]}
|                     |
¦  «         Œd‰_        d|_        t          j        ¦   «         }||_        g |_        dg|_        d|_        t          j        |d¦  «        }|  	                    ||¦  «         | 
                    dd¦  «         | 
                    ˆfd„t          d¦  «        D ¦   «         ¬¦  «         |  	                    |j        |j        ¦  «         |j        j         
                    dg¦  «         |  	                    d|j        ¦  «         |  	                    d|j        ¦  «         | 
                    ||d¦  «         dS )zc
        chordFromElement(): adds @xml:id, @artic, and @tie attributes, and the slurBundle
        r˜  rp  rÈ   r  rq   rä   r.  r1  r   r2  r›   c           	     óJ   — g | ] }t                                |d ddd ¦  «        ‘Œ!S r›  rœ  r�  s     r'   r�   z2Test.testUnit3ChordFromElement.<locals>.<listcomp>´  rŸ  r)   r   r¤  r  r3  r4  r5  r  rƒ   c                ó   •— g | ]	}‰j         ‘Œ
S r  rr   r¦  s     €r'   r�   z2Test.testUnit3ChordFromElement.<locals>.<listcomp>Ä  r¨  r)   rW  r©  N)rE   rF   r   rù  rH   r   rD   r   r«  r,   rL   r†   r   r   r  rò   r   )r%   r6  r7  r8  r§  r  r  r¬  rx   r­  r®  r¯  r&   s       `        r'   ÚtestUnit3ChordFromElementzTest.testUnit3ChordFromElement¦  sº  ø€ õ Œ}˜W¨e°S¸&À#ÀwÐPWÝ.4°e¸UÀDð.Jð Kñ Kô Kˆð2ð 2Ø!0ð2ñ 2ô 2ˆà'ð 	%ð 	%ˆKØ�KŠK˜Ñ$Ô$Ð$Ð$Ø%-ˆÔ"Ø(?ÐÔ%Ý”~Ñ'Ô'ˆØ!-ˆ	ÔØ%'ˆÔ"Ø&1 ]ˆÔ"Ø'ˆÔåÔ& t¨]Ñ;Ô;ˆà×Ò˜ vÑ.Ô.Ð.Ø×0Ò0°°aÑ8Ô8Ð8Ø×)Ò)Ð0^Ð0^Ð0^Ð0^ÕUZÐ[\ÑU]ÔU]Ð0^Ñ0^Ô0^Ð)Ñ_Ô_Ð_Ø×ÒÐ)Ô6¸Ô8MÑNÔNÐNØÔ"Ô)×AÒAÀ;À-ÑPÔPÐPØ×Ò˜ ¤Ñ0Ô0Ð0Ø×Ò˜ <Ô#3Ñ4Ô4Ð4Ø×(Ò(¨¨|¸]ÑKÔKÐKÐKÐKr)   c                ó4  — t          j        dddddddt          dd	d
i¬¦  «        }d„ dD ¦   «         }|D ]}|                     |¦  «         Œd}t	          j        |¦  «        }|                      ||j        ¦  «         |                      dt          |j	        ¦  «        ¦  «         |  
                    |j	        d         t          j        ¦  «         |                      d|j        ¦  «         |                      t          j        d¦  «        |j        ¦  «         dS )z–
        noteFromElement(): adds @xml:id, @artic, and @tie attributes, and the slurBundle

        (corresponds to testUnit3() with no mocks)
        r˜  rp  rÈ   r  rq   rä   r.  r;  r   r2  r›   c           	     óJ   — g | ] }t                                |d ddd¦  «        ‘Œ!S r³  rœ  r�  s     r'   r�   z9Test.testIntegration3ChordFromElement.<locals>.<listcomp>Ó  r´  r)   r   rµ  rƒ   r   r´  N)rE   rF   r   rù  r   r«  r,   r¶  r}  r   r!   r|  rò   r   rÉ  r·  s         r'   Ú testIntegration3ChordFromElementz%Test.testIntegration3ChordFromElementË  s/  € õ Œ}˜W¨e°S¸&À#ÀwÐPWÝ.4°jÀ%Èð.Oð Pñ Pô Pˆð2ð 2Ø!0ð2ñ 2ô 2ˆà'ð 	%ð 	%ˆKØ�KŠK˜Ñ$Ô$Ð$Ð$ðBˆåÔ& tÑ,Ô,ˆØ×Ò˜ v¤Ñ7Ô7Ð7Ø×Ò˜�C Ô 4Ñ5Ô5Ñ6Ô6Ð6Ø×Ò˜fÔ2°1Ô5µ}Ô7MÑNÔNÐNØ×Ò˜ V¤YÑ/Ô/Ð/Ø×Ò�œ Ñ)Ô)¨6¬:Ñ6Ô6Ð6Ð6Ð6r)   c           	     óî  ‡— t          j        dddddddœ¬¦  «        }d„ dD ¦   «         }|D ]}|                     |¦  «         Œd	‰_        t	          j        t          j        ¬
¦  «        |_        d|j        _        t	          j        ¦   «         }	|	|_        g |_        d|_        |j        }
t          j
        |d¦  «        }|                      |
|¦  «         |                     dd¦  «         |                     ˆfd„t          d¦  «        D ¦   «         ¬¦  «         |                      |j        |	j        ¦  «         |                     |	|¦  «         |                      d|	j        j        j        ¦  «         dS )zD
        chordFromElement(): adds tuplet-related attributes
        r˜  rÈ   r?  r´  ©rp  rA  rB  rC  rD  r›   c           	     óJ   — g | ] }t                                |d ddd ¦  «        ‘Œ!S r›  rœ  r�  s     r'   r�   z2Test.testUnit4ChordFromElement.<locals>.<listcomp>í  rŸ  r)   r   r¤  r>   rE  Útupletifiedr5  r  r   c                ó   •— g | ]	}‰j         ‘Œ
S r  rr   r¦  s     €r'   r�   z2Test.testUnit4ChordFromElement.<locals>.<listcomp>þ  r¨  r)   rW  r©  N)rE   rF   rù  rH   r   rD   r   rQ  r·  r   r«  r,   rL   r†   rF  rG  r  )r%   rP   r§  r  r  r¬  rx   r­  r®  r¯  ra   r&   s     `         r'   ÚtestUnit4ChordFromElementzTest.testUnit4ChordFromElementà  s¡  ø€ õ Œ}˜W°SÈ#ØBEØAHÐU\ð.^ð .^ð _ñ _ô _ˆð2ð 2Ø!0ð2ñ 2ô 2ˆà'ð 	%ð 	%ˆKØ�KŠK˜Ñ$Ô$Ð$Ð$Ø%-ˆÔ"Ý(,¬ÅÔ@QÐ(RÑ(RÔ(RÐÔ%Ø-6ÐÔ%Ô*Ý”~Ñ'Ô'ˆØ!-ˆ	ÔØ%'ˆÔ"Ø"/ˆ
ÔØÔ*ˆåÔ& t¨]Ñ;Ô;ˆà×Ò˜ 6Ñ*Ô*Ð*Ø×0Ò0°°aÑ8Ô8Ð8Ø×)Ò)Ð0^Ð0^Ð0^Ð0^ÕUZÐ[\ÑU]ÔU]Ð0^Ñ0^Ô0^Ð)Ñ_Ô_Ð_Ø×ÒÐ)Ô6¸Ô8MÑNÔNÐNØ×*Ò*¨<¸Ñ>Ô>Ð>Ø×Ò˜˜LÔ.Ô3Ô>Ñ?Ô?Ð?Ð?Ð?r)   c           	     óŽ  — t          j        dddddddœ¬¦  «        }d„ dD ¦   «         }|D ]}|                     |¦  «         Œd	}t          j        |¦  «        }|                      ||j        ¦  «         |                      d|j        ¦  «         |                      d|j        ¦  «         |                      d|j	        ¦  «         d
S )zw
        noteFromElement(): adds tuplet-related attributes

        (corresponds to testUnit4() with no mocks)
        r˜  rÈ   r?  r´  rÉ  r›   c           	     óJ   — g | ] }t                                |d ddd¦  «        ‘Œ!S r³  rœ  r�  s     r'   r�   z9Test.testIntegration4ChordFromElement.<locals>.<listcomp>  r´  r)   r   zUChord {C-natural in octave 4 | E-natural in octave 4 | G-natural in octave 4} QuarterN)
rE   rF   rù  r   r«  r,   r¶  rA  rB  rC  r·  s         r'   Ú testIntegration4ChordFromElementz%Test.testIntegration4ChordFromElement  sü   € õ Œ}˜W°SÈ#ØBEØAHÐU\ð.^ð .^ð _ñ _ô _ˆð2ð 2Ø!0ð2ñ 2ô 2ˆà'ð 	%ð 	%ˆKØ�KŠK˜Ñ$Ô$Ð$Ð$ð;ˆõ Ô& tÑ,Ô,ˆà×Ò˜ v¤Ñ7Ô7Ð7Ø×Ò˜˜fÔ1Ñ2Ô2Ð2Ø×Ò˜˜fÔ5Ñ6Ô6Ð6Ø×Ò˜ &Ô"8Ñ9Ô9Ð9Ð9Ð9r)   c                óœ  ‡— t          j        dddddœ¬¦  «        }d„ dD ¦   «         }|D ]}|                     |¦  «         Œd	‰_        t	          j        t          j        ¬
¦  «        |_        d|j        _        t	          j        ¦   «         }	|	|_        g |_        |	}
t          j
        |d¦  «        }|                      |
|¦  «         |                     dd¦  «         |                     ˆfd„t          d¦  «        D ¦   «         ¬¦  «         |                      |j        |	j        ¦  «         |	j        j                             dd¦  «         dS )zy
        chordFromElement(): test @grace and @m21Beam when the duration does require
        adjusting the beams
        r˜  rL  r´  r‰  ©rp  rD  rN  r›   c           	     óJ   — g | ] }t                                |d ddd ¦  «        ‘Œ!S r›  rœ  r�  s     r'   r�   z2Test.testUnit5ChordFromElement.<locals>.<listcomp>&  rŸ  r)   r   r¤  r>   rO  r5  rP  r   c                ó   •— g | ]	}‰j         ‘Œ
S r  rr   r¦  s     €r'   r�   z2Test.testUnit5ChordFromElement.<locals>.<listcomp>6  r¨  r)   rW  r©  N)rE   rF   rù  rH   r   rD   r   rQ  r·  r   r«  r,   rL   r†   rF  rG  )r%   rS  r§  r  r  r¬  rx   r­  r®  r¯  ra   r&   s     `         r'   ÚtestUnit5ChordFromElementzTest.testUnit5ChordFromElement  se  ø€ õ Œ}˜W°TÀgÐX]Ð-^Ð-^Ð_Ñ_Ô_ˆð2ð 2Ø!0ð2ñ 2ô 2ˆà'ð 	%ð 	%ˆKØ�KŠK˜Ñ$Ô$Ð$Ð$Ø%-ˆÔ"Ý!%¤½Ô9JÐ!KÑ!KÔ!Kˆ	ÔØ&,ˆ	ÔÔ#Ý”~Ñ'Ô'ˆØ!-ˆ	ÔØ%'ˆÔ"ØˆåÔ& t¨]Ñ;Ô;ˆà×Ò˜ 6Ñ*Ô*Ð*Ø×0Ò0°°qÑ9Ô9Ð9Ø×)Ò)Ð0^Ð0^Ð0^Ð0^ÕUZÐ[\ÑU]ÔU]Ð0^Ñ0^Ô0^Ð)Ñ_Ô_Ð_Ø×Ò˜Ô/°Ô1FÑGÔGÐGØÔÔ×7Ò7¸ÀÑHÔHÐHÐHÐHr)   c                ó¶  — t          j        dddddœ¬¦  «        }d„ dD ¦   «         }|D ]}|                     |¦  «         Œd	}t          j        |¦  «        }|                      ||j        ¦  «         |                      d
|j        ¦  «         |                      d|j        j	        ¦  «         |                      d|j
        j        d         j        ¦  «         |                      d|j
        j        d         j	        ¦  «         |                      d|j
        j        d         j        ¦  «         |                      d|j
        j        d         j	        ¦  «         dS )zŸ
        noteFromElement(): @grace and @m21Beam when the duration does require adjusting the beams

        (corresponds to testUnit5() with no mocks)
        r˜  rL  r´  r‰  rÒ  r›   c           	     óJ   — g | ] }t                                |d ddd¦  «        ‘Œ!S r³  rœ  r�  s     r'   r�   z9Test.testIntegration5ChordFromElement.<locals>.<listcomp>A  r´  r)   r   zRChord {C-natural in octave 4 | E-natural in octave 4 | G-natural in octave 4} 16thrW  rO  rƒ   r   rV  N)rE   rF   rù  r   r«  r,   r¶  r!  r   r·  rF  rX  rû  r·  s         r'   Ú testIntegration5ChordFromElementz%Test.testIntegration5ChordFromElement:  s\  € õ Œ}˜W°TÀgÐX]Ð-^Ð-^Ð_Ñ_Ô_ˆð2ð 2Ø!0ð2ñ 2ô 2ˆà'ð 	%ð 	%ˆKØ�KŠK˜Ñ$Ô$Ð$Ð$ð8ˆõ Ô& tÑ,Ô,ˆà×Ò˜ v¤Ñ7Ô7Ð7Ø×Ò˜˜fÔ2Ñ3Ô3Ð3Ø×Ò˜ ¤Ô!5Ñ6Ô6Ð6Ø×Ò˜˜FœLÔ2°1Ô5Ô<Ñ=Ô=Ð=Ø×Ò˜ &¤,Ô"8¸Ô";Ô"@ÑAÔAÐAØ×Ò˜˜FœLÔ2°1Ô5Ô<Ñ=Ô=Ð=Ø×Ò˜ &¤,Ô"8¸Ô";Ô"@ÑAÔAÐAÐAÐAr)   zmusic21.clef.clefFromStringzmusic21.clef.PercussionClefzmusic21.clef.TabClefc                óÖ  ‡— t          j        ¦   «         }t          j        d¦  «        t          j        d¦  «        t          j        d¦  «        t          j        d¦  «        t          j        d¦  «        t          j        d¦  «        g}|                     d„ t	          d¦  «        D ¦   «         ¦  «         g d¢Šˆfd„|j        _        t          j        d	¬
¦  «        |_        |j        }t          j	        |¦  «        }|  
                    ||¦  «         |                      ||j        j        ¦  «         |  
                    d|j        ¦  «         |  
                    d|j        ¦  «         dS )zç
        clefFromElement(): all the elements that go in clef.clefFromString()...
                           'shape', 'line', 'dis', and 'dis.place'
        (mostly-unit test; only mock out clef and the ElementTree.Element)
        ÚshapeÚliner£  ú	dis.placec                ó&   — g | ]}t           j        ‘ŒS r  ©r   re  r~   s     r'   r�   z2Test.testUnit1aClefFromElement.<locals>.<listcomp>d  ó   € Ð <Ð <Ð <¨a¥¤Ð <Ð <Ð <r)   rƒ   )ÚtheClefShaperà  rà  r  r—   rŸ  c                 ó6   •— ‰r‰                      d¦  «        nd S r’  r“  ©r  ÚelemGetReturnss    €r'   r  z0Test.testUnit1aClefFromElement.<locals>.<lambda>g  ó    ø€ ÈÐ/`¨~×/AÒ/AÀ!Ñ/DÔ/DÐ/DÐ\`€ r)   zclefFromString()r]  r   N)r   rD   r(  r  r†   rs   r  rH   r   ÚclefFromElementr,   rv   r)  r  ©	r%   ÚmockTabClefÚmockPercClefÚmockClefFromStringrx   ÚexpectedGetOrderra   r&   rã  s	           @r'   ÚtestUnit1aClefFromElementzTest.testUnit1aClefFromElementX  sG  ø€ õ Œ~ÑÔˆÝ œI gÑ.Ô.µ´	¸'Ñ0BÔ0BÅDÄIÈgÑDVÔDVÝ œI fÑ-Ô-­t¬y¸Ñ/?Ô/?ÅÄÈ;ÑAWÔAWðYÐà×ÒÐ <Ð <µ5¸±8´8Ð <Ñ <Ô <Ñ=Ô=Ð=à\Ð\Ð\ˆØ`Ð`Ð`Ð`ˆŒÔÝ*.¬.Ð>PÐ*QÑ*QÔ*QÐÔ'Ø%Ô2ˆåÔ% dÑ+Ô+ˆà×Ò˜ 6Ñ*Ô*Ð*ð 	× Ò Ð!1°4´8Ô3JÑKÔKÐKØ×Ò˜˜KÔ2Ñ3Ô3Ð3Ø×Ò˜˜LÔ3Ñ4Ô4Ð4Ð4Ð4r)   c                óL  ‡— t          j        ¦   «         }t          j        d¦  «        g}|                     d„ t	          d¦  «        D ¦   «         ¦  «         dgŠˆfd„|j        _        t          j        d¬¦  «        |_        |j        }t          j	        |¦  «        }|  
                    ||¦  «         |  
                    d|j        ¦  «         |                      ||j        j        ¦  «         |  
                    d|j        ¦  «         |  
                    d|j        ¦  «         d	S )
zQ
        clefFromElement(): same as testUnit1a() but with 'perc' "shape"
        rÚ  c                ó&   — g | ]}t           j        ‘ŒS r  rÞ  r~   s     r'   r�   z2Test.testUnit1bClefFromElement.<locals>.<listcomp>}  rß  r)   rƒ   Úpercc                 ó6   •— ‰r‰                      d¦  «        nd S r’  r“  râ  s    €r'   r  z0Test.testUnit1bClefFromElement.<locals>.<lambda>€  rä  r)   úPercussionClef()r]  r   N©r   rD   r(  r  r†   rs   r  rH   r   rå  r,   r  rv   r)  ræ  s	           @r'   ÚtestUnit1bClefFromElementzTest.testUnit1bClefFromElementt  s  ø€ õ Œ~ÑÔˆÝ œI gÑ.Ô.Ð/ÐØ×ÒÐ <Ð <µ5¸±8´8Ð <Ñ <Ô <Ñ=Ô=Ð=à ˜ˆØ`Ð`Ð`Ð`ˆŒÔÝ$(¤NÐ8JÐ$KÑ$KÔ$KˆÔ!ØÔ,ˆåÔ% dÑ+Ô+ˆà×Ò˜ 6Ñ*Ô*Ð*Ø×Ò˜Ð.Ô9Ñ:Ô:Ð:Ø× Ò Ð!1°4´8Ô3JÑKÔKÐKØ×Ò˜˜KÔ2Ñ3Ô3Ð3Ø×Ò˜˜LÔ3Ñ4Ô4Ð4Ð4Ð4r)   c                ót  ‡— t          j        ¦   «         }t          j        d¦  «        t          j        d¦  «        g}|                     d„ t	          d¦  «        D ¦   «         ¦  «         ddgŠˆfd„|j        _        t          j        d¬¦  «        |_        |j        }t          j	        |¦  «        }|  
                    ||¦  «         |  
                    d|j        ¦  «         |                      ||j        j        ¦  «         |  
                    d|j        ¦  «         |  
                    d|j        ¦  «         d	S )
zP
        clefFromElement(): same as testUnit1c() but with 'TAB' "shape"
        rÚ  c                ó&   — g | ]}t           j        ‘ŒS r  rÞ  r~   s     r'   r�   z2Test.testUnit1cClefFromElement.<locals>.<listcomp>•  rß  r)   rƒ   ÚTABc                 ó6   •— ‰r‰                      d¦  «        nd S r’  r“  râ  s    €r'   r  z0Test.testUnit1cClefFromElement.<locals>.<lambda>˜  rä  r)   rð  r]  r   Nrñ  ræ  s	           @r'   ÚtestUnit1cClefFromElementzTest.testUnit1cClefFromElementŒ  s(  ø€ õ Œ~ÑÔˆÝ œI gÑ.Ô.µ´	¸'Ñ0BÔ0BÐCÐØ×ÒÐ <Ð <µ5¸±8´8Ð <Ñ <Ô <Ñ=Ô=Ð=à ˜ˆØ`Ð`Ð`Ð`ˆŒÔÝ$(¤NÐ8JÐ$KÑ$KÔ$KˆÔ!ØÔ+ˆåÔ% dÑ+Ô+ˆà×Ò˜ 6Ñ*Ô*Ð*Ø×Ò˜Ð.Ô9Ñ:Ô:Ð:Ø× Ò Ð!1°4´8Ô3JÑKÔKÐKØ×Ò˜˜KÔ2Ñ3Ô3Ð3Ø×Ò˜˜LÔ3Ñ4Ô4Ð4Ð4Ð4r)   c                óô   — t          j        d¦  «        }dddddœ}|D ]}|                     |||         ¦  «         Œt          j        }t          j        |¦  «        }|                      ||j        ¦  «         dS )zÓ
        clefFromElement(): all the elements that go in clef.clefFromString()...
                           'shape', 'line', 'dis', and 'dis.place'
        (corresponds to testUnit1a, with real objects)
        r
   ÚGr  r—   rŸ  )rÚ  rÛ  r£  rÜ  N)	rE   rF   Úsetr
   ÚTreble8vaClefr   rå  r,   Ú	__class__©r%   ÚclefElemÚclefAttribsÚeachKeyÚexpectedClassr&   s         r'   Ú testIntegration1aClefFromElementz%Test.testIntegration1aClefFromElement¤  s†   € õ ”= Ñ(Ô(ˆØ #¨S¸È7ÐSÐSˆØ"ð 	8ð 	8ˆGØ�LŠL˜ +¨gÔ"6Ñ7Ô7Ð7Ð7ÝÔ*ˆåÔ% hÑ/Ô/ˆà×Ò˜¨Ô(8Ñ9Ô9Ð9Ð9Ð9r)   c                óî   — t          j        d¦  «        }ddi}|D ]}|                     |||         ¦  «         Œt          j        }t          j        |¦  «        }|                      ||j        ¦  «         dS )zX
        PercussionClef

        (corresponds to testUnit1b, with real objects)
        r
   rÚ  rî  N)	rE   rF   rú  r
   ÚPercussionClefr   rå  r,   rü  rý  s         r'   Ú testIntegration1bClefFromElementz%Test.testIntegration1bClefFromElement´  s   € õ ”= Ñ(Ô(ˆØ Ð'ˆØ"ð 	8ð 	8ˆGØ�LŠL˜ +¨gÔ"6Ñ7Ô7Ð7Ð7ÝÔ+ˆåÔ% hÑ/Ô/ˆà×Ò˜¨Ô(8Ñ9Ô9Ð9Ð9Ð9r)   c                óî   — t          j        d¦  «        }ddi}|D ]}|                     |||         ¦  «         Œt          j        }t          j        |¦  «        }|                      ||j        ¦  «         dS )zQ
        TabClef

        (corresponds to testUnit1c, with real objects)
        r
   rÚ  rõ  N)	rE   rF   rú  r
   ÚTabClefr   rå  r,   rü  rý  s         r'   Ú testIntegration1cClefFromElementz%Test.testIntegration1cClefFromElementÄ  s~   € õ ”= Ñ(Ô(ˆØ Ð&ˆØ"ð 	8ð 	8ˆGØ�LŠL˜ +¨gÔ"6Ñ7Ô7Ð7Ð7ÝœˆåÔ% hÑ/Ô/ˆà×Ò˜¨Ô(8Ñ9Ô9Ð9Ð9Ð9r)   c                óä  ‡— t          j        ¦   «         }t          j        d¦  «        t          j        t          ¦  «        t          j        t          ¦  «        g}|                     d„ t          d¦  «        D ¦   «         ¦  «         g d¢Šˆfd„|j        _        t          j        d¬¦  «        |_        |j        }t          j
        |¦  «        }|                      ||¦  «         |                      d|j        ¦  «         |                      ||j        j        ¦  «         |                      d|j        ¦  «         |                      d|j        ¦  «         |                      d	|j        ¦  «         d
S )z@
        clefFromElement(): adds the "xml:id" attribute
        rÚ  c                ó&   — g | ]}t           j        ‘ŒS r  rÞ  r~   s     r'   r�   z1Test.testUnit2ClefFromElement.<locals>.<listcomp>Ý  rß  r)   r   )rî  ÚtheXMLIDr  c                 ó6   •— ‰r‰                      d¦  «        nd S r’  r“  râ  s    €r'   r  z/Test.testUnit2ClefFromElement.<locals>.<lambda>à  rä  r)   rð  r]  rƒ   r  N)r   rD   r(  r   r  r†   rs   r  rH   r   rå  r,   r  rv   r)  rò   ræ  s	           @r'   ÚtestUnit2ClefFromElementzTest.testUnit2ClefFromElementÔ  sN  ø€ õ Œ~ÑÔˆÝ œI gÑ.Ô.µ´	½&Ñ0AÔ0AÅ4Ä9ÍVÑCTÔCTÐUÐØ×ÒÐ <Ð <µ5¸±8´8Ð <Ñ <Ô <Ñ=Ô=Ð=à9Ð9Ð9ˆØ`Ð`Ð`Ð`ˆŒÔÝ$(¤NÐ8JÐ$KÑ$KÔ$KˆÔ!ØÔ,ˆåÔ% dÑ+Ô+ˆà×Ò˜ 6Ñ*Ô*Ð*Ø×Ò˜Ð.Ô9Ñ:Ô:Ð:Ø× Ò Ð!1°4´8Ô3JÑKÔKÐKØ×Ò˜˜KÔ2Ñ3Ô3Ð3Ø×Ò˜˜LÔ3Ñ4Ô4Ð4Ø×Ò˜ V¤YÑ/Ô/Ð/Ð/Ð/r)   zmusic21.stream.Voicezmusic21.mei.base._guessTupletsc                óÞ  ‡‡— d}t          j        ¦   «         }||gŠˆfd„|j        _        t          j        d¦  «        t          j        d¦  «        g}t          j        d¬¦  «        t          j        d¬¦  «        t          j        d¬¦  «        g}t
          j        › d�|d	         _        t
          j        › d�|d
         _        t
          j        › d�|d         _        t          j        |¬¦  «        |_        t          j        |d	         d¦  «        t          j        |d         d¦  «        g}ddgŠˆfd„|_        d„ |_        d	dl	}	d	dl
m}
 |	                     ¦   «         5  |	                     d|
j        ¬¦  «         t          j        t          j        ¦   «         d¬¦  «        |_        ddd¦  «         n# 1 swxY w Y   t          j        ‰d	         ¦  «        t          j        ‰d
         ¦  «        g}t          j        |¦  «        }|j                             d¦  «         |                      |j        |¦  «         |                      ||j        ¦  «         |                     ¦   «          |                      ||j        j        j        ¦  «         |j        j                             ¦   «          |                      ||j        ¦  «         |                      ||j        j        ¦  «         dS )a‡  
        layerFromElement(): basic functionality (i.e., that the tag-name-to-converter-function
                            mapping works; that tags not in the mapping are ignored; and that a
                            Voice object is returned. And "id" is set from the @n attribute.
        (mostly-unit test; only mock noteFromElement, _guessTuplets, and the ElementTree.Element)
        z@n valuec                 ó6   •— ‰r‰                      d¦  «        nd S r’  r“  râ  s    €r'   r  z1Test.testUnit1aLayerFromElement.<locals>.<lambda>ý  rä  r)   ró  Únote1r]  Ú	imaginaryÚnote2r   r   rƒ   rV  rr   NúmockNoteFromElement return 1úmockNoteFromElement return 2c                 ó.   •— ‰                      d¦  «        S r’  r“  ©r  ÚmockNFEreturnss    €r'   r  z1Test.testUnit1aLayerFromElement.<locals>.<lambda>
  ó   ø€ ¸.×:LÒ:LÈQÑ:OÔ:O€ r)   c                ó   — | S r  r  ©rž  s    r'   r  z1Test.testUnit1aLayerFromElement.<locals>.<lambda>  ó   € ¨A€ r)   ©Úexceptions21Úignore©Úcategoryrñ   ©r?   r]   Ú*)r   rD   rs   r  r(  r   r   r-   ÚiterfindÚwarningsÚmusic21r  Úcatch_warningsÚsimplefilterÚMusic21DeprecationWarningr   rI   rH   ÚlayerFromElementrL   r,   rv   r)  Ú
coreAppendÚcoreElementsChangedrò   )r%   ÚmockTupletsÚ	mockVoiceÚmockNoteFromElementÚtheNAttributerx   rê  ÚiterfindReturnÚexpectedMNFEOrderr$  r  ÚexpectedAppendCallsr&   rã  r  s                @@r'   ÚtestUnit1aLayerFromElementzTest.testUnit1aLayerFromElementð  s  øø€ ð #ˆÝŒ~ÑÔˆØ'¨Ð7ˆØ`Ð`Ð`Ð`ˆŒÔÝ œI c™NœN­D¬I°c©N¬NÐ;ÐÝœ.¨gÐ6Ñ6Ô6Ýœ.¨kÐ:Ñ:Ô:Ýœ.¨gÐ6Ñ6Ô6ð8ˆõ $(¤;Ð 4Ð 4Ð 4ˆ�qÔÔÝ#'¤;Ð 9Ð 9Ð 9ˆ�qÔÔÝ#'¤;Ð 4Ð 4Ð 4ˆ�qÔÔÝœ°NÐCÑCÔCˆŒå!œY ~°aÔ'8¸$Ñ?Ô?Ý!œY ~°aÔ'8¸$Ñ?Ô?ðAÐà8Ð:XÐYˆØ*OÐ*OÐ*OÐ*OÐÔ'Ø"- +ˆÔàˆˆˆØ(Ð(Ð(Ð(Ð(Ð(Ø×$Ò$Ñ&Ô&ð 	\ð 	\Ø×!Ò! (°\Ô5[Ð!Ñ\Ô\Ð\Ý%)¤^½V¼]¹_¼_ÐSZÐ%[Ñ%[Ô%[ˆIÔ"ð	\ð 	\ð 	\ñ 	\ô 	\ð 	\ð 	\ð 	\ð 	\ð 	\ð 	\øøøð 	\ð 	\ð 	\ð 	\õ  $œy¨¸Ô):Ñ;Ô;½T¼YÀ~ÐVWÔGXÑ=YÔ=YÐZÐåÔ& tÑ,Ô,ˆàŒ×-Ò-¨cÑ2Ô2Ð2Ø×Ò˜Ô/°Ñ8Ô8Ð8Ø× Ò Ð!2Ð4GÔ4VÑWÔWÐWØ×)Ò)Ñ+Ô+Ð+Ø× Ò Ð!4Ø!*Ô!7Ô!BÔ!Qñ	Sô 	Sð 	SàÔÔ2×JÒJÑLÔLÐLØ×Ò˜¨¬	Ñ2Ô2Ð2Ø× Ò Ð!1°4´8Ô3JÑKÔKÐKÐKÐKs   Å#A	F8Æ8F<Æ?F<c                óh  ‡— t          j        ¦   «         }t          j        d¬¦  «        t          j        d¬¦  «        t          j        d¬¦  «        g}t          j        › d�|d         _        t          j        › d�|d         _        t          j        › d�|d         _        t          j        |¬	¦  «        |_        t          j        |d         d
¦  «        t          j        |d         d
¦  «        g}ddgŠˆfd„|_        d„ |_        dd
l}ddl	m
} |                     ¦   «         5  |                     d|j        ¬¦  «         t          j        t          j        ¦   «         d¬¦  «        |_        d
d
d
¦  «         n# 1 swxY w Y   t          j        ‰d         ¦  «        t          j        ‰d         ¦  «        g}	d}
t          j        ||
¦  «        }|j                             d¦  «         |                      |j        |¦  «         |                      ||j        ¦  «         |                     ¦   «          |                      |	|j        j        j        ¦  «         |j        j                             ¦   «          |                      |
|j        ¦  «         |                      d|j        j        ¦  «         d
S )zI
        Same as testUnit1a() *but* with ``overrideN`` provided.
        r  r]  r  r  r   r   rƒ   rV  rr   Nr  r  c                 ó.   •— ‰                      d¦  «        S r’  r“  r  s    €r'   r  z1Test.testUnit1bLayerFromElement.<locals>.<lambda>3  r  r)   c                ó   — | S r  r  r  s    r'   r  z1Test.testUnit1bLayerFromElement.<locals>.<lambda>4  r  r)   r  r  r  rñ   r!  z	my own @nr"  )r   rD   r   r   r-   r#  r(  r  r$  r%  r  r&  r'  r(  r   rI   rH   r)  rL   r,   rv   r)  r*  r+  rò   rs   r  )r%   r,  r-  r.  rx   r0  r1  r$  r  r2  Ú	overrideNr&   r  s               @r'   ÚtestUnit1bLayerFromElementzTest.testUnit1bLayerFromElement   sæ  ø€ õ Œ~ÑÔˆÝœ.¨gÐ6Ñ6Ô6Ýœ.¨kÐ:Ñ:Ô:Ýœ.¨gÐ6Ñ6Ô6ð8ˆõ $(¤;Ð 4Ð 4Ð 4ˆ�qÔÔÝ#'¤;Ð 9Ð 9Ð 9ˆ�qÔÔÝ#'¤;Ð 4Ð 4Ð 4ˆ�qÔÔÝœ°NÐCÑCÔCˆŒå!œY ~°aÔ'8¸$Ñ?Ô?Ý!œY ~°aÔ'8¸$Ñ?Ô?ðAÐà8Ð:XÐYˆØ*OÐ*OÐ*OÐ*OÐÔ'Ø"- +ˆÔØˆˆˆØ(Ð(Ð(Ð(Ð(Ð(Ø×$Ò$Ñ&Ô&ð 	\ð 	\Ø×!Ò! (°\Ô5[Ð!Ñ\Ô\Ð\Ý%)¤^½V¼]¹_¼_ÐSZÐ%[Ñ%[Ô%[ˆIÔ"ð	\ð 	\ð 	\ñ 	\ô 	\ð 	\ð 	\ð 	\ð 	\ð 	\ð 	\øøøð 	\ð 	\ð 	\ð 	\õ  $œy¨¸Ô):Ñ;Ô;½T¼YÀ~ÐVWÔGXÑ=YÔ=YÐZÐØˆ	åÔ& t¨YÑ7Ô7ˆàŒ×-Ò-¨cÑ2Ô2Ð2Ø×Ò˜Ô/°Ñ8Ô8Ð8Ø× Ò Ð!2Ð4GÔ4VÑWÔWÐWØ×)Ò)Ñ+Ô+Ð+Ø× Ò Ð!4Ø!*Ô!7Ô!BÔ!Qñ	Sô 	Sð 	SàÔÔ2×JÒJÑLÔLÐLØ×Ò˜ F¤IÑ.Ô.Ð.Ø×Ò˜˜DœHÔ/Ñ0Ô0Ð0Ð0Ð0s   Ä%A	E:Å:E>ÆE>c                óº  ‡	— t          j        ¦   «         }d|j        _        t          j        d¬¦  «        t          j        d¬¦  «        t          j        d¬¦  «        g}t          j        › d�|d         _        t          j        › d�|d         _        t          j        › d�|d	         _        t          j        |¬
¦  «        |_        g d¢Š	ˆ	fd„|_        ddl	}ddl
m} |                     ¦   «         5  |                     d|j        ¬¦  «         t          j        t          j        ¦   «         d¬¦  «        |_        ddd¦  «         n# 1 swxY w Y   |                      t          j        t          j        |¦  «         	 t	          j        |¦  «         dS # t          j        $ r6}|                      t          j        |j        d         ¦  «         Y d}~dS d}~ww xY w)zI
        Same as testUnit1a() *but* without ``overrideN`` or @n.
        Nr  r]  r  r  r   r   rƒ   rV  rr   )r  r  r  r  c                 ó.   •— ‰                      d¦  «        S r’  r“  )r  ÚmockNFEReturnss    €r'   r  z1Test.testUnit1cLayerFromElement.<locals>.<lambda>b  r  r)   r  r  r  rñ   r!  )r   rD   rs   rH   r   r   r-   r#  r  r$  r%  r  r&  r'  r(  r   rI   r1   ÚMeiAttributeErrorr)  r,   Ú_MISSING_VOICE_IDr4   )
r%   r,  r-  r.  rx   r0  r$  r  ÚmaErrorr;  s
            @r'   ÚtestUnit1cLayerFromElementzTest.testUnit1cLayerFromElementI  s8  ø€ õ Œ~ÑÔˆØ $ˆŒÔÝœ.¨gÐ6Ñ6Ô6Ýœ.¨kÐ:Ñ:Ô:Ýœ.¨gÐ6Ñ6Ô6ð8ˆõ $(¤;Ð 4Ð 4Ð 4ˆ�qÔÔÝ#'¤;Ð 9Ð 9Ð 9ˆ�qÔÔÝ#'¤;Ð 4Ð 4Ð 4ˆ�qÔÔÝœ°NÐCÑCÔCˆŒðZð Zð Zˆà*OÐ*OÐ*OÐ*OÐÔ'àˆˆˆØ(Ð(Ð(Ð(Ð(Ð(Ø×$Ò$Ñ&Ô&ð 	\ð 	\Ø×!Ò! (°\Ô5[Ð!Ñ\Ô\Ð\Ý%)¤^½V¼]¹_¼_ÐSZÐ%[Ñ%[Ô%[ˆIÔ"ð	\ð 	\ð 	\ñ 	\ô 	\ð 	\ð 	\ð 	\ð 	\ð 	\ð 	\øøøð 	\ð 	\ð 	\ð 	\ð 	×Ò�$Ô0µ$Ô2GÈÑNÔNÐNð	FÝÔ! $Ñ'Ô'Ð'Ð'Ð'øÝÔ%ð 	Fð 	Fð 	FØ×Ò�TÔ3°W´\À!´_ÑEÔEÐEÐEÐEÐEÐEÐEÐEøøøøð	Føøøs+   Ã3A	EÅEÅEÅ?F ÆGÆ$+GÇGc                ób  — d}t          j        |¦  «        }t          j        |¦  «        }|                      dt          |¦  «        ¦  «         |                      d|j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j	        ¦  «         |                      d	|d         j	        ¦  «         d
S )aR  
        layerFromElement(): basic functionality (i.e., that the tag-name-to-converter-function
                            mapping works; that tags not in the mapping are ignored; and that a
                            Voice object is returned. And "xml:id" is set.
        (corresponds to testUnit1a() but without mock objects)
        a  <layer n="so voice ID" xmlns="http://www.music-encoding.org/ns/mei">
                          <note pname="F" oct="2" dur="4" />
                          <note pname="E" oct="2" accid="f" dur="4" />
                          <imaginary awesome="true" />
                      </layer>rV  úso voice IDrW  r   r  rƒ   ÚF2úE-2N©
rE   r  r   r)  r,   r}  rò   Úoffsetr!  r   ©r%   ÚinputXMLrx   r&   s       r'   Ú!testIntegration1aLayerFromElementz&Test.testIntegration1aLayerFromElementq  s  € ð"ˆõ
 Ô Ñ)Ô)ˆåÔ& tÑ,Ô,ˆà×Ò˜�C ™KœKÑ(Ô(Ð(Ø×Ò˜¨¬	Ñ2Ô2Ð2Ø×Ò˜˜f QœiÔ.Ñ/Ô/Ð/Ø×Ò˜˜f QœiÔ.Ñ/Ô/Ð/Ø×Ò˜˜f QœiÔ5Ñ6Ô6Ð6Ø×Ò˜˜f QœiÔ5Ñ6Ô6Ð6Ø×Ò˜˜v aœyÔ7Ñ8Ô8Ð8Ø×Ò˜  q¤	Ô 8Ñ9Ô9Ð9Ð9Ð9r)   c                ód  — d}t          j        |¦  «        }t          j        |d¦  «        }|                      dt          |¦  «        ¦  «         |                      d|j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j	        ¦  «         |                      d	|d         j	        ¦  «         d
S )zH
        (corresponds to testUnit1b() but without mock objects)
        á  <layer xmlns="http://www.music-encoding.org/ns/mei">
                          <note pname="F" oct="2" dur="4" />
                          <note pname="E" oct="2" accid="f" dur="4" />
                          <imaginary awesome="true" />
                      </layer>rA  rV  rW  r   r  rƒ   rB  rC  NrD  rF  s       r'   Ú!testIntegration1bLayerFromElementz&Test.testIntegration1bLayerFromElementŠ  s  € ð"ˆõ
 Ô Ñ)Ô)ˆåÔ& t¨]Ñ;Ô;ˆà×Ò˜�C ™KœKÑ(Ô(Ð(Ø×Ò˜¨¬	Ñ2Ô2Ð2Ø×Ò˜˜f QœiÔ.Ñ/Ô/Ð/Ø×Ò˜˜f QœiÔ.Ñ/Ô/Ð/Ø×Ò˜˜f QœiÔ5Ñ6Ô6Ð6Ø×Ò˜˜f QœiÔ5Ñ6Ô6Ð6Ø×Ò˜˜v aœyÔ7Ñ8Ô8Ð8Ø×Ò˜  q¤	Ô 8Ñ9Ô9Ð9Ð9Ð9r)   c                óB  — d}t          j        |¦  «        }|                      t          j        t          j        |¦  «         	 t          j        |¦  «         dS # t          j        $ r6}|                      t          j        |j        d         ¦  «         Y d}~dS d}~ww xY w)zH
        (corresponds to testUnit1c() but without mock objects)
        rJ  r   N)	rE   r  r1   r   r<  r)  r,   r=  r4   )r%   rG  rx   r>  s       r'   Ú!testIntegration1cLayerFromElementz&Test.testIntegration1cLayerFromElement   s­   € ð"ˆõ
 Ô Ñ)Ô)ˆà×Ò�$Ô0µ$Ô2GÈÑNÔNÐNð	FÝÔ! $Ñ'Ô'Ð'Ð'Ð'øÝÔ%ð 	Fð 	Fð 	FØ×Ò�TÔ3°W´\À!´_ÑEÔEÐEÐEÐEÐEÐEÐEÐEøøøøð	Føøøs   ÁA ÁBÁ(+BÂBz!music21.mei.base.layerFromElementc                ó6  ‡‡— t          j        ¦   «         }t          j        d¬¦  «        t          j        d¬¦  «        t          j        d¬¦  «        gŠt          j        › d�‰d         _        t          j        › d�‰d         _        t          j        › d�‰d         _        t          j        ‰¬	¦  «        |_        ˆfd
„t          t          ‰¦  «        ¦  «        D ¦   «         }d„ t          t          ‰¦  «        ¦  «        D ¦   «         Šˆfd„|_        d„ t          t          ‰¦  «        ¦  «        D ¦   «         }t          j	        |¦  «        }|j         
                    d¦  «         |                      ||¦  «         |                      ||j        ¦  «         dS )a  
        staffFromElement(): basic functionality (i.e., that layerFromElement() is called with the
                            right arguments, and with properly-incrementing "id" attributes
        (mostly-unit test; only mock noteFromElement and the ElementTree.Element)
        Úlayer1r]  Úlayer2Úlayer3Úlayerr   rƒ   rV  rr   c           	     ój   •— g | ]/}t          j        ‰|         t          |d z   ¦  «        d¬¦  «        ‘Œ0S )rƒ   N©r#   )r   r(  r‡   )r   rŠ   ÚfindallReturns     €r'   r�   z2Test.testUnit1StaffFromElement.<locals>.<listcomp>Å  sP   ø€ ð Að Að AØ!"õ "œY }°QÔ'7½¸QÀ¹U¹¼ÐPTÐUÑUÔUð Að Að Ar)   c                ó   — g | ]}d ‘ŒS ©zmockLayerFromElement return %ir  ©r   rŠ   s     r'   r�   z2Test.testUnit1StaffFromElement.<locals>.<listcomp>Ç  s   € Ð^Ð^Ð^¸qÐ:Ð^Ð^Ð^r)   c                ó.   •— ‰                      d¦  «        S r’  r“  )rž  r  r#   ÚmockLFEReturnss      €r'   r  z0Test.testUnit1StaffFromElement.<locals>.<lambda>É  s   ø€  ^×%7Ò%7¸Ñ%:Ô%:€ r)   c                ó   — g | ]}d ‘ŒS rW  r  rX  s     r'   r�   z2Test.testUnit1StaffFromElement.<locals>.<listcomp>Ê  s   € ÐXÐXÐX¸Ð4ÐXÐXÐXr)   r"  N)r   rD   r   r   r-   r#  r†   r}  r  ÚstaffFromElementrL   r,   rv   r)  )r%   ÚmockLayerFromElementrx   ÚexpectedMLFEOrderra   r&   rU  rZ  s         @@r'   ÚtestUnit1StaffFromElementzTest.testUnit1StaffFromElementµ  sŸ  øø€ õ Œ~ÑÔˆÝœ¨XÐ6Ñ6Ô6Ýœ¨XÐ6Ñ6Ô6Ýœ¨XÐ6Ñ6Ô6ð8ˆõ #'¤+Ð4Ð4Ð4ˆ�aÔÔÝ"&¤+Ð4Ð4Ð4ˆ�aÔÔÝ"&¤+Ð4Ð4Ð4ˆ�aÔÔÝœ°MÐBÑBÔBˆŒðAð Að Að AÝ&+­C°Ñ,>Ô,>Ñ&?Ô&?ðAñ Aô AÐà^Ð^ÅEÍ#ÈmÑJ\ÔJ\ÑD]ÔD]Ð^Ñ^Ô^ˆà:Ð:Ð:Ð:ð 	Ô(àXÐX½eÅCÈÑDVÔDVÑ>WÔ>WÐXÑXÔXˆåÔ& tÑ,Ô,ˆàŒ×-Ò-¨cÑ2Ô2Ð2Ø×Ò˜ 6Ñ*Ô*Ð*Ø× Ò Ð!2Ð4HÔ4WÑXÔXÐXÐXÐXr)   c                ó|  — d}t          j        |¦  «        }t          j        |¦  «        }|                      dt          |¦  «        ¦  «         t          t          |¦  «        ¦  «        D ]y}|                      dt          ||         ¦  «        ¦  «         |                      d||         d         j        ¦  «         |                      d||         d         j        ¦  «         Œz|                      d|d         j	        ¦  «         |                      d|d         d         j
        ¦  «         |                      d	|d         j	        ¦  «         |                      d
|d         d         j
        ¦  «         |                      d|d         j	        ¦  «         |                      d|d         d         j
        ¦  «         dS )a  
        staffFromElement(): basic functionality (i.e., that layerFromElement() is called with the
                            right arguments, and with properly-incrementing "id" attributes
        (corresponds to testUnit1() but without mock objects)
        aå  <staff xmlns="http://www.music-encoding.org/ns/mei">
                          <layer>
                              <note pname="F" oct="2" dur="4" />
                          </layer>
                          <layer>
                              <note pname="A" oct="2" dur="4" />
                          </layer>
                          <layer>
                              <note pname="C" oct="2" dur="4" />
                          </layer>
                      </staff>rW  rƒ   rW  r   r  rq   rB  r  ÚA2r–   rV  ÚC2N)rE   r  r   r\  r,   r}  r†   rE  r!  rò   r   )r%   rG  rx   r&   rŠ   s        r'   Ú testIntegration1StaffFromElementz%Test.testIntegration1StaffFromElementÒ  s†  € ð
"ˆõ Ô Ñ)Ô)ˆåÔ& tÑ,Ô,ˆà×Ò˜�C ™KœKÑ(Ô(Ð(å•s˜6‘{”{Ñ#Ô#ð 	>ð 	>ˆAØ×Ò˜Q¥ F¨1¤I¡¤Ñ/Ô/Ð/Ø×Ò˜S &¨¤)¨A¤,Ô"5Ñ6Ô6Ð6Ø×Ò˜S &¨¤)¨A¤,Ô"<Ñ=Ô=Ð=Ð=à×Ò˜˜f QœiœlÑ+Ô+Ð+Ø×Ò˜˜v aœy¨œ|Ô:Ñ;Ô;Ð;à×Ò˜˜f QœiœlÑ+Ô+Ð+Ø×Ò˜˜v aœy¨œ|Ô:Ñ;Ô;Ð;à×Ò˜˜f QœiœlÑ+Ô+Ð+Ø×Ò˜˜v aœy¨œ|Ô:Ñ;Ô;Ð;Ð;Ð;r)   z$music21.mei.base.instrDefFromElementz"music21.mei.base._timeSigFromAttrsz!music21.mei.base._keySigFromAttrsz music21.mei.base.clefFromElementz(music21.mei.base._transpositionFromAttrsc                óÆ  — t          j        t          › d�ddddddddd	d
dœ
¬¦  «        }t          j        t          › d�ddddœ¬¦  «        }|                     |¦  «         t	          j        d¦  «        }||_        d|_        d|_        d|_        d|_        |j        |j        |j        |j        dœ}	dddd|j        fg}
t          j        |¦  «        }|  	                    |	|¦  «         | 
                    |¦  «         | 
                    |¦  «         | 
                    |¦  «         | 
                    |¦  «         |
D ])\  }}|                      t          ||¦  «        |¦  «         Œ*| 
                    t          j        ¦  «         |j        d         d         d         }|                      d|j        ¦  «         |                      d|                     d¦  «        ¦  «         |                      d|                     d¦  «        ¦  «         |                      d|                     d¦  «        ¦  «         |                      d|                     d ¦  «        ¦  «         d!S )"aO  
        staffDefFromElement(): proper handling of the following attributes (see function docstring
            for more information).

        @label, @label.abbr  @n, @key.accid, @key.mode, @key.pname, @key.sig, @meter.count,
        @meter.unit, @clef.shape, @clef.line, @clef.dis, @clef.dis.place, @trans.diat, @trans.demi
        ÚstaffDefÚFrÈ   ÚcdÚcdpú	the labelúthe l.rq   rù  r1  ©
ú
clef.shapeú	clef.linezclef.diszclef.dis.placeÚlabelz
label.abbrró  r™   r¦   r»   r›   ÚinstrDefÚ71ÚClarinet©zmidi.channelúmidi.instrnumúmidi.instrnameúmock instrumentúmockTime returnúmockKey returnúmockClef returnúmockTrans return©r   r   r   r
   ©ÚpartNameri  ©ÚpartAbbreviationrj  ©ÚpartIdrq   Útranspositionr   r
   rÚ  rÛ  r£  rÜ  N)rE   rF   r   rù  r   rD   rH   r   ÚstaffDefFromElementÚassertDictEqualrL   r,   Úgetattrre  r)  r-   rs   )r%   rh  ÚmockClefÚmockKeyÚmockTimeÚ	mockInstrrx   ÚtheInstrDefÚtheMockInstrumentra   ÚexpectedAttrsr&   ÚattrNameÚ	attrValueÚmockClefArgs                  r'   Ú,testUnit1StaffFromElementStaffDefFromElementz1Test.testUnit1StaffFromElementStaffDefFromElementû  sŸ  € õ Œ}¥Ð0Ð0Ð0Ø36ÀSÐVZØ7<À{Ø3;À#ÐVYØ25ÀUð%Lð %LðMñ Mô Mˆõ
 ”m¥vÐ$7Ð$7Ð$7Ø<?ÐRVØ>Hð,Jð ,JðKñ Kô Kˆð 	�Š�KÑ Ô Ð Ý œNÐ+<Ñ=Ô=ÐØ!2ˆ	ÔØ 1ˆÔØ/ˆÔØ 1ˆÔØ!3ˆ	ÔØ"+Ô"8Ø%Ô2Ø"Ô/Ø$Ô1ð3ð 3ˆð
 3Ø7Ø(Ø)¨9Ô+AÐBðDˆõ Ô)¨$Ñ/Ô/ˆð 	×Ò˜X vÑ.Ô.Ð.Ø×)Ò)¨+Ñ6Ô6Ð6Ø×(Ò(¨Ñ.Ô.Ð.Ø×'Ò'¨Ñ-Ô-Ð-à×)Ò)¨$Ñ/Ô/Ð/à#0ð 	Nð 	NÑˆH�iØ×Ò�WÐ%6¸ÑAÔAÀ9ÑMÔMÐMÐMà×(Ò(­¬Ñ2Ô2Ð2ØÔ-¨aÔ0°Ô3°AÔ6ˆØ×Ò˜ ¤Ñ1Ô1Ð1Ø×Ò˜˜kŸošo¨gÑ6Ô6Ñ7Ô7Ð7Ø×Ò˜˜kŸošo¨fÑ5Ô5Ñ6Ô6Ð6Ø×Ò˜˜{Ÿš¨uÑ5Ô5Ñ6Ô6Ð6Ø×Ò˜ §¢°Ñ <Ô <Ñ=Ô=Ð=Ð=Ð=r)   c                ó$  — t          j        t          › d�dddddddd	d
dœ	¬¦  «        }t          j        t          › d�ddddœ¬¦  «        }|                     |¦  «         t	          j        |¦  «        }|                      |d         t          j        ¦  «         |                      |d         t          j
        ¦  «         |                      |d         t          j        ¦  «         |                      |d         t          j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         dS )zX
        staffDefFromElement(): corresponds to testUnit1() without mock objects
        re  rù  r  rÑ   r–   r—   rÒ   Úmajorr¸   r¹   )	rl  rm  ró  r™   rš   r¯   r§   r»   r¼   r›   ro  rq   rp  rq  rr  r   r   r   r
   r�   r   N©rE   rF   r   rù  r   r‚  r!   r   rq  r   ÚTimeSignaturer   r±   r
   Ú
TrebleClefr,   r€  rŸ   r³   r²   ©r%   rx   r‰  r&   s       r'   Ú!testIntegration1aStaffFromElementz&Test.testIntegration1aStaffFromElement:	  s�  € õ
 Œ}¥Ð0Ð0Ð0Ø36ÀSÈtØ47ÀsÐWZØ18ÈÐ\`ð%bð %bðcñ cô cˆõ ”m¥vÐ$7Ð$7Ð$7Ø<?ÐRVØ>Hð,Jð ,JðKñ Kô Kˆð 	�Š�KÑ Ô Ð õ Ô)¨$Ñ/Ô/ˆð 	×Ò˜f \Ô2µJÔ4GÑHÔHÐHØ×Ò˜f Wœo­uÔ/BÑCÔCÐCØ×Ò˜f Uœm­SÔ-=Ñ>Ô>Ð>Ø×Ò˜f Vœn­d¬oÑ>Ô>Ð>Ø×Ò˜˜v lÔ3Ô:Ñ;Ô;Ð;Ø×Ò˜  w¤Ô ;Ñ<Ô<Ð<Ø×Ò˜ &¨¤-Ô"4Ñ5Ô5Ð5Ø×Ò˜˜F 5œMÔ0Ñ1Ô1Ð1Ð1Ð1r)   c                óˆ  — t          j        t          › d�dddddddd	œ¬
¦  «        }t          j        t          › d�ddddœ¬
¦  «        }|                     |¦  «         |                     t          j        t          › d�dddœ¬
¦  «        ¦  «         t	          j        |¦  «        }|                      |d         t          j        ¦  «         |                      |d         t          j
        ¦  «         |                      |d         t          j        ¦  «         |                      |d         t          j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         dS )zR
        staffDefFromElement(): testIntegration1() with <clef> tag inside
        re  rÑ   r–   r—   rÒ   r‘  r¸   r¹   )ró  r™   rš   r¯   r§   r»   r¼   r›   ro  rq   rp  rq  rr  r
   rù  r  )rÚ  rÛ  r   r   r   r�   r   Nr’  r•  s       r'   Ú!testIntegration1bStaffFromElementz&Test.testIntegration1bStaffFromElementV	  sÉ  € õ
 Œ}¥Ð0Ð0Ð0Ø*.¸sÐRUØ03Ø18ÈÐ\`ð%bð %bðcñ cô cˆõ ”m¥vÐ$7Ð$7Ð$7Ø<?ÐRVØ>Hð,Jð ,JðKñ Kô Kˆð 	�Š�KÑ Ô Ð Ø�Š•E”M¥V / / /ÀCÐQTÐ:UÐ:UÐVÑVÔVÑWÔWÐWõ Ô)¨$Ñ/Ô/ˆð 	×Ò˜f \Ô2µJÔ4GÑHÔHÐHØ×Ò˜f Wœo­uÔ/BÑCÔCÐCØ×Ò˜f Uœm­SÔ-=Ñ>Ô>Ð>Ø×Ò˜f Vœn­d¬oÑ>Ô>Ð>Ø×Ò˜˜v lÔ3Ô:Ñ;Ô;Ð;Ø×Ò˜  w¤Ô ;Ñ<Ô<Ð<Ø×Ò˜ &¨¤-Ô"4Ñ5Ô5Ð5Ø×Ò˜˜F 5œMÔ0Ñ1Ô1Ð1Ð1Ð1r)   zmusic21.instrument.fromStringc                ód  — t          j        t          › d�ddddddddd	d
dœ
¬¦  «        }t          j        d¦  «        }||_        d|_        d|_        d|_        d|_        |j        |j        |j        |j        dœ}	dddd|j        fg}
t          j        |¦  «        }|                      |	|¦  «         |  	                    d|j
        ¦  «         |                     |¦  «         |                     |¦  «         |                     |¦  «         |
D ])\  }}|  	                    t          ||¦  «        |¦  «         Œ*|                     t          j        ¦  «         |j        d         d         d         }|  	                    d|j        ¦  «         |  	                    d|                     d¦  «        ¦  «         |  	                    d|                     d¦  «        ¦  «         |  	                    d|                     d¦  «        ¦  «         |  	                    d|                     d¦  «        ¦  «         dS )z–
        staffDefFromElement(): same as testUnit1() *but* there's no <instrDef> so we have to use
            music21.instrument.fromString()
        re  rf  rÈ   rg  rh  ri  rj  rq   rù  r1  rk  r›   ru  rv  rw  rx  ry  rz  r{  r}  r  r�  r   r
   rÚ  rÛ  r£  rÜ  N)rE   rF   r   r   rD   rH   r   r‚  rƒ  r,   r  rL   r„  re  r)  r-   rs   )r%   rh  r…  r†  r‡  rˆ  ÚmockFromStringrx   rŠ  ra   r‹  r&   rŒ  r�  rŽ  s                  r'   ÚtestUnit2StaffFromElementzTest.testUnit2StaffFromElementr	  sW  € õ Œ}¥Ð0Ð0Ð0Ø36ÀSÐVZØ7<À{Ø3;À#ÐVYØ25ÀUð%Lð %LðMñ Mô Mˆõ
 !œNÐ+<Ñ=Ô=ÐØ&7ˆÔ#Ø 1ˆÔØ/ˆÔØ 1ˆÔØ!3ˆ	ÔØ"0Ô"=Ø%Ô2Ø"Ô/Ø$Ô1ð3ð 3ˆð
 3Ø7Ø(Ø)¨9Ô+AÐBðDˆõ Ô)¨$Ñ/Ô/ˆð 	×Ò˜X vÑ.Ô.Ð.Ø×Ò˜˜IÔ0Ñ1Ô1Ð1Ø×(Ò(¨Ñ.Ô.Ð.Ø×'Ò'¨Ñ-Ô-Ð-à×)Ò)¨$Ñ/Ô/Ð/à#0ð 	Nð 	NÑˆH�iØ×Ò�WÐ%6¸ÑAÔAÀ9ÑMÔMÐMÐMà×(Ò(­¬Ñ2Ô2Ð2ØÔ-¨aÔ0°Ô3°AÔ6ˆØ×Ò˜ ¤Ñ1Ô1Ð1Ø×Ò˜˜kŸošo¨gÑ6Ô6Ñ7Ô7Ð7Ø×Ò˜˜kŸošo¨fÑ5Ô5Ñ6Ô6Ð6Ø×Ò˜˜{Ÿš¨uÑ5Ô5Ñ6Ô6Ð6Ø×Ò˜ §¢°Ñ <Ô <Ñ=Ô=Ð=Ð=Ð=r)   c                ó¸  — t          j        t          › d�dddddddd	d
ddœ
¬¦  «        }t          j        |¦  «        }|                      |d         t          j        ¦  «         |                      |d         t          j	        ¦  «         |                      |d         t          j        ¦  «         |                      |d         t          j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         dS )z\
        staffDefFromElement(): corresponds to testUnit2() but without mock objects
        re  rÑ   r  rù  rÒ   r‘  r¸   r¹   r–   r—   Úclarinet)
ró  rm  rl  r¯   r§   r»   r¼   r™   rš   rn  r›   r   r   r   r
   r�   r   N)rE   rF   r   r   r‚  r!   r   rq  r   r“  r   r±   r
   r”  r,   r€  rŸ   r³   r²   rá  s      r'   Ú testIntegration2StaffFromElementz%Test.testIntegration2StaffFromElement«	  sR  € õ
 Œ}¥Ð0Ð0Ð0Ø*.¸SÐPSØ03Ø18ÈÐ\`Ø47ÀsÐU_ð%að %aðbñ bô bˆõ Ô)¨$Ñ/Ô/ˆð 	×Ò˜f \Ô2µJÔ4GÑHÔHÐHØ×Ò˜f Wœo­uÔ/BÑCÔCÐCØ×Ò˜f Uœm­SÔ-=Ñ>Ô>Ð>Ø×Ò˜f Vœn­d¬oÑ>Ô>Ð>Ø×Ò˜˜v lÔ3Ô:Ñ;Ô;Ð;Ø×Ò˜  w¤Ô ;Ñ<Ô<Ð<Ø×Ò˜ &¨¤-Ô"4Ñ5Ô5Ð5Ø×Ò˜˜F 5œMÔ0Ñ1Ô1Ð1Ð1Ð1r)   zmusic21.instrument.Instrumentc                ó€  — t          j        t          › d�ddddddddd	d
dœ
¬¦  «        }t          j        d¦  «        }	t
          j        |_        |	|_        d|_        d|_        d|_        d|_        |j        |j        |j        |j        dœ}
d|j        fg}t          j
        |¦  «        }|                      |
|¦  «         |                      d|j        ¦  «         |                     |¦  «         |                     |¦  «         |                     |¦  «         |D ])\  }}|                      t          |	|¦  «        |¦  «         Œ*|                     t          j        ¦  «         |j        d         d         d         }|                      d|j        ¦  «         |                      d|                     d¦  «        ¦  «         |                      d|                     d¦  «        ¦  «         |                      d|                     d¦  «        ¦  «         |                      d|                     d¦  «        ¦  «         dS )z¾
        staffDefFromElement(): same as testUnit1() *but* there's no <instrDef> so we have to use
          music21.instrument.fromString() *and* that raises an InstrumentException.
        re  rf  rÈ   rg  rh  ri  rj  rq   rù  r1  rk  r›   ru  rv  rw  rx  ry  rz  r�  r   r
   rÚ  rÛ  r£  rÜ  N)rE   rF   r   r   rD   r   ÚInstrumentExceptionr  rH   r   r‚  rƒ  r,   r  rL   r„  re  r)  r-   rs   )r%   rh  r…  r†  r‡  rˆ  rš  ÚmockInstrInitrx   rŠ  ra   r‹  r&   rŒ  r�  rŽ  s                   r'   ÚtestUnit3StaffFromElementzTest.testUnit3StaffFromElementÃ	  sV  € õ  Œ}¥Ð0Ð0Ð0Ø36ÀSÐVZØ7<À{Ø3;À#ÐVYØ25ÀUð%Lð %LðMñ Mô Mˆõ
 !œNÐ+<Ñ=Ô=ÐÝ%/Ô%CˆÔ"Ø%6ˆÔ"Ø 1ˆÔØ/ˆÔØ 1ˆÔØ!3ˆ	ÔØ"/Ô"<Ø%Ô2Ø"Ô/Ø$Ô1ð3ð 3ˆð *¨9Ô+AÐBÐCˆõ Ô)¨$Ñ/Ô/ˆð 	×Ò˜X vÑ.Ô.Ð.Ø×Ò˜˜IÔ0Ñ1Ô1Ð1Ø×(Ò(¨Ñ.Ô.Ð.Ø×'Ò'¨Ñ-Ô-Ð-à×)Ò)¨$Ñ/Ô/Ð/à#0ð 	Nð 	NÑˆH�iØ×Ò�WÐ%6¸ÑAÔAÀ9ÑMÔMÐMÐMà×(Ò(­¬Ñ2Ô2Ð2ØÔ-¨aÔ0°Ô3°AÔ6ˆØ×Ò˜ ¤Ñ1Ô1Ð1Ø×Ò˜˜kŸošo¨gÑ6Ô6Ñ7Ô7Ð7Ø×Ò˜˜kŸošo¨fÑ5Ô5Ñ6Ô6Ð6Ø×Ò˜˜{Ÿš¨uÑ5Ô5Ñ6Ô6Ð6Ø×Ò˜ §¢°Ñ <Ô <Ñ=Ô=Ð=Ð=Ð=r)   c                óÀ  — t          j        t          › d�dddddddd	d
dœ	¬¦  «        }t          j        |¦  «        }|                      |d         t          j        ¦  «         |                      |d         t          j	        ¦  «         |                      |d         t          j        ¦  «         |                      |d         t          j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        ¦  «         |                      d|d         j        j        ¦  «         dS )ú\
        staffDefFromElement(): corresponds to testUnit3() but without mock objects
        re  rÑ   r  rù  rÒ   r‘  r¸   r¹   r–   r—   )	ró  rm  rl  r¯   r§   r»   r¼   r™   rš   r›   r   r   r   r
   r�   r   r½   N)rE   rF   r   r   r‚  r!   r   Ú
Instrumentr   r“  r   r±   r
   r”  r,   rŸ   r³   r²   r�  rÁ   rá  s      r'   Ú testIntegration3StaffFromElementz%Test.testIntegration3StaffFromElementþ	  sR  € õ
 Œ}¥Ð0Ð0Ð0Ø*.¸SÐPSØ03Ø18ÈÐ\`Ø47Àsð%Lð %LðMñ Mô Mˆõ Ô)¨$Ñ/Ô/ˆð 	×Ò˜f \Ô2µJÔ4IÑJÔJÐJØ×Ò˜f Wœo­uÔ/BÑCÔCÐCØ×Ò˜f Uœm­SÔ-=Ñ>Ô>Ð>Ø×Ò˜f Vœn­d¬oÑ>Ô>Ð>Ø×Ò˜  w¤Ô ;Ñ<Ô<Ð<Ø×Ò˜ &¨¤-Ô"4Ñ5Ô5Ð5Ø×Ò˜˜F 5œMÔ0Ñ1Ô1Ð1Ø×Ò˜  |Ô 4Ô BÔ OÑPÔPÐPÐPÐPr)   c                óÞ   — t          j        t          › d�dddœ¬¦  «        }d|_        t          j        |_        d|j        i}	t          j        |¦  «        }
|  	                    |	|
¦  «         dS )	z?
        staffDefFromElement(): only specifies a meter
        re  rq   r–   r˜   r›   rv  r   N)
rE   rF   r   rH   r   r   r  r   r‚  rƒ  )r%   rh  r…  r†  r‡  rˆ  rš  r¡  rx   ra   r&   s              r'   ÚtestUnit4StaffFromElementzTest.testUnit4StaffFromElement
  s‰   € õ Œ}¥Ð0Ð0Ð0ÈØPSð:Uð :Uð Vñ Vô Vˆà 1ˆÔÝ%/Ô%CˆÔ"à˜XÔ2Ð3ˆõ Ô)¨$Ñ/Ô/ˆð 	×Ò˜X vÑ.Ô.Ð.Ð.Ð.r)   c                óþ   — t          j        t          › d�dddœ¬¦  «        }t          j        |¦  «        }|                      |d         t          j        ¦  «         |                      d|d         j	        ¦  «         dS )	r¤  re  rq   r–   r˜   r›   r   z1/3N)
rE   rF   r   r   r‚  r!   r   r“  r,   rŸ   rá  s      r'   Ú testIntegration4StaffFromElementz%Test.testIntegration4StaffFromElement0
  s�   € õ
 Œ}¥Ð0Ð0Ð0ÈØPSð:Uð :Uð Vñ Vô Vˆõ Ô)¨$Ñ/Ô/ˆð 	×Ò˜f Wœo­uÔ/BÑCÔCÐCØ×Ò˜  w¤Ô ;Ñ<Ô<Ð<Ð<Ð<r)   z$music21.mei.base.staffDefFromElementc                ó´  — t          j        d¦  «        }d„ t          d¦  «        D ¦   «         }|D ]}|                     |¦  «         Œd„ |_        d„ t          d¦  «        D ¦   «         }t          j        |di ¦  «        }|                      ||¦  «         |                      t          |¦  «        |j	        ¦  «         |D ]}| 
                    |d¦  «         ŒdS )zN
        staffGrpFromElement(): it's not a very complicated function!
        ÚstaffGrpc           	     óh   — g | ]/}t          j        t          › d �dt          |¦  «        i¬¦  «        ‘Œ0S )re  ró  r›   ©rE   rF   r   r‡   ©r   ró  s     r'   r�   z:Test.testStaffGrpUnit1StaffFromElement.<locals>.<listcomp>E
  sP   € ð Wð Wð WØHIõ ”m¥vÐ$7Ð$7Ð$7ÀÅcÈ!ÁfÄfÀÐNÑNÔNð Wð Wð Wr)   r‚   c                ó2   — d|                       d¦  «        › �S )Nú
processed ró  )rs   )rž  Úunused_ys     r'   r  z8Test.testStaffGrpUnit1StaffFromElement.<locals>.<lambda>I
  s   € Ð9RÀaÇeÂeÈCÁjÄjÐ9RÐ9R€ r)   c                ó4   — i | ]}t          |¦  «        d |› �“ŒS )r±  )r‡   r¯  s     r'   ú
<dictcomp>z:Test.testStaffGrpUnit1StaffFromElement.<locals>.<dictcomp>J
  s)   € Ð?Ð?Ð?°•C˜‘F”FÐ,¨Ð,Ð,Ð?Ð?Ð?r)   N)rE   rF   r†   rù  r  r   ÚstaffGrpFromElementr,   r}  r  rd  )r%   ÚmockStaffDefFErx   Ú
innerElemsÚeachElemra   r&   s          r'   Ú!testStaffGrpUnit1StaffFromElementz&Test.testStaffGrpUnit1StaffFromElement?
  s   € õ
 Œ}˜ZÑ(Ô(ˆðWð WÝMRÐSTÉXÌXðWñ Wô Wˆ
à"ð 	"ð 	"ˆHØ�KŠK˜Ñ!Ô!Ð!Ð!Ø%RÐ%RˆÔ"Ø?Ð?µe¸A±h´hÐ?Ñ?Ô?ˆåÔ)¨$°°bÑ9Ô9ˆà×Ò˜ 6Ñ*Ô*Ð*Ø×Ò�˜Z™œ¨.Ô*CÑDÔDÐDØ"ð 	;ð 	;ˆHØ×*Ò*¨8°TÑ:Ô:Ð:Ð:ð	;ð 	;r)   c                ó˜  — t          j        d¦  «        }d„ t          d¦  «        D ¦   «         }|D ]}|                     |¦  «         Œdt	          j        d¦  «        idt	          j        d¦  «        idt	          j        d¦  «        idt	          j        d¦  «        id	œ}t          j        |d
¦  «        }|                      ||¦  «         d
S )zX
        staffGrpFromElement(): with <staffDef> directly inside this <staffGrp>
        r¬  c           	     ó~   — g | ]:}t          j        t          › d �t          |dz   ¦  «        d|dz   › d�dœ¬¦  «        ‘Œ;S ©re  rƒ   r‘  r¤   )ró  r§   r¯   r›   r®  r¯  s     r'   r�   z9Test.testStaffGrpInt1StaffFromElement.<locals>.<listcomp>X
  óq   € ð )ð )ð )ð õ ”m¥vÐ$7Ð$7Ð$7Ý14°Q¸±U±´ÈØ:;¸a¹%°{°{°{ð,Dð ,DðEñ Eô Eð )ð )ð )r)   r‚   r   rf  úB-úE-úA-©rq   r  r–   rÈ   N)	rE   rF   r†   rù  r   r©   r   rµ  rƒ  )r%   rx   r·  r¸  ra   r&   s         r'   Ú testStaffGrpInt1StaffFromElementz%Test.testStaffGrpInt1StaffFromElementS
  sÛ   € õ Œ}˜ZÑ(Ô(ˆð)ð )õ  % Q™xœxð)ñ )ô )ˆ
ð #ð 	"ð 	"ˆHØ�KŠK˜Ñ!Ô!Ð!Ð!Ø¥¤¨¡¤Ð.Ø¥¤¨¡¤Ð/Ø¥¤¨¡¤Ð/Ø¥¤¨¡¤Ð/ð1ð 1ˆõ
 Ô)¨$°Ñ5Ô5ˆà×Ò˜X vÑ.Ô.Ð.Ð.Ð.r)   c                óú  — t          j        d¦  «        }d„ t          d¦  «        D ¦   «         }t          j        t          › d�¦  «        }|D ]}|                     |¦  «         Œ|                     |¦  «         dt          j        d¦  «        idt          j        d¦  «        idt          j        d¦  «        idt          j        d¦  «        id	œ}t          j        |d
¦  «        }|  	                    ||¦  «         d
S )zW
        staffGrpFromElement(): with <staffDef> embedded in another <staffGrp>
        r¬  c           	     ó~   — g | ]:}t          j        t          › d �t          |dz   ¦  «        d|dz   › d�dœ¬¦  «        ‘Œ;S r¼  r®  r¯  s     r'   r�   z9Test.testStaffGrpInt2StaffFromElement.<locals>.<listcomp>l
  r½  r)   r‚   r   rf  r¾  r¿  rÀ  rÁ  N)
rE   rF   r†   r   rù  r   r©   r   rµ  rƒ  )r%   rx   r·  ÚinnerGrpr¸  ra   r&   s          r'   Ú testStaffGrpInt2StaffFromElementz%Test.testStaffGrpInt2StaffFromElementg
  s  € õ Œ}˜ZÑ(Ô(ˆð)ð )õ  % Q™xœxð)ñ )ô )ˆ
õ ”=¥FÐ!4Ð!4Ð!4Ñ5Ô5ˆØ"ð 	&ð 	&ˆHØ�OŠO˜HÑ%Ô%Ð%Ð%Ø�Š�HÑÔÐØ¥¤¨¡¤Ð.Ø¥¤¨¡¤Ð/Ø¥¤¨¡¤Ð/Ø¥¤¨¡¤Ð/ð1ð 1ˆõ
 Ô)¨$°Ñ5Ô5ˆà×Ò˜X vÑ.Ô.Ð.Ð.Ð.r)   c                ó"  — t          j        ddddddœ¬¦  «        }d|_        d	|_        |j        |j        gg d
œ}t          j        |¦  «        }|                      ||¦  «         |                     |¦  «         |                     |¦  «         dS )zß
        scoreDefFromElement(): proper handling of the following attributes (see function docstring
            for more information).

        @meter.count, @meter.unit, @key.accid, @key.mode, @key.pname, @key.sig
        re  Ú4sr‘  r–   r—   ©r¯   r§   r™   rš   r›   rv  rw  )úall-part objectsúwhole-score objectsN)rE   rF   rH   r   ÚscoreDefFromElementr,   rL   )r%   r†  r‡  rx   ra   r&   s         r'   ÚtestUnit1ScoreDefFromElementz!Test.testUnit1ScoreDefFromElement€
  sº   € õ Œ}˜Z¸DÈgØ@CÐSVð1Xð 1Xð Yñ Yô Yˆà 1ˆÔØ/ˆÔØ)1Ô)>ÀÔ@TÐ(UØ+-ð/ð /ˆõ Ô)¨$Ñ/Ô/ˆð 	×Ò˜ 6Ñ*Ô*Ð*Ø×(Ò(¨Ñ.Ô.Ð.Ø×'Ò'¨Ñ-Ô-Ð-Ð-Ð-r)   c                óþ  — t          j        ddddddœ¬¦  «        }t          j        |¦  «        }|                      |d         d	         t
          j        ¦  «         |                      |d         d
         t          j        ¦  «         |  	                    d|d         d	         j
        ¦  «         |  	                    d|d         d
         j        ¦  «         |  	                    d|d         d
         j        ¦  «         dS )zX
        scoreDefFromElement(): corresponds to testUnit1() without mock objects
        re  rÈ  r‘  r–   r—   rÉ  r›   rÊ  r   rƒ   r�   r‚   N)rE   rF   r   rÌ  r!   r   r“  r   r±   r,   rŸ   r³   r²   rá  s      r'   Ú#testIntegration1ScoreDefFromElementz(Test.testIntegration1ScoreDefFromElement™
  s  € õ
 Œ}˜Z¸DÈgØ@CÐSVð1Xð 1Xð Yñ Yô Yˆõ Ô)¨$Ñ/Ô/ˆð 	×Ò˜fÐ%7Ô8¸Ô;½UÔ=PÑQÔQÐQØ×Ò˜fÐ%7Ô8¸Ô;½SÔ=MÑNÔNÐNØ×Ò˜ Ð'9Ô :¸1Ô =Ô IÑJÔJÐJØ×Ò˜ &Ð);Ô"<¸QÔ"?Ô"DÑEÔEÐEØ×Ò˜˜FÐ#5Ô6°qÔ9Ô@ÑAÔAÐAÐAÐAr)   z$music21.mei.base.staffGrpFromElementc                ó8  — t          j        ddddddœ¬¦  «        }t          j        t          › d�¦  «        }t          j        t          › d�d	d
dœ¬¦  «        }|                     |¦  «         |                     |¦  «         d|_        d|_        d	ddii|_        |j        |j        gg ddidœ}t          j        |¦  «        }|                      ||¦  «         |                     |¦  «         |                     |¦  «         |                     |d¦  «         dS )zJ
        scoreDefFromElement(): test for a <staffGrp> held within
        re  rÈ  r‘  r–   r—   rÉ  r›   r¬  rq   rq  ©ró  rn  rv  rw  r   z
A clarinet)rÊ  rË  rq   N)	rE   rF   r   rù  rH   r   rÌ  r,   rL   )	r%   ÚmockStaffGrpFEr†  r‡  rx   r¬  re  ra   r&   s	            r'   ÚtestUnit2ScoreDefFromElementz!Test.testUnit2ScoreDefFromElement«
  sU  € õ Œ}˜Z¸DÈgØ@CÐSVð1Xð 1Xð Yñ Yô Yˆå”=¥FÐ!4Ð!4Ð!4Ñ5Ô5ˆÝ”=¥FÐ!4Ð!4Ð!4Ø.1¸JÐ(GÐ(GðIñ Iô Iˆà�Š˜Ñ!Ô!Ð!Ø�Š�HÑÔÐØ 1ˆÔØ/ˆÔØ'*¨\¸<Ð,HÐ&IˆÔ#Ø)1Ô)>ÀÔ@TÐ(UØ+-Ø&¨Ð5ð7ð 7ˆõ
 Ô)¨$Ñ/Ô/ˆð 	×Ò˜ 6Ñ*Ô*Ð*Ø×(Ò(¨Ñ.Ô.Ð.Ø×'Ò'¨Ñ-Ô-Ð-Ø×.Ò.¨x¸Ñ>Ô>Ð>Ð>Ð>r)   c                óÀ  — t          j        ddddddœ¬¦  «        }t          j        t          › d�¦  «        }t          j        t          › d�d	d
dœ¬¦  «        }|                     |¦  «         |                     |¦  «         t	          j        |¦  «        }|                      |d         d         t          j        ¦  «         |                      |d         d         t          j
        ¦  «         |                      d|d         d         j        ¦  «         |                      d|d         d         j        ¦  «         |                      d|d         d         j        ¦  «         |                      d	|d	         d         j        ¦  «         |                      d
|d	         d         j        ¦  «         |                      |d	         d         t"          j        ¦  «         dS )zX
        scoreDefFromElement(): corresponds to testUnit2() without mock objects
        re  rÈ  r‘  r–   r—   rÉ  r›   r¬  rq   rq  rÑ  rÊ  r   rƒ   r�   r‚   r   N)rE   rF   r   rù  r   rÌ  r!   r   r“  r   r±   r,   rŸ   r³   r²   r€  r|  r   rq  )r%   rx   r¬  re  r&   s        r'   Ú#testIntegration2ScoreDefFromElementz(Test.testIntegration2ScoreDefFromElementÊ
  sÔ  € õ
 Œ}˜Z¸DÈgØ@CÐSVð1Xð 1Xð Yñ Yô Yˆå”=¥FÐ!4Ð!4Ð!4Ñ5Ô5ˆÝ”=¥FÐ!4Ð!4Ð!4Ø.1¸JÐ(GÐ(GðIñ Iô Iˆà�Š˜Ñ!Ô!Ð!Ø�Š�HÑÔÐõ Ô)¨$Ñ/Ô/ˆð 	×Ò˜fÐ%7Ô8¸Ô;½UÔ=PÑQÔQÐQØ×Ò˜fÐ%7Ô8¸Ô;½SÔ=MÑNÔNÐNØ×Ò˜ Ð'9Ô :¸1Ô =Ô IÑJÔJÐJØ×Ò˜ &Ð);Ô"<¸QÔ"?Ô"DÑEÔEÐEØ×Ò˜˜FÐ#5Ô6°qÔ9Ô@ÑAÔAÐAØ×Ò˜˜f Sœk¨,Ô7Ô>Ñ?Ô?Ð?Ø×Ò˜ V¨C¤[°Ô%>Ô%GÑHÔHÐHØ×Ò˜f Sœk¨,Ô7½Ô9LÑMÔMÐMÐMÐMr)   c                ój  — t          j        d¬¦  «        }d„ t          d¦  «        D ¦   «         }d|i}ddg}t          j        |d         d¦  «        t          j        |d         d¦  «        g}t	          j        ||¦  «        }|                      ||¦  «         |                      ||j        ¦  «         dS )	z\
        _processesEmbeddedElements(): that single m21 objects are handled properly
        útranslator returnrr   c                ó6   — g | ]}t          j        d ¦  «        ‘ŒS r   )rE   rF   r~   s     r'   r�   z2Test.testUnit1EmbeddedElements.<locals>.<listcomp>ì
  s"   € Ð<Ð<Ð<¨a•E”M &Ñ)Ô)Ð<Ð<Ð<r)   rV  r   r   Nrƒ   )r   rD   r†   r(  r   Ú_processEmbeddedElementsrv   r)  )r%   ÚmockTranslatorÚelementsr]  ra   ÚexpectedCallsr&   s          r'   ÚtestUnit1EmbeddedElementszTest.testUnit1EmbeddedElementsç
  s¶   € õ œÐ5HÐIÑIÔIˆØ<Ð<µ5¸±8´8Ð<Ñ<Ô<ˆØ˜>Ð*ˆØ'Ð)<Ð=ˆÝœ 8¨A¤;°Ñ5Ô5µt´yÀÈ!ÄÈdÑ7SÔ7SÐTˆåÔ.¨x¸ÑAÔAˆà× Ò  ¨6Ñ2Ô2Ð2Ø× Ò  °Ô0MÑNÔNÐNÐNÐNr)   c                ó†  — t          j        d¬¦  «        }t          j        ddg¬¦  «        }t          j        d¦  «        t          j        d¦  «        g}||dœ}g d¢}t	          j        ||¦  «        }|                      ||¦  «         |                     |d	         d
¦  «         |                     |d         d
¦  «         d
S )zb
        _processesEmbeddedElements(): that iterables of m21 objects are handled properly
        r×  rr   ú
embedded 1ú
embedded 2r   Úbeam)r   rá  )r×  rß  rà  r   Nrƒ   )r   rD   rE   rF   r   rÙ  rv   rL   )r%   rÚ  ÚmockBeamTranslatorrÛ  r]  ra   r&   s          r'   ÚtestUnit2EmbeddedElementszTest.testUnit2EmbeddedElementsö
  sÈ   € õ œÐ5HÐIÑIÔIˆÝ!œ^¸,ÈÐ9UÐVÑVÔVÐÝ”M &Ñ)Ô)­5¬=¸Ñ+@Ô+@ÐAˆØ)Ð3EÐFÐFˆØDÐDÐDˆåÔ.¨x¸ÑAÔAˆà× Ò  ¨6Ñ2Ô2Ð2Ø×.Ò.¨x¸¬{¸DÑAÔAÐAØ×2Ò2°8¸A´;ÀÑEÔEÐEÐEÐEr)   c                ó¬  — t          j        d¬¦  «        }t          j        d¦  «        t          j        d¦  «        g}d|i}d}dg}t          j                             |d         j        |¦  «        }t	          j        |||¦  «        }|  	                    ||¦  «         | 
                    |d         d¦  «         |j         
                    |¦  «         dS )	za
        _processesEmbeddedElements(): that un-translated elements are reported properly
        r×  rr   r   ÚbreamÚoceanrƒ   r   N)r   rD   rE   rF   r   Ú_UNPROCESSED_SUBELEMENTr;   r-   rÙ  rv   rL   Ú
printDebug)	r%   rJ  rÚ  rÛ  r]  Ú
callerNamera   ÚexpErrr&   s	            r'   ÚtestUnit3EmbeddedElementszTest.testUnit3EmbeddedElements  sË   € õ
 œÐ5HÐIÑIÔIˆÝ”M &Ñ)Ô)­5¬=¸Ñ+AÔ+AÐBˆØ˜>Ð*ˆØˆ
Ø'Ð(ˆÝÔ-×4Ò4°X¸a´[´_ÀjÑQÔQˆåÔ.¨x¸À*ÑMÔMˆà× Ò  ¨6Ñ2Ô2Ð2Ø×.Ò.¨x¸¬{¸DÑAÔAÐAØÔ×6Ò6°vÑ>Ô>Ð>Ð>Ð>r)   c                óà  — d}t          j        d|dddœ¬¦  «        }t          j        d¦  «        }t          j        d¦  «        }t          j        ¦   «         |_        t          j        |g¬¦  «        |_        t          j        d	¦  «        }d
}t          j        |||¦  «        }|                      ||¦  «         |j         	                    |¦  «         |j         	                    |¦  «         dS )úM
        addSlurs(): element with @m21SlurStart is handled correctly
        ú$ae0b1570-451f-4ee9-a136-2094e26a797br   N©Úm21SlurStartÚ
m21SlurEndÚslurr›   r5  ú	mock slurrr   ÚobjectT©
rE   rF   r   rD   ÚaddSpannedElementsÚgetByIdLocalr   ÚaddSlursr,   rL   ©r%   ÚtheUUIDrx   r#   ÚmockNewSlurÚobjra   r&   s           r'   ÚtestUnit1AddSlurszTest.testUnit1AddSlurs  së   € ð 9ˆÝŒ}˜V¸WØ;?Ø59ð-;ð -;ð <ñ <ô <ˆõ ”^ MÑ2Ô2ˆ
Ý”n [Ñ1Ô1ˆÝ)-¬Ñ)9Ô)9ˆÔ&Ý"&¤.¸{¸mÐ"LÑ"LÔ"Lˆ
ÔÝŒn˜XÑ&Ô&ˆØˆå”˜t S¨*Ñ5Ô5ˆà×Ò˜ 6Ñ*Ô*Ð*ØÔ×7Ò7¸Ñ@Ô@Ð@ØÔ&×>Ò>¸sÑCÔCÐCÐCÐCr)   c                ó
  — d}t          j        d|dddœ¬¦  «        }t          j        ¦   «         }t          j        ¦   «         }||_        |                     |¦  «         t          j        dd¬¦  «        }d	}t          j
        |||¦  «        }|                      ||¦  «         |                      |gt          |¦  «        ¦  «         |                      |gt          |¦  «        d
                              ¦   «         ¦  «         dS )rí  rî  r   Nrï  r›   úE-7ç       @©r!  Tr   )rE   rF   r   r$   ÚSlurÚidLocalrù  r   ÚNoter   rø  r,   rv   rˆ   ÚgetSpannedElements)r%   rú  rx   r#   ÚtheSlurrü  ra   r&   s           r'   ÚtestIntegration1AddSlurszTest.testIntegration1AddSlurs0  s  € ð 9ˆÝŒ}˜V¸WØ;?Ø59ð-;ð -;ð <ñ <ô <ˆõ Ô*Ñ,Ô,ˆ
Ý”,‘.”.ˆØ!ˆŒØ×Ò˜'Ñ"Ô"Ð"ÝŒi˜¨SÐ1Ñ1Ô1ˆØˆå”˜t S¨*Ñ5Ô5ˆà×Ò˜ 6Ñ*Ô*Ð*Ø× Ò  ' ­D°Ñ,<Ô,<Ñ=Ô=Ð=Ø× Ò  # ­¨ZÑ(8Ô(8¸Ô(;×(NÒ(NÑ(PÔ(PÑQÔQÐQÐQÐQr)   c                óà  — d}t          j        dd|ddœ¬¦  «        }t          j        d¦  «        }t          j        d¦  «        }t          j        ¦   «         |_        t          j        |g¬¦  «        |_        t          j        d	¦  «        }d
}t          j        |||¦  «        }|                      ||¦  «         |j         	                    |¦  «         |j         	                    |¦  «         dS )zK
        addSlurs(): element with @m21SlurEnd is handled correctly
        rî  r   Nrï  r›   r5  ró  rr   rô  Trõ  rù  s           r'   ÚtestUnit2AddSlurszTest.testUnit2AddSlursE  së   € ð 9ˆÝŒ}˜V¸TØ;BØ59ð-;ð -;ð <ñ <ô <ˆõ ”^ MÑ2Ô2ˆ
Ý”n [Ñ1Ô1ˆÝ)-¬Ñ)9Ô)9ˆÔ&Ý"&¤.¸{¸mÐ"LÑ"LÔ"Lˆ
ÔÝŒn˜XÑ&Ô&ˆØˆå”˜t S¨*Ñ5Ô5ˆà×Ò˜ 6Ñ*Ô*Ð*ØÔ×7Ò7¸Ñ@Ô@Ð@ØÔ&×>Ò>¸sÑCÔCÐCÐCÐCr)   zmusic21.spanner.Slurc                óö  — t          j        dddddœ¬¦  «        }t          j        d¦  «        }t          j        d¦  «        |_        t          j        d¦  «        |_        t          j        ¦   «         |j        _        t          j        d	¦  «        }t          j        ¦   «         |_        t          j        |g¬
¦  «        |_        t          j        d¦  «        }d}t          j	        |||¦  «        }|  
                    ||¦  «         |j                             |j        ¦  «         |j        j                             |¦  «         |j                             d¦  «         |j                             |¦  «         dS )ú`
        addSlurs(): element with @slur is handled correctly (both an 'i' and 't' slur)
        r   Nú1i 2trï  r›   r5  zslurBundle.appendró  zmock new slurrr   rô  Tr  )rE   rF   r   rD   rù  rH   rö  r÷  r   rø  r,   rL   )r%   r6  rx   r#   rû  rü  ra   r&   s           r'   ÚtestUnit3AddSlurszTest.testUnit3AddSlurs\  sR  € õ
 Œ}˜V¸TØ;?Ø5<ð->ð ->ð ?ñ ?ô ?ˆõ ”^ MÑ2Ô2ˆ
Ý œNÐ+>Ñ?Ô?ˆ
ÔÝ $¤¨{Ñ ;Ô ;ˆÔÝ37´>Ñ3CÔ3CˆÔÔ0Ý”n _Ñ5Ô5ˆÝ)-¬Ñ)9Ô)9ˆÔ&Ý"&¤.¸{¸mÐ"LÑ"LÔ"Lˆ
ÔÝŒn˜XÑ&Ô&ˆØˆå”˜t S¨*Ñ5Ô5ˆà×Ò˜ 6Ñ*Ô*Ð*ØÔ×1Ò1°(Ô2GÑHÔHÐHØÔÔ0×HÒHÈÑMÔMÐMØÔ×7Ò7¸Ñ<Ô<Ð<ØÔ&×>Ò>¸sÑCÔCÐCÐCÐCr)   c                óú  — t          j        dddddœ¬¦  «        }t          j        ¦   «         }t          j        ¦   «         }d|_        |                     |¦  «         t          j        dd¬	¦  «        }d
}t          j
        |||¦  «        }|                      ||¦  «         |                      |t          j        gt          |¦  «        ¦  «         |                      t          |¦  «        d         t          j        ¦  «         |                      |gt          |¦  «        d                              ¦   «         ¦  «         |                      |gt          |¦  «        d                              ¦   «         ¦  «         dS )r  r   Nr  rï  r›   r  rÿ  r   r  Trƒ   r   )rE   rF   r   r$   r  r  rù  r   r  r   rø  r,   rv   r   re  rˆ   r!   r  )r%   rx   r#   r  rü  ra   r&   s          r'   ÚtestIntegration3AddSlurszTest.testIntegration3AddSlursv  sX  € õ Œ}˜V¸TØ;?Ø5<ð->ð ->ð ?ñ ?ô ?ˆõ Ô*Ñ,Ô,ˆ
Ý”,‘.”.ˆØˆŒØ×Ò˜'Ñ"Ô"Ð"ÝŒi˜¨SÐ1Ñ1Ô1ˆØˆå”˜t S¨*Ñ5Ô5ˆà×Ò˜ 6Ñ*Ô*Ð*Ø× Ò  '­4¬8Ð!4µd¸:Ñ6FÔ6FÑGÔGÐGØ×Ò�d :Ñ.Ô.¨qÔ1µ7´<Ñ@Ô@Ð@Ø× Ò  # ­¨ZÑ(8Ô(8¸Ô(;×(NÒ(NÑ(PÔ(PÑQÔQÐQØ× Ò  # ­¨ZÑ(8Ô(8¸Ô(;×(NÒ(NÑ(PÔ(PÑQÔQÐQÐQÐQr)   c                óæ   — t          j        dddddœ¬¦  «        }t          j        d¦  «        }t          j        d¦  «        }d}t	          j        |||¦  «        }|                      ||¦  «         dS )zZ
        addSlurs(): nothing was added; all three slur-related attributes missing
        r   Nrï  r›   r5  rô  F©rE   rF   r   rD   r   rø  r,   ©r%   rx   r#   rü  ra   r&   s         r'   ÚtestUnit4AddSlurszTest.testUnit4AddSlursŒ  s‚   € õ Œ}˜V¸TØ;?Ø59ð-;ð -;ð <ñ <ô <ˆõ ”^ MÑ2Ô2ˆ
ÝŒn˜XÑ&Ô&ˆØˆå”˜t S¨*Ñ5Ô5ˆà×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r)   c                óæ   — t          j        dddddœ¬¦  «        }t          j        d¦  «        }t          j        d¦  «        }d}t	          j        |||¦  «        }|                      ||¦  «         dS )	z_
        addSlurs(): nothing was added; @slur is present, but only "medial" indicators
        r   Nz1m 2mrï  r›   r5  rô  Fr  r  s         r'   ÚtestUnit5AddSlurszTest.testUnit5AddSlurs›  s‚   € õ Œ}˜V¸TØ;?Ø5<ð->ð ->ð ?ñ ?ô ?ˆõ ”^ MÑ2Ô2ˆ
ÝŒn˜XÑ&Ô&ˆØˆå”˜t S¨*Ñ5Ô5ˆà×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r)   c                ó$  — t          j        dddddœ¬¦  «        }t          j        d¦  «        }t          j        t          ¬¦  «        |_        t          j        d¦  «        }d	}t          j        |||¦  «        }|                      ||¦  «         dS )
ú¶
        addSlurs(): nothing was added; when the Slur with id of @m21SlurStart can't be found

        NB: this tests that the inner function works---catching the IndexError
        r   ú$07f5513a-436a-4247-8a5d-85c10c661920Nrï  r›   r5  )r  rô  F)	rE   rF   r   rD   Ú
IndexErrorr÷  r   rø  r,   r  s         r'   ÚtestUnit6AddSlurszTest.testUnit6AddSlursª  s˜   € õ Œ}˜VØ5[Ø37Ø-1ð%3ð %3ð4ñ 4ô 4ˆõ ”^ MÑ2Ô2ˆ
Ý"&¤.½ZÐ"HÑ"HÔ"Hˆ
ÔÝŒn˜XÑ&Ô&ˆØˆå”˜t S¨*Ñ5Ô5ˆà×Ò˜ 6Ñ*Ô*Ð*Ð*Ð*r)   c                ó.  — t          j        dddddœ¬¦  «        }t          j        ¦   «         }t	          j        dd¬¦  «        }d	}t          j        |||¦  «        }|                      ||¦  «         |  	                    g t          |¦  «        ¦  «         dS )
r  r   r  Nrï  r›   rÿ  r   r  F)rE   rF   r   r$   r   r  r   rø  r,   rv   rˆ   r  s         r'   ÚtestIntegration6AddSlurszTest.testIntegration6AddSlurs½  s¥   € õ Œ}˜VØ5[Ø37Ø-1ð%3ð %3ð4ñ 4ô 4ˆõ Ô*Ñ,Ô,ˆ
ÝŒi˜¨SÐ1Ñ1Ô1ˆØˆå”˜t S¨*Ñ5Ô5ˆà×Ò˜ 6Ñ*Ô*Ð*Ø× Ò  ¥T¨*Ñ%5Ô%5Ñ6Ô6Ð6Ð6Ð6r)   c                óò  — d„ t          d¦  «        D ¦   «         }t          t          |¦  «        ¦  «        D ]”}t          j        d|› d�¦  «        ||         _        d||         j        j        _        t          j        ¦   «         ||         j        _        t          j        ¦   «         ||         j        _        d||         j	        _
        Œ•g d¢}t          j        |¦  «         t          t          |¦  «        ¦  «        D ]R}||         j        j                             ¦   «          ||         j        j                             d||         ¦  «         ŒS|d         j        j                             d	¦  «         d
S )zi
        beamTogether(): with three mock objects, that their "beams" attributes are set properly
        c                ó4   — g | ]}t          j        ¦   «         ‘ŒS r  ©r   rD   r~   s     r'   r�   z*Test.testBeamTogether1.<locals>.<listcomp>Ø  ó    € Ð9Ð9Ð9¨1•d”nÑ&Ô&Ð9Ð9Ð9r)   rW  úthing ú beamsr   rO  )r´  rÍ  rÍ  rV  rÓ  N)r†   r}  r   rD   rF  Ú__len__rH   rG  ÚsetAllr   r·  r   ÚbeamTogetherrL   ©r%   Ú
someThingsrŠ   ÚexpectedTypess       r'   ÚtestBeamTogether1zTest.testBeamTogether1Ô  sT  € ð :Ð9µ°a±´Ð9Ñ9Ô9ˆ
Ý•s˜:‘”Ñ'Ô'ð 	1ð 	1ˆAÝ"&¤.Ð1C¸!Ð1CÐ1CÐ1CÑ"DÔ"DˆJ�qŒMÔØ78ˆJ�qŒMÔÔ'Ô4Ý'+¤~Ñ'7Ô'7ˆJ�qŒMÔÔ$Ý)-¬Ñ)9Ô)9ˆJ�qŒMÔÔ&Ø*0ˆJ�qŒMÔ"Ô'Ð'Ø9Ð9Ð9ˆõ 	Ô˜*Ñ%Ô%Ð%å•s˜:‘”Ñ'Ô'ð 	Wð 	WˆAØ�qŒMÔÔ'×?Ò?ÑAÔAÐAØ�qŒMÔÔ$×<Ò<¸VÀ]ÐSTÔEUÑVÔVÐVÐVØ�1ŒÔÔ"×:Ò:¸6ÑBÔBÐBÐBÐBr)   c                óÐ  — d„ t          d¦  «        D ¦   «         }t          t          |¦  «        ¦  «        D ]”}t          j        d|› d�¦  «        ||         _        d||         j        j        _        t          j        ¦   «         ||         j        _        t          j        ¦   «         ||         j        _        d||         j	        _
        Œ•g d¢}d|d	         j        j        _        d|d         j        j        _        t          j        |¦  «         d
D ]R}||         j        j                             ¦   «          ||         j        j                             d||         ¦  «         ŒS|d         j        j                             d¦  «         dD ]X}|                      d||         j        j        j        ¦  «         |                      d||         j        j        j        ¦  «         ŒYdS )zj
        beamTogether(): with four mock objects, the middle two of which already have "beams" set
        c                ó4   — g | ]}t          j        ¦   «         ‘ŒS r  r  r~   s     r'   r�   z*Test.testBeamTogether2.<locals>.<listcomp>í  r   r)   r‚   r!  r"  r   rO  )r´  NNrÍ  rV  rƒ   )r   rW  rW  rÓ  )rƒ   rV  N)r†   r}  r   rD   rF  r#  rH   rG  r$  r   r·  r   r%  rL   r,   r  r&  s       r'   ÚtestBeamTogether2zTest.testBeamTogether2é  sÊ  € ð :Ð9µ°a±´Ð9Ñ9Ô9ˆ
Ý•s˜:‘”Ñ'Ô'ð 	1ð 	1ˆAÝ"&¤.Ð1C¸!Ð1CÐ1CÐ1CÑ"DÔ"DˆJ�qŒMÔØ78ˆJ�qŒMÔÔ'Ô4Ý'+¤~Ñ'7Ô'7ˆJ�qŒMÔÔ$Ý)-¬Ñ)9Ô)9ˆJ�qŒMÔÔ&Ø*0ˆJ�qŒMÔ"Ô'Ð'Ø9Ð9Ð9ˆð 45ˆ
�1ŒÔÔ#Ô0Ø34ˆ
�1ŒÔÔ#Ô0åÔ˜*Ñ%Ô%Ð%àð 	Wð 	WˆAØ�qŒMÔÔ'×?Ò?ÑAÔAÐAØ�qŒMÔÔ$×<Ò<¸VÀ]ÐSTÔEUÑVÔVÐVÐVØ�1ŒÔÔ"×:Ò:¸6ÑBÔBÐBØð 	Gð 	GˆAØ×Ò˜Q 
¨1¤Ô 3Ô 8Ô CÑDÔDÐDØ×Ò˜Q 
¨1¤Ô 3Ô :Ô EÑFÔFÐFÐFð	Gð 	Gr)   c                ó”  — d„ t          d¦  «        D ¦   «         }d|d<   dD ]”}t          j        d|› d�¦  «        ||         _        d||         j        j        _        t          j        ¦   «         ||         j        _        t          j        ¦   «         ||         j        _        d	||         j        _	        Œ•g d
¢}t          j        |¦  «         dD ]R}||         j        j                             ¦   «          ||         j        j                             d	||         ¦  «         ŒS|d         j        j                             d¦  «         dS )zg
        beamTogether(): with four mock objects, one of which doesn't have a "beams" attribute
        c                ó4   — g | ]}t          j        ¦   «         ‘ŒS r  r  r~   s     r'   r�   z*Test.testBeamTogether3.<locals>.<listcomp>	  r   r)   r‚   r@   rV  )r   rƒ   rW  r!  r"  r   rO  )r´  rÍ  NrÍ  rW  rÓ  N)r†   r   rD   rF  r#  rH   rG  r$  r   r·  r   r%  rL   r&  s       r'   ÚtestBeamTogether3zTest.testBeamTogether3  sA  € ð :Ð9µ°a±´Ð9Ñ9Ô9ˆ
Øˆ
�1‰Øð 	1ð 	1ˆAÝ"&¤.Ð1C¸!Ð1CÐ1CÐ1CÑ"DÔ"DˆJ�qŒMÔØ78ˆJ�qŒMÔÔ'Ô4Ý'+¤~Ñ'7Ô'7ˆJ�qŒMÔÔ$Ý)-¬Ñ)9Ô)9ˆJ�qŒMÔÔ&Ø*0ˆJ�qŒMÔ"Ô'Ð'Ø?Ð?Ð?ˆõ 	Ô˜*Ñ%Ô%Ð%àð 	Wð 	WˆAØ�qŒMÔÔ'×?Ò?ÑAÔAÐAØ�qŒMÔÔ$×<Ò<¸VÀ]ÐSTÔEUÑVÔVÐVÐVØ�1ŒÔÔ"×:Ò:¸6ÑBÔBÐBÐBÐBr)   c           	     óÞ  — t          j        t          j        ¦   «         ¬¦  «        }t	          d„ ¦  «        |_        t          j        ¦   «         |_        dt          › dt          › dt          › d�}g }t          d¦  «        D ]4}| 	                    t          j        dd|› �d	|› �d
œ¬¦  «        ¦  «         Œ5t          j        |¬¦  «        |j        _        t          j        |¦  «         |j        j                             |¦  «         t          d¦  «        D ]V}|                      d|j        d|› �         d         ¦  «         |                      d|j        d	|› �         d         ¦  «         ŒWdS )zS
        _ppTies(): that three ties are specified correctly in the m21Attr
        r>   c                 ó   — i S r  r  r  r)   r'   r  z$Test.testUnitTies1.<locals>.<lambda>'  ó   € °B€ r)   rA   rB   úscore//r   rW  ústart úend ©ÚstartidÚendidr›   rr   rŠ   rå  N)r   rD   r   r   r   r"   r    r   r†   rù  rE   rF   r#  Ú_ppTiesrL   r,   ©r%   ÚmockConverterÚexpectedIterfindr0  rŠ   s        r'   ÚtestUnitTies1zTest.testUnitTies1   s�  € õ œµÔ0FÑ0HÔ0HÐIÑIÔIˆÝ +¨J¨JÑ 7Ô 7ˆÔÝ%)¤^Ñ%5Ô%5ˆÔ"ØJ¥ÐJÐJµÐJÐJ½vÐJÐJÐJÐØˆÝ�q‘”ð 	Vð 	VˆAØ×!Ò!¥%¤-°È,ÐSTÈ,È,ØHRÈqÈ
È
ð?Tð ?Tð #Uñ #Uô #Uñ Vô Vð Vð Vå.2¬nÈ.Ð.YÑ.YÔ.YˆÔ"Ô+åŒ�]Ñ#Ô#Ð#àÔ"Ô+×CÒCÐDTÑUÔUÐUå�q‘”ð 	Lð 	LˆAØ×Ò˜S -Ô"7¸À¸¸Ô"EÀeÔ"LÑMÔMÐMØ×Ò˜S -Ô"7¸
¸q¸
¸
Ô"CÀEÔ"JÑKÔKÐKÐKð	Lð 	Lr)   c                ó>  — t          j        t          j        ¦   «         ¬¦  «        }t	          d„ ¦  «        |_        t          j        ¦   «         |_        dt          › dt          › dt          › d�}t          j	        dddd	œ¬
¦  «        g}t          j        |¬¦  «        |j        _
        t          j        |¦  «         |j        j
                             |¦  «         |                      dt          |j        ¦  «        ¦  «         |j                             d¦  «         dS )z_
        _ppTies(): <tie> without @startid and @endid is properly announced as failing
        r>   c                 ó   — i S r  r  r  r)   r'   r  z$Test.testUnitTies2.<locals>.<lambda>A  r2  r)   rA   rB   r3  r   ú4.1z4.2©ÚtstampÚtstamp2r›   rr   r   zAImporting <tie> without @startid and @endid is not yet supported.N)r   rD   r   r   r   r"   r    r   rE   rF   r#  r9  rL   r,   r}  rI  ©r%   rJ  r;  r<  r0  s        r'   ÚtestUnitTies2zTest.testUnitTies29  s  € õ œµÔ0FÑ0HÔ0HÐIÑIÔIˆÝ +¨J¨JÑ 7Ô 7ˆÔÝ%)¤^Ñ%5Ô%5ˆÔ"ØJ¥ÐJÐJµÐJÐJ½vÐJÐJÐJÐÝœ-¨ÀÐSXÐ6YÐ6YÐZÑZÔZÐ[ˆÝ.2¬nÈ.Ð.YÑ.YÔ.YˆÔ"Ô+åŒ�]Ñ#Ô#Ð#àÔ"Ô+×CÒCÐDTÑUÔUÐUà×Ò˜�C Ô 5Ñ6Ô6Ñ7Ô7Ð7ØÔ×0Ò0ØOñ	Qô 	Qð 	Qð 	Qð 	Qr)   c           	     ó,  — t          j        t          j        ¦   «         ¬¦  «        }t	          d„ ¦  «        |_        t          j        ¦   «         |_        dt          › dt          › dt          › d�}g }t          d¦  «        D ]4}| 	                    t          j        dd|› �d	|› �d
œ¬¦  «        ¦  «         Œ5t          j        |¬¦  «        |j        _        d„ |_        g |_        t          j        |¦  «         |j        j                             |¦  «         g }|                      dt%          |j        ¦  «        ¦  «         |j        D ]d}|                      |t           j        ¦  «         |                      dt%          |j        ¦  «        ¦  «         | 	                    |j        ¦  «         Œet          d¦  «        D ]X}|                      |j        d|› �         d         |v ¦  «         |                      |j        d	|› �         d         |v ¦  «         ŒYdS )zx
        _ppSlurs(): that three slurs are specified correctly in the m21Attr,
        and put in the slurBundle
        r>   c                 ó   — i S r  r  r  r)   r'   r  z%Test.testUnitSlurs1.<locals>.<lambda>Y  r2  r)   rA   rB   r3  rò  rW  r4  r5  r6  r›   rr   c                 ó*   — t          j        d¦  «        S ©Nza fake Slurr  r  r)   r'   r  z%Test.testUnitSlurs1.<locals>.<lambda>b  ó   € ¥t¤~°mÑ'DÔ'D€ r)   é$   rð  rñ  N)r   rD   r   r   r   r"   r    r   r†   rù  rE   rF   r#  r  r#   Ú_ppSlursrL   r,   r}  r!   r  r|  )r%   r6  r;  r<  r0  rŠ   ÚexpectedIdLocalÚeachSlurs           r'   ÚtestUnitSlurs1zTest.testUnitSlurs1P  sB  € õ œµÔ0FÑ0HÔ0HÐIÑIÔIˆÝ +¨J¨JÑ 7Ô 7ˆÔÝ%)¤^Ñ%5Ô%5ˆÔ"ØK¥ÐKÐKµÐKÐK½vÐKÐKÐKÐØˆÝ�q‘”ð 	Oð 	OˆAØ×!Ò!¥%¤-°ØCOÈAÀ<À<ØAKÈÀÀð8Mð 8Mð#Nñ #Nô #Nñ Oô Oð Oð Oõ /3¬nÈ.Ð.YÑ.YÔ.YˆÔ"Ô+ØDÐDˆÔà#%ˆÔ åŒ�mÑ$Ô$Ð$àÔ"Ô+×CÒCÐDTÑUÔUÐUàˆØ×Ò˜�C Ô 8Ñ9Ô9Ñ:Ô:Ð:Ø%Ô0ð 	5ð 	5ˆHØ×!Ò! (­D¬NÑ;Ô;Ð;Ø×Ò˜R¥ XÔ%5Ñ!6Ô!6Ñ7Ô7Ð7Ø×"Ò" 8Ô#3Ñ4Ô4Ð4Ð4å�q‘”ð 	0ð 	0ˆAØ�OŠO˜MÔ1°,¸1°,°,Ô?ÀÔOØ.ð/ñ 0ô 0ð 0à�OŠO˜MÔ1°*¸°*°*Ô=¸lÔKØ.ð/ñ 0ô 0ð 0ð 0ð	0ð 	0r)   c                ó¬  — t          j        t          j        ¦   «         ¬¦  «        }t	          d„ ¦  «        |_        t          j        ¦   «         |_        dt          › dt          › dt          › d�}t          j	        dddd	œ¬
¦  «        g}t          j        |¬¦  «        |j        _
        d„ |_        g |_        t          j        |¦  «         |j        j
                             |¦  «         |                      dt!          |j        ¦  «        ¦  «         |                      dt!          |j        ¦  «        ¦  «         |j                             d¦  «         dS )za
        _ppSlurs(): <slur> without @startid and @endid is properly announced as failing
        r>   c                 ó   — i S r  r  r  r)   r'   r  z%Test.testUnitSlurs2.<locals>.<lambda>�  r2  r)   rA   rB   r3  rò  r@  z4.3rA  r›   rr   c                 ó*   — t          j        d¦  «        S rI  r  r  r)   r'   r  z%Test.testUnitSlurs2.<locals>.<lambda>†  rJ  r)   r   zBImporting <slur> without @startid and @endid is not yet supported.N)r   rD   r   r   r   r"   r    r   rE   rF   r#  r  r#   rL  rL   r,   r}  rI  )r%   rJ  r6  r;  r<  r0  s         r'   ÚtestUnitSlurs2zTest.testUnitSlurs2x  sG  € õ œµÔ0FÑ0HÔ0HÐIÑIÔIˆÝ +¨J¨JÑ 7Ô 7ˆÔÝ%)¤^Ñ%5Ô%5ˆÔ"ØK¥ÐKÐKµÐKÐK½vÐKÐKÐKÐÝœ-¨À%ÐTYÐ7ZÐ7ZÐ[Ñ[Ô[Ð\ˆÝ.2¬nÈ.Ð.YÑ.YÔ.YˆÔ"Ô+ØDÐDˆÔà#%ˆÔ åŒ�mÑ$Ô$Ð$àÔ"Ô+×CÒCÐDTÑUÔUÐUà×Ò˜�C Ô 8Ñ9Ô9Ñ:Ô:Ð:à×Ò˜�C Ô 5Ñ6Ô6Ñ7Ô7Ð7ØÔ×0Ò0ØPñ	Rô 	Rð 	Rð 	Rð 	Rr)   c                óF  — t          j        t          j        ¦   «         ¬¦  «        }t	          d„ ¦  «        |_        t          j        ¦   «         |_        dt          › dt          › dt          › d�}g }t          d¦  «        D ]>}| 	                    t          j        dd|› �d	|› �d
|› d|› d|› �dœ¬¦  «        ¦  «         Œ?t          j        |¬¦  «        |j        _        t          j        |¦  «         |j        j                             |¦  «         t          d¦  «        D ]€}|                      d|j        d|› �         d         ¦  «         |                      d|j        d|› �         d         ¦  «         |                      d|j        d	|› �         d         ¦  «         Œ�dS )zq
        _ppBeams(): that three beamed notes are specified correctly in the m21Attr

        with @plist
        r>   c                 ó   — i S r  r  r  r)   r'   r  z%Test.testUnitBeams1.<locals>.<lambda>ž  r2  r)   rA   rB   r3  ÚbeamSpanrW  ústart-úend-ú#start-ú #mid-ú #end-)r7  r8  Úplistr›   rr   r´  rD  rÍ  úmid-rÓ  N©r   rD   r   r   r   r"   r    r   r†   rù  rE   rF   r#  Ú_ppBeamsrL   r,   r:  s        r'   ÚtestUnitBeams1zTest.testUnitBeams1•  sÌ  € õ œµÔ0FÑ0HÔ0HÐIÑIÔIˆÝ +¨J¨JÑ 7Ô 7ˆÔÝ%)¤^Ñ%5Ô%5ˆÔ"ØO¥ÐOÐOµÐOÐO½vÐOÐOÐOÐØˆÝ�q‘”ð 	ð 	ˆAØ×!Ò!Ý”˜jØ1=¸!°°Ø/9°a¨z¨zØ/N¸Ð/NÐ/NÀ!Ð/NÐ/NÈ1Ð/NÐ/Nð&(ð &(ð ñ  ô  ñô ð ð õ /3¬nÈ.Ð.YÑ.YÔ.YˆÔ"Ô+åŒ�mÑ$Ô$Ð$àÔ"Ô+×CÒCÐDTÑUÔUÐUå�q‘”ð 	Sð 	SˆAØ×Ò˜W mÔ&;¸LÀQ¸L¸LÔ&IÈ)Ô&TÑUÔUÐUØ×Ò˜Z¨Ô)>¸zÀa¸z¸zÔ)JÈ9Ô)UÑVÔVÐVØ×Ò˜V ]Ô%:¸:À!¸:¸:Ô%FÀyÔ%QÑRÔRÐRÐRð	Sð 	Sr)   c           	     óÞ  — t          j        t          j        ¦   «         ¬¦  «        }t	          d„ ¦  «        |_        t          j        ¦   «         |_        dt          › dt          › dt          › d�}g }t          d¦  «        D ]4}| 	                    t          j        dd|› �d	|› �d
œ¬¦  «        ¦  «         Œ5t          j        |¬¦  «        |j        _        t          j        |¦  «         |j        j                             |¦  «         t          d¦  «        D ]V}|                      d|j        d|› �         d         ¦  «         |                      d|j        d|› �         d         ¦  «         ŒWdS )zt
        _ppBeams(): that three beamed notes are specified correctly in the m21Attr

        without @plist
        r>   c                 ó   — i S r  r  r  r)   r'   r  z%Test.testUnitBeams2.<locals>.<lambda>À  r2  r)   rA   rB   r3  rV  rW  rY  ú#end-r6  r›   rr   r´  rW  rD  rÓ  rX  Nr^  r:  s        r'   ÚtestUnitBeams2zTest.testUnitBeams2·  s’  € õ œµÔ0FÑ0HÔ0HÐIÑIÔIˆÝ +¨J¨JÑ 7Ô 7ˆÔÝ%)¤^Ñ%5Ô%5ˆÔ"ØO¥ÐOÐOµÐOÐO½vÐOÐOÐOÐØˆÝ�q‘”ð 	Pð 	PˆAØ×!Ò!¥%¤-°
ØCPÈQÀ=À=ØALÈÀÀð8Nð 8Nð#Oñ #Oô #Oñ Pô Pð Pð Põ /3¬nÈ.Ð.YÑ.YÔ.YˆÔ"Ô+åŒ�mÑ$Ô$Ð$àÔ"Ô+×CÒCÐDTÑUÔUÐUå�q‘”ð 	Sð 	SˆAØ×Ò˜W mÔ&;¸LÀQ¸L¸LÔ&IÈ)Ô&TÑUÔUÐUØ×Ò˜V ]Ô%:¸:À!¸:¸:Ô%FÀyÔ%QÑRÔRÐRÐRð	Sð 	Sr)   c                ó>  — t          j        t          j        ¦   «         ¬¦  «        }t	          d„ ¦  «        |_        t          j        ¦   «         |_        dt          › dt          › dt          › d�}t          j	        dddd	œ¬
¦  «        g}t          j        |¬¦  «        |j        _
        t          j        |¦  «         |j        j
                             |¦  «         |                      dt          |j        ¦  «        ¦  «         |j                             d¦  «         dS )ze
        _ppBeams(): <beamSpan> without @startid and @endid is properly announced as failing
        r>   c                 ó   — i S r  r  r  r)   r'   r  z%Test.testUnitBeams3.<locals>.<lambda>Ú  r2  r)   rA   rB   r3  rV  z12.4z13.1rA  r›   rr   r   zFImporting <beamSpan> without @startid and @endid is not yet supported.N)r   rD   r   r   r   r"   r    r   rE   rF   r#  r_  rL   r,   r}  rI  rD  s        r'   ÚtestUnitBeams3zTest.testUnitBeams3Ò  s  € õ œµÔ0FÑ0HÔ0HÐIÑIÔIˆÝ +¨J¨JÑ 7Ô 7ˆÔÝ%)¤^Ñ%5Ô%5ˆÔ"ØO¥ÐOÐOµÐOÐO½vÐOÐOÐOÐÝœ-¨
ÀfÐY_Ð;`Ð;`ÐaÑaÔaÐbˆÝ.2¬nÈ.Ð.YÑ.YÔ.YˆÔ"Ô+åŒ�mÑ$Ô$Ð$àÔ"Ô+×CÒCÐDTÑUÔUÐUà×Ò˜�C Ô 5Ñ6Ô6Ñ7Ô7Ð7ØÔ×0Ò0ØTñ	Vô 	Vð 	Vð 	Vð 	Vr)   c                ó>  — t          j        t          j        ¦   «         ¬¦  «        }t	          d„ ¦  «        |_        t          j        ¦   «         |_        dt          › dt          › dt          › d�}d}d}g }t          d	¦  «        D ]8}| 	                    t          j        dd
|› d|› d|› �||dœ¬¦  «        ¦  «         Œ9t          j        |¬¦  «        |j        _        t          j        |¦  «         |j        j                             |¦  «         t          d	¦  «        D ]þ}|                      ||j        d|› �         d         ¦  «         |                      ||j        d|› �         d         ¦  «         |                      ||j        d|› �         d         ¦  «         |                      ||j        d|› �         d         ¦  «         |                      ||j        d|› �         d         ¦  «         |                      ||j        d|› �         d         ¦  «         ŒÿdS )zx
        _ppTuplets(): that three notes in a tuplet are specified correctly in the m21Attr

        with @plist
        r>   c                 ó   — i S r  r  r  r)   r'   r  z'Test.testUnitTuplets1.<locals>.<lambda>ò  r2  r)   rA   rB   r3  Ú
tupletSpanrï   rð   rW  rY  rZ  r[  )r\  ÚnumÚnumbaser›   rr   rW  rA  rB  r]  rX  N©r   rD   r   r   r   r"   r    r   r†   rù  rE   rF   r#  Ú
_ppTupletsrL   r,   ©r%   r;  r<  ÚtheNumÚ
theNumbaser0  rŠ   s          r'   ÚtestUnitTuplets1zTest.testUnitTuplets1é  si  € õ œµÔ0FÑ0HÔ0HÐIÑIÔIˆÝ +¨J¨JÑ 7Ô 7ˆÔÝ%)¤^Ñ%5Ô%5ˆÔ"ØQ¥ÐQÐQµÐQÐQ½vÐQÐQÐQÐØˆØˆ
ØˆÝ�q‘”ð 	1ð 	1ˆAØ×!Ò!¥%¤-ØØ!@¨1Ð!@Ð!@°AÐ!@Ð!@¸QÐ!@Ð!@Ø%Ø#-ð/ð /ð#0ñ #0ô #0ñ 1ô 1ð 1ð 1õ
 /3¬nÈ.Ð.YÑ.YÔ.YˆÔ"Ô+åŒ˜Ñ&Ô&Ð&àÔ"Ô+×CÒCÐDTÑUÔUÐUå�q‘”ð 		Tð 		TˆAØ×Ò˜V ]Ô%:¸<ÀA¸<¸<Ô%HÈÔ%XÑYÔYÐYØ×Ò˜ZØ*Ô2°<¸A°<°<Ô@ÐASÔTñVô Vð Và×Ò˜V ]Ô%:¸:À!¸:¸:Ô%FÀ~Ô%VÑWÔWÐWØ×Ò˜ZØ*Ô2°:¸!°:°:Ô>Ð?QÔRñTô Tð Tà×Ò˜V ]Ô%:¸:À!¸:¸:Ô%FÀ~Ô%VÑWÔWÐWØ×Ò˜ZØ*Ô2°:¸!°:°:Ô>Ð?QÔRñTô Tð Tð Tð		Tð 		Tr)   c                óJ  — t          j        t          j        ¦   «         ¬¦  «        }t	          d„ ¦  «        |_        t          j        ¦   «         |_        dt          › dt          › dt          › d�}d}d}t          j	        d||d	œ¬
¦  «        g}t          j        |¬¦  «        |j        _
        d}t          j        |¦  «         |j        j
                             |¦  «         |                      dt          |j        ¦  «        ¦  «         |j                             |¦  «         dS )z}
        _ppTuplets(): <tupletSpan> without (@startid and @endid) or
        @plist is properly announced as failing
        r>   c                 ó   — i S r  r  r  r)   r'   r  z'Test.testUnitTuplets2.<locals>.<lambda>  r2  r)   rA   rB   r3  rj  rï   rð   ©rk  rl  r›   rr   zRImporting <tupletSpan> without @startid and @endid or @plist is not yet supported.r   N)r   rD   r   r   r   r"   r    r   rE   rF   r#  rn  rL   r,   r}  rI  )r%   rJ  r;  r<  rp  rq  r0  Ú
expWarnings           r'   ÚtestUnitTuplets2zTest.testUnitTuplets2  s#  € õ œµÔ0FÑ0HÔ0HÐIÑIÔIˆÝ +¨J¨JÑ 7Ô 7ˆÔÝ%)¤^Ñ%5Ô%5ˆÔ"ØQ¥ÐQÐQµÐQÐQ½vÐQÐQÐQÐØˆØˆ
Ýœ-¨Ø7=È*Ð/UÐ/UðWñ Wô Wð Xˆå.2¬nÈ.Ð.YÑ.YÔ.YˆÔ"Ô+ðAˆ
õ 	Œ˜Ñ&Ô&Ð&àÔ"Ô+×CÒCÐDTÑUÔUÐUà×Ò˜�C Ô 5Ñ6Ô6Ñ7Ô7Ð7ØÔ×0Ò0°Ñ<Ô<Ð<Ð<Ð<r)   c                ó   — t          j        t          j        ¦   «         ¬¦  «        }t	          d„ ¦  «        |_        t          j        ¦   «         |_        dt          › dt          › dt          › d�}d}d}g }t          d	¦  «        D ]6}| 	                    t          j        dd
|› �d|› �||dœ¬¦  «        ¦  «         Œ7t          j        |¬¦  «        |j        _        t          j        |¦  «         |j        j                             |¦  «         dD ]þ}|                      ||j        d|› �         d         ¦  «         |                      ||j        d|› �         d         ¦  «         |                      d|j        d|› �         d         ¦  «         |                      ||j        d|› �         d         ¦  «         |                      ||j        d|› �         d         ¦  «         |                      d|j        d|› �         d         ¦  «         ŒÿdS )z©
        _ppTuplets(): that three notes in a tuplet are specified correctly in the m21Attr

        without @plist (this should set @m21TupletSearch attributes)
        r>   c                 ó   — i S r  r  r  r)   r'   r  z'Test.testUnitTuplets3.<locals>.<lambda>5  r2  r)   rA   rB   r3  rj  rï   rð   rW  rY  rc  )r7  r8  rk  rl  r›   rr   ©r   rV  rW  rA  rB  r´  rC  rX  r±  Nrm  ro  s          r'   ÚtestUnitTuplets3zTest.testUnitTuplets3,  sb  € õ œµÔ0FÑ0HÔ0HÐIÑIÔIˆÝ +¨J¨JÑ 7Ô 7ˆÔÝ%)¤^Ñ%5Ô%5ˆÔ"ØQ¥ÐQÐQµÐQÐQ½vÐQÐQÐQÐØˆØˆ
ØˆÝ�q‘”ð 	Qð 	QˆAØ×!Ò!¥%¤-°ØCPÈQÀ=À=ØALÈÀÀØ?EØCMð8Oð 8Oð#Pñ #Pô #Pñ Qô Qð Qð Qõ
 /3¬nÈ.Ð.YÑ.YÔ.YˆÔ"Ô+åŒ˜Ñ&Ô&Ð&àÔ"Ô+×CÒCÐDTÑUÔUÐUàð 		Zð 		ZˆAØ×Ò˜V ]Ô%:¸<ÀA¸<¸<Ô%HÈÔ%XÑYÔYÐYØ×Ò˜ZØ*Ô2°<¸A°<°<Ô@ÐASÔTñVô Vð Và×Ò˜WØ*Ô2°<¸A°<°<Ô@ÐARÔSñUô Uð Uà×Ò˜V ]Ô%:¸:À!¸:¸:Ô%FÀ~Ô%VÑWÔWÐWØ×Ò˜ZØ*Ô2°:¸!°:°:Ô>Ð?QÔRñTô Tð Tà×Ò˜U MÔ$9¸*À¸*¸*Ô$EÐFWÔ$XÑYÔYÐYÐYð		Zð 		Zr)   c                ó>  — d}t          j        t          j        ¦   «         ¬¦  «        }t	          j        |¦  «        |_        t          d„ ¦  «        |_        d|j        d         d<   d|j        d         d<   t          dddddi}t          d	i}t          j
        |¦  «         |j                             d
t          › d�¦  «        }|j                             d
t          › d�¦  «        }|                      ||j        ¦  «         |                      ||j        ¦  «         dS )z.
        _ppConclude(): that it works
        zB<mei><music><note xml:id="one"/><note xml:id="two"/></music></mei>r>   c                 ó   — i S r  r  r  r)   r'   r  z(Test.testUnitConclude1.<locals>.<lambda>Y  r2  r)   Ú14rY  Únewrô  ÚotherrT  z*//*[@z="one"]z="two"]N)r   rD   r   r   rE   r  r    r   r"   r   Ú_ppConcluderG   r,   rœ   )r%   ÚtheDocumentr;  ÚexpNoteOneAttribÚexpNoteTwoAttribÚnoteOneÚnoteTwos          r'   ÚtestUnitConclude1zTest.testUnitConclude1R  s  € ð _ˆÝœµÔ0FÑ0HÔ0HÐIÑIÔIˆÝ%*Ô%5°kÑ%BÔ%BˆÔ"Ý +¨J¨JÑ 7Ô 7ˆÔØ.2ˆÔ˜eÔ$ UÑ+Ø04ˆÔ˜eÔ$ WÑ-Ý" E¨5°$¸ÀÐFÐÝ" E˜?ÐåÔ˜Ñ'Ô'Ð'àÔ,×1Ò1Ð2J½6Ð2JÐ2JÐ2JÑKÔKˆØÔ,×1Ò1Ð2J½6Ð2JÐ2JÐ2JÑKÔKˆØ×ÒÐ)¨7¬>Ñ:Ô:Ð:Ø×ÒÐ)¨7¬>Ñ:Ô:Ð:Ð:Ð:r)   c                óB  — d„ t          d¦  «        D ¦   «         }t          j        dddddœ¬¦  «        }t          j        ||¦  «         |D ]S}|                      d|j        ¦  «         |                      d|j        ¦  «         |                      d|j        ¦  «         ŒTd	S )
zg
        scaleToTuplet(): with three objects, the "tuplet search" attributes are set properly.
        c                ó4   — g | ]}t          j        ¦   «         ‘ŒS r  ©r   r  r~   s     r'   r�   z%Test.testTuplets1.<locals>.<listcomp>o  ó   € Ð.Ð.Ð. •”	‘”Ð.Ð.Ð.r)   rW  Ú	tupletDefrÑ   Ú400z
the forest)rA  rB  rC  r›   N)	r†   rE   rF   r   ÚscaleToTupletr,   rA  rB  rC  )r%   Úobjsrx   rü  s       r'   ÚtestTuplets1zTest.testTuplets1k  sÍ   € ð /Ð.¥U¨1¡X¤XÐ.Ñ.Ô.ˆÝŒ}˜[Ø59Ø9>Ø8Dð%Fð %FðGñ Gô Gˆõ
 	Ô˜4 Ñ&Ô&Ð&àð 	@ð 	@ˆCØ×Ò˜T 3Ô#3Ñ4Ô4Ð4Ø×Ò˜U CÔ$8Ñ9Ô9Ð9Ø×Ò˜\¨3Ô+>Ñ?Ô?Ð?Ð?ð	@ð 	@r)   zmusic21.duration.Tupletc                ó8  — d„ t          d¦  «        D ¦   «         }|D ]D}t          j        ¦   «         |_        d|j        _        t          j        ¦   «         g|j        _        ŒEt          j        dddddœ¬	¦  «        }d
|_        t          j	        dddd¬¦  «        }t          j        ||¦  «         |                      d|j        ¦  «         |j        D ]}|                      ||¦  «         Œ|D ]-}|                      d|j        j        d         j        ¦  «         Œ.dS )zx
        scaleToTuplet(): with three objects, their
        duration is scaled properly. (With @m21TupletType).
        c                ó4   — g | ]}t          j        ¦   «         ‘ŒS r  rŠ  r~   s     r'   r�   z%Test.testTuplets2.<locals>.<listcomp>‚  r‹  r)   rW  úduration typerŒ  rÑ   r�  Úbanana)rA  rB  ro  r›   úa TupletrŽ   é�  ©ÚnumberNotesActualÚdurationActualÚnumberNotesNormalÚdurationNormalr   N©r†   r   rD   r   r·  rw  rE   rF   rH   r(  r   rŽ  r,   r  r)  ©r%   rP   r�  rü  rx   ÚexpectedCallÚeachCalls          r'   ÚtestTuplets2zTest.testTuplets2|  sU  € ð /Ð.¥U¨1¡X¤XÐ.Ñ.Ô.ˆØð 	6ð 	6ˆCÝœ>Ñ+Ô+ˆCŒLØ /ˆCŒLÔÝ$(¤NÑ$4Ô$4Ð#5ˆCŒLÔ Ð ÝŒ}˜[Ø59Ø9>Ø6>ð%@ð %@ðAñ Aô Aˆð #-ˆ
ÔÝ”y°2ÀoØ36ÀðXñ Xô Xˆõ 	Ô˜4 Ñ&Ô&Ð&à×Ò˜˜JÔ1Ñ2Ô2Ð2Ø"Ô1ð 	5ð 	5ˆHØ×Ò˜\¨8Ñ4Ô4Ð4Ð4Øð 	Eð 	EˆCØ×Ò˜X s¤|Ô';¸AÔ'>Ô'CÑDÔDÐDÐDð	Eð 	Er)   c                ó8  — d„ t          d¦  «        D ¦   «         }|D ]D}t          j        ¦   «         |_        d|j        _        t          j        ¦   «         g|j        _        ŒEt          j        dddddœ¬	¦  «        }d
|_        t          j	        dddd¬¦  «        }t          j        ||¦  «         |                      d|j        ¦  «         |j        D ]}|                      ||¦  «         Œ|D ]-}|                      d|j        j        d         j        ¦  «         Œ.dS )zy
        scaleToTuplet(): with three objects, their duration is
        scaled properly. (With @tuplet == 'i1').
        c                óZ   — g | ](}t          j        t          j        ¦   «         ¬ ¦  «        ‘Œ)S ©©Úspec©r   rD   r   r  r~   s     r'   r�   z%Test.testTuplets3.<locals>.<listcomp>�  ó+   € ÐCÐCÐC°Q•”¥D¤I¡K¤KÐ0Ñ0Ô0ÐCÐCÐCr)   rW  r“  rŒ  rÑ   r�  r2  ©rA  rB  Útupletr›   r•  rŽ   r–  r—  r´  r   Nrœ  r�  s          r'   ÚtestTuplets3zTest.testTuplets3—  sS  € ð DÐC½%À¹(¼(ÐCÑCÔCˆØð 	6ð 	6ˆCÝœ>Ñ+Ô+ˆCŒLØ /ˆCŒLÔÝ$(¤NÑ$4Ô$4Ð#5ˆCŒLÔ Ð ÝŒ}˜[À$Ð\aØ<@ð2Bð 2Bð Cñ Cô Cˆà",ˆ
ÔÝ”y°2ÀoØ36ÀðXñ Xô Xˆõ 	Ô˜4 Ñ&Ô&Ð&à×Ò˜˜JÔ1Ñ2Ô2Ð2Ø"Ô1ð 	5ð 	5ˆHØ×Ò˜\¨8Ñ4Ô4Ð4Ð4Øð 	Dð 	DˆCØ×Ò˜W c¤lÔ&:¸1Ô&=Ô&BÑCÔCÐCÐCð	Dð 	Dr)   c                ó@  — t          j        t          j        ¦   «         ¬¦  «        }t          j        ¦   «         |_        d|j        _        t          j        ¦   «         g|j        _        t          j        dddddœ¬¦  «        }d	|_	        t          j
        d
ddd¬¦  «        }t          j        ||¦  «         |                      d|j        ¦  «         |                      ||j        d         ¦  «         |                      d|j        j        d         j        ¦  «         dS )zl
        scaleToTuplet(): with one object, its duration is scaled properly. (With @tuplet == 't1').
        r¤  r“  rŒ  rÑ   r�  Út1r¨  r›   r•  rŽ   r–  r—  rƒ   r   rÓ  N)r   rD   r   r  r   r·  rw  rE   rF   rH   r(  r   rŽ  r,   r  r)  )r%   rP   rü  rx   rž  s        r'   ÚtestTuplets4zTest.testTuplets4°  s  € õ
 Œn¥$¤)¡+¤+Ð.Ñ.Ô.ˆÝ”~Ñ'Ô'ˆŒØ+ˆŒÔÝ $¤Ñ 0Ô 0Ð1ˆŒÔÝŒ}˜[À$Ð\aØ<@ð2Bð 2Bð Cñ Cô Cˆà",ˆ
ÔÝ”y°2ÀoØ36ÀðXñ Xô Xˆõ 	Ô˜3 Ñ%Ô%Ð%à×Ò˜˜JÔ1Ñ2Ô2Ð2Ø×Ò˜ zÔ'@ÀÔ'CÑDÔDÐDØ×Ò˜ ¤Ô!5°aÔ!8Ô!=Ñ>Ô>Ð>Ð>Ð>r)   c                ó:  — d„ t          d¦  «        D ¦   «         }|D ]D}t          j        ¦   «         |_        d|j        _        t          j        ¦   «         g|j        _        ŒEt          j        t          j        ¦   «         ¬¦  «        |d<   t          j	        dddd	d
œ¬¦  «        }d|_
        t          j        dddd¬¦  «        }t          j        ||¦  «         |                      d|j        ¦  «         |j        D ]}|                      ||¦  «         Œ|                      d|d         j        j        d         j        ¦  «         |                      g |d         j        j        ¦  «         |                      d|d         j        j        d         j        ¦  «         dS )z�
        scaleToTuplet(): with three objects, their duration is scaled properly. (One of the objects
        isn't a Note/Chord/Rest).
        c                óZ   — g | ](}t          j        t          j        ¦   «         ¬ ¦  «        ‘Œ)S r£  r¦  r~   s     r'   r�   z%Test.testTuplets5.<locals>.<listcomp>Ë  r§  r)   rW  r“  r¤  rƒ   rŒ  rÑ   r�  r2  r¨  r›   r•  rŽ   r–  r—  rV  r´  r   N)r†   r   rD   r   r·  rw  r
   r”  rE   rF   rH   r(  r   rŽ  r,   r  r)  r�  s          r'   ÚtestTuplets5zTest.testTuplets5Å  s¤  € ð DÐC½%À¹(¼(ÐCÑCÔCˆØð 	6ð 	6ˆCÝœ>Ñ+Ô+ˆCŒLØ /ˆCŒLÔÝ$(¤NÑ$4Ô$4Ð#5ˆCŒLÔ Ð Ý”.¥d¤oÑ&7Ô&7Ð8Ñ8Ô8ˆˆQ‰ÝŒ}˜[À$Ð\aØ<@ð2Bð 2Bð Cñ Cô Cˆà",ˆ
ÔÝ”y°2ÀoØ36ÀðXñ Xô Xˆõ 	Ô˜4 Ñ&Ô&Ð&à×Ò˜˜JÔ1Ñ2Ô2Ð2Ø"Ô1ð 	5ð 	5ˆHØ×Ò˜\¨8Ñ4Ô4Ð4Ð4Ø×Ò˜ $ q¤'Ô"2Ô":¸1Ô"=Ô"BÑCÔCÐCØ×Ò˜˜T !œWÔ-Ô<Ñ=Ô=Ð=Ø×Ò˜ $ q¤'Ô"2Ô":¸1Ô"=Ô"BÑCÔCÐCÐCÐCr)   c                ó†  — t          j        dddi¬¦  «        }|                      t          j        t          j        |¦  «         	 t          j        |¦  «         nG# t          j        $ r5}|                      t          j        |j        d         ¦  «         Y d}~nd}~ww xY wt          j        dddi¬¦  «        }|                      t          j        t          j        |¦  «         	 t          j        |¦  «         dS # t          j        $ r6}|                      t          j        |j        d         ¦  «         Y d}~dS d}~ww xY w)	z�
        tupletFromElement(): when either @num or @numbase isn't in the element, raise an
            MeiAttributeError.
        r©  rk  r–   r›   r   Nrl  r  )	rE   rF   r1   r   r<  ÚtupletFromElementr,   Ú_MISSING_TUPLET_DATAr4   )r%   rx   Úerrs      r'   ÚtestTuplets6zTest.testTuplets6à  sU  € õ Œ}˜X¨u°c¨lÐ;Ñ;Ô;ˆØ×Ò�$Ô0µ$Ô2HÈ$ÑOÔOÐOð	EÝÔ" 4Ñ(Ô(Ð(Ð(øÝÔ%ð 	Eð 	Eð 	EØ×Ò�TÔ6¸¼À¼ÑDÔDÐDÐDÐDÐDÐDÐDøøøøð	Eøøøõ Œ}˜X¨y¸#Ð.>Ð?Ñ?Ô?ˆØ×Ò�$Ô0µ$Ô2HÈ$ÑOÔOÐOð	EÝÔ" 4Ñ(Ô(Ð(Ð(Ð(øÝÔ%ð 	Eð 	Eð 	EØ×Ò�TÔ6¸¼À¼ÑDÔDÐDÐDÐDÐDÐDÐDÐDøøøøð	Eøøøs0   ÁA ÁBÁ)+BÂBÃ%C; Ã;E Ä
+D;Ä;E zmusic21.mei.base.beamTogetherc                óÆ  — t          j        ddddœ¬¦  «        }d„ t          d¦  «        D ¦   «         }|D ]J}t          j        t          j        ¦   «         ¬¦  «        g|j        _        d	|j        j        d
         _        ŒK||_	        d„ |_
        t          j        |¦  «        }|                      ||¦  «         |                     |¦  «         |                      d|d
         j        j        d
         j        ¦  «         |                      d	|d         j        j        d
         j        ¦  «         |                      d|d         j        j        d
         j        ¦  «         dS )zc
        tupletFromElement(): everything set properly in a triplet; no extraneous elements
        r©  r–   r  ru  r›   c                óZ   — g | ](}t          j        t          j        ¦   «         ¬ ¦  «        ‘Œ)S r£  r¦  r~   s     r'   r�   z%Test.testTuplets7.<locals>.<listcomp>ü  ó+   € ÐHÐHÐH¸!•T”^­¬©¬Ð5Ñ5Ô5ÐHÐHÐHr)   rW  r¤  Údefaultr   c                ó   — | S r  r  r  s    r'   r  z#Test.testTuplets7.<locals>.<lambda>  ó   € ¨€ r)   r´  rƒ   rÓ  rV  N)rE   rF   r†   r   rD   r   ÚTupletrw  r·  rH   r  r   r²  rv   rL   r,   )r%   ÚmockBeamrP   ÚmockEmbeddedrx   Ú	mockNotesrü  r&   s           r'   ÚtestTuplets7zTest.testTuplets7ô  sI  € õ Œ}˜X°cÀcÐ.JÐ.JÐKÑKÔKˆØHÐH½uÀQ¹x¼xÐHÑHÔHˆ	Øð 	5ð 	5ˆCÝ$(¤N½¼Ñ8IÔ8IÐ$JÑ$JÔ$JÐ#KˆCŒLÔ Ø+4ˆCŒLÔ  Ô#Ô(Ð(Ø"+ˆ
ÔØ*˜{ˆÔåÔ'¨Ñ-Ô-ˆà× Ò  ¨FÑ3Ô3Ð3Ø×(Ò(¨Ñ3Ô3Ð3Ø×Ò˜ )¨A¤,Ô"7Ô"?ÀÔ"BÔ"GÑHÔHÐHØ×Ò˜ I¨a¤LÔ$9Ô$AÀ!Ô$DÔ$IÑJÔJÐJØ×Ò˜ ¨1¤Ô!6Ô!>¸qÔ!AÔ!FÑGÔGÐGÐGÐGr)   c                ó"  — t          j        ddddœ¬¦  «        }d„ t          d¦  «        D ¦   «         }|D ]J}t          j        t          j        ¦   «         ¬¦  «        g|j        _        d	|j        j        d
         _        ŒKdD ]+}t          j        t          j
        ¦   «         ¬¦  «        ||<   Œ,||_        d„ |_        t          j        |¦  «        }|                      ||¦  «         |                     |¦  «         |                      d|d
         j        j        d
         j        ¦  «         |                      d	|d         j        j        d
         j        ¦  «         |                      d|d         j        j        d
         j        ¦  «         dS )zk
        tupletFromElement(): everything set properly in a triplet; extraneous elements interposed
        r©  r–   r  ru  r›   c                óZ   — g | ](}t          j        t          j        ¦   «         ¬ ¦  «        ‘Œ)S r£  r¦  r~   s     r'   r�   z%Test.testTuplets8.<locals>.<listcomp>  r¸  r)   r°   r¤  r¹  r   )rƒ   rV  r‚   c                ó   — | S r  r  r  s    r'   r  z#Test.testTuplets8.<locals>.<lambda>  r»  r)   r´  rW  rÓ  r@   N©rE   rF   r†   r   rD   r   r¼  rw  r·  r
   r”  rH   r  r   r²  rv   rL   r,   ©	r%   r½  rP   r¾  rx   r¿  rü  rŠ   r&   s	            r'   ÚtestTuplets8zTest.testTuplets8  sz  € õ Œ}˜X°cÀcÐ.JÐ.JÐKÑKÔKˆØHÐH½uÀQ¹x¼xÐHÑHÔHˆ	Øð 	5ð 	5ˆCÝ$(¤N½¼Ñ8IÔ8IÐ$JÑ$JÔ$JÐ#KˆCŒLÔ Ø+4ˆCŒLÔ  Ô#Ô(Ð(Øð 	Bð 	BˆAÝœ>­t¬Ñ/@Ô/@ÐAÑAÔAˆI�a‰LˆLØ"+ˆ
ÔØ*˜{ˆÔåÔ'¨Ñ-Ô-ˆà× Ò  ¨FÑ3Ô3Ð3Ø×(Ò(¨Ñ3Ô3Ð3Ø×Ò˜ )¨A¤,Ô"7Ô"?ÀÔ"BÔ"GÑHÔHÐHØ×Ò˜ I¨a¤LÔ$9Ô$AÀ!Ô$DÔ$IÑJÔJÐJØ×Ò˜ ¨1¤Ô!6Ô!>¸qÔ!AÔ!FÑGÔGÐGÐGÐGr)   c                ó"  — t          j        ddddœ¬¦  «        }d„ t          d¦  «        D ¦   «         }|D ]J}t          j        t          j        ¦   «         ¬¦  «        g|j        _        d	|j        j        d
         _        ŒKdD ]+}t          j        t          j
        ¦   «         ¬¦  «        ||<   Œ,||_        d„ |_        t          j        |¦  «        }|                      ||¦  «         |                     |¦  «         |                      d|d         j        j        d
         j        ¦  «         |                      d	|d         j        j        d
         j        ¦  «         |                      d|d         j        j        d
         j        ¦  «         dS )z�
        tupletFromElement(): everything set properly in a triplet; extraneous elements interposed,
            prepended, and appended
        r©  r–   r  ru  r›   c                óZ   — g | ](}t          j        t          j        ¦   «         ¬ ¦  «        ‘Œ)S r£  r¦  r~   s     r'   r�   z%Test.testTuplets9.<locals>.<listcomp>/  r¸  r)   é   r¤  r¹  r   )r   rV  rW  r@   é   c                ó   — | S r  r  r  s    r'   r  z#Test.testTuplets9.<locals>.<lambda>6  r»  r)   r´  rƒ   r‚   rÓ  r°   NrÄ  rÅ  s	            r'   ÚtestTuplets9zTest.testTuplets9%  sz  € õ Œ}˜X°cÀcÐ.JÐ.JÐKÑKÔKˆØHÐH½uÀQ¹x¼xÐHÑHÔHˆ	Øð 	5ð 	5ˆCÝ$(¤N½¼Ñ8IÔ8IÐ$JÑ$JÔ$JÐ#KˆCŒLÔ Ø+4ˆCŒLÔ  Ô#Ô(Ð(Ø ð 	Bð 	BˆAÝœ>­t¬Ñ/@Ô/@ÐAÑAÔAˆI�a‰LˆLØ"+ˆ
ÔØ*˜{ˆÔåÔ'¨Ñ-Ô-ˆà× Ò  ¨FÑ3Ô3Ð3Ø×(Ò(¨Ñ3Ô3Ð3Ø×Ò˜ )¨A¤,Ô"7Ô"?ÀÔ"BÔ"GÑHÔHÐHØ×Ò˜ I¨a¤LÔ$9Ô$AÀ!Ô$DÔ$IÑJÔJÐJØ×Ò˜ ¨1¤Ô!6Ô!>¸qÔ!AÔ!FÑGÔGÐGÐGÐGr)   c                ó  — d„ t          d¦  «        D ¦   «         }d„ t          d¦  «        D ¦   «         }t          j        |¦  «        }t          t          |¦  «        ¦  «        D ])}|                      ||         ||         j        ¦  «         Œ*dS )zl
        _guessTuplets(): given a list of stuff without tuplet-guessing attributes, make no changes
        c                ó8   — g | ]}t          j        d ¬¦  «        ‘ŒS ©r  r  rŠ  r~   s     r'   r�   z%Test.testTuplet10.<locals>.<listcomp>D  ó%   € ÐCÐCÐC°Q•D”I¨CÐ0Ñ0Ô0ÐCÐCÐCr)   r@   c                ó   — g | ]}d ‘ŒS )r  r  r~   s     r'   r�   z%Test.testTuplet10.<locals>.<listcomp>E  s   € Ð.Ð.Ð. ˜Ð.Ð.Ð.r)   N)r†   r   Ú_guessTupletsr}  r,   r!  ©r%   ÚtheLayerÚexpectedDursr&   rŠ   s        r'   ÚtestTuplet10zTest.testTuplet10@  s˜   € ð DÐC½%À¹(¼(ÐCÑCÔCˆØ.Ð.¥U¨1¡X¤XÐ.Ñ.Ô.ˆåÔ# HÑ-Ô-ˆå•s˜<Ñ(Ô(Ñ)Ô)ð 	Gð 	GˆAØ×Ò˜\¨!œ_¨f°Q¬iÔ.EÑFÔFÐFÐFð	Gð 	Gr)   c                óê  — d„ t          d¦  «        D ¦   «         }d|d         _        d|d         _        d|d         _        d|d         _        d|d         _        d|d         _        t	          dd	¦  «        t	          dd	¦  «        t	          dd	¦  «        d
d
g}t          j        |¦  «        }t          t          |¦  «        ¦  «        D ])}|                      ||         ||         j	        ¦  «         Œ*dD ]}}|  
                    t          ||         d¦  «        ¦  «         |  
                    t          ||         d¦  «        ¦  «         |  
                    t          ||         d¦  «        ¦  «         Œ~dS )z]
        _guessTuplets(): with 5 notes, a triplet at the beginning is done correctly
        c                ó8   — g | ]}t          j        d ¬¦  «        ‘ŒS rÏ  rŠ  r~   s     r'   r�   z&Test.testTuplet11a.<locals>.<listcomp>P  rÐ  r)   r@   r´  r   r–   r  r±  rV  rW  r  rz  rC  rA  rB  N©r†   rC  rA  rB  r   r   rÒ  r}  r,   r!  r  r  rÓ  s        r'   ÚtestTuplet11azTest.testTuplet11aL  sk  € ð DÐC½%À¹(¼(ÐCÑCÔCˆØ&-ˆ�ŒÔ#Ø#&ˆ�ŒÔ Ø'*ˆ�ŒÔ$Ø&+ˆ�ŒÔ#Ø#&ˆ�ŒÔ Ø'*ˆ�ŒÔ$Ý   A™œ­°°A©¬½ÀÀA¹¼ÈÈSÐQˆåÔ# HÑ-Ô-ˆå•s˜<Ñ(Ô(Ñ)Ô)ð 	Gð 	GˆAØ×Ò˜\¨!œ_¨f°Q¬iÔ.EÑFÔFÐFÐFØð 	Gð 	GˆAØ×Ò�W X¨a¤[Ð2CÑDÔDÑEÔEÐEØ×Ò�W X¨a¤[°.ÑAÔAÑBÔBÐBØ×Ò�W X¨a¤[Ð2DÑEÔEÑFÔFÐFÐFð	Gð 	Gr)   c                óê  — d„ t          d¦  «        D ¦   «         }d|d         _        d|d         _        d|d         _        d|d         _        d|d         _        d|d         _        d	t	          d
d¦  «        t	          d
d¦  «        t	          d
d¦  «        d	g}t          j        |¦  «        }t          t          |¦  «        ¦  «        D ])}|                      ||         ||         j	        ¦  «         Œ*dD ]}}|  
                    t          ||         d¦  «        ¦  «         |  
                    t          ||         d¦  «        ¦  «         |  
                    t          ||         d¦  «        ¦  «         Œ~dS )zZ
        _guessTuplets(): with 5 notes, a triplet in the middle is done correctly
        c                ó8   — g | ]}t          j        d ¬¦  «        ‘ŒS rÏ  rŠ  r~   s     r'   r�   z&Test.testTuplet11b.<locals>.<listcomp>f  rÐ  r)   r@   r´  rƒ   r–   r  r±  rW  r  rV  )rƒ   rW  rC  rA  rB  NrÙ  rÓ  s        r'   ÚtestTuplet11bzTest.testTuplet11bb  sk  € ð DÐC½%À¹(¼(ÐCÑCÔCˆØ&-ˆ�ŒÔ#Ø#&ˆ�ŒÔ Ø'*ˆ�ŒÔ$Ø&+ˆ�ŒÔ#Ø#&ˆ�ŒÔ Ø'*ˆ�ŒÔ$Ø�X a¨™^œ^­X°a¸©^¬^½XÀaÈ¹^¼^ÈSÐQˆåÔ# HÑ-Ô-ˆå•s˜<Ñ(Ô(Ñ)Ô)ð 	Gð 	GˆAØ×Ò˜\¨!œ_¨f°Q¬iÔ.EÑFÔFÐFÐFØð 	Gð 	GˆAØ×Ò�W X¨a¤[Ð2CÑDÔDÑEÔEÐEØ×Ò�W X¨a¤[°.ÑAÔAÑBÔBÐBØ×Ò�W X¨a¤[Ð2DÑEÔEÑFÔFÐFÐFð	Gð 	Gr)   c                óê  — d„ t          d¦  «        D ¦   «         }d|d         _        d|d         _        d|d         _        d|d         _        d|d         _        d|d         _        d	d	t	          dd
¦  «        t	          dd
¦  «        t	          dd
¦  «        g}t          j        |¦  «        }t          t          |¦  «        ¦  «        D ])}|                      ||         ||         j	        ¦  «         Œ*dD ]}}|  
                    t          ||         d¦  «        ¦  «         |  
                    t          ||         d¦  «        ¦  «         |  
                    t          ||         d¦  «        ¦  «         Œ~dS )zW
        _guessTuplets(): with 5 notes, a triplet at the end is done correctly
        c                ó8   — g | ]}t          j        d ¬¦  «        ‘ŒS rÏ  rŠ  r~   s     r'   r�   z&Test.testTuplet11c.<locals>.<listcomp>|  rÐ  r)   r@   r´  rV  r–   r  r±  r‚   r  rW  )rV  r‚   rC  rA  rB  NrÙ  rÓ  s        r'   ÚtestTuplet11czTest.testTuplet11cx  sk  € ð DÐC½%À¹(¼(ÐCÑCÔCˆØ&-ˆ�ŒÔ#Ø#&ˆ�ŒÔ Ø'*ˆ�ŒÔ$Ø&+ˆ�ŒÔ#Ø#&ˆ�ŒÔ Ø'*ˆ�ŒÔ$Ø˜S¥(¨1¨a¡.¤.µ(¸1¸a±.´.Å(È1ÈaÁ.Ä.ÐQˆåÔ# HÑ-Ô-ˆå•s˜<Ñ(Ô(Ñ)Ô)ð 	Gð 	GˆAØ×Ò˜\¨!œ_¨f°Q¬iÔ.EÑFÔFÐFÐFØð 	Gð 	GˆAØ×Ò�W X¨a¤[Ð2CÑDÔDÑEÔEÐEØ×Ò�W X¨a¤[°.ÑAÔAÑBÔBÐBØ×Ò�W X¨a¤[Ð2DÑEÔEÑFÔFÐFÐFð	Gð 	Gr)   z,music21.instrument.instrumentFromMidiProgramc                óÔ   — t          j        dddi¬¦  «        }d}d|_        |j        }t          j        |¦  «        }|                      ||¦  «         |                     |¦  «         dS )zE
        instrDefFromElement(): when @midi.instrnum is given
        ro  rs  rp  r›   éG   zGuess Which InstrumentN©rE   rF   rH   r   ÚinstrDefFromElementr,   rL   )r%   ÚmockFromProgrx   ÚexpFromProgArgra   r&   s         r'   ÚtestUnit1InstrDefzTest.testUnit1InstrDef’  sr   € õ
 Œ}˜Z°À$Ð0GÐHÑHÔHˆØˆØ$<ˆÔ!ØÔ,ˆåÔ)¨$Ñ/Ô/ˆà×Ò˜ 6Ñ*Ô*Ð*Ø×,Ò,¨^Ñ<Ô<Ð<Ð<Ð<r)   c                óÔ   — t          j        dddi¬¦  «        }d}d|_        |j        }t          j        |¦  «        }|                      ||¦  «         |                     |¦  «         dS )zT
        instrDefFromElement(): when @midi.instrname is given, and it works
        ro  rt  ÚTubar›   zThat's right: tubaNrã  )r%   rš  rx   ÚexpFromStringArgra   r&   s         r'   ÚtestUnit2InstrDefzTest.testUnit2InstrDef¡  su   € õ
 Œ}˜ZÐ1AÀ6Ð0JÐKÑKÔKˆØ!ÐØ&:ˆÔ#Ø!Ô.ˆåÔ)¨$Ñ/Ô/ˆà×Ò˜ 6Ñ*Ô*Ð*Ø×.Ò.Ð/?Ñ@Ô@Ð@Ð@Ð@r)   zmusic21.mei.base.instrumentc                óà  — t           j        |_        t          j        dddi¬¦  «        }d}t	          j        ¦   «         |_        t          |j        _        t	          j        ¦   «         |j	        _
        d|j	        j
        _        |j	        j
        }t          j        |¦  «        }|                      ||¦  «         |j                             |¦  «         |                      ||j        ¦  «         dS )zh
        instrDefFromElement(): when @midi.instrname is given, and it explodes (AttributeError)
        ro  rt  úGold-Plated Kazoor›   N)r   r   rE   rF   r   rD   Ú
fromStringÚAttributeErrorr  r¥  rH   r|  r   rä  r,   rL   ©r%   rˆ  rx   rê  ra   r&   s         r'   ÚtestUnit3aInstrDefzTest.testUnit3aInstrDef°  sÔ   € õ )3Ô(Fˆ	Ô%ÝŒ}˜ZÐ1AÐCVÐ0WÐXÑXÔXˆØ.ÐÝ#œ~Ñ/Ô/ˆ	ÔÝ+9ˆ	ÔÔ(Ý,0¬NÑ,<Ô,<ˆ	ÔÔ)Ø59ˆ	ÔÔ)Ô2ØÔ'Ô4ˆåÔ)¨$Ñ/Ô/ˆà×Ò˜ 6Ñ*Ô*Ð*ØÔ×4Ò4Ð5EÑFÔFÐFØ×ÒÐ)¨6¬?Ñ;Ô;Ð;Ð;Ð;r)   c                óê  — t           j        |_        t          j        dddi¬¦  «        }d}t	          j        ¦   «         |_        t           j        |j        _        t	          j        ¦   «         |j        _	        d|j        j	        _
        |j        j	        }t          j        |¦  «        }|                      ||¦  «         |j                             |¦  «         |                      ||j
        ¦  «         dS )zu
        instrDefFromElement(): when @midi.instrname is given,
        and it explodes (InstrumentException)
        ro  rt  rí  r›   N)r   r   rE   rF   r   rD   rî  r  r¥  rH   r|  r   rä  r,   rL   rð  s         r'   ÚtestUnit3bInstrDefzTest.testUnit3bInstrDefÆ  s×   € õ )3Ô(Fˆ	Ô%ÝŒ}˜ZÐ1AÐCVÐ0WÐXÑXÔXˆØ.ÐÝ#œ~Ñ/Ô/ˆ	ÔÝ+5Ô+Iˆ	ÔÔ(Ý,0¬NÑ,<Ô,<ˆ	ÔÔ)Ø59ˆ	ÔÔ)Ô2ØÔ'Ô4ˆåÔ)¨$Ñ/Ô/ˆà×Ò˜ 6Ñ*Ô*Ð*ØÔ×4Ò4Ð5EÑFÔFÐFØ×ÒÐ)¨6¬?Ñ;Ô;Ð;Ð;Ð;r)   c                óŽ  — t          j        d¦  «        }t          j        ¦   «         t          j        ¦   «         t          j        ¦   «         ddœ}t	          j        ||¦  «        }dD ]B}|                      ||         j        ¦  «         |                      ||         j        ¦  «         ŒC|  	                    d|d         ¦  «         dS )zR
        _makeBarlines(): when @left and @right are None, nothing happens
        Úmeasurer‚   rÁ  ©rq   r  r–   rÈ   N)
rE   rF   r   ÚMeasurer   Ú_makeBarlinesr$  ÚleftBarlineÚrightBarliner,   ©r%   rx   ÚstavesrŠ   s       r'   ÚtestMakeBarline1zTest.testMakeBarline1á  s·   € õ Œ}˜YÑ'Ô'ˆÝ”~Ñ'Ô'­f¬nÑ.>Ô.>ÅVÄ^ÑEUÔEUÐ\]Ð^Ð^ˆåÔ# D¨&Ñ1Ô1ˆà ð 	6ð 	6ˆAØ×Ò˜f QœiÔ3Ñ4Ô4Ð4Ø×Ò˜f QœiÔ4Ñ5Ô5Ð5Ð5Ø×Ò˜˜F 3œKÑ(Ô(Ð(Ð(Ð(r)   c                ó\  — t          j        ddddœ¬¦  «        }t          j        ¦   «         t          j        ¦   «         t          j        ¦   «         ddœ}t	          j        ||¦  «        }dD ]¤}|                      ||         j        t          j	        ¦  «         |  
                    d||         j        j        ¦  «         |                      ||         j        t          j	        ¦  «         |  
                    d||         j        j        ¦  «         Œ¥|  
                    d|d	         ¦  «         d
S )zg
        _makeBarlines(): when @left and @right are a simple barline, that barline is assigned
        rõ  Údbl©Úleftr¹  r›   r‚   rÁ  rö  ÚdoublerÈ   N)rE   rF   r   r÷  r   rø  r!   rù  r	   rÅ  r,   r·  rú  rû  s       r'   ÚtestMakeBarline2zTest.testMakeBarline2ï  s  € õ Œ}˜Y¸ÈÐ/NÐ/NÐOÑOÔOˆÝ”~Ñ'Ô'­f¬nÑ.>Ô.>ÅVÄ^ÑEUÔEUÐ\]Ð^Ð^ˆåÔ# D¨&Ñ1Ô1ˆà ð 	Dð 	DˆAØ×!Ò! &¨¤)Ô"7½¼ÑEÔEÐEØ×Ò˜X v¨a¤yÔ'<Ô'AÑBÔBÐBØ×!Ò! &¨¤)Ô"8½#¼+ÑFÔFÐFØ×Ò˜X v¨a¤yÔ'=Ô'BÑCÔCÐCÐCØ×Ò˜˜F 3œKÑ(Ô(Ð(Ð(Ð(r)   c                ó\  — t          j        ddddœ¬¦  «        }t          j        ¦   «         t          j        ¦   «         t          j        ¦   «         ddœ}t	          j        ||¦  «        }dD ]¤}|                      ||         j        t          j	        ¦  «         |  
                    d||         j        j        ¦  «         |                      ||         j        t          j	        ¦  «         |  
                    d	||         j        j        ¦  «         Œ¥|  
                    d|d
         ¦  «         dS )z\
        _makeBarlines(): when @left and @right are "rptboth," that's done properly
        rõ  r°  r   r›   r‚   rÁ  rö  zheavy-lightrÄ  rÈ   N)rE   rF   r   r÷  r   rø  r!   rù  r	   rµ  r,   r·  rú  rû  s       r'   ÚtestMakeBarline3zTest.testMakeBarline3ÿ  s  € õ Œ}˜Y¸	ÈIÐ/VÐ/VÐWÑWÔWˆÝ”~Ñ'Ô'­f¬nÑ.>Ô.>ÅVÄ^ÑEUÔEUÐ\]Ð^Ð^ˆåÔ# D¨&Ñ1Ô1ˆà ð 	Cð 	CˆAØ×!Ò! &¨¤)Ô"7½¼ÑDÔDÐDØ×Ò˜]¨F°1¬IÔ,AÔ,FÑGÔGÐGØ×!Ò! &¨¤)Ô"8½#¼*ÑEÔEÐEØ×Ò˜W f¨Q¤iÔ&<Ô&AÑBÔBÐBÐBØ×Ò˜˜F 3œKÑ(Ô(Ð(Ð(Ð(r)   c                óî  — t          j        t          j        t          j        ¦   «         t          j        ¦   «         g¦  «        g¦  «        t          j        t          j        t          j        ¦   «         t          j        ¦   «         g¦  «        g¦  «        dœ}t          j        |d¦  «         |                      d|d         j        d         d         j	        ¦  «         |                      d|d         j        d         d         j	        ¦  «         |                      d|d         j        d         d         j	        ¦  «         |                      d|d         j        d         d         j	        ¦  «         dS )	zª
        _correctMRestDurs(): nothing happens when there isn't at object with "m21wasMRest"

        This is an integration test of sorts, using no Mock objects.
        ©rq   r  r   r  rq   r   rƒ   r  N)
r   r÷  rñ   r   r{  r   Ú_correctMRestDursr,   Úvoicesr!  ©r%   rü  s     r'   ÚtestCorrectMRestDurs1zTest.testCorrectMRestDurs1  s)  € õ ”~¥v¤|µT´Y±[´[Å$Ä)Á+Ä+Ð4NÑ'OÔ'OÐ&PÑQÔQÝ”~¥v¤|µT´Y±[´[Å$Ä)Á+Ä+Ð4NÑ'OÔ'OÐ&PÑQÔQðSð SˆåÔ˜v sÑ+Ô+Ð+Ø×Ò˜˜f SœkÔ0°Ô3°AÔ6ÔDÑEÔEÐEØ×Ò˜˜f SœkÔ0°Ô3°AÔ6ÔDÑEÔEÐEØ×Ò˜˜f SœkÔ0°Ô3°AÔ6ÔDÑEÔEÐEØ×Ò˜˜f SœkÔ0°Ô3°AÔ6ÔDÑEÔEÐEÐEÐEr)   c                ó  — t          j        t          j        t          j        ¦   «         g¦  «        g¦  «        t          j        t          j        t          j        ¦   «         t          j        ¦   «         g¦  «        g¦  «        dœ}d|d         d         d         _        t          j        |d¦  «         |                      d|d         j	        d         d         j
        ¦  «         |                      d|d         j	        d         d         j
        ¦  «         |                      d|d         j	        d         d         j
        ¦  «         |                      t          |d         j	        d         d         d	¦  «        ¦  «         d
S )zœ
        _correctMRestDurs(): things with "m21wasMRest" are adjusted properly

        This is an integration test of sorts, using no Mock objects.
        r  Trq   r   r   r  r  rƒ   rŠ  N)r   r÷  rñ   r   r{  rŠ  r   r  r,   r	  r!  r  r  r
  s     r'   ÚtestCorrectMRestDurs2zTest.testCorrectMRestDurs2  s:  € õ ”~¥v¤|µT´Y±[´[°MÑ'BÔ'BÐ&CÑDÔDÝ”~¥v¤|µT´Y±[´[Å$Ä)Á+Ä+Ð4NÑ'OÔ'OÐ&PÑQÔQðSð Sˆà(,ˆˆsŒ�AŒ�qÔÔ%ÝÔ˜v sÑ+Ô+Ð+Ø×Ò˜˜f SœkÔ0°Ô3°AÔ6ÔDÑEÔEÐEØ×Ò˜˜f SœkÔ0°Ô3°AÔ6ÔDÑEÔEÐEØ×Ò˜˜f SœkÔ0°Ô3°AÔ6ÔDÑEÔEÐEØ×Ò� ¨¤Ô!3°AÔ!6°qÔ!9¸=ÑIÔIÑJÔJÐJÐJÐJr)   c                óê  — t          j        t          j        t          j        ¦   «         g¦  «        t          j        t          j        ¦   «         g¦  «        g¦  «        t          j        t          j        d¦  «        t          j        t          j        ¦   «         g¦  «        g¦  «        dœ}d|d         d         d         _        d|d         d         d         _        t          j
        |d¦  «         |                      d|d         j        d         d         j        ¦  «         |                      d|d         j        d         d         j        ¦  «         |                      d|d	         j        d         d         j        ¦  «         |                      t          |d         d         d         d
¦  «        ¦  «         |                      t          |d         d         d         d
¦  «        ¦  «         dS )z¼
        _correctMRestDurs(): works with more than 1 voice per part,
        and for things that aren't Voice

        This is an integration test of sorts, using no Mock objects.
        z4/4r  Trq   r   rƒ   r   r  r  rŠ  N)r   r÷  rñ   r   r{  r   r“  r  rŠ  r   r  r,   r	  r!  r  r  r
  s     r'   ÚtestCorrectMRestDurs3zTest.testCorrectMRestDurs3,  s˜  € õ ”~¥v¤|µT´Y±[´[°MÑ'BÔ'BÅFÄLÕRVÔR[ÑR]ÔR]ÐQ^ÑD_ÔD_Ð&`ÑaÔaÝ”~¥uÔ':¸5Ñ'AÔ'AÅ6Ä<ÕQUÔQZÑQ\ÔQ\ÐP]ÑC^ÔC^Ð&_Ñ`Ô`ðbð bˆà(,ˆˆsŒ�AŒ�qÔÔ%Ø(,ˆˆsŒ�AŒ�qÔÔ%ÝÔ˜v sÑ+Ô+Ð+Ø×Ò˜˜f SœkÔ0°Ô3°AÔ6ÔDÑEÔEÐEØ×Ò˜˜f SœkÔ0°Ô3°AÔ6ÔDÑEÔEÐEØ×Ò˜˜f SœkÔ0°Ô3°AÔ6ÔDÑEÔEÐEØ×Ò� ¨¤¨Q¤°Ô!2°MÑBÔBÑCÔCÐCØ×Ò� ¨¤¨Q¤°Ô!2°MÑBÔBÑCÔCÐCÐCÐCr)   z!music21.mei.base.staffFromElementz"music21.mei.base._correctMRestDurszmusic21.mei.base._makeBarlineszmusic21.stream.Measurec           	     óâ  ‡‡‡‡— t           › d�Št          j        dddi¬¦  «        }ˆfd„t          d¦  «        D ¦   «         }|D ]}|                     |¦  «         Œd}	g d	¢}
t          j        d
¬¦  «        }t          j        d¬¦  «        }t          j        d¦  «        |_	        d„ t          d¦  «        D ¦   «         Š‰Š‰D ]2}t          j        t          j        ¬¦  «        |_        d|j        _
        Œ3ˆfd„|_        d„ |_        d|_        t          t          t          |¦  «        ¦  «        ¦  «        Šˆfd„|_        t          j        d¬¦  «        |_        ˆfd„t          |
¦  «        D ¦   «         Št!          j        ||	|
||¦  «        }|                      ‰|¦  «         |                      t          |¦  «        |j        ¦  «         |D ]}|                     ||¬¦  «         Œ|                      t          ‰¦  «        |j        ¦  «         t          t          |¦  «        ¦  «        D ]9}|                     |t-          |                     d¦  «        ¦  «        ¬¦  «         Œ:|                     |j        gt-          |                     d¦  «        ¦  «        ¬¦  «         |                      d|j        j        ¦  «         |                     ‰d¦  «         |                     |‰¦  «         dS )a,  
        measureFromElement(): test 1
            - "elem" has an @n attribute
            - some staves have <mRest> without @dur (same behaviour to as if no staves did)
            - a rest-filled measure is created for the "n" value in "expectedNs" that's missing a
              corresponding <staff> element, and its Measure has the same @n as "elem"
            - activeMeter isn't None, and it is larger than the (internal) maxBarDuration

        mocked: staffFromElement(), stream.Measure() and Voice, _correctMRestDurs(), _makeBarlines()
        Ústaffrõ  ró  rô  r›   c           
     ó`   •— g | ]*}t          j        ‰d t          |dz   ¦  «        i¬¦  «        ‘Œ+S ©ró  rƒ   r›   ©rE   rF   r‡   ©r   ró  ÚstaffTags     €r'   r�   z)Test.testMeasureUnit1.<locals>.<listcomp>Q  ó7   ø€ Ð[Ð[Ð[ÈQ•u”} X°s½CÀÀAÁ¹J¼JÐ6GÐHÑHÔHÐ[Ð[Ð[r)   rW  rð   rÁ  r#   r]  ÚactiveMeterç      @c                óD   — g | ]}t          j        d |dz   › �¬¦  «        ‘ŒS ©zMeasure rƒ   r]  r  rX  s     r'   r�   z)Test.testMeasureUnit1.<locals>.<listcomp>\  ó2   € ÐRÐRÐRÀA�œÐ,>°q¸1±uÐ,>Ð,>Ð?Ñ?Ô?ÐRÐRÐRr)   r‚   r>   c                 ó.   •— ‰                      d¦  «        S r’  r“  ©rž  r  ÚmockMeasRetss     €r'   r  z'Test.testMeasureUnit1.<locals>.<lambda>a  ó   ø€ °,×2BÒ2BÀ1Ñ2EÔ2E€ r)   c                ó   — |S r  r  ©rx   rü  s     r'   r  z'Test.testMeasureUnit1.<locals>.<lambda>c  ó   € ¸F€ r)   Nc                 ó.   •— ‰                      d¦  «        S r’  r“  ©rž  r  ÚstaffFEreturnss     €r'   r  z'Test.testMeasureUnit1.<locals>.<lambda>h  ó   ø€ °.×2DÒ2DÀQÑ2GÔ2G€ r)   rñ   c                ó(   •— i | ]\  }}|‰|         “ŒS r  r  ©r   rŠ   ró  ra   s      €r'   r´  z)Test.testMeasureUnit1.<locals>.<dictcomp>l  ó#   ø€ ÐEÐEÐE¡t q¨!�A�x ”{ÐEÐEÐEr)   rT  ©rû  rq   )r   rE   rF   r†   rù  r   rD   r   rQ  ÚbarDurationr!  r  rH   rˆ   r}  Ú	enumerater   ÚmeasureFromElementrƒ  r,   r  rd  Úintrs   rò   rL   ©r%   r-  ÚmockMeasureÚmockMakeBarlinesÚmockCorrectDursÚmockStaffFErx   ÚinnerStaffsÚ	eachStaffÚ	backupNumÚ
expectedNsr#   r  Úmeasr&   rŠ   ra   r  r&  r  s                   @@@@r'   ÚtestMeasureUnit1zTest.testMeasureUnit1>  s  øøøø€ õ" Ð#Ð#Ð#ˆÝŒ}˜Y°°T¨{Ð;Ñ;Ô;ˆØ[Ð[Ð[Ð[ÕRWÐXYÑRZÔRZÐ[Ñ[Ô[ˆØ$ð 	#ð 	#ˆIØ�KŠK˜	Ñ"Ô"Ð"Ð"àˆ	Ø)Ð)Ð)ˆ
Ý”^¨Ð6Ñ6Ô6ˆ
Ý”n¨-Ð8Ñ8Ô8ˆÝ"*Ô"3°CÑ"8Ô"8ˆÔð SÐRÍÈqÉÌÐRÑRÔRˆØˆØ ð 	.ð 	.ˆDÝ œNµHÔ4EÐFÑFÔFˆDŒMØ*-ˆDŒMÔ'Ð'Ø"EÐ"EÐ"EÐ"EˆÔà'BÐ'BÐÔ$à'+ˆÔ$å�e¥C¨Ñ$4Ô$4Ñ5Ô5Ñ6Ô6ˆØ"GÐ"GÐ"GÐ"GˆÔå!%¤°WÐ!=Ñ!=Ô!=ˆ	ÔàEÐEÐEÐE­y¸Ñ/DÔ/DÐEÑEÔEˆåÔ(¨¨y¸*ÀjÐR]Ñ^Ô^ˆà×Ò˜X vÑ.Ô.Ð.à×Ò�˜[Ñ)Ô)¨;Ô+AÑBÔBÐBØ$ð 	Jð 	JˆIØ×'Ò'¨	¸jÐ'ÑIÔIÐIÐIà×Ò�˜X™œ¨Ô(>Ñ?Ô?Ð?Ý•s˜;Ñ'Ô'Ñ(Ô(ð 	Fð 	FˆAØ×'Ò'¨µ#°d·h²h¸s±m´mÑ2DÔ2DÐ'ÑEÔEÐEÐEØ×#Ò# YÔ%;Ð$<ÅSÈÏÊÐRUÉÌÑEWÔEWÐ#ÑXÔXÐXà×Ò˜˜iÔ4Ô7Ñ8Ô8Ð8à×/Ò/°¸#Ñ>Ô>Ð>à×0Ò0°°xÑ@Ô@Ð@Ð@Ð@r)   c                ó¤  ‡— t           › d�Št           › d�}t           › d�}t          j        ddddœ¬¦  «        }ˆfd	„t          d
¦  «        D ¦   «         }t	          |¦  «        D ]„\  }}t          j        |ddi¬¦  «        }|                     t          j        |dt          |dz   ¦  «        ddœ¬¦  «        ¦  «         |                     |¦  «         |                     |¦  «         Œ…d}g d¢}	t          j        ¦   «         }
t          j
        d¦  «        }t          j        |||	|
|¦  «        }|                      dt          |                     ¦   «         ¦  «        ¦  «         |	D ]}|                      ||v ¦  «         ŒdD �]j}|                      d||         j        ¦  «         |                      dt          ||         ¦  «        ¦  «         |                      ||         d         t&          j        ¦  «         |                      dt          ||         d         ¦  «        ¦  «         |                      ||         d         d         t*          j        ¦  «         |                      t/          |¦  «        ||         d         d         j        j        ¦  «         |                      ||         j        t6          j        ¦  «         |                      d||         j        j        ¦  «         �Œl|                      d|d         j        ¦  «         |                      dt          |d         ¦  «        ¦  «         |                      |d         d         t&          j        ¦  «         |                      dt          |d         d         ¦  «        ¦  «         |                      |d         d         d         t*          j        ¦  «         |                      |j        j         |d         d         d         j!        j         ¦  «         |                      ||         j        t6          j        ¦  «         |                      d||         j        j        ¦  «         dS )a  
        measureFromElement(): test 1
            - "elem" has an @n attribute
            - some staves have <mRest> without @dur (same behaviour to as if no staves did)
            - a rest-filled measure is created for the "n" value in "expectedNs" that's missing a
              corresponding <staff> element, and its Measure has the same @n as "elem"
            - activeMeter isn't None, and it is larger than the (internal) maxBarDuration
            - the right barline is set properly ("dbl")

        no mocks
        r  rR  r   rõ  rô  rÿ  )ró  r¹  r›   c           
     ó`   •— g | ]*}t          j        ‰d t          |dz   ¦  «        i¬¦  «        ‘Œ+S r  r  r  s     €r'   r�   z0Test.testMeasureIntegration1.<locals>.<listcomp>‘  r  r)   rW  ró  rq   rù  rƒ   r'  rð   rÁ  ú8/8r‚   rö  rï   rV  r   r  rÈ   N)"r   rE   rF   r†   r-  rù  r‡   r   r$   r   r“  r   r.  r,   r}  Úkeysr|  rû  r!   r   rñ   r   r  r/  r   r_   rú  r	   rÅ  r·  r{  r,  r!  r   )r%   ÚlayerTagÚnoteTagrx   r5  rŠ   r6  Ú	thisLayerr7  r8  r#   r  r&   ÚeachNr  s                 @r'   ÚtestMeasureIntegration1zTest.testMeasureIntegration1�  s  ø€ õ Ð#Ð#Ð#ˆÝÐ#Ð#Ð#ˆÝ�/�/�/ˆÝŒ}˜Y°TÀEÐ/JÐ/JÐKÑKÔKˆØ[Ð[Ð[Ð[ÕRWÐXYÑRZÔRZÐ[Ñ[Ô[ˆÝ% kÑ2Ô2ð 	#ð 	#‰LˆAˆyÝœ h¸¸S°zÐBÑBÔBˆIØ×Ò�Uœ]¨7Ø<?ÍÈAÐPQÉEÉ
Ì
Ð[^Ð2_Ð2_ðañ aô añ bô bð bà×Ò˜YÑ'Ô'Ð'Ø�KŠK˜	Ñ"Ô"Ð"Ð"àˆ	Ø)Ð)Ð)ˆ
ÝÔ*Ñ,Ô,ˆ
ÝÔ)¨%Ñ0Ô0ˆåÔ(¨¨y¸*ÀjÐR]Ñ^Ô^ˆð 	×Ò˜�C §¢¡¤Ñ.Ô.Ñ/Ô/Ð/Øð 	-ð 	-ˆEØ�OŠO˜E V˜OÑ,Ô,Ð,Ð,ð %ð 	Hñ 	HˆEØ×Ò˜R ¨¤Ô!5Ñ6Ô6Ð6Ø×Ò˜Q¥ F¨5¤MÑ 2Ô 2Ñ3Ô3Ð3Ø×!Ò! &¨¤-°Ô"2µF´LÑAÔAÐAØ×Ò˜Q¥ F¨5¤M°!Ô$4Ñ 5Ô 5Ñ6Ô6Ð6Ø×!Ò! &¨¤-°Ô"2°1Ô"5µt´yÑAÔAÐAØ×Ò�S ™ZœZ¨°¬°qÔ)9¸!Ô)<Ô)BÔ)IÑJÔJÐJØ×!Ò! &¨¤-Ô"<½c¼kÑJÔJÐJØ×Ò˜X v¨e¤}Ô'AÔ'FÑGÔGÐGÑGà×Ò˜˜V Cœ[Ô/Ñ0Ô0Ð0Ø×Ò˜�C  s¤Ñ,Ô,Ñ-Ô-Ð-Ø×Ò˜f Sœk¨!œn­f¬lÑ;Ô;Ð;Ø×Ò˜�C  s¤¨A¤Ñ/Ô/Ñ0Ô0Ð0Ø×Ò˜f Sœk¨!œn¨QÔ/µ´Ñ;Ô;Ð;Ø×Ò˜Ô0Ô>Ø œ Qœ¨Ô*Ô3ÔAñ	Cô 	Cð 	Cà×Ò˜f UœmÔ8½#¼+ÑFÔFÐFØ×Ò˜ 6¨%¤=Ô#=Ô#BÑCÔCÐCÐCÐCr)   c                óz  ‡‡‡‡— t           › d�Št          j        d¦  «        }ˆfd„t          d¦  «        D ¦   «         }|D ]}|                     |¦  «         Œd}	g d¢}
t          j        d¬¦  «        }t          j        d	¬¦  «        }t          j        d
¦  «        |_	        d„ t          d¦  «        D ¦   «         Š‰Š‰D ]B}t          j        t          j        ¬¦  «        |_        t          j        d         |j        _        ŒCˆfd„|_        d„ |_        d|_        t          t          t!          |¦  «        ¦  «        ¦  «        Šˆfd„|_        t          j        d¬¦  «        |_        ˆfd„t#          |
¦  «        D ¦   «         Št          j        ||	|
||¦  «        }|                      ‰|¦  «         |                      t!          |¦  «        |j        ¦  «         |D ]}|                     ||¬¦  «         Œ|                      t!          ‰¦  «        |j        ¦  «         t          t!          |¦  «        ¦  «        D ]}|                     ||	¬¦  «         Œ|                     |j        g|	¬¦  «         |                      d|j        j        ¦  «         |                     ‰d
¦  «         |                     |‰¦  «         dS )a©  
        measureFromElement(): test 2
            - "elem" doesn't have an @n attribute
            - all staves have <mRest> without @dur
            - a rest-filled measure is created for the "n" value in "expectedNs" that's missing a
              corresponding <staff> element, and it properly uses "backupNum"

        mocked: staffFromElement(), stream.Measure() and Voice, _correctMRestDurs(), _makeBarlines()
        r  rõ  c           
     ó`   •— g | ]*}t          j        ‰d t          |dz   ¦  «        i¬¦  «        ‘Œ+S r  r  r  s     €r'   r�   z)Test.testMeasureUnit2.<locals>.<listcomp>Í  r  r)   rW  rð   rÁ  r#   r]  r  g      (@c                óD   — g | ]}t          j        d |dz   › �¬¦  «        ‘ŒS r  r  rX  s     r'   r�   z)Test.testMeasureUnit2.<locals>.<listcomp>Ù  r  r)   r‚   r>   Nc                 ó.   •— ‰                      d¦  «        S r’  r“  r  s     €r'   r  z'Test.testMeasureUnit2.<locals>.<lambda>Þ  r   r)   c                ó   — |S r  r  r"  s     r'   r  z'Test.testMeasureUnit2.<locals>.<lambda>à  r#  r)   c                 ó.   •— ‰                      d¦  «        S r’  r“  r%  s     €r'   r  z'Test.testMeasureUnit2.<locals>.<lambda>å  r'  r)   rñ   c                ó(   •— i | ]\  }}|‰|         “ŒS r  r  r)  s      €r'   r´  z)Test.testMeasureUnit2.<locals>.<dictcomp>é  r*  r)   rT  r+  rq   )r   rE   rF   r†   rù  r   rD   r   rQ  r,  r   rr  r!  r  rH   rˆ   r}  r-  r.  rƒ  r,   r  rd  rò   rL   r0  s                   @@@@r'   ÚtestMeasureUnit2zTest.testMeasureUnit2»  sÞ  øøøø€ õ  Ð#Ð#Ð#ˆÝŒ}˜YÑ'Ô'ˆØ[Ð[Ð[Ð[ÕRWÐXYÑRZÔRZÐ[Ñ[Ô[ˆØ$ð 	#ð 	#ˆIØ�KŠK˜	Ñ"Ô"Ð"Ð"àˆ	Ø)Ð)Ð)ˆ
Ý”^¨Ð6Ñ6Ô6ˆ
Ý”n¨-Ð8Ñ8Ô8ˆå"*Ô"3°DÑ"9Ô"9ˆÔð SÐRÍÈqÉÌÐRÑRÔRˆØˆØ ð 	Dð 	DˆDÝ œNµHÔ4EÐFÑFÔFˆDŒMÝ*.Ô*=¸dÔ*CˆDŒMÔ'Ð'Ø"EÐ"EÐ"EÐ"EˆÔà'BÐ'BÐÔ$à'+ˆÔ$å�e¥C¨Ñ$4Ô$4Ñ5Ô5Ñ6Ô6ˆØ"GÐ"GÐ"GÐ"GˆÔå!%¤°WÐ!=Ñ!=Ô!=ˆ	ÔàEÐEÐEÐE­y¸Ñ/DÔ/DÐEÑEÔEˆåÔ(¨¨y¸*ÀjÐR]Ñ^Ô^ˆà×Ò˜X vÑ.Ô.Ð.à×Ò�˜[Ñ)Ô)¨;Ô+AÑBÔBÐBØ$ð 	Jð 	JˆIØ×'Ò'¨	¸jÐ'ÑIÔIÐIÐIà×Ò�˜X™œ¨Ô(>Ñ?Ô?Ð?Ý•s˜;Ñ'Ô'Ñ(Ô(ð 	=ð 	=ˆAØ×'Ò'¨°)Ð'Ñ<Ô<Ð<Ð<Ø×#Ò# YÔ%;Ð$<ÀYÐ#ÑOÔOÐOà×Ò˜˜iÔ4Ô7Ñ8Ô8Ð8à×/Ò/°¸$Ñ?Ô?Ð?à×0Ò0°°xÑ@Ô@Ð@Ð@Ð@r)   c                ó¶  ‡— t           › d�Št           › d�}t           › d�}t          j        dddi¬¦  «        }ˆfd„t          d	¦  «        D ¦   «         }|D ]k}t          j        |d
di¬¦  «        }|                     t          j        |¦  «        ¦  «         |                     |¦  «         |                     |¦  «         Œld}g d¢}t          j        ¦   «         }	t          j        d¦  «        }
t          j
        ||||	|
¦  «        }|                      dt          |                     ¦   «         ¦  «        ¦  «         |D ]}|                      ||v ¦  «         Œ|                      d|v ¦  «         |D �]g}|                      |||         j        ¦  «         |                      dt          ||         ¦  «        ¦  «         |                      ||         d         t"          j        ¦  «         |                      dt          ||         d         ¦  «        ¦  «         |                      ||         d         d         t&          j        ¦  «         |                      |
j        j        |d         d         d         j        j        ¦  «         |                      ||         j        t2          j        ¦  «         |                      d||         j        j        ¦  «         �ŒidS )a¼  
        measureFromElement(): test 2
            - "elem" doesn't have an @n attribute
            - all staves have <mRest> without @dur (and only 3 of the 4 are specified at all)
            - a rest-filled measure is created for the "n" value in "expectedNs" that's missing a
              corresponding <staff> element, and it properly uses "backupNum"
            - the right barline is set properly ("rptboth")

        no mocks
        r  rR  r„  rõ  r¹  r°  r›   c           
     ó`   •— g | ]*}t          j        ‰d t          |dz   ¦  «        i¬¦  «        ‘Œ+S r  r  r  s     €r'   r�   z0Test.testMeasureIntegration2.<locals>.<listcomp>  r  r)   rW  ró  rq   rð   rÁ  r=  r@   ú
next @leftrV  r   rƒ   rÈ   rÄ  N)r   rE   rF   r†   rù  r   r$   r   r“  r   r.  r,   r}  r>  r|  rû  r!   r   rñ   r   r{  r,  r!  r   rú  r	   rµ  r·  )r%   r?  ÚmRestTagrx   r5  r6  rA  r7  r8  r#   r  r&   rB  r  s                @r'   ÚtestMeasureIntegration2zTest.testMeasureIntegration2þ  sÎ  ø€ õ Ð#Ð#Ð#ˆÝÐ#Ð#Ð#ˆÝÐ#Ð#Ð#ˆÝŒ}˜Y°¸Ð/CÐDÑDÔDˆØ[Ð[Ð[Ð[ÕRWÐXYÑRZÔRZÐ[Ñ[Ô[ˆØ$ð 	#ð 	#ˆIÝœ h¸¸S°zÐBÑBÔBˆIØ×Ò�Uœ]¨8Ñ4Ô4Ñ5Ô5Ð5Ø×Ò˜YÑ'Ô'Ð'Ø�KŠK˜	Ñ"Ô"Ð"Ð"àˆ	Ø)Ð)Ð)ˆ
ÝÔ*Ñ,Ô,ˆ
ÝÔ)¨%Ñ0Ô0ˆåÔ(¨¨y¸*ÀjÐR]Ñ^Ô^ˆð 	×Ò˜�C §¢¡¤Ñ.Ô.Ñ/Ô/Ð/Øð 	-ð 	-ˆEØ�OŠO˜E V˜OÑ,Ô,Ð,Ð,Ø�Š˜¨Ð.Ñ/Ô/Ð/ð  ð 		Gñ 		GˆEØ×Ò˜Y¨¨u¬Ô(<Ñ=Ô=Ð=Ø×Ò˜Q¥ F¨5¤MÑ 2Ô 2Ñ3Ô3Ð3Ø×!Ò! &¨¤-°Ô"2µF´LÑAÔAÐAØ×Ò˜Q¥ F¨5¤M°!Ô$4Ñ 5Ô 5Ñ6Ô6Ð6Ø×!Ò! &¨¤-°Ô"2°1Ô"5µt´yÑAÔAÐAØ×Ò˜[Ô4ÔBØ# Cœ[¨œ^¨AÔ.Ô7ÔEñGô Gð Gà×!Ò! &¨¤-Ô"<½c¼jÑIÔIÐIØ×Ò˜W f¨U¤mÔ&@Ô&EÑFÔFÐFÑFð		Gð 		Gr)   c                ó’  — t           › d�}t           › d�}t          j        dddi¬¦  «        }t          j        |ddd	œ¬¦  «        }	|                     |	¦  «         t          j        |ddi¬¦  «        }
|                     |
¦  «         d
}dg}t	          j        d¬¦  «        }t	          j        d¬¦  «        }t          j        d¦  «        |_        t	          j        d¬¦  «        |_	        d„ |_
        d|_	        d|_	        dt	          j        d¬¦  «        i|_	        d|j	        i}t          j        |||||¦  «        }|                      ||¦  «         |                     |
|¬¦  «         |                     |	|¦  «         |                     |j	        d¬¦  «         |j	        j                             d|j	        d         ¦  «         dS )a  
        measureFromElement(): test 3a
            - there is one part
            - there is a <staffDef> which has its required @n attribute

        mocked: staffFromElement(), staffDefFromElement, stream.Measure(),
        _correctMRestDurs(), _makeBarlines(),
        r  re  rõ  ró  rô  r›   rq   r?  )ró  Úlinesrð   r#   r]  r  r  ú	Measure 1c                ó   — |S r  r  r"  s     r'   r  z(Test.testMeasureUnit3a.<locals>.<lambda>O  r#  r)   NústaffFromElement() return valuer
   ÚSomeClefrT  rï   r+  r   )r   rE   rF   rù  r   rD   r   rQ  r,  rH   r  r   r.  rƒ  rL   Úinsert)r%   r¶  r1  r2  r3  r4  r  ÚstaffDefTagrx   ÚstaffDefElemÚ	staffElemr7  r8  r#   r  ra   r&   s                    r'   ÚtestMeasureUnit3azTest.testMeasureUnit3a0  sÛ  € õ Ð#Ð#Ð#ˆÝÐ)Ð)Ð)ˆÝŒ}˜Y°°T¨{Ð;Ñ;Ô;ˆÝ”} [¸sÈSÐ9QÐ9QÐRÑRÔRˆØ�Š�LÑ!Ô!Ð!Ý”M (°C¸°:Ð>Ñ>Ô>ˆ	Ø�Š�IÑÔÐØˆ	Ø�Uˆ
Ý”^¨Ð6Ñ6Ô6ˆ
Ý”n¨-Ð8Ñ8Ô8ˆå"*Ô"3°CÑ"8Ô"8ˆÔå#'¤>°{Ð#CÑ#CÔ#CˆÔ à'BÐ'BÐÔ$à'+ˆÔ$à#DˆÔ à'-­t¬~À:Ð/NÑ/NÔ/NÐ&OˆÔ#à˜Ô1Ð2ˆåÔ(¨¨y¸*ÀjÐR]Ñ^Ô^ˆà×Ò˜X vÑ.Ô.Ð.à×+Ò+¨IÀ*Ð+ÑMÔMÐMà×.Ò.¨|¸ZÑHÔHÐHà×+Ò+¨KÔ,DÈRÐ+ÑPÔPÐPØÔ Ô'×?Ò?ØØÔ'¨Ô/ñ	1ô 	1ð 	1ð 	1ð 	1r)   c                ó�  — t           › d�}t           › d�}t          j        dddi¬¦  «        }t          j        |ddi¬¦  «        }	|                     |	¦  «         t          j        |dd	i¬¦  «        }
|                     |
¦  «         d
}d	g}t	          j        d¬¦  «        }t	          j        d¬¦  «        }t          j        d¦  «        |_        t	          j        d¬¦  «        |_	        d„ |_
        d|_	        d|_	        d	|j	        i}t          j        |||||¦  «        }|                      ||¦  «         |                     |
|¬¦  «         |                     |j	        d¬¦  «         |                      d|j	        j        j        ¦  «         |j                             t          j                             dd¦  «        ¦  «         dS )a  
        measureFromElement(): test 3b
            - there is one part
            - there is a <staffDef> which does not have its required @n attribute

        mocked: staffFromElement(), environLocal, stream.Measure(),
        _correctMRestDurs(), _makeBarlines(),
        r  re  rõ  ró  rô  r›   rR  r?  rq   rð   r#   r]  r  r  rS  c                ó   — |S r  r  r"  s     r'   r  z(Test.testMeasureUnit3b.<locals>.<lambda>…  r#  r)   NrU  rT  rï   r+  r   ú
<staffDef>ú@n)r   rE   rF   rù  r   rD   r   rQ  r,  rH   r  r   r.  rƒ  rL   r,   rW  r  rI  Ú_UNIMPLEMENTED_IMPORTr;   )r%   rJ  r1  r2  r3  r4  r  rX  rx   rY  rZ  r7  r8  r#   r  ra   r&   s                    r'   ÚtestMeasureUnit3bzTest.testMeasureUnit3bf  sÐ  € õ Ð#Ð#Ð#ˆÝÐ)Ð)Ð)ˆÝŒ}˜Y°°T¨{Ð;Ñ;Ô;ˆÝ”} [¸'À3¸ÐHÑHÔHˆØ�Š�LÑ!Ô!Ð!Ý”M (°C¸°:Ð>Ñ>Ô>ˆ	Ø�Š�IÑÔÐØˆ	Ø�Uˆ
Ý”^¨Ð6Ñ6Ô6ˆ
Ý”n¨-Ð8Ñ8Ô8ˆå"*Ô"3°CÑ"8Ô"8ˆÔå#'¤>°{Ð#CÑ#CÔ#CˆÔ à'BÐ'BÐÔ$à'+ˆÔ$à#DˆÔ à˜Ô1Ð2ˆåÔ(¨¨y¸*ÀjÐR]Ñ^Ô^ˆà×Ò˜X vÑ.Ô.Ð.à×+Ò+¨IÀ*Ð+ÑMÔMÐMà×+Ò+¨KÔ,DÈRÐ+ÑPÔPÐPØ×Ò˜˜KÔ4Ô;ÔFÑGÔGÐGàÔ×0Ò0ÝÔ&×-Ò-¨l¸DÑAÔAñ	Cô 	Cð 	Cð 	Cð 	Cr)   c           
     óH  — t           › d�}t           › d�}t           › d�}t           › d�}t          j        d¦  «        }|                     t          j        |dddd	d
œ¬¦  «        ¦  «         t          j        |ddi¬¦  «        }t          j        |ddi¬¦  «        }|                     t          j        |¦  «        ¦  «         |                     |¦  «         |                     |¦  «         d}dg}	t	          j        ¦   «         }
t          j        d¦  «        }t          j	        |||	|
|¦  «        }|  
                    dgt          |                     ¦   «         ¦  «        ¦  «         |  
                    ||d         j        ¦  «         |  
                    dt          |d         ¦  «        ¦  «         d}d}|d         D ];}t          |t           j        ¦  «        rd}Œt          |t$          j        ¦  «        rd}Œ<|                      |¦  «         |                      |¦  «         dS )aq  
        measureFromElement(): test 3
            - there is one part
            - there is a <staffDef> which has its required @n attribute

        NB: I won't bother making an integration equivalent to unit test 3b, since I would have to
            mock "environLocal" to know whether it worked, and "no mocks" is the whole point of this

        no mocks
        r  rR  r   re  rõ  rq   r?  rÈ   rf  )ró  rR  rm  rl  r›   ró  rð   r=  rV  FTN)r   rE   rF   rù  r   r$   r   r“  r   r.  r,   rˆ   r>  rû  r}  Ú
isinstancer   rñ   r
   ÚBassClefr|  )r%   r  r?  r@  rX  rx   Ú
innerStaffÚ
innerLayerr7  r8  r#   r  r&   Ú
foundVoiceÚ	foundClefÚitems                   r'   ÚtestMeasureIntegration3zTest.testMeasureIntegration3™  s+  € õ Ð#Ð#Ð#ˆÝÐ#Ð#Ð#ˆÝ�/�/�/ˆÝÐ)Ð)Ð)ˆÝŒ}˜YÑ'Ô'ˆØ�Š•E”M +¸CÈ#ØDGÐWZð7\ð 7\ð ]ñ ]ô ]ñ 	^ô 	^ð 	^å”] 8°S¸#°JÐ?Ñ?Ô?ˆ
Ý”] 8°S¸#°JÐ?Ñ?Ô?ˆ
Ø×Ò�%œ-¨Ñ0Ô0Ñ1Ô1Ð1Ø×Ò˜*Ñ%Ô%Ð%Ø�Š�JÑÔÐØˆ	Ø�Uˆ
ÝÔ*Ñ,Ô,ˆ
ÝÔ)¨%Ñ0Ô0ˆåÔ(¨¨y¸*ÀjÐR]Ñ^Ô^ˆð 	×Ò˜#˜¥ V§[¢[¡]¤]Ñ 3Ô 3Ñ4Ô4Ð4à×Ò˜ F¨3¤KÔ$6Ñ7Ô7Ð7Ø×Ò˜�C  s¤Ñ,Ô,Ñ-Ô-Ð-àˆ
Øˆ	Ø˜3”Kð 	!ð 	!ˆDÝ˜$¥¤Ñ-Ô-ð !Ø!�
�
Ý˜D¥$¤-Ñ0Ô0ð !Ø �	øØ�Š˜
Ñ#Ô#Ð#Ø�Š˜	Ñ"Ô"Ð"Ð"Ð"r)   z!music21.mei.base.sectionScoreCorec                ó^  — d|_         t          j        d¦  «        }g d¢}t          j        d¦  «        }t          j        ¦   «         }d}t          j        ¦   «         }|j         }t          j
        ||||||¦  «        }	|                      ||	¦  «         |                     ||||||¬¦  «         dS )zI
        Mock sectionScoreCore(). This is very straight-forward.
        r@   Úsectionrö  z12/8rï   ©r  ÚnextMeasureLeftÚbackupMeasureNumN)rH   rE   rF   r   r“  r	   rµ  r   r$   r   ÚsectionFromElementr,   rL   )
r%   ÚmockCorerx   Ú	allPartNsr  rn  ro  r#   ra   r&   s
             r'   ÚtestSection1zTest.testSection1Ï  sÒ   € ð
 !"ˆÔÝŒ}˜YÑ'Ô'ˆØ#�O�Oˆ	ÝÔ)¨&Ñ1Ô1ˆÝœ*™,œ,ˆØÐÝÔ*Ñ,Ô,ˆ
ØÔ(ˆåÔ(¨¨y¸+Ø)8Ð:JÈJñXô Xˆð 	×Ò˜ 6Ñ*Ô*Ð*Ø×(Ò(¨Ø)2Ø)3Ø5@Ø9HØ:Jð 	)ñ 	Lô 	Lð 	Lð 	Lð 	Lr)   z music21.mei.base.allPartsPresentzmusic21.stream.Partzmusic21.stream.Scorec                ó&  ‡— t          j        d¦  «        }ddg|_        ddgddgdœd	d
df|_        d„ |_        t	          j        ¦   «         }t	          j        ¦   «         |_        t	          j        ¦   «         }t	          j        ¦   «         |_        ||gŠˆfd„|_        t	          j        t          j        ¬¦  «        }||g g}	t          j
        ||¦  «        }
|                      |	|
¦  «         |                     |¦  «         |                     ||j        |¬¦  «         |                     ||g¦  «         |                      d|j        j        ¦  «         |                      d|j        j        ¦  «         |j                             d¦  «         |j                             d¦  «         |j                             d¦  «         |j                             d¦  «         |                      |j        ¦  «         |                      |j        ¦  «         dS )zß
        scoreFromElement(): unit test with all basic functionality

        It's two parts, each with two things in them.

        Mocks on allPartsPresent(), sectionScoreCore(), stream.Part(), and stream.Score().
        rC   rq   r  z1-1z1-2z2-1z2-2r  rZ  r€  Úthingsc                ó"   — | d         | d         gS )Nr   rƒ   r  r  s    r'   r  z%Test.testScoreUnit1.<locals>.<lambda>ø  s   € ¨1¨Q¬4°°1´¨,€ r)   c                 ó.   •— ‰                       d¦  «        S r’  r“  )ÚmockPartReturnss   €r'   r  z%Test.testScoreUnit1.<locals>.<lambda>ÿ  s   ø€  ×':Ò':¸1Ñ'=Ô'=€ r)   r>   rT  rV  N)rE   rF   rH   r  r   rD   rù  r   r$   r   ÚscoreFromElementr,   rL   r  rd  r  ÚatSoundingPitch)r%   Ú	mockScoreÚmockPartrq  ÚmockAllPartsrx   Ú	mockPart1Ú	mockPart2r#   ra   r&   rx  s              @r'   ÚtestScoreUnit1zTest.testScoreUnit1è  s  ø€ õ Œ}˜WÑ%Ô%ˆØ%(¨# JˆÔ!Ø(-¨u ~¸UÀE¸NÐ!KÐ!KØ!(¨'°8ð!=ˆÔà 6Ð 6ˆ	Ôå”NÑ$Ô$ˆ	Ýœ>Ñ+Ô+ˆ	ÔÝ”NÑ$Ô$ˆ	Ýœ>Ñ+Ô+ˆ	ÔØ$ iÐ0ˆØ=Ð=Ð=Ð=ˆÔÝ”^­WÔ-BÐCÑCÔCˆ
Ø˜y¨"Ð-ˆåÔ& t¨ZÑ8Ô8ˆà×Ò˜ 6Ñ*Ô*Ð*Ø×,Ò,¨TÑ2Ô2Ð2Ø×(Ò(¨¨|Ô/HÐU_Ð(Ñ`Ô`Ð`Ø×)Ò)¨9°iÐ*@ÑAÔAÐAØ×Ò˜˜IÔ,Ô7Ñ8Ô8Ð8Ø×Ò˜˜IÔ,Ô7Ñ8Ô8Ð8ØÔ×(Ò(¨Ñ/Ô/Ð/ØÔ×(Ò(¨Ñ/Ô/Ð/ØÔ×(Ò(¨Ñ/Ô/Ð/ØÔ×(Ò(¨Ñ/Ô/Ð/Ø×Ò˜Ô2Ñ3Ô3Ð3Ø×Ò˜Ô2Ñ3Ô3Ð3Ð3Ð3r)   c                óJ  — d}t          j        |¦  «        }t          j        ¦   «         }t	          j        ||¦  «        }|                      dt          |j        ¦  «        ¦  «         |                      dt          |¦  «        ¦  «         |                      dt          |j        d         ¦  «        ¦  «         |                      dt          |j        d         ¦  «        ¦  «         |  	                    |j        d         j
        ¦  «         |  	                    |j        d         j
        ¦  «         |                      |j        d         d         t          j        ¦  «         |                      |j        d         d         t          j        ¦  «         |                      dt          |j        d         d         ¦  «        ¦  «         |                      dt          |j        d         d         ¦  «        ¦  «         |                      |j        d         d         d         t          j        ¦  «         |                      |j        d         d         d         t          j        ¦  «         |                      dt          |j        d         d         d         ¦  «        ¦  «         |                      dt          |j        d         d         d         ¦  «        ¦  «         |                      |j        d         d         d         d         t          j        ¦  «         |                      d|j        d         d         d         d         j        ¦  «         |                      d|j        d         d         d         d         j        ¦  «         |                      |j        d         d         d         d         t          j        ¦  «         |                      d|j        d         d         d         d         j        ¦  «         |                      d|j        d         d         d         d         j        ¦  «         |                      |j        d         d         d         d         t          j        ¦  «         |                      d	|j        d         d         d         d         j        ¦  «         |                      d
|j        d         d         d         d         j        ¦  «         |                      |j        d         d         d         t&          j        ¦  «         |                      |j        d         d         d         t*          j        ¦  «         |                      d|j        d         d         d         j        ¦  «         |                      |j        d         d         d         t&          j        ¦  «         |                      |j        d         d         d         t*          j        ¦  «         |                      d|j        d         d         d         j        ¦  «         dS )zŠ
        scoreFromElement(): integration test with all basic functionality

        It's two parts, each with two things in them.
        aŒ  <score xmlns="http://www.music-encoding.org/ns/mei">
            <scoreDef meter.count="8" meter.unit="8">
                <staffGrp>
                    <staffDef n="1" clef.shape="G" clef.line="2"/>
                    <staffDef n="2" clef.shape="F" clef.line="4"/>
                </staffGrp>
            </scoreDef>
            <section>
                <measure>
                    <staff n="1">
                        <layer n="1">
                            <note pname="G" oct="4" dur="2" slur="1i"/>
                            <note pname="A" oct="4" dur="2" slur="1t"/>
                        </layer>
                    </staff>
                    <staff n="2">
                        <layer n="1">
                            <note pname="G" oct="2" dur="1"/>
                        </layer>
                    </staff>
                </measure>
            </section>
        </score>rV  rW  rƒ   r   ÚG4r   ÚA4ÚG2r  r=  N)rE   r  r   r$   r   ry  r,   r}  Úpartsr  rz  r!   r   r÷  rñ   r   r  r   r!  r
   r”  r   r“  rŸ   rd  r<  s       r'   ÚtestScoreIntegration1zTest.testScoreIntegration1  sÔ  € ðˆõ. Ô Ñ%Ô%ˆÝÔ*Ñ,Ô,ˆ
åÔ& t¨ZÑ8Ô8ˆð 	×Ò˜�C ¤Ñ-Ô-Ñ.Ô.Ð.Ø×Ò˜�C ™KœKÑ(Ô(Ð(Ø×Ò˜�C ¤¨Q¤Ñ0Ô0Ñ1Ô1Ð1Ø×Ò˜�C ¤¨Q¤Ñ0Ô0Ñ1Ô1Ð1Ø×Ò˜œ aœÔ8Ñ9Ô9Ð9Ø×Ò˜œ aœÔ8Ñ9Ô9Ð9Ø×Ò˜fœl¨1œo¨aÔ0µ&´.ÑAÔAÐAØ×Ò˜fœl¨1œo¨aÔ0µ&´.ÑAÔAÐAØ×Ò˜�C ¤¨Q¤°Ô 2Ñ3Ô3Ñ4Ô4Ð4à×Ò˜�C ¤¨Q¤°Ô 2Ñ3Ô3Ñ4Ô4Ð4à×Ò˜fœl¨1œo¨aÔ0°Ô3µV´\ÑBÔBÐBØ×Ò˜fœl¨1œo¨aÔ0°Ô3µV´\ÑBÔBÐBØ×Ò˜�C ¤¨Q¤°Ô 2°1Ô 5Ñ6Ô6Ñ7Ô7Ð7Ø×Ò˜�C ¤¨Q¤°Ô 2°1Ô 5Ñ6Ô6Ñ7Ô7Ð7Ø×Ò˜fœl¨1œo¨aÔ0°Ô3°AÔ6½¼	ÑBÔBÐBØ×Ò˜˜vœ|¨Aœ¨qÔ1°!Ô4°QÔ7ÔFÑGÔGÐGØ×Ò˜˜fœl¨1œo¨aÔ0°Ô3°AÔ6ÔDÑEÔEÐEØ×Ò˜fœl¨1œo¨aÔ0°Ô3°AÔ6½¼	ÑBÔBÐBØ×Ò˜˜vœ|¨Aœ¨qÔ1°!Ô4°QÔ7ÔFÑGÔGÐGØ×Ò˜˜fœl¨1œo¨aÔ0°Ô3°AÔ6ÔDÑEÔEÐEØ×Ò˜fœl¨1œo¨aÔ0°Ô3°AÔ6½¼	ÑBÔBÐBØ×Ò˜˜vœ|¨Aœ¨qÔ1°!Ô4°QÔ7ÔFÑGÔGÐGØ×Ò˜˜fœl¨1œo¨aÔ0°Ô3°AÔ6ÔDÑEÔEÐEà×Ò˜fœl¨1œo¨aÔ0°Ô3µT´_ÑEÔEÐEØ×Ò˜fœl¨1œo¨aÔ0°Ô3µUÔ5HÑIÔIÐIØ×Ò˜ ¤¨Q¤°Ô 2°1Ô 5Ô AÑBÔBÐBØ×Ò˜fœl¨1œo¨aÔ0°Ô3µT´]ÑCÔCÐCØ×Ò˜fœl¨1œo¨aÔ0°Ô3µUÔ5HÑIÔIÐIØ×Ò˜ ¤¨Q¤°Ô 2°1Ô 5Ô AÑBÔBÐBÐBÐBr)   z#music21.mei.base.measureFromElementz#music21.mei.base.sectionFromElementz$music21.mei.base.scoreDefFromElementc                óD  — d}t          j        |¦  «        }t          j        ¦   «         }dg}t          j        t          j        ¬¦  «        }d}	d}
t          j        t          j        ¬¦  «        g}d|i||
|	f|_        t          j        t          j        ¬¦  «        }|gddidœ|_        dd	i|_        d|gi}|||
|	f}t          j
        |||¦  «        }|                      ||¦  «         |                      d
|j        ¦  «         |                     t          j        ||dd
|¬¦  «         |                      t          › d�|j        d
         d
         d
         j        ¦  «         |                     t          j        |¦  «         |                      t          › d�|j        d
         d
         d
         j        ¦  «         |                     t          j        |¦  «         |                      t          › d�|j        d
         d
         d
         j        ¦  «         |                      d|d
         j        j        ¦  «         |d
         j                             d|¦  «         |d
         j                             dd¦  «         |d
         j                             dd	¦  «         dS )ak  
        sectionScoreCore(): everything basic, as called by scoreFromElement()
            - no keywords
                - and the <measure> has no @n; it would be set to "1" automatically
            - one of everything (<section>, <scoreDef>, and <staffDef>)
            - that the <measure> in here won't be processed (<measure> must be in a <section>)
            - things in a <section> are appended properly (different for <score> and <section>)

        mocked:
            - measureFromElement()
            - sectionFromElement()
            - scoreDefFromElement()
            - staffDefFromElement()
        áô  <score xmlns="http://www.music-encoding.org/ns/mei">
            <scoreDef meter.count="8" meter.unit="8"/>
            <staffDef n="1" clef.shape="G" clef.line="2"/>
            <measure/>
            <section>
                <measure>
                    <staff n="1">
                        <layer n="1">
                            <note pname="G" oct="4" dur="1"/>
                        </layer>
                    </staff>
                </measure>
            </section>
        </score>rq   r>   rƒ   úbarline for the next MeasureÚwhateverr=  ©rÊ  rq   útreble clefr   N©r  rn  ro  r#   rl  ÚscoreDefre  rW  rW  )rE   r  r   rD   r   r“  r   rI   rH   r   ÚsectionScoreCorer,   r  rL   re  r   r)  r-   rW  rd  )r%   ÚmockStaffDFEÚmockScoreDFEÚmockSectionFEÚmockMeasureFErx   r#   rr  ÚexpActiveMeterÚexpMeasureNumÚ	expNMLeftÚexpPart1ÚscoreDefActiveMeterra   r&   s                  r'   ÚtestCoreUnit1zTest.testCoreUnit1W  s£  € ð*ˆõ Ô Ñ%Ô%ˆÝ”^Ñ%Ô%ˆ
Ø�Eˆ	åœµÔ1DÐEÑEÔEˆØˆØ2ˆ	Ý”N­F¬MÐ:Ñ:Ô:Ð;ˆØ'*¨H oØ&4°iÀð&PˆÔ"õ #œnµeÔ6IÐJÑJÔJÐØ:MÐ9NØ+5°uÐ*=ð%?ð %?ˆÔ!ð &0°Ð$?ˆÔ!à˜(˜Ð$ˆØ˜n¨i¸ÐGˆåÔ& t¨Y¸
ÑCÔCˆð 	×Ò˜ 6Ñ*Ô*Ð*à×Ò˜˜MÔ4Ñ5Ô5Ð5à×-Ò-­d¬hØ.7Ø:MØ>BØ?@Ø9Cð 	.ñ 	Eô 	Eð 	Eð 	×Ò�FÐ+Ð+Ð+¨]Ô-IÈ!Ô-LÈQÔ-OÐPQÔ-RÔ-VÑWÔWÐWà×,Ò,­T¬X°zÑBÔBÐBØ×Ò�FÐ,Ð,Ð,¨lÔ.IÈ!Ô.LÈQÔ.OÐPQÔ.RÔ.VÑWÔWÐWà×,Ò,­T¬X°zÑBÔBÐBØ×Ò�FÐ,Ð,Ð,¨lÔ.IÈ!Ô.LÈQÔ.OÐPQÔ.RÔ.VÑWÔWÐWà×Ò˜˜H QœKÔ.Ô9Ñ:Ô:Ð:Ø�ŒÔ×*Ò*¨3Ð0CÑDÔDÐDØ�ŒÔ×*Ò*¨3°Ñ6Ô6Ð6Ø�ŒÔ×*Ò*¨3°Ñ>Ô>Ð>Ð>Ð>r)   c                óô  — d}t          j        |¦  «        }t          j        ¦   «         }dg}t	          j        |||¦  «        \  }}}}|                      d|j        ¦  «         |                      |¦  «         |                      d|¦  «         |                      dt          |¦  «        ¦  «         |  
                    d|v ¦  «         |                      dt          |d         ¦  «        ¦  «         |d         d         d         }|                      |t          j        ¦  «         |                      d|j        ¦  «         |                      dt          |¦  «        ¦  «         d}	d}
d}|                      ||         t          j        ¦  «         |                      dt          ||         ¦  «        ¦  «         |                      ||         d         t           j        ¦  «         |                      d||         d         j        ¦  «         |                      ||	         t&          j        ¦  «         |                      ||
         t*          j        ¦  «         |                      d||
         j        ¦  «         d	S )
aÌ  
        sectionScoreCore(): everything basic, as called by scoreFromElement()
            - no keywords
                - and the <measure> has no @n; it would be set to "1" automatically
            - one of everything (<section>, <scoreDef>, and <staffDef>)
            - that the <measure> in here won't be processed (<measure> must be in a <section>)
            - things in a <section> are appended properly (different for <score> and <section>)
        rˆ  rq   r=  rƒ   r   rW  rV  r‚  N©rE   r  r   r$   r   r�  r,   rŸ   r$  r}  r|  r!   r   r÷  rû  rñ   r   r  r   r
   r”  r   r“  ©r%   rx   r#   rr  Úparsedr  rn  ro  r9  Ú	clefIndexÚtimeSigIndexÚ
voiceIndexs               r'   ÚtestCoreIntegration1zTest.testCoreIntegration1¨  s?  € ðˆõ Ô Ñ%Ô%ˆÝÔ*Ñ,Ô,ˆ
Ø�Eˆ	åAEÔAVØ�)˜ZñB)ô B)Ñ>ˆ�˜_Ð.>ð 	×Ò˜ Ô 7Ñ8Ô8Ð8Ø×Ò˜/Ñ*Ô*Ð*Ø×Ò˜Ð,Ñ-Ô-Ð-à×Ò˜�C ™KœKÑ(Ô(Ð(Ø�Š˜˜v˜Ñ&Ô&Ð&Ø×Ò˜�C  s¤Ñ,Ô,Ñ-Ô-Ð-Ø�cŒ{˜1Œ~˜aÔ ˆØ×Ò˜d¥F¤NÑ3Ô3Ð3Ø×Ò˜˜DœKÑ(Ô(Ð(Ø×Ò˜�C ™IœIÑ&Ô&Ð&àˆ	ØˆØˆ
Ø×Ò˜d :Ô.µ´Ñ=Ô=Ð=Ø×Ò˜�C  ZÔ 0Ñ1Ô1Ñ2Ô2Ð2Ø×Ò˜d :Ô.¨qÔ1µ4´9Ñ=Ô=Ð=Ø×Ò˜˜t JÔ/°Ô2ÔAÑBÔBÐBØ×Ò˜d 9œo­t¬Ñ?Ô?Ð?Ø×Ò˜d <Ô0µ%Ô2EÑFÔFÐFØ×Ò˜  \Ô 2Ô >Ñ?Ô?Ð?Ð?Ð?r)   c                óÐ  — d}t          j        |¦  «        }t          j        ¦   «         }dg}t          j        t          j        ¬¦  «        }d|i|_        t          j        t          j        ¬¦  «        }	d}
d}t          j        t          j        ¬¦  «        g}d|i|	||
f|_        t          j        t          j        ¬¦  «        }|gddidœ|_        dd	i|_        d||d
         gi}||	||
f}t          j
        |||¦  «        }|                      ||¦  «         |                     t          j        d|||¬¦  «         |                     t          j        ||dd|¬¦  «         |                      t          › d�|j        d
         d
         d
         j        ¦  «         |                     t          j        |¦  «         |                      t          › d�|j        d
         d
         d
         j        ¦  «         |                     t          j        |¦  «         |                      t          › d�|j        d
         d
         d
         j        ¦  «         |                      d|j        j        ¦  «         |                      d
|d
         j        j        ¦  «         |j                             d|¦  «         |j                             dd¦  «         |j                             dd	¦  «         dS )a(  
        sectionScoreCore(): everything basic, as called by sectionFromElement()
            - no keywords
                - but the <measure> elements do have @n so those values should be used
            - one of most things (<section>, <scoreDef>, and <staffDef>)
            - two of <measure> (one in a <section>)
            - things in a <section> are appended properly (different for <score> and <section>)

        This test is roughly equivalent to testCoreUnit1()
        but with a <section> instead of a <score>.
        Note that, because the <measure> *should* be processed here, this test is indeed more
        complicated.

        mocked:
            - measureFromElement()
            - sectionFromElement()
            - scoreDefFromElement()
            - staffDefFromElement()
        áÍ  <section xmlns="http://www.music-encoding.org/ns/mei">
            <scoreDef meter.count="8" meter.unit="8"/>
            <staffDef n="1" clef.shape="G" clef.line="2"/>
            <measure n="400">
                <staff n="1">
                    <layer n="1">
                        <note pname="E" oct="7" dur="1"/>
                    </layer>
                </staff>
            </measure>
            <section>
                <measure n="92">
                    <staff n="1">
                        <layer n="1">
                            <note pname="G" oct="4" dur="1"/>
                        </layer>
                    </staff>
                </measure>
            </section>
        </section>rq   r>   rƒ   r‰  rŠ  r=  r‹  rŒ  r   )r#   r  Nr�  rl  rŽ  re  rW  rW  )rE   r  r   rD   r   rI   rH   r   r“  r   r�  r,   rL   re  r   r)  r-   rW  r  rd  )r%   r�  r‘  r’  r“  rx   r#   rr  ÚexpMeas1r”  r•  r–  r—  r˜  ra   r&   s                   r'   ÚtestCoreUnit2zTest.testCoreUnit2ß  só  € ð4ˆõ( Ô Ñ%Ô%ˆÝ”^Ñ%Ô%ˆ
Ø�Eˆ	å”>­6¬=Ð9Ñ9Ô9ˆØ&)¨8 _ˆÔ"åœµÔ1DÐEÑEÔEˆØˆØ2ˆ	Ý”N­F¬MÐ:Ñ:Ô:Ð;ˆØ'*¨H oØ&4°iÀð&PˆÔ"õ #œnµeÔ6IÐJÑJÔJÐØ:MÐ9NØ+5°uÐ*=ð%?ð %?ˆÔ!ð &0°Ð$?ˆÔ!à˜( H¨Q¤KÐ0Ð1ˆà˜n¨i¸ÐGˆåÔ& t¨Y¸
ÑCÔCˆð 	×Ò˜ 6Ñ*Ô*Ð*à×-Ò-­d¬h¸¸9Ø9CØ:Mð 	.ñ 	Oô 	Oð 	Oð 	×-Ò-­d¬hØ.7Ø:MØ>Bð @AØ9Cð 	.ñ 	Eô 	Eð 	Eð 	×Ò�FÐ+Ð+Ð+¨]Ô-IÈ!Ô-LÈQÔ-OÐPQÔ-RÔ-VÑWÔWÐWà×,Ò,­T¬X°zÑBÔBÐBØ×Ò�FÐ,Ð,Ð,¨lÔ.IÈ!Ô.LÈQÔ.OÐPQÔ.RÔ.VÑWÔWÐWà×,Ò,­T¬X°zÑBÔBÐBØ×Ò�FÐ,Ð,Ð,¨lÔ.IÈ!Ô.LÈQÔ.OÐPQÔ.RÔ.VÑWÔWÐWð 	×Ò˜˜HœOÔ6Ñ7Ô7Ð7Ø×Ò˜˜H QœKÔ.Ô9Ñ:Ô:Ð:ØŒ×'Ò'¨Ð-@ÑAÔAÐAØŒ×'Ò'¨¨UÑ3Ô3Ð3ØŒ×'Ò'¨¨]Ñ;Ô;Ð;Ð;Ð;r)   c                ó  — d}t          j        |¦  «        }t          j        ¦   «         }dg}t	          j        |||¦  «        \  }}}}|                      d|j        ¦  «         |                      |¦  «         |                      d|¦  «         |                      dt          |¦  «        ¦  «         |  
                    d|v ¦  «         |                      dt          |d         ¦  «        ¦  «         |d         d         }d}	d}
d}|                      |t          j        ¦  «         |                      d|j        ¦  «         |                      dt          |¦  «        ¦  «         |                      ||         t          j        ¦  «         |                      dt          ||         ¦  «        ¦  «         |                      ||         d         t           j        ¦  «         |                      d	||         d         j        ¦  «         |                      ||	         t&          j        ¦  «         |                      ||
         t*          j        ¦  «         |                      d||
         j        ¦  «         |d         d         }d}	d}
d}|                      |t          j        ¦  «         |                      d
|j        ¦  «         |                      dt          |¦  «        ¦  «         |                      |d         t          j        ¦  «         |                      dt          |d         ¦  «        ¦  «         |                      |d         d         t           j        ¦  «         |                      d|d         d         j        ¦  «         dS )a§  
        sectionScoreCore(): everything basic, as called by sectionFromElement()
            - no keywords
                - but the <measure> elements do have @n so those values should be used
            - one of most things (<section>, <scoreDef>, and <staffDef>)
            - two of <measure> (one in a <section>)
            - things in a <section> are appended properly (different for <score> and <section>)
        r£  rq   r=  rV  rƒ   r   r–  rW  ÚE7é\   r‚  Nr›  rœ  s               r'   ÚtestCoreIntegration2zTest.testCoreIntegration2E  s!  € ðˆõ( Ô Ñ%Ô%ˆÝÔ*Ñ,Ô,ˆ
Ø�Eˆ	åAEÔAVØ�)˜ZñB)ô B)Ñ>ˆ�˜_Ð.>ð 	×Ò˜ Ô 7Ñ8Ô8Ð8Ø×Ò˜/Ñ*Ô*Ð*Ø×Ò˜Ð,Ñ-Ô-Ð-à×Ò˜�C ™KœKÑ(Ô(Ð(Ø�Š˜˜v˜Ñ&Ô&Ð&Ø×Ò˜�C  s¤Ñ,Ô,Ñ-Ô-Ð-ð �cŒ{˜1Œ~ˆàˆ	ØˆØˆ
Ø×Ò˜d¥F¤NÑ3Ô3Ð3Ø×Ò˜˜dœkÑ*Ô*Ð*Ø×Ò˜�C ™IœIÑ&Ô&Ð&Ø×Ò˜d :Ô.µ´Ñ=Ô=Ð=Ø×Ò˜�C  ZÔ 0Ñ1Ô1Ñ2Ô2Ð2Ø×Ò˜d :Ô.¨qÔ1µ4´9Ñ=Ô=Ð=Ø×Ò˜˜t JÔ/°Ô2ÔAÑBÔBÐBØ×Ò˜d 9œo­t¬Ñ?Ô?Ð?Ø×Ò˜d <Ô0µ%Ô2EÑFÔFÐFØ×Ò˜  \Ô 2Ô >Ñ?Ô?Ð?à�cŒ{˜1Œ~ˆàˆ	ØˆØˆ
Ø×Ò˜d¥F¤NÑ3Ô3Ð3Ø×Ò˜˜Tœ[Ñ)Ô)Ð)Ø×Ò˜�C ™IœIÑ&Ô&Ð&Ø×Ò˜d 1œg¥v¤|Ñ4Ô4Ð4Ø×Ò˜�C  Q¤™LœLÑ)Ô)Ð)Ø×Ò˜d 1œg aœj­$¬)Ñ4Ô4Ð4Ø×Ò˜˜t Aœw qœzÔ8Ñ9Ô9Ð9Ð9Ð9r)   c                óÆ  — d}t          j        |¦  «        }t          j        ¦   «         }dg}t          j        t          j        ¬¦  «        }d}	d}
t          j        t          j        ¬¦  «        }d|i|_        |}d}|
dz   }d|gi}||||f}t          j
        |||||	|
¬	¦  «        }|                      ||¦  «         |                     t          j        |
dz   |||¬
¦  «         |                      d|j        ¦  «         |                      d|j        ¦  «         |                      d|j        ¦  «         |                      |	|d         d         d         j        ¦  «         dS )a9  
        sectionScoreCore(): everything basic, as called by sectionFromElement()
            - all keywords
                - and the <measure> has no @n; it should use the backupNum
                - activeMeter = a MagicMock (we expect this returned)
                - nextMeasureLeft = 'next left measure' (expected in the Measure)
                - backupMeasureNum = 900 (expected in the Measure)

        mocked:
            - measureFromElement()
            - sectionFromElement()
            - scoreDefFromElement()
            - staffDefFromElement()
        á&  <section xmlns="http://www.music-encoding.org/ns/mei">
            <measure>
                <staff n="1">
                    <layer n="1">
                        <note pname="G" oct="4" dur="1"/>
                    </layer>
                </staff>
            </measure>
        </section>rq   r>   znext left measurerð   )Ú	spect_setNrƒ   rm  ©r  r#   r   )rE   r  r   rD   r   r“  r   rI   rH   r   r�  r,   rL   re  r  rù  )r%   r�  r‘  r’  r“  rx   r#   rr  r  rn  ro  r¤  r”  r–  r•  ra   r&   s                    r'   ÚtestCoreUnit3zTest.testCoreUnit3‘  sŒ  € ð*ˆõ Ô Ñ%Ô%ˆÝ”^Ñ%Ô%ˆ
Ø�Eˆ	Ý”n­eÔ.AÐBÑBÔBˆØ-ˆØÐå”>­F¬MÐ:Ñ:Ô:ˆØ&)¨8 _ˆÔ"à$ˆØˆ	Ø(¨1Ñ,ˆØ˜(˜Ð$ˆØ˜n¨i¸ÐGˆåÔ& t¨Y¸
ÐP[Ø7FØ8HðJñ Jô Jˆð
 	×Ò˜ 6Ñ*Ô*Ð*à×-Ò-­d¬hØ.>ÀÑ.BØ.7Ø:EØ9Cð	 	.ñ 	Eô 	Eð 	Eð 	×Ò˜˜MÔ4Ñ5Ô5Ð5à×Ò˜˜LÔ3Ñ4Ô4Ð4à×Ò˜˜LÔ3Ñ4Ô4Ð4à×Ò˜¨&°¬)°C¬.¸Ô*;Ô*GÑHÔHÐHÐHÐHr)   c                ó6  — d}t          j        |¦  «        }t          j        ¦   «         }dg}t	          j        d¦  «        }t          j        d¦  «        }d}t          j	        ||||||¬¦  «        \  }}}}|  
                    d|j        ¦  «         |                      |¦  «         |  
                    d|¦  «         |  
                    dt          |¦  «        ¦  «         |                      d|v ¦  «         |  
                    dt          |d         ¦  «        ¦  «         |d         d	         }d	}	d}
|                      |t           j        ¦  «         |  
                    d|j        ¦  «         |  
                    d
t          |¦  «        ¦  «         |                      ||
         t           j        ¦  «         |  
                    dt          ||
         ¦  «        ¦  «         |                      ||
         d	         t(          j        ¦  «         |  
                    d||
         d	         j        ¦  «         |                      ||	         t          j        ¦  «         |  
                    d||	         j        ¦  «         |                      ||	         |j        ¦  «         dS )aš  
        sectionScoreCore(): everything basic, as called by sectionFromElement()
            - all keywords
                - and the <measure> has no @n; it should use the backupNum
                - activeMeter = a MagicMock (we expect this returned)
                - nextMeasureLeft = 'next left measure' (expected in the Measure)
                - backupMeasureNum = 900 (expected in the Measure)
        r«  rq   r=  r´  rð   rm  i…  rƒ   r   rV  r‚  N)rE   r  r   r$   r   r“  r	   rµ  r   r�  r,   rŸ   r$  r}  r|  r!   r   r÷  rû  rñ   r   r  r   r¾  rK   rù  )r%   rx   r#   rr  r  rn  ro  r�  r9  ÚrepeatIndexr   s              r'   ÚtestCoreIntegration3zTest.testCoreIntegration3Ô  sj  € ðˆõ Ô Ñ%Ô%ˆÝÔ*Ñ,Ô,ˆ
Ø�Eˆ	ÝÔ)¨%Ñ0Ô0ˆÝœ* WÑ-Ô-ˆØÐåAEÔAVØØØØ#Ø+Ø-ðB/ñ B/ô B/Ñ>ˆ�˜_Ð.>ð 	×Ò˜ Ô 7Ñ8Ô8Ð8Ø×Ò˜/Ñ*Ô*Ð*Ø×Ò˜Ð.Ñ/Ô/Ð/à×Ò˜�C ™KœKÑ(Ô(Ð(Ø�Š˜˜v˜Ñ&Ô&Ð&Ø×Ò˜�C  s¤Ñ,Ô,Ñ-Ô-Ð-à�cŒ{˜1Œ~ˆàˆØˆ
Ø×Ò˜d¥F¤NÑ3Ô3Ð3Ø×Ò˜˜dœkÑ*Ô*Ð*Ø×Ò˜�C ™IœIÑ&Ô&Ð&Ø×Ò˜d :Ô.µ´Ñ=Ô=Ð=Ø×Ò˜�C  ZÔ 0Ñ1Ô1Ñ2Ô2Ð2Ø×Ò˜d :Ô.¨qÔ1µ4´9Ñ=Ô=Ð=Ø×Ò˜˜t JÔ/°Ô2ÔAÑBÔBÐBØ×Ò˜d ;Ô/µ´Ñ<Ô<Ð<Ø×Ò˜ $ {Ô"3Ô"=Ñ>Ô>Ð>Ø�Š�d˜;Ô'¨Ô)9Ñ:Ô:Ð:Ð:Ð:r)   c                ó´  — d}t          j        |¦  «        }t          j        ¦   «         }dg}t          j        t          j        ¬¦  «        }	t          j        t          j        ¬¦  «        }
|	|
dœ|_        t          j        t          j
        ¬¦  «        }d|i|_        |}|
}d}d|	gi}||||f}t          j                             t          › d�t          › d�¦  «        }t          j        |||¦  «        }|                      ||¦  «         |j                             |¦  «         t          j                             d	d
¦  «        }|j                             |¦  «         |                     t          j        d|||¬¦  «         |                      d|j        ¦  «         |                      d|j        ¦  «         |                     t          j        |¦  «         dS )ad  
        sectionScoreCore(): as called by sectionFromElement()
            - there's an "rptboth" barline, so we have to return a "nextMeasureLeft"
            - the <staffDef> gives a TimeSignature, so we have to change "activeMeter" (and return)
            - there's a <staffDef> without @n attribute, so we have to warn the user about it
            - there's an unknown element, so we have to debug-warn the user

        mocked:
            - measureFromElement()
            - sectionFromElement()
            - scoreDefFromElement()
            - staffDefFromElement()
            - environLocal
        á¹  <section xmlns="http://www.music-encoding.org/ns/mei">
            <bogus>5</bogus>  <!-- this will be ignored -->
            <staffDef n="1" meter.count="6" meter.unit="8"/>
            <staffDef key.accid="3s" key.mode="minor"/>  <!-- this will be ignored -->
            <measure n="42" right="rptboth">
                <staff n="1"><layer n="1"><note pname="G" oct="4" dur="1"/></layer></staff>
            </measure>
        </section>rq   r>   )rq   rN  r   rƒ   Úbogusrl  r^  r_  r­  r   N)rE   r  r   rD   r   rI   r	   rµ  rH   r   r“  r   rç  r;   r   r�  r,   rè  rL   r`  rI  re  r  )r%   r�  r‘  r’  r“  rJ  rx   r#   rr  r¤  Ú	expRepeatÚexpMeterr”  r–  r•  ra   ÚexpPrintDebugr&   rK  s                      r'   ÚtestCoreUnit4zTest.testCoreUnit4  sÙ  € ð,ˆõ Ô Ñ%Ô%ˆÝ”^Ñ%Ô%ˆ
Ø�Eˆ	õ ”>­6¬=Ð9Ñ9Ô9ˆÝ”N­C¬JÐ7Ñ7Ô7ˆ	Ø+3À9Ð%MÐ%MˆÔ"å”>­5Ô+>Ð?Ñ?Ô?ˆØ%,¨hÐ$7ˆÔ!à!ˆØˆ	ØˆØ˜(˜Ð$ˆØ˜n¨i¸ÐGˆåÔ4×;Ò;½vÐ<LÐ<LÐ<LÝ?EÐ<NÐ<NÐ<NñPô PˆåÔ& t¨Y¸
ÑCÔCˆð 	×Ò˜ 6Ñ*Ô*Ð*àÔ×6Ò6°}ÑEÔEÐEåÔ,×3Ò3°LÀ$ÑGÔGˆØÔ×0Ò0°Ñ9Ô9Ð9à×-Ò-­d¬hØ./Ø.7Ø:HØ9Cð	 	.ñ 	Eô 	Eð 	Eð 	×Ò˜˜MÔ4Ñ5Ô5Ð5à×Ò˜˜LÔ3Ñ4Ô4Ð4à×,Ò,­T¬X°zÑBÔBÐBÐBÐBr)   c                óö  — d}t          j        |¦  «        }t          j        ¦   «         }dg}t	          j        |||¦  «        \  }}}}t          j                             dd¦  «        }	|j         	                    |	¦  «         |  
                    d|j        ¦  «         |                      |t          j        ¦  «         |  
                    d|¦  «         |  
                    dt          |¦  «        ¦  «         |                      d|v ¦  «         |  
                    dt          |d         ¦  «        ¦  «         |d         d         }
d}d}d}|                      |
t"          j        ¦  «         |  
                    d	|
j        ¦  «         |  
                    d
t          |
¦  «        ¦  «         |                      |
|         t"          j        ¦  «         |  
                    dt          |
|         ¦  «        ¦  «         |                      |
|         d         t*          j        ¦  «         |  
                    d|
|         d         j        ¦  «         |                      |
|         t0          j        ¦  «         |  
                    d|
|         j        ¦  «         |                      |
|         t          j        ¦  «         |  
                    d|
|         j        ¦  «         |                      |
|         |
j        ¦  «         dS )aª  
        sectionScoreCore(): as called by sectionFromElement()
            - there's an "rptboth" barline, so we have to return a "nextMeasureLeft"
            - the <staffDef> gives a TimeSignature, so we have to change "activeMeter" (and return)
            - there's a <staffDef> without @n attribute, so we have to warn the user about it
            - there's an unknown element, so we have to debug-warn the user
        r³  rq   r^  r_  ú6/8rƒ   r   rV  rï   rW  r‚  r±  N)rE   r  r   r$   r   r�  r`  r;   rI  rL   r,   rŸ   r!   r	   rµ  r}  r|  r   r÷  rû  rñ   r   r  r   r   r“  r¾  rK   rú  )r%   rJ  rx   r#   rr  r�  r  rn  ro  rK  r9  rŸ  r   r°  s                 r'   ÚtestCoreIntegration4zTest.testCoreIntegration4V  s®  € ðˆõ Ô Ñ%Ô%ˆÝÔ*Ñ,Ô,ˆ
Ø�Eˆ	åAEÔAVÐW[ØW`ØWañBcô BcÑ>ˆ�˜_Ð.>õ Ô,×3Ò3°LÀ$ÑGÔGˆØÔ×0Ò0°Ñ9Ô9Ð9ð 	×Ò˜ Ô 7Ñ8Ô8Ð8Ø×Ò˜o­s¬zÑ:Ô:Ð:Ø×Ò˜Ð,Ñ-Ô-Ð-à×Ò˜�C ™KœKÑ(Ô(Ð(Ø�Š˜˜v˜Ñ&Ô&Ð&Ø×Ò˜�C  s¤Ñ,Ô,Ñ-Ô-Ð-à�cŒ{˜1Œ~ˆàˆØˆ
ØˆØ×Ò˜d¥F¤NÑ3Ô3Ð3Ø×Ò˜˜Tœ[Ñ)Ô)Ð)Ø×Ò˜�C ™IœIÑ&Ô&Ð&Ø×Ò˜d :Ô.µ´Ñ=Ô=Ð=Ø×Ò˜�C  ZÔ 0Ñ1Ô1Ñ2Ô2Ð2Ø×Ò˜d :Ô.¨qÔ1µ4´9Ñ=Ô=Ð=Ø×Ò˜˜t JÔ/°Ô2ÔAÑBÔBÐBØ×Ò˜d <Ô0µ%Ô2EÑFÔFÐFØ×Ò˜  \Ô 2Ô >Ñ?Ô?Ð?Ø×Ò˜d ;Ô/µ´Ñ<Ô<Ð<Ø×Ò˜  [Ô 1Ô ;Ñ<Ô<Ð<Ø�Š�d˜;Ô'¨Ô):Ñ;Ô;Ð;Ð;Ð;r)   c                óX  — d}t          j        |¦  «        }t          j        ¦   «         }dg}t	          j        |||¦  «        \  }}}}|                      d|j        ¦  «         |                      |¦  «         |                      d|¦  «         |                      dt          |¦  «        ¦  «         |  
                    d|v ¦  «         |                      dt          |d         ¦  «        ¦  «         |d         d         d         }|                      |t          j        ¦  «         |d         d         d         }	d}
d}d}d}|                      |	t          j        ¦  «         |                      d|	j        ¦  «         |                      d	t          |	¦  «        ¦  «         |                      |	|         t          j        ¦  «         |                      dt          |	|         ¦  «        ¦  «         |                      |	|         d         t$          j        ¦  «         |                      d
|	|         d         j        ¦  «         |                      |	|
         t*          j        ¦  «         |                      |	|         t.          j        ¦  «         |                      d|	|         j        ¦  «         |                      d|	|         j        ¦  «         |                      |	|         t6          j        ¦  «         |                      d|	|         j        ¦  «         |d         d         d         }	|                      |	t          j        ¦  «         |                      d|	j        ¦  «         |                      dt          |	¦  «        ¦  «         |                      |	d         t          j        ¦  «         |                      dt          |	d         ¦  «        ¦  «         |                      |	d         d         t$          j        ¦  «         |                      d|	d         d         j        ¦  «         dS )ao  
        sectionScoreCore(): as called by scoreFromElement()

        With a preposterously embedded set of <section> elements, we have to ensure that
        staff-related metadata are cascaded properly into the <measure>

        NOTE there is no unit test corresponding to this integration test---this
            is really all about the cumulative effect
        aL  <score xmlns="http://www.music-encoding.org/ns/mei">
            <scoreDef key.sig="1f" key.mode="minor">
                <staffGrp>
                    <staffDef n="1" clef.line="4" clef.shape="F"/>
                </staffGrp>
            </scoreDef>
            <staffDef n="1" meter.count="6" meter.unit="8"/>
            <section>
                <staffDef n="1" label="tuba"/>
                <section>
                    <measure n="42">
                        <staff n="1"><layer n="1"><note pname="C" oct="1" dur="1"/></layer></staff>
                    </measure>
                </section>
            </section>
            <section>
                <measure n="402">
                    <staff n="1"><layer n="1"><note pname="C" oct="2" dur="1"/></layer></staff>
                </measure>
            </section>
        </score>rq   rº  rV  rƒ   r   rW  rï   r‚   ÚC1éÿÿÿÿr¥   i’  rb  N)rE   r  r   r$   r   r�  r,   rŸ   r$  r}  r|  r!   r   ré  r   r÷  rû  rñ   r   r  r   r
   rd  r   r±   r²   r³   r   r“  )r%   rx   r#   rr  r�  r  rn  ro  Úinstrr9  rž  ÚkeysigIndexÚtimesigIndexr   s                 r'   ÚtestCoreIntegration5zTest.testCoreIntegration5Ž  s§  € ðˆõ* Ô Ñ%Ô%ˆÝÔ*Ñ,Ô,ˆ
Ø�Eˆ	åAEÔAVÐW[ØW`ØWañBcô BcÑ>ˆ�˜_Ð.>ð
 	×Ò˜ Ô 7Ñ8Ô8Ð8Ø×Ò˜/Ñ*Ô*Ð*Ø×Ò˜Ð,Ñ-Ô-Ð-à×Ò˜�C ™KœKÑ(Ô(Ð(Ø�Š˜˜v˜Ñ&Ô&Ð&Ø×Ò˜�C  s¤Ñ,Ô,Ñ-Ô-Ð-à�s”˜A”˜qÔ!ˆØ×Ò˜e¥Z¤_Ñ5Ô5Ð5à�cŒ{˜1Œ~˜aÔ ˆàˆ	ØˆØˆØˆ
Ø×Ò˜d¥F¤NÑ3Ô3Ð3Ø×Ò˜˜Tœ[Ñ)Ô)Ð)Ø×Ò˜�C ™IœIÑ&Ô&Ð&Ø×Ò˜d :Ô.µ´Ñ=Ô=Ð=Ø×Ò˜�C  ZÔ 0Ñ1Ô1Ñ2Ô2Ð2Ø×Ò˜d :Ô.¨qÔ1µ4´9Ñ=Ô=Ð=Ø×Ò˜˜t JÔ/°Ô2ÔAÑBÔBÐBØ×Ò˜d 9œo­t¬}Ñ=Ô=Ð=Ø×Ò˜d ;Ô/µÔ1AÑBÔBÐBØ×Ò˜˜T +Ô.Ô5Ñ6Ô6Ð6Ø×Ò˜ $ {Ô"3Ô"8Ñ9Ô9Ð9Ø×Ò˜d <Ô0µ%Ô2EÑFÔFÐFØ×Ò˜  \Ô 2Ô >Ñ?Ô?Ð?à�cŒ{˜1Œ~˜aÔ ˆØ×Ò˜d¥F¤NÑ3Ô3Ð3Ø×Ò˜˜dœkÑ*Ô*Ð*Ø×Ò˜�C ™IœIÑ&Ô&Ð&Ø×Ò˜d 1œg¥v¤|Ñ4Ô4Ð4Ø×Ò˜�C  Q¤™LœLÑ)Ô)Ð)Ø×Ò˜d 1œg aœj­$¬)Ñ4Ô4Ð4Ø×Ò˜˜t Aœw qœzÔ8Ñ9Ô9Ð9Ð9Ð9r)   c                óÔ   — t          j        dddi¬¦  «        }t          j        |¦  «        }|                      |t
          j        ¦  «         |                      d|j        ¦  «         dS )z=
        barLineFromElement(): <barLine rend="dbl"/>
        ÚbarLineÚrendrÿ  r›   r  N©	rE   rF   r   ÚbarLineFromElementr!   r	   rÅ  r,   r·  rá  s      r'   ÚtestBarLine1zTest.testBarLine1ã  sb   € õ Œ}˜Y°¸¨Ð?Ñ?Ô?ˆÝÔ(¨Ñ.Ô.ˆØ×Ò˜f¥c¤kÑ2Ô2Ð2Ø×Ò˜ 6¤;Ñ/Ô/Ð/Ð/Ð/r)   c                óÌ   — t          j        d¦  «        }t          j        |¦  «        }|                      |t
          j        ¦  «         |                      d|j        ¦  «         dS )z2
        barLineFromElement(): <barLine/>
        rÄ  ÚregularNrÆ  rá  s      r'   ÚtestBarLine2zTest.testBarLine2ì  sY   € õ Œ}˜YÑ'Ô'ˆÝÔ(¨Ñ.Ô.ˆØ×Ò˜f¥c¤kÑ2Ô2Ð2Ø×Ò˜ F¤KÑ0Ô0Ð0Ð0Ð0r)   c                óÚ  — d}t          j        |¦  «        }|                     ¦   «         }|                      dt	          |j        d                              ¦   «         ¦  «        ¦  «         |j        d                              ¦   «         d         }|                      |t          j	        ¦  «         |                      |j
        d¦  «         |                      |j        j        d¦  «         dS )z‚
        Ensure that instrument details are imported properly.

        There should be one instrument called "Clarinet."
        a¤  <?xml version="1.0" encoding="UTF-8"?>
            <mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="2013">
            <music><score>
                <scoreDef meter.count="8" meter.unit="8">
                    <staffGrp>
                        <staffDef n="1" label="Clarinet" trans.diat="-2" trans.semi="-3">
                            <clef shape="F" line="4"/>
                        </staffDef>
                    </staffGrp>
                </scoreDef>
                <section>
                    <scoreDef key.sig="1f" key.mode="major"/>
                    <measure n="1">
                        <staff n="1">
                            <layer n="1" xml:id="asdf">
                                <note pname="E" oct="2" dur="1"/>
                            </layer>
                        </staff>
                    </measure>
                </section>
            </score></music></mei>
        rƒ   r   rq  r½   N)r   r   rJ   r,   r}  r…  ÚgetInstrumentsr!   r   r¥  r|  r�  rÁ   )r%   Ú	meiSourcerT   r&   r¿  s        r'   ÚtestInstrumentDetailszTest.testInstrumentDetailsý  sÇ   € ðˆ	õ, Ô)¨)Ñ4Ô4ˆà—’‘”ˆà×Ò˜�C ¤¨Q¤× >Ò >Ñ @Ô @ÑAÔAÑBÔBÐBØ”˜Q”×.Ò.Ñ0Ô0°Ô3ˆØ×Ò˜e¥ZÔ%:Ñ;Ô;Ð;Ø×Ò˜œ¨Ñ4Ô4Ð4Ø×Ò˜Ô,Ô9¸5ÑAÔAÐAÐAÐAr)   c                óX  — ddl m} ddl m} |                     ¦   «         dz  dz  dz  }|                     |¦  «        }t          ¦   «         }|                     ¦   «         D ]H}|                      t          |¦  «        ||¦  «         | 	                    t          |¦  «        ¦  «         ŒId S )Nr   )Úcommon)Ú	converterr+   Útestztest_file.mei)
r%  rÑ  rÒ  ÚgetSourceFilePathÚparserú  ÚrecurseÚassertNotInrò   Úadd)r%   rÑ  rÒ  Úfprd  Úseen_idsÚels          r'   ÚtestUniqueInstanceszTest.testUniqueInstances#  sº   € Ø"Ð"Ð"Ð"Ð"Ð"Ø%Ð%Ð%Ð%Ð%Ð%à×%Ò%Ñ'Ô'¨%Ñ/°&Ñ8¸?ÑJˆØ�OŠO˜BÑÔˆå‘5”5ˆØ—)’)‘+”+ð 	!ð 	!ˆBØ×Ò�R ™VœV X¨rÑ2Ô2Ð2Ø�LŠL�˜B™œÑ Ô Ð Ð ð	!ð 	!r)   N)ØÚ__name__Ú
__module__Ú__qualname__r(   r/   r7   r<   r   ÚpatchrW   rb   re   rl   ro   ry   r‹   r�   r“   r¡   r¬   r¶   rÄ   rÊ   rÏ   rÔ   rÖ   rÚ   rà   râ   rè   rí   r÷   rú   rÿ   r  r  r"  r%  r*  r0  r2  r9  r@  rC  rF  rL  rO  rR  r^  rb  ri  rn  rs  ry  r�  r„  r‡  r�  r™  rœ  r¥  rª  r¬  r®  rº  r¿  rÂ  rÆ  rË  rÎ  rÑ  rÔ  râ  rè  rì  rð  rü  r  r  r
  r  r"  r%  r+  r/  r9  r=  rH  rJ  rU  rY  ri  rk  ru  rx  r  r‚  rˆ  r‹  r‘  r“  Ústaticmethodr–  r°  r¸  r½  rÀ  rÄ  rÇ  rÍ  rÐ  rÕ  rØ  rë  rò  r÷  r  r  r  r  r3  r8  r?  rH  rK  rM  r_  rc  r�  r–  r˜  r›  rž  r¢  r¦  r¨  rª  r¹  rÂ  rÆ  rÍ  rÏ  rÓ  rÕ  rÝ  rã  rë  rý  r  r	  r  r  r  r  r  r  r)  r,  r/  r=  rE  rO  rS  r`  rd  rg  rr  rw  r{  r‡  r�  r   rª  r­  r°  rµ  rÀ  rÆ  rÌ  rÖ  rÚ  rÝ  rà  rç  rë  rñ  ró  rý  r  r  r  r  r  r:  rC  rK  rP  r[  ra  rj  rs  r€  r†  r™  r¡  r¥  r©  r®  r±  r¸  r»  rÂ  rÈ  rË  rÏ  rÜ  r  r)   r'   r   r   9   s6"  € € € € € ðHð Hð HðHð Hð Hð 	Fð 	Fð 	Fðbð bð bð €T„ZÐ+Ñ,Ô,Ø€T„ZÐ*Ñ+Ô+Ø€T„ZÐ+Ñ,Ô,Ø€T„ZÐ-Ñ.Ô.Ø€T„ZÐ.Ñ/Ô/Ø€T„ZÐ3Ñ4Ô4Ø€T„ZÐ/Ñ0Ô0ð@ð @ñ 1Ô0ñ 5Ô4ñ 0Ô/ñ /Ô.ñ -Ô,ñ ,Ô+ñ -Ô,ð@ð8	9ð 	9ð 	9ð	9ð 	9ð 	9ð9ð 9ð 9ð9ð 9ð 9ð
3ð 
3ð 
3ð3ð 3ð 3ð3ð 3ð 3ð	Fð 	Fð 	FðBð Bð Bð	Gð 	Gð 	Gð
4ð 
4ð 
4ð<ð <ð <ð<ð <ð <ð<ð <ð <ð<ð <ð <ð<ð <ð <ð<ð <ð <ð+ð +ð +ð+ð +ð +ð €T„ZÐ1Ñ2Ô2ð4ð 4ñ 3Ô2ð4ð €T„ZÐ6Ñ7Ô7ð1ð 1ñ 8Ô7ð1ð	+ð 	+ð 	+ðDð Dð Dð	Dð 	Dð 	Dð €T„ZÐ/Ñ0Ô0Ø€T„ZÐ2Ñ3Ô3Ø€T„ZÐ.Ñ/Ô/ð2ð 2ñ 0Ô/ñ 4Ô3ñ 1Ô0ð2ð €T„ZÐ/Ñ0Ô0Ø€T„ZÐ2Ñ3Ô3Ø€T„ZÐ.Ñ/Ô/ð<ð <ñ 0Ô/ñ 4Ô3ñ 1Ô0ð<ð&?ð ?ð ?ð,/ð /ð /ð*+ð +ð +ð7ð 7ð 7ð(7ð 7ð 7ð$Eð Eð Eð.6ð 6ð 6ð6ð 6ð 6ð(6ð 6ð 6ð( €T„ZÐ/Ñ0Ô0ð:ð :ñ 1Ô0ð:ð,6ð 6ð 6ð(6ð 6ð 6ð.	+ð 	+ð 	+ð6ð 6ð 6ð €T„ZÐ2Ñ3Ô3ðPð Pñ 4Ô3ðPð €T„ZÐ2Ñ3Ô3ðXð Xñ 4Ô3ðXð €T„ZÐ2Ñ3Ô3ðLð Lñ 4Ô3ðLð €T„ZÐ2Ñ3Ô3ð	+ð 	+ñ 4Ô3ð	+ð €T„ZÐ2Ñ3Ô3ð<ð <ñ 4Ô3ð<ð €T„ZÐ2Ñ3Ô3ð<ð <ñ 4Ô3ð<ð €T„ZÐ2Ñ3Ô3ð6ð 6ñ 4Ô3ð6ð €T„ZÐ8Ñ9Ô9ð+ð +ñ :Ô9ð+ð €T„ZÐ8Ñ9Ô9ð	+ð 	+ñ :Ô9ð	+ð €T„ZÐ8Ñ9Ô9ð	+ð 	+ñ :Ô9ð	+ð+ð +ð +ð+ð +ð +ð+ð +ð +ð+ð +ð +ð=ð =ð =ð	9ð 	9ð 	9ð	9ð 	9ð 	9ð7ð 7ð 7ð7ð 7ð 7ð7ð 7ð 7ð7ð 7ð 7ð7ð 7ð 7ð/ð /ð /ð/ð /ð /ð/ð /ð /ð.ð .ð .ð/ð /ð /ð"1ð 1ð 1ð8 €T„ZÐ/Ñ0Ô0ð[ð [ñ 1Ô0ð[ð$ €T„ZÐ/Ñ0Ô0ðXð Xñ 1Ô0ðXð2 €T„ZÐ#Ñ$Ô$Ø€T„ZÐ;Ñ<Ô<Ø€T„ZÐ,Ñ-Ô-Ø€T„ZÐ/Ñ0Ô0ðNð Nñ 1Ô0ñ .Ô-ñ =Ô<ñ %Ô$ðNð62ð 2ð 2ð
2ð 
2ð 
2ð €T„ZÐ#Ñ$Ô$Ø€T„ZÐ;Ñ<Ô<Ø€T„ZÐ,Ñ-Ô-Ø€T„ZÐ/Ñ0Ô0Ø€T„ZÐ3Ñ4Ô4ðNð Nñ 5Ô4ñ 1Ô0ñ .Ô-ñ =Ô<ñ %Ô$ð
NðBOð Oð Oð$ €T„ZÐ#Ñ$Ô$Ø€T„ZÐ;Ñ<Ô<Ø€T„ZÐ,Ñ-Ô-Ø€T„ZÐ/Ñ0Ô0Ø€T„ZÐ1Ñ2Ô2Ø€T„ZÐ/Ñ0Ô0Ø€T„ZÐ+Ñ,Ô,ðKð Kñ -Ô,ñ 1Ô0ñ 3Ô2ñ 1Ô0ñ .Ô-ñ =Ô<ñ %Ô$ðKð@7ð 7ð 7ð( €T„ZÐ#Ñ$Ô$Ø€T„ZÐ;Ñ<Ô<Ø€T„ZÐ,Ñ-Ô-Ø€T„ZÐ/Ñ0Ô0Ø€T„ZÐ0Ñ1Ô1Ø€T„ZÐ*Ñ+Ô+ð?ð ?ñ ,Ô+ñ 2Ô1ñ 1Ô0ñ .Ô-ñ =Ô<ñ %Ô$ð?ðB:ð :ð :ð( €T„ZÐ#Ñ$Ô$Ø€T„ZÐ;Ñ<Ô<Ø€T„ZÐ,Ñ-Ô-Ø€T„ZÐ/Ñ0Ô0Ø€T„ZÐ0Ñ1Ô1ðIð Iñ 2Ô1ñ 1Ô0ñ .Ô-ñ =Ô<ñ %Ô$ð
Ið<:ð :ð :ð2 €T„ZÐ#Ñ$Ô$Ø€T„ZÐ;Ñ<Ô<Ø€T„ZÐ,Ñ-Ô-Ø€T„ZÐ/Ñ0Ô0Ø€T„ZÐ3Ñ4Ô4ð+9ð +9ñ 5Ô4ñ 1Ô0ñ .Ô-ñ =Ô<ñ %Ô$ð
+9ðZ5ð 5ð 5ðB €T„ZÐ#Ñ$Ô$Ø€T„ZÐ/Ñ0Ô0Ø€T„ZÐ0Ñ1Ô1ð3ð 3ñ 2Ô1ñ 1Ô0ñ %Ô$ð3ð*Cð Cð Cð".ð .ð .ð Cð Cð Cð" €T„ZÐ2Ñ3Ô3ð
@ð 
@ñ 4Ô3ð
@ð €T„ZÐ2Ñ3Ô3ð,ð ,ñ 4Ô3ð,ð €T„ZÐ3Ñ4Ô4ð
6ð 
6ñ 5Ô4ð
6ð €T„ZÐ3Ñ4Ô4ð,ð ,ñ 5Ô4ð,ð( ð=ð =ñ „\ð=ð €T„ZÐ%Ñ&Ô&Ø€T„ZÐ;Ñ<Ô<Ø€T„ZÐ/Ñ0Ô0Ø€T„ZÐ2Ñ3Ô3ðOð Oñ 4Ô3ñ 1Ô0ñ =Ô<ñ 'Ô&ðOð48ð 8ð 8ð  €T„ZÐ%Ñ&Ô&Ø€T„ZÐ;Ñ<Ô<Ø€T„ZÐ/Ñ0Ô0Ø€T„ZÐ2Ñ3Ô3ðOð Oñ 4Ô3ñ 1Ô0ñ =Ô<ñ 'Ô&ðOð<Oð Oð Oð& €T„ZÐ%Ñ&Ô&Ø€T„ZÐ;Ñ<Ô<Ø€T„ZÐ/Ñ0Ô0Ø€T„ZÐ2Ñ3Ô3Ø€T„ZÐ1Ñ2Ô2Ø€T„ZÐ/Ñ0Ô0Ø€T„ZÐ+Ñ,Ô,ðLð Lñ -Ô,ñ 1Ô0ñ 3Ô2ñ 4Ô3ñ 1Ô0ñ =Ô<ñ 'Ô&ðLð<7ð 7ð 7ð* €T„ZÐ%Ñ&Ô&Ø€T„ZÐ;Ñ<Ô<Ø€T„ZÐ/Ñ0Ô0Ø€T„ZÐ2Ñ3Ô3Ø€T„ZÐ0Ñ1Ô1ð@ð @ñ 2Ô1ñ 4Ô3ñ 1Ô0ñ =Ô<ñ 'Ô&ð
@ð<:ð :ð :ð. €T„ZÐ%Ñ&Ô&Ø€T„ZÐ;Ñ<Ô<Ø€T„ZÐ/Ñ0Ô0Ø€T„ZÐ2Ñ3Ô3Ø€T„ZÐ0Ñ1Ô1ðIð Iñ 2Ô1ñ 4Ô3ñ 1Ô0ñ =Ô<ñ 'Ô&ð
Ið6Bð Bð Bð< €T„ZÐ-Ñ.Ô.Ø€T„ZÐ-Ñ.Ô.Ø€T„ZÐ&Ñ'Ô'ð5ð 5ñ (Ô'ñ /Ô.ñ /Ô.ð5ð2 €T„ZÐ-Ñ.Ô.Ø€T„ZÐ-Ñ.Ô.Ø€T„ZÐ&Ñ'Ô'ð5ð 5ñ (Ô'ñ /Ô.ñ /Ô.ð5ð* €T„ZÐ-Ñ.Ô.Ø€T„ZÐ-Ñ.Ô.Ø€T„ZÐ&Ñ'Ô'ð5ð 5ñ (Ô'ñ /Ô.ñ /Ô.ð5ð*:ð :ð :ð :ð :ð :ð :ð :ð :ð  €T„ZÐ-Ñ.Ô.Ø€T„ZÐ-Ñ.Ô.Ø€T„ZÐ&Ñ'Ô'ð0ð 0ñ (Ô'ñ /Ô.ñ /Ô.ð0ð2 €T„ZÐ2Ñ3Ô3Ø€T„ZÐ&Ñ'Ô'Ø€T„ZÐ0Ñ1Ô1ð+Lð +Lñ 2Ô1ñ (Ô'ñ 4Ô3ð+LðZ €T„ZÐ2Ñ3Ô3Ø€T„ZÐ&Ñ'Ô'Ø€T„ZÐ0Ñ1Ô1ð$1ð $1ñ 2Ô1ñ (Ô'ñ 4Ô3ð$1ðL €T„ZÐ2Ñ3Ô3Ø€T„ZÐ&Ñ'Ô'Ø€T„ZÐ0Ñ1Ô1ð#Fð #Fñ 2Ô1ñ (Ô'ñ 4Ô3ð#FðJ:ð :ð :ð2:ð :ð :ð,Fð Fð Fð* €T„ZÐ3Ñ4Ô4ðYð Yñ 5Ô4ðYð8#<ð #<ð #<ðR €T„ZÐ6Ñ7Ô7Ø€T„ZÐ4Ñ5Ô5Ø€T„ZÐ3Ñ4Ô4Ø€T„ZÐ2Ñ3Ô3Ø€T„ZÐ:Ñ;Ô;ð7>ð 7>ñ <Ô;ñ 4Ô3ñ 5Ô4ñ 6Ô5ñ 8Ô7ð
7>ðt2ð 2ð 2ð82ð 2ð 2ð8 €T„ZÐ/Ñ0Ô0Ø€T„ZÐ6Ñ7Ô7Ø€T„ZÐ4Ñ5Ô5Ø€T„ZÐ3Ñ4Ô4Ø€T„ZÐ2Ñ3Ô3Ø€T„ZÐ:Ñ;Ô;ð1>ð 1>ñ <Ô;ñ 4Ô3ñ 5Ô4ñ 6Ô5ñ 8Ô7ñ 1Ô0ð1>ðf2ð 2ð 2ð0 €T„ZÐ/Ñ0Ô0Ø€T„ZÐ/Ñ0Ô0Ø€T„ZÐ6Ñ7Ô7Ø€T„ZÐ4Ñ5Ô5Ø€T„ZÐ3Ñ4Ô4Ø€T„ZÐ2Ñ3Ô3Ø€T„ZÐ:Ñ;Ô;ð2>ð 2>ñ <Ô;ñ 4Ô3ñ 5Ô4ñ 6Ô5ñ 8Ô7ñ 1Ô0ñ 1Ô0ð2>ðhQð Qð Qð0 €T„ZÐ/Ñ0Ô0Ø€T„ZÐ/Ñ0Ô0Ø€T„ZÐ6Ñ7Ô7Ø€T„ZÐ4Ñ5Ô5Ø€T„ZÐ3Ñ4Ô4Ø€T„ZÐ2Ñ3Ô3Ø€T„ZÐ:Ñ;Ô;ð/ð /ñ <Ô;ñ 4Ô3ñ 5Ô4ñ 6Ô5ñ 8Ô7ñ 1Ô0ñ 1Ô0ð/ð&=ð =ð =ð €T„ZÐ6Ñ7Ô7ð;ð ;ñ 8Ô7ð;ð&/ð /ð /ð(/ð /ð /ð2 €T„ZÐ4Ñ5Ô5Ø€T„ZÐ3Ñ4Ô4ð.ð .ñ 5Ô4ñ 6Ô5ð.ð.Bð Bð Bð$ €T„ZÐ4Ñ5Ô5Ø€T„ZÐ3Ñ4Ô4Ø€T„ZÐ6Ñ7Ô7ð?ð ?ñ 8Ô7ñ 5Ô4ñ 6Ô5ð?ð8Nð Nð Nð:Oð Oð OðFð Fð Fð  €T„ZÐ/Ñ0Ô0ð?ð ?ñ 1Ô0ð?ð(Dð Dð Dð*Rð Rð Rð*Dð Dð Dð. €T„ZÐ&Ñ'Ô'ðDð Dñ (Ô'ðDð2Rð Rð Rð,+ð +ð +ð+ð +ð +ð+ð +ð +ð&7ð 7ð 7ð.Cð Cð Cð*Gð Gð Gð8Cð Cð Cð6Lð Lð Lð2 €T„ZÐ/Ñ0Ô0ðQð Qñ 1Ô0ðQð, €T„ZÐ&Ñ'Ô'ð$0ð $0ñ (Ô'ð$0ðN €T„ZÐ&Ñ'Ô'Ø€T„ZÐ/Ñ0Ô0ðRð Rñ 1Ô0ñ (Ô'ðRð6Sð Sð SðDSð Sð Sð6 €T„ZÐ/Ñ0Ô0ðVð Vñ 1Ô0ðVð,$Tð $Tð $TðN €T„ZÐ/Ñ0Ô0ð=ð =ñ 1Ô0ð=ð6$Zð $Zð $ZðL;ð ;ð ;ð2@ð @ð @ð" €T„ZÐ)Ñ*Ô*ðEð Eñ +Ô*ðEð4 €T„ZÐ)Ñ*Ô*ðDð Dñ +Ô*ðDð0 €T„ZÐ)Ñ*Ô*ð?ð ?ñ +Ô*ð?ð( €T„ZÐ)Ñ*Ô*ðDð Dñ +Ô*ðDð4Eð Eð Eð( €T„ZÐ;Ñ<Ô<Ø€T„ZÐ0Ñ1Ô1Ø€T„ZÐ/Ñ0Ô0ðHð Hñ 1Ô0ñ 2Ô1ñ =Ô<ðHð( €T„ZÐ;Ñ<Ô<Ø€T„ZÐ0Ñ1Ô1Ø€T„ZÐ/Ñ0Ô0ðHð Hñ 1Ô0ñ 2Ô1ñ =Ô<ðHð. €T„ZÐ;Ñ<Ô<Ø€T„ZÐ0Ñ1Ô1Ø€T„ZÐ/Ñ0Ô0ðHð Hñ 1Ô0ñ 2Ô1ñ =Ô<ðHð0
Gð 
Gð 
GðGð Gð Gð,Gð Gð Gð,Gð Gð Gð4 €T„ZÐ>Ñ?Ô?ð=ð =ñ @Ô?ð=ð €T„ZÐ/Ñ0Ô0ðAð Añ 1Ô0ðAð €T„ZÐ-Ñ.Ô.ð<ð <ñ /Ô.ð<ð* €T„ZÐ-Ñ.Ô.ð<ð <ñ /Ô.ð<ð4)ð )ð )ð)ð )ð )ð )ð )ð )ð Fð Fð FðKð Kð KðDð Dð Dð$ €T„ZÐ3Ñ4Ô4Ø€T„ZÐ4Ñ5Ô5Ø€T„ZÐ0Ñ1Ô1Ø€T„ZÐ(Ñ)Ô)Ø€T„ZÐ&Ñ'Ô'ð<Að <Añ (Ô'ñ *Ô)ñ 2Ô1ñ 6Ô5ñ 5Ô4ð
<Að|8Dð 8Dð 8Dðt €T„ZÐ3Ñ4Ô4Ø€T„ZÐ4Ñ5Ô5Ø€T„ZÐ0Ñ1Ô1Ø€T„ZÐ(Ñ)Ô)Ø€T„ZÐ&Ñ'Ô'ð<Að <Añ (Ô'ñ *Ô)ñ 2Ô1ñ 6Ô5ñ 5Ô4ð
<Að|0Gð 0Gð 0Gðd €T„ZÐ3Ñ4Ô4Ø€T„ZÐ4Ñ5Ô5Ø€T„ZÐ0Ñ1Ô1Ø€T„ZÐ(Ñ)Ô)Ø€T„ZÐ6Ñ7Ô7ð/1ð /1ñ 8Ô7ñ *Ô)ñ 2Ô1ñ 6Ô5ñ 5Ô4ð
/1ðb €T„ZÐ3Ñ4Ô4Ø€T„ZÐ4Ñ5Ô5Ø€T„ZÐ0Ñ1Ô1Ø€T„ZÐ(Ñ)Ô)Ø€T„ZÐ/Ñ0Ô0ð,Cð ,Cñ 1Ô0ñ *Ô)ñ 2Ô1ñ 6Ô5ñ 5Ô4ð
,Cð\,#ð ,#ð ,#ðl €T„ZÐ3Ñ4Ô4ðLð Lñ 5Ô4ðLð0 €T„ZÐ2Ñ3Ô3Ø€T„ZÐ3Ñ4Ô4Ø€T„ZÐ%Ñ&Ô&Ø€T„ZÐ&Ñ'Ô'ð$4ð $4ñ (Ô'ñ 'Ô&ñ 5Ô4ñ 4Ô3ð$4ñLCCð CCð CCðJ €T„ZÑ5Ñ6Ô6Ø€T„ZÑ5Ñ6Ô6Ø€T„ZÑ6Ñ7Ô7Ø€T„ZÐ6Ñ7Ô7ñK?ð K?ñ 8Ô7ñ 8Ô7ñ 7Ô6ñ 7Ô6ðK?ñZ5@ð 5@ð 5@ðn €T„ZÑ5Ñ6Ô6Ø€T„ZÑ5Ñ6Ô6Ø€T„ZÑ6Ñ7Ô7Ø€T„ZÐ6Ñ7Ô7ñ`<ð `<ñ 8Ô7ñ 8Ô7ñ 7Ô6ñ 7Ô6ð`<ñDJ:ð J:ð J:ðX €T„ZÑ5Ñ6Ô6Ø€T„ZÑ5Ñ6Ô6Ø€T„ZÑ6Ñ7Ô7Ø€T„ZÐ6Ñ7Ô7ñ=Ið =Iñ 8Ô7ñ 8Ô7ñ 7Ô6ñ 7Ô6ð=Iñ~8;ð 8;ð 8;ðt €T„ZÐ/Ñ0Ô0Ø€T„ZÑ5Ñ6Ô6Ø€T„ZÑ5Ñ6Ô6Ø€T„ZÑ6Ñ7Ô7Ø€T„ZÐ6Ñ7Ô7ñACð ACñ 8Ô7ñ 8Ô7ñ 7Ô6ñ 7Ô6ñ 1Ô0ð
ACðF €T„ZÐ/Ñ0Ô0ñ5<ð 5<ñ 1Ô0ð5<ñnO:ð O:ð O:ñj0ð 0ð 0ñ1ð 1ð 1ðñ
$Bð $Bð $BñL
!ð 
!ð 
!ñ 
!ð 
!r)   r   Ú__main__)$Ú__doc__Ú
__future__r   ÚunittestÚ	xml.etreer   rE   Úcollectionsr   Ú	fractionsr   r   r%  r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   Úmusic21.meir   Úmusic21.mei.baser   r   ÚTestCaser   rÝ  ÚmainTestr  r)   r'   ú<module>rí     s   ððð ð #Ð "Ð "Ð "Ð "Ð "ð €€€ð
 +Ð *Ð *Ð *Ð *Ð *à #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø #Ð #Ð #Ð #Ð #Ð #ð
tO!ð tO!ð tO!ð tO!ð tO!ˆ8Ôñ tO!ô tO!ð tO!ðn_ ˆzÒÐØ€N€N€NØ€GÔ�TÑÔÐÐÐð Ðr)   