
    3j^                        d dl m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  G d	 d
ej                        Zedk(  rd dlZ ej                   e       yy)    )annotations)
fromstringN)clef)meter)MeasureParser)note)streamc                      e Zd Zd Zd Zd Zy)Testc                   dt         j                  gdt         j                  gdt         j                  gdt         j                  gdt         j
                  gdt         j                  gdt         j                  gdt         j                  gd	t         j                  gd
t         j                  gdt         j                  gdt         j                  gdt         j                  gdt         j                  gdt         j                  gdt         j                   gg}t#               }|D ]  \  }}|\  }}}t%        d|z   dz   t'        |      z   dz   dz   t'        |      z   dz         }|j)                  |      }	| j+                  |	j,                  |d          | j+                  |	j.                  |d          | j+                  |	j0                  |d          | j3                  |	|d|	 d|         y )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
             C/DATA/.local/lib/python3.12/site-packages/music21/test/test_clef.pytestConversionClassMatchzTest.testConversionClassMatch   s   
 $//0$//*4--.$,,-$++,$**+$//0$--($..)$,,-$,,-$--($**+4++,$**+DLL)!
& _!$FI'-$D$!01d)$&/0 11 l+	,
 99 :F V$A QVVVAY/QVVVAY/Q^^VAY7!!!Y$B1#ZPY{"[] "%    c                L   t        j                  d      }d|_        t        j                         }d|_        t        j                  ||g      }| j                  |j                         j                  d   j                  t        j                        |       ~t        j                  d      }d|j                  _        t        j                  d      }d|j                  _        t        j                  d      }t        j                         }|j!                  |       |j!                  |       |j!                  |       |j!                  |       |j#                          | j                  |j                  t        j                        |       ~t        j                  d      }d	|j                  _        t        j                  d
      }	d	|	j                  _        t        j                  d      }
d|
j                  _        t        j                  d      }t        j$                         }t        j&                         }t        j                         }|j!                  |       |j!                  |       |j!                  |       |j!                  |       |j!                  |	       |j!                  |
       |j#                          | j                  |j                  t
        j(                        |	j                  t
        j(                               | j                  |j                  t        j                        |       | j                  |	j                  t        j                        |       | j                  |
j                  t        j                        |       y )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)r/   n1c1s1n2n3ts1s2n4n5n6ts2bc1tc1s3s                  r6   testContextszTest.testContexts9   s_   YYs^	]]_	]]B8$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;r8   c                   t        j                         }t        j                  dd      }t        j                  dd      }|j	                  t        j                                |j	                  t        j                  d             |j	                  |       |j	                  |       |j                  d       | j                  |j                  d   j                  d	       y )
N@   g      ?)quarterLengthC   r>   T)inPlacer   down)r	   rN   r   rA   rL   r   r&   r   rK   	makeBeamsr*   rF   stemDirection)r/   mrO   rR   s       r6   testTabClefBeamDirectionszTest.testTabClefBeamDirectionsm   s    NNYYr.YYr.	 	$$U+,			D!116:r8   N)__name__
__module____qualname__r7   r]   rg    r8   r6   r   r      s    )]V2<h;r8   r   __main__)
__future__r   xml.etree.ElementTreer   r'   unittestmusic21r   r   music21.musicxml.xmlToM21r   r   r	   TestCaser   rh   mainTestrk   r8   r6   <module>rt      sT    " 2    3  l;8 l;^ zGT r8   