
    rh^                        S SK Jr  S SKJr  S SKrS SKJr  S SKJr  S SK	J
r
  S SKJr  S SKJr   " S	 S
\R                  5      r\S:X  a  S SKr\R                   " \5        gg)    )annotations)
fromstringN)clef)meter)MeasureParser)note)streamc                  &    \ rS rSrS rS rS rSrg)Test   c                   S[         R                  /S[         R                  /S[         R                  /S[         R                  /S[         R
                  /S[         R                  /S[         R                  /S[         R                  /S	[         R                  /S
[         R                  /S[         R                  /S[         R                  /S[         R                  /S[         R                  /S[         R                  /S[         R                   //n[#        5       nU H  u  p4Uu  pVn[%        SU-   S-   ['        U5      -   S-   S-   ['        U5      -   S-   5      nUR)                  U5      n	U R+                  U	R,                  US   5        U R+                  U	R.                  US   5        U R+                  U	R0                  US   5        U R3                  XSU	 SU 35        M     g )N)G   r   )r      r   )r   r   )r   r   r   )r      r   )Cr   r   )r   r   r   )r   r   r   )r      r   )r      r   )Fr   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )TABr   r   z<clef><sign>z</sign><line>z</line>z<clef-octave-change>z</clef-octave-change></clef>r   r   r   zFailed Conversion of classes: z
 is not a )r   FrenchViolinClef
TrebleClefTreble8vbClefTreble8vaClefGSopranoClefSopranoClefMezzoSopranoClefAltoClef	TenorClefCBaritoneClefFBaritoneClefBassClefBass8vaClefBass8vbClefSubBassClefTabClefr   Elstr	xmlToClefassertEqualsignlineoctaveChangeassertIsInstance)
selfsrcMPparams	classNamer,   r-   r.   mxClefcs
             P/home/james-whalen/.local/lib/python3.13/site-packages/music21/test/test_clef.pytestConversionClassMatchTest.testConversionClassMatch   s   
 $//0$//*4--.$,,-$++,$**+$//0$--($..)$,,-$,,-$--($**+4++,$**+DLL)!
& _!$F'-$D!01d)$&/0 11 l+	,
 99 :F V$A QVVVAY/QVVVAY/Q^^VAY7!!!$B1#ZPY{"[] "%    c                f   [         R                  " S5      nSUl        [        R                  " 5       nSUl        [
        R                  " X!/5      nU R                  UR                  5       R                  S   R                  [        R                  5      U5        A[         R                  " S5      nSUR                  l        [         R                  " S5      nSUR                  l        [        R                  " S5      n[
        R                  " 5       nUR!                  U5        UR!                  U5        UR!                  U5        UR!                  U5        UR#                  5         U R                  UR                  [        R                  5      U5        A[         R                  " S5      nS	UR                  l        [         R                  " S
5      n	S	U	R                  l        [         R                  " S5      n
SU
R                  l        [        R                  " S5      n[        R$                  " 5       n[        R&                  " 5       n[
        R                  " 5       nUR!                  U5        UR!                  U5        UR!                  U5        UR!                  U5        UR!                  U	5        UR!                  U
5        UR#                  5         U R                  UR                  [
        R(                  5      U	R                  [
        R(                  5      5        U R                  UR                  [        R                  5      U5        U R                  U	R                  [        R                  5      U5        U R                  U
R                  [        R                  5      U5        g )Nr   
   r   DwholeE4/4r   halfr   A)r   Noteoffsetr   r   r	   StreamassertIsrecursenotesgetContextByClassClefdurationtyper   TimeSignatureappendmakeMeasuresr#   r   Measure)r0   n1c1s1n2n3ts1s2n4n5n6ts2bc1tc1s3s                  r7   testContextsTest.testContexts9   s]   YYs^	]]_	]]B8$bjjl((+==diiH"M YYs^"YYs^"!!%(]]_
		"
		#
		"
		"
b**4995r:YYs^!YYs^!YYs^"!!%(mmooo]]_
		#
		#
		"
		#
		"
		"
b**6>>:B<P<PQWQ_Q_<`ab**4995s;b**4995s;b**4995s;r:   c                   [         R                  " 5       n[        R                  " SSS9n[        R                  " SSS9nUR	                  [
        R                  " 5       5        UR	                  [        R                  " S5      5        UR	                  U5        UR	                  U5        UR                  SS9  U R                  UR                  S   R                  S	5        g )
N@   g      ?)quarterLengthC   r@   T)inPlacer   down)r	   rP   r   rC   rN   r   r'   r   rM   	makeBeamsr+   rH   stemDirection)r0   mrQ   rT   s       r7   testTabClefBeamDirectionsTest.testTabClefBeamDirectionsm   s    NNYYr.YYr.	 	$$U+,			D!116:r:    N)__name__
__module____qualname____firstlineno__r8   r_   rj   __static_attributes__rl   r:   r7   r   r      s    )]V2<h;r:   r   __main__)
__future__r   xml.etree.ElementTreer   r(   unittestmusic21r   r   music21.musicxml.xmlToM21r   r   r	   TestCaser   rm   mainTestrl   r:   r7   <module>rz      sR    " 2    3  l;8 l;^ zT r:   