
    rhe                        S SK Jr  S SK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KJ
r
  S S	KJr  S S
KJr  S SKJr  S SKJrJr   " S S\R$                  5      r\S:X  a  S SKr\R*                  " \5        gg)    )annotationsN)common)	converter)corpus)key)note)pitch)scale)stream)m21ToXml)Pitch
Accidentalc                      \ 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S rS rS rS rS rS rS rS rS rSrg)Test   c                    [        S5      n[        R                  " U5      nU R                  X5        U R                  UR                  UR                  5        g )NzC#3)r   copydeepcopyassertIsNot
accidental)selfp1p2s      Q/home/james-whalen/.local/lib/python3.13/site-packages/music21/test/test_pitch.pytestCopyManuallyTest.testCopyManually   s?    5\]]2 6    c                f    [         R                  " S5      nU R                  [        U5      S5        g )NB#3z<music21.pitch.Pitch B#3>)r	   r   assertEqualreprr   ps     r   testReprTest.testRepr%   s%    KKa"=>r   c                R    [        S5      nU R                  UR                  S5        g )Nr      )r   r    octave)r   bs     r   
testOctaveTest.testOctave)   s    %L1%r   c                   U R                  [        S5         [        S5      nS S S 5        U R                  [        5         [        S5      nS S S 5        [        S5      nU R	                  UR
                  S5        U R                  [        S5         SUl        S S S 5        g ! , (       d  f       N= f! , (       d  f       Nm= f! , (       d  f       g = f)Nz6Cannot have octave given before pitch name in '8D-4'\.z8D-423   z:Argument to name, 32, must be a string, not <class 'int'>.    )assertRaisesRegex
ValueErrorr   assertRaisesr    midinamer"   s     r   testNameSettingTest.testNameSetting-   s    ##J$]_fA_ z*dA +"I$##H
 AF	
 
_ _ +*
 
s#   B" B3C"
B03
C
Cc                ~   [         R                  " S5      nUR                  S   R                  [        R
                  5      nUS   R                  S   nU R                  UR                  R                  S5        U R                  UR                  R                  S5        U R                  UR                  R                  5        UR                  S   R                  S5      nUR                  S   nU R                  UR                  R                  S5        U R                  UR                  R                  5        g	)
z7
Test that we are getting the properly set accidentals
z
bwv438.xml   r      flatnormal   sharpN)r   parsepartsgetElementsByClassr   Measurepitchesr    r   r4   displayTypeassertFalsedisplayStatusmeasure
assertTrue)r   stenorMeasurespAlteredaltoM6s        r   testAccidentalImportTest.testAccidentalImport=   s     LL&
55fnnE #++A.,,116:,,88(C,,::;##A&>>!$,,117;++99:r   c                J   [        S5      [        S5      [        S5      /n[        S5      n[        S5      Ul        SUR                  l        U R	                  UR
                  S5        U R                  UR                  R                  5        UR                  USS9  U R                  UR                  R                  5        [        R                  " U5      nU R                  UR                  R                  5        U R	                  UR                  R
                  S5        g)	#
Test updating accidental display.
zA#3zC#CcnaturalT)	pitchPastoverrideStatusN)r   r   r   rE   r    r4   rG   updateAccidentalDisplayrD   r   r   )r   pastar)   s       r   !testUpdateAccidentalDisplaySimple&Test.testUpdateAccidentalDisplaySimpleN   s     eeDk5:6#J!),%)"%223	!!D!F334MM!334**I6r   c           	       ^  S nU 4S jn[        S5      [        S5      [        S5      [        S5      [        S5      /n/ SQnU" U/ 5        U" X45        [        S5      [        S5      [        S5      [        S	5      [        S5      /n/ SQnU" U/ 5        U" X45        [        S
5      [        S5      [        S	5      [        S5      [        S5      [        S5      /n/ SQnU" U/ 5        U" X45        [        S
5      [        S
5      [        S5      [        S5      [        S5      [        S5      [        S5      /n/ SQnU" U/ 5        U" X45        [        S
5      [        S5      [        S5      /n/ SQnU" U/ 5        U" X45        [        S
5      [        S5      [        S5      /nSUS   R                  l        / SQnU" U/ 5        U" X45        [        S5      [        S5      [        S	5      /n[        S5      US   l        SUS   R                  l        / SQnU" U/ 5        U" X45        [        S
5      [        S5      [        S5      /n/ SQnU" U/ 5        U" X45        [        S
5      [        S5      [        S
5      /n/ SQnU" U/ 5        U" X45        [        S5      [        S5      [        S5      /n/ SQnU" U/ 5        U" X45        g)rO   c                V    U  H#  nUR                  US9  UR                  U5        M%     g )N)rS   rU   append)_pListrV   r#   s      r   proc4Test.testUpdateAccidentalDisplaySeries.<locals>.proce   s(    ))D)9A r   c                <  > [        [        X5      5       H  u  nu  p4UR                  c  S nS nO,UR                  R                  nUR                  R                  nUu  pxT	R                  XWSU SU SU 35        T	R                  UUU SU SU SU 35        M     g Nzname error for z: z instead of desired z
 display: z	, target 	enumeratezipr   r4   rE   r    
_past_resultir#   _resultItempNamepDisplayStatus
targetNametargetDisplayStatusr   s
            r   compare7Test.testUpdateAccidentalDisplaySeries.<locals>.comparej       '0U1D'E##A<<' E%)NLL--E%&\\%?%?N2=/
  #21#Rw>RS]R^!_a  "'cA3j(8	BUAVW (Fr   a#3a3)r=   TrR   Trt   ru   rt   za#2a6za#1a5za-2g3za#5zg-3)r:   TNNru   rt   ry   ru   za-5a2)ry   r:   Fry   rt   rt   ru   ru   )ry   rt   rt   alwaysr8   rR   )rz   rz   ru   )ry   rz   ry   g#3zd-2)rz   rt   ry   N)r   r   rC   r   )r   r_   ro   pListresults   `    r   !testUpdateAccidentalDisplaySeries&Test.testUpdateAccidentalDisplaySeriesa   s{   	
	* uuT{E%LteEl,6UB uuT{E%LteEl,6UB uuT{E$KuuU|U4[:FUB uuU|U5\uuU|U4[%+GZUB uuU|U5\:CUB uuU|U5\:*2a'CUB teDk5;7(3a*2a'@UB uuT{E%L9?UB uuT{E%L9?UB teElE%L9@UBr   c                p  ^  S nU 4S jn[        S5      [        S5      [        S5      [        S5      [        S5      [        S5      [        S5      /n/ SQn[        R                  " S5      nU" U/ UR                  5        U" X45        [        S	5      [        S
5      [        S5      [        S5      [        S5      [        S5      [        S5      /n/ SQn[        R                  " S5      nU" U/ UR                  5        U" X45        [        S	5      [        S5      [        S5      [        S5      [        S5      [        S5      /n/ SQn[        R                  " S5      nU" U/ UR                  5        U" X45        [        S	5      [        S5      [        S5      [        S5      [        S5      [        S5      /n/ SQn[        R                  " S5      nU" U/ UR                  5        U" X45        [        S5      [        S5      [        S5      [        S5      [        S5      [        S5      /n/ SQn[        R                  " S5      nU" U/ UR                  5        U" X45        [        S5      [        S5      [        S5      [        S5      [        S5      [        S5      [        S5      [        S5      [        S5      /	n/ SQn[        R                  " S5      nU" U/ UR                  5        U" X45        [        S5      [        S	5      [        S5      [        S5      [        S5      [        S5      [        S5      [        S5      [        S5      [        S5      [        S5      [        S5      /n/ SQn[        R                  " S5      nU" U/ UR                  5        U" X45        [        S5      [        S	5      [        S5      [        S 5      [        S5      [        S5      [        S5      [        S	5      [        S5      /	n/ S!Qn[        R                  " S5      nU" U/ UR                  5        U" X45        g")#z9
Test updating accidental display against a KeySignature
c                V    U  H#  nUR                  XS9  UR                  U5        M%     g )N)rS   alteredPitchesr\   )r^   rV   r   r#   s       r   r_   @Test.testUpdateAccidentalDisplaySeriesKeySignature.<locals>.proc   s(    ))D)XA r   c                <  > [        [        X5      5       H  u  nu  p4UR                  c  S nS nO,UR                  R                  nUR                  R                  nUu  pxT	R                  XWSU SU SU 35        T	R                  UUU SU SU SU 35        M     g rb   rc   rf   s
            r   ro   CTest.testUpdateAccidentalDisplaySeriesKeySignature.<locals>.compare   rq   r   zf#3zf#2f3rx   )r=   Fr   ru   rt   r   rz   r   r9   rs   b2c#3r~   a4)rz   rz   r   r   r   r   rz   r'   c#4zg#4)rz   r   r   ru   r   rt   zf#4)r   ru   rt   rz   rt   r   d3e3f4)	rz   rz   r   rz   ru   rt   r   rt   r   r8   b3zb-3a-3ze-3)ru   ru   ru   ry   ry   ry   r|   r|   r|   r|   r|   r|   b4)	ru   ru   ru   ru   ry   ry   ru   ru   ru   N)r   r   KeySignaturer   )r   r_   ro   r   r   kss   `     r   -testUpdateAccidentalDisplaySeriesKeySignature2Test.testUpdateAccidentalDisplaySeriesKeySignature   sv   	
	* uuU|U4[uuU|U4[%,HUa UB))* teDk5<uuU|U5\5;HVa UB))* teElE%LteElE%L:Ha UB))* teElE%LteElE%L:Ha UB))* uuT{E%LteElE%L:D a UB))* teDk5<teDk5<uuU|U5\;G a UB))* teDk5;uuU|U5\uuU|U5\uuU|U5\;
 b!UB))* teDk5;teElE%LteDk5;8K b!UB))*r   c                  ^  S nS nU 4S jn[        S5      [        S5      [        S5      [        S5      /n/ SQnU" U/ 5        U" XE5        [        S5      [        S5      [        S5      [        S5      /nU" U/ 5        U" XE5        [        S5      n[        S5      [        S	5      [        S
5      /nUR                  USS9  T R                  UR                  S5        g)z#
test if octave display is working
c                Z    U  H%  nUR                  USSS9  UR                  U5        M'     g )NTFrS   cautionaryPitchClasscautionaryNotImmediateRepeatr\   r^   rg   r#   s      r   proc16Test.testUpdateAccidentalDisplayOctaves.<locals>.proc1=  s3    ))EPTGL * NQ r   c                Z    U  H%  nUR                  USSS9  UR                  U5        M'     g )NFr   r\   r   s      r   proc26Test.testUpdateAccidentalDisplayOctaves.<locals>.proc2C  s3    ))EPUGL * NQ r   c                <  > [        [        X5      5       H  u  nu  p4UR                  c  S nS nO,UR                  R                  nUR                  R                  nUu  pxT	R                  XWSU SU SU 35        T	R                  UUU SU SU SU 35        M     g rb   rc   rf   s
            r   ro   8Test.testUpdateAccidentalDisplayOctaves.<locals>.compareI  rq   r   r   r   )rt   rt   r   r   r   rr   zc#rQ   F)rS   r   N)r   rU   r    r   )r   r   r   ro   r   r   r   rV   s   `       r   "testUpdateAccidentalDisplayOctaves'Test.testUpdateAccidentalDisplayOctaves9  s    	 	 	( uuU|U5\u$eRuuU|U5\ueR4[eeDk5:6
""T"N-r   c                   [         R                  " S5      R                  5       nUR                  S[        R
                  " S5      5        UR                  SSS9  U[        R                     nU R                  US   R                  R                  R                  S5        U R                  US   R                  R                  R                  S5        U R                  US   R                  R                  R                  S5        U R                  US   R                  R                  R                  S5        U R                  US   R                  R                  R                  S	5        U R                  US   R                  R                  R                  S5        U R                  US
   R                  R                  R                  S	5        U R                  US
   R                  R                  R                  S5        U R                  US   R                  R                  R                  S5        U R                  US   R                  R                  R                  S5        U R                  US   R                  R                  R                  S5        U R                  US   R                  R                  R                  S5        U R                  US   R                  R                  5        U R                  US   R                  R                  R                  S5        U R                  US   R                  R                  R                  S5        g)z~
a nasty test provided by Jose Cabal-Ugaz about octave leaps,
cautionaryNotImmediateRepeat=False
and key signature conflicts.
z/tinynotation: 4/4 fn1 fn1 e-8 e'-8 fn4 en4 e'n4r   r9   TF)inPlacer   rR   r8   r:   r'         r<   N)r   r>   flatteninsertr   r   makeNotationr   Noter    r	   r   r4   rE   assertIsNotNone)r   bmnotess      r   testAccidentalsCautionaryTest.testAccidentalsCautionaryn  sf    __NOWWY
		!S%%a()
5I499q2277Cq22@@$Gq2277Cq22@@$Gq2277@q22@@$Gq2277@q22@@$Gq2277Cq22@@$Gq2277Cq22@@$GU1X^^667q2277Cq22@@$Gr   c                :   [         R                  " S5      nSUR                  R                  l        [
        R                  " S5      nUR                  R                  SUR                  S9  U R                  UR                  R                  R                  S5        g )NCnTrP   )rT   r   F)
r   r   r	   r   rE   r   KeyrU   r   assertIs)r   nks      r   testOverrideDisplayStatusTest.testOverrideDisplayStatus  si    IIdO+/(GGCL	''tAL\L\']agg((66>r   c                    [         R                  " S5      nUR                  5       R                  R	                  5       nUR                  SS9  U R                  UR                  R                  R                  S5        S UR                  R                  l	        US   R                  5       R                  S[        R                  " S5      5        UR                  SS9  U R                  UR                  R                  R                  S5        g )NztinyNotation: 2/4 f4 fn4Tr   FrA   r   C-)r   r>   recurser   lastmakeAccidentalsr   r	   r   rE   firstr   r   r   r   r#   	last_notes      r   testImplicitToExplicitNatural"Test.testImplicitToExplicitNatural  s    OO67IIK%%**,		$'ioo00>>F37	""0	)##Aswwt}5	$'ioo00>>Fr   c                l   [         R                  " S5      nUR                  5       R                  R	                  5       n[        S5      UR                  l        SUR                  R                  l        UR                  SS9  U R                  UR                  R                  R                  S5        U[        R                     R                  5       R                  S[         R"                  " S5      5        UR                  SSS	9  U R                  UR                  R                  R                  S5        S
U[         R"                     R                  5       l        UR                  SSS	9  U R                  UR                  R                  R                  S5        [         R                  " S5      nUR                  5       R                  R	                  5       n[        S5      UR                  l        SUR                  R                  l        UR                  SS9  U R                  UR                  R                  R                  S5        UR                  R                  R'                  S5        UR                  SSS	9  U R                  UR                  R                  R                  S5        g)z6
Beginning of test cases for if-absolutely-necessary.
ztinyNotation: 2/4 f#2 f2rR   zif-absolutely-necessaryTr   Fr   ir   rT   ztinyNotation: 2/4 F#4 f4r=   N)r   r>   r   r   r   r   r	   r   rC   r   r   rE   r   rA   r   r   r   r   sharpssetr   s      r   testIfAbsolutelyNecessaryTest.testIfAbsolutelyNecessary  s    OO67IIK%%**,	%/	%:	"1J	"".	$'ioo00>>F	&..!((C,<,<R,@A	$t<ioo00>>E-/#

!!#*	$t<ioo00>>FOO67IIK%%**,	%/	%:	"1J	"".	$'ioo00>>F 	""&&w/	$t<ioo00>>Er   c                   [         R                  " S5      nUR                  SS9  U[        R                     R                  5       nU R                  UR                  R                  R                  S5        S UR                  R                  l	        US   R                  5       R                  S[        R                  " S5      5        UR                  SS9  U R                  UR                  R                  R                  S5        g )NztinyNotation: 2/4 f4 dn4Tr   FrA   r   r   )r   r>   r   r   r   r   r   r	   r   rE   r   r   r   r   r   s      r    testNaturalOutsideAlteredPitches%Test.testNaturalOutsideAlteredPitches  s    OO67	$'diiL%%'	ioo00>>F 48	""0	)##Aswwt}5	$'ioo00>>Er   c                   [         R                  " S5      nUR                  S5      R                  S[        R
                  " S5      5        SUR                  5       R                  R                  5       R                  R                  l        UR                  SSS9  U R                  UR                  S5      R                  R                  5       R                  R                  R                  S5        U R                  UR                  S5      R                  R                  5       R                  R                  R                  S5        g )NztinyNotation: f#4 e f#r9   r   GFTr   )r   r>   rF   r   r   r   r   r   r   r	   r   rE   r   r   r   r"   s     r   3testInterveningNoteBetweenIdenticalChromaticPitches8Test.testInterveningNoteBetweenIdenticalChromaticPitches  s    OO45			!Aswws|,BG		 &&11?	$t<aiil((..066AAOOQVWaiil((--/55@@NNPUVr   c                B   / SQnU H0  u  p#n[        U5      n[        U5      nU R                  XV:H  U5        M2     [        S5      n[        S5      nU R                  XV5        SUl        SUl        U R                  XV5        SUl        SUl        U R                  XV5        g)rO   )	)rW   r)   F)rW   rW   T)a#rW   F)r   zb-F)r   za-F)za##r   F)a#4r   T)r   za-4F)rr   r   Fr   r   r'   N)r   r    r(   assertNotEqual)r   dataxymatchr   r   s          r   testPitchEqualityTest.testPitchEquality  s    

  KA%qBqBRXu-  
 4[4[ 		B#		 r   c                    [        S5      nUR                  S5      nU R                  UR                  S5        U R                  UR                  S5        g )ND2zM-23rP   )r   	transposer    r4   r(   )r   dPitchlowCs      r   testLowNotesTest.testLowNotes  sC    t'C(b)r   c                8   [        S5      nU R                  [        U5      S5        [        R                  " 5       R                  U5      R                  S5      nSnUR                  SS5      nUR                  SS5      nU R                  UR                  U5      S5        [        R                  " 5       nS HU  n[        U5      nU R                  [        U5      U5        [        R                  " 5       nXgl        UR                  U5        MW     U R                  [!        U5      S	5        U Vs/ s H  oR                  R"                  PM     nnU R                  U/ S
Q5        [        R                  " 5       n/ SQn	[$        R&                  " S5      n
[)        SS5       Hl  n[        R                  " U
R+                  XR-                  5       -  5      5      nSUl        [1        X   5      UR                  l        UR                  U5        Mn     UR4                   Vs/ s H  n[        UR                  5      PM     nnU R                  U/ SQ5        U Vs/ s H  oR                  R"                  PM     nnU R                  U/ SQ5        g s  snf s  snf s  snf )NzD#~zutf-8z2<step>D</step><alter>1.5</alter><octave>4</octave>  
r   )zA~zA#~zA`zA-`r   )g     `Q@     Q@g      Q@     P@)
N      ?g      ?g      g      z
half-sharpzone-and-a-half-sharpz	half-flatzone-and-a-half-flat~c4r9   
   r   )	zC~4zD#~4zE-`4zF`4zG~4zA#~4zB`4zC-`4zD~4)	g     @N@g     O@     @O@g      P@r   r   r   g     @M@r   )r   r    strr   GeneralObjectExporterr>   decodereplacer   findr   Streamr   r   r	   r]   lenpsr
   
MajorScalerangepitchFromDegreegetDegreeMaxUniquequarterLengthr   r   r   )r   r   xmlOutr   rH   pStrr#   r   e	alterListscr   s               r   testQuarterToneATest.testQuarterToneA  s   5\R%(//177;BB7KDR(b)FKK.3MMO.DdASVT*		AGHHQK / 	Q#%&'QQ' 89MMO	 d#q"A		",,Q1F1F1H-HIJA!AO!+IL!9AGGHHQK	  ()ww/w!QWWw/\	^ &''QQ' VW' ( 0 (s   0JJJc                   [         R                  " S5      nSUl        U R                  [	        U5      S5        U R                  UR
                  S5        SUl        U R                  [	        U5      S5        U R                  UR
                  S5        U R                  UR                  S5        UR                  S	5      nU R                  [	        U5      S
5        U R                  UR
                  S5        g )Nr      zA4(+25c)g     PQ@z-10zA4(-10c)g9Q@	      zA5(-10c)g9T@)r	   r   	microtoner    r   r   
pitchClassr   r"   s     r   testMicrotoneATest.testMicrotoneA  s    KKQ,u%Q,u%q)KKOQ,u%r   c                N	   U R                  [        [        R                  " S5      R	                  S5      5      S5        [        R                  " S5      nSUl        U R                  [        U5      S5        U R                  [        UR	                  S5      5      S5        U R                  [        [        R                  " S5      R	                  S5      5      S5        U R                  [        [        R                  " S5      R	                  S5      5      S	5        U R                  [        [        R                  " S5      R	                  S
5      5      S5        U R                  [        [        R                  " S5      R	                  S5      5      S5        U R                  [        [        R                  " S5      R	                  S5      5      S5        U R                  [        [        R                  " S5      R	                  S5      5      S5        U R                  [        R                  " S5      R                  S5      S5        U R                  [        [        R                  " S5      R	                  S5      5      S5        U R                  [        [        R                  " S5      R	                  S5      5      S5        U R                  [        [        R                  " S5      R	                  S5      5      S5        U R                  [        R                  " S5      R                  S5      S5        [        R                  " S5      nSUl        U R                  [        UR	                  S5      5      S5        [        R                  " S5      n[        R                  " S5      nSUl        U R                  UR                  U5      S5        SUl        U R                  UR                  U5      S5        [        R                  " S5      nU R                  [        UR	                  S5      5      S5        [        R                  " S 5      nU R                  [        UR	                  S5      5      S!5        U R                  [        UR                  S"5      5      S#5        g )$Nr   r9   C4   zC4(+20c)r8   C5r'   zG5(+2c)r   C6r   zE6(-14c)r<   zG6(+2c)   z	A~6(+19c)g4c3z3rdH(-2c)/C3c2C3z2ndH/C3izC4(-10c)iz2ndH(+20c)/C3(-20c)z2ndH(-20c)/C3(+20c)c1   z	G#~4(-9c)a1zF~5(-9c)M6A1)r    r   r	   r   getHarmonicr  harmonicStringr   )r   r#   fr   r   s        r   testMicrotoneBTest.testMicrotoneB'  s6   U[[.::1=>EKKQ,Q]]1-.
;U[[.::1=>EU[[.::1=>	JU[[.::1=>EU[[.::1=>
KU[[.::1=>	JU[[.::1=>LT*99$?PU[[.::1=>EU[[.::1=>EU[[.::1=>ET*99$?KKKQ]]1-.
;KKKK))!,.CD))!,.CD[[R^^B/0+>[[R^^B/0*=R\\$/0$7r   c                   / n[         R                  " S5      nSUl        [        S5       H;  nUR	                  [        U5      5        UR                  R                  S-
  Ul        M=     U R                  [        U5      S5        g )Nr  r      r9   zt['C4(+5c)', 'C4(+4c)', 'C4(+3c)', 'C4(+2c)', 'C4(+1c)', 'C4', 'C4(-1c)', 'C4(-2c)', 'C4(-3c)', 'C4(-4c)', 'C4(-5c)'])r	   r   r  r   r]   r   centsr    )r   r   r#   ri   s       r   testMicrotoneCTest.testMicrotoneCU  sm    KKrALLQ ++++a/AK  	UZ	[r   c                4   / SQnU R                  [        U5      S5        / nU H8  n[        R                  " 5       nX4l        UR                  [        U5      5        M:     U R                  [        R                  " [        U5      S5      [        U5      5        g )N)i  gUUUUU|@g}@i  g
@gUUUUU@i&  g@gUUUUUU@i]  gz@gUUUUU@i  g2@gUUUUUŅ@i  g@gUUUUU}@i  g@gUUUUU5@i9  gZ@gUUUUU@   aj  
                ['A4', 'A~4(+21c)', 'B`4(-11c)', 'B4(+4c)', 'B~4(+17c)', 'C~5(-22c)',
                 'C#5(-14c)', 'C#~5(-7c)', 'D5(-2c)', 'D~5(+1c)', 'E-5(+3c)', 'E`5(+3c)',
                 'E5(+2c)', 'E~5(-1c)', 'F5(-4c)', 'F~5(-9c)', 'F#5(-16c)', 'F#~5(-23c)',
                 'F#~5(+19c)', 'G5(+10c)', 'G~5(-1c)', 'G#5(-12c)', 'G#~5(-24c)', 'G#~5(+14c)'])
r    r   r	   r   	frequencyr]   r   rG   r   whitespaceEqual)r   r!  r   fqr#   s        r   testMicrotoneDTest.testMicrotoneD`  s    9 	Q$BAKLLQ   	""E
c J
	
r    N)__name__
__module____qualname____firstlineno__r   r$   r*   r5   rL   rX   r   r   r   r   r   r   r   r   r   r   r   r  r  r"  r'  r.  __static_attributes__r0  r   r   r   r      s~    7?& ;"7&fPn`3.jH6?	GF>
FW!2*'XR&"*8\	[
r   r   __main__)
__future__r   r   unittestmusic21r   r   r   r   r   r	   r
   r   music21.musicxmlr   music21.pitchr   r   TestCaser   r1  mainTestr0  r   r   <module>r>     sc    #           % +[	
8 [	
| zT r   