
    rh                    p   S SK Jr  S SK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  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  \R0                  " S5      r " S S\R4                  5      r\S:X  a  S SKr\R:                  " \5        gg)    )annotationsN)	testFiles)bar)	converter)corpus)environment)expressions)features)
instrument)meter)m21ToXml)testPrimitive)note)pitch)repeat)spanner)streamztest.test_repeatc                     \ 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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.r0g/)0Test   c                d   [         R                  " 5       n[         R                  " 5       n[        R                  " SS9Ul        [        R                  " SSS9Ul        UR                  [        R                  " SSS9S	5        U R                  [        UR                  S
5      5      S5        [         R                  " 5       n[        R                  " SS9Ul        [        R                  " SSS9Ul        UR                  [        R                  " SSS9S	5        UR                  U5        UR                  U5        U R                  [        US
   5      S	5        [        R                  " U5      nU R!                  UR#                  5       5        U R                  UR%                  U5      S/5        g )Nstart	directionend   r   timesg3   quarterLength   
RepeatMarkd4r   )r   PartMeasurer   RepeatleftBarlinerightBarlinerepeatAppendr   NoteassertEquallengetElementsByClassappendr   Expander
assertTruerepeatBarsAreCoherentfindInnermostRepeatIndices)selfsm1m2exs        R/home/james-whalen/.local/lib/python3.13/site-packages/music21/test/test_repeat.pytestFilterByRepeatMarkTest.testFilterByRepeatMark   s.   KKM^^g6**uA>
		$a8!<R22<@A1E^^g6**uA>
		$a8!<		
 	Q|_-q1 __Q002366q9A3?    c                   [         R                  " 5       n[         R                  " 5       n[        R                  " SS9Ul        [        R                  " SSS9Ul        UR                  [        R                  " SSS9S	5        [         R                  " 5       n[         R                  " 5       n[        R                  " SS9Ul        UR                  [        R                  " S
SS9S	5        UR                  U5        UR                  U5        UR                  U5        [        R                  " U5      nU R                  UR                  5       5        U R                  UR!                  U5      S/5        g )Nr   r   r   r   r   r   r    r!   r#   r%   r   )r   r&   r'   r   r(   r)   r*   r+   r   r,   r0   r   r1   assertFalseisExpandabler-   r4   r5   r6   r7   r8   m3r9   s         r:   testRepeatCoherenceBTest.testRepeatCoherenceB8   s    KKM^^g6**uA>
		$a8!<^^^^g6
		$a8!<			 __Q*+66q9A3?r=   c                V   [         R                  " 5       n[         R                  " 5       n[        R                  " SS9Ul        UR                  [        R                  " SSS9S5        [         R                  " 5       n[        R                  " SS9Ul        UR                  [        R                  " SSS9S5        [         R                  " 5       n[        R                  " SS	S
9Ul	        UR                  [        R                  " SSS9S5        [         R                  " 5       n[        R                  " SS	S
9Ul	        UR                  [        R                  " SSS9S5        UR                  U5        UR                  U5        UR                  U5        UR                  U5        [        R                  " U5      nU R                  UR                  5       5        U R                  UR!                  U5      SS	/5        UR#                  5       nU R                  [%        UR'                  [         R                  5      5      S5        U R                  [%        UR)                  5       R*                  5      S5        U R                  UR'                  [         R                  5       Vs/ s H  oR,                  PM     sn/ SQ5        U R                  UR/                  5       R'                  [        R                  5       V	s/ s H  n	U	R0                  PM     sn	/ SQ5        g s  snf s  sn	f )Nr   r   r   r    r!   r#   b3r   r   r   r%   f4   0   )              @       @      (@      0@g      4@g      8@g      <@g      @@g      B@g      D@g      F@)0G3rO   rO   rO   B3rP   rP   rP   D4rQ   rQ   rQ   rP   rP   rP   rP   rQ   rQ   rQ   rQ   F4rR   rR   rR   rO   rO   rO   rO   rP   rP   rP   rP   rQ   rQ   rQ   rQ   rP   rP   rP   rP   rQ   rQ   rQ   rQ   rR   rR   rR   rR   )r   r&   r'   r   r(   r)   r+   r   r,   r*   r0   r   r1   r2   r3   r-   r4   processr.   r/   recursenotesAndRestsoffsetflattennameWithOctave)
r5   r6   r7   r8   rB   m4r9   postmns
             r:   testRepeatCoherenceB2Test.testRepeatCoherenceB2O   s7   KKM^^g6
		$a8!<^^g6
		$a8!<^^**uA>
		$a8!<^^**uA>
		$a8!<				
 __Q002366q9Aq6Bzz|T44V^^DErJT\\^99:B?D,C,CFNN,ST,Sq((,ST8	9 	#'<<>#D#DTYY#OQ#Oa **#OQJ	K	 UQs   'L! L&c                T   [         R                  " 5       n[         R                  " 5       n[         R                  " 5       n[         R                  " 5       nUR                  X#U/5        [        R
                  " U5      nU R                  UR                  5       5        [         R                  " 5       n[         R                  " 5       n[         R                  " 5       n[         R                  " 5       nUR                  [        R                  " 5       5        UR                  X#U/5        [        R
                  " U5      nU R                  UR                  5       5        [         R                  " 5       n[         R                  " 5       n[         R                  " 5       n[         R                  " 5       nUR                  [        R                  " 5       5        UR                  X#U/5        [        R
                  " U5      nU R                  UR                  5       5        [         R                  " 5       n[         R                  " 5       n[         R                  " 5       nUR                  [        R                  " 5       5        [         R                  " 5       nUR                  [        R                  " 5       5        UR                  X#U/5        [        R
                  " U5      nU R                  UR                  5       5        [         R                  " 5       n[         R                  " 5       n[         R                  " 5       nUR                  [        R                  " 5       5        [         R                  " 5       nUR                  [        R                  " 5       5        UR                  X#U/5        [        R
                  " U5      nU R                  UR                  5       5        [         R                  " 5       n[         R                  " 5       n[         R                  " 5       n[         R                  " 5       nUR                  [        R                  " 5       5        UR                  X#U/5        [        R
                  " U5      nU R                  UR                  5       5        [         R                  " 5       n[         R                  " 5       nUR                  [        R                  " 5       5        [         R                  " 5       nUR                  [        R                  " 5       5        [         R                  " 5       nUR                  [        R                  " 5       5        UR                  X#U/5        [        R
                  " U5      nU R                  UR                  5       5        [         R                  " 5       n[         R                  " 5       nUR                  [        R                  " 5       5        [         R                  " 5       n[         R                  " 5       nUR                  [        R                  " 5       5        UR                  X#U/5        [        R
                  " U5      nU R                  UR                  5       5        [         R                  " 5       n[         R                  " 5       nUR                  [        R                  " 5       5        [         R                  " 5       n[         R                  " 5       nUR                  [        R                  " 5       5        UR                  [        R                   " 5       5        UR                  X#U/5        [        R
                  " U5      nU R                  UR                  5       5        [         R                  " 5       n[         R                  " 5       n[         R                  " 5       n[         R                  " 5       nUR                  [        R                  " 5       5        UR                  [        R                   " 5       5        UR                  X#U/5        [        R
                  " U5      nU R                  UR                  5       5        [         R                  " 5       n[         R                  " 5       nUR                  [        R                  " 5       5        UR                  [        R                  " 5       5        [         R                  " 5       n[         R                  " 5       nUR                  [        R                  " 5       5        UR                  [        R                   " 5       5        UR                  X#U/5        [        R
                  " U5      nU R                  UR                  5       5        g)z
Using da capo/dal segno
N)r   r&   r'   r0   r   r1   r?   r@   DaCapor2   DalSegnoSegnoFineDaCapoAlFineDalSegnoAlFineCodaDaCapoAlCodarA   s         r:   testRepeatCoherenceCTest.testRepeatCoherenceC   s   
 KKM^^^^^^	""__Q*+KKM^^^^^^
		&--/"	""__Q)* KKM^^^^^^
		&//#$	""__Q*+KKM^^^^
		&,,.!^^
		&//#$	""__Q)* KKM^^^^
		&++- ^^
		&%%'(	""__Q)* KKM^^^^^^
		&%%'(	""__Q*+ KKM^^
		&,,.!^^
		&++- ^^
		&'')*	""__Q)* KKM^^
		&,,.!^^^^
		&'')*	""__Q*+ KKM^^
		&++- ^^^^
		&++- 
		&%%'(	""__Q)* KKM^^^^^^
		&++- 
		&%%'(	""__Q*+ KKM^^
		&,,.!
		&++- ^^^^
		&++- 
		&%%'(	""__Q)*r=   c                ~
   [         R                  " 5       n[         R                  " SS9n[        R                  " SS9Ul        [        R                  " SS9Ul        UR                  [        R                  " SSS9S5        [         R                  " S	S9n[        R                  " SS9Ul        [        R                  " SS9Ul        UR                  [        R                  " S
SS9S5        UR                  U5        UR                  U5        [        R                  " U5      nUR                  5       nU R                  [        UR!                  [         R                  5      5      S5        U R                  [        UR#                  5       R$                  5      S5        U R                  UR!                  [         R                  5       Vs/ s H  ofR&                  PM     sn/ SQ5        U R                  UR)                  5       R!                  [        R                  5       Vs/ s H  nUR*                  PM     sn/ SQ5        UR!                  [         R                  5       Vs/ s H  nUR-                  5       PM     nnU R                  / SQU5        [         R                  " 5       n	[         R                  " 5       n[        R                  " SS9Ul        [        R                  " SS9Ul        UR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       n
[        R                  " SS9U
l        [        R                  " SS9U
l        U
R                  [        R                  " S
SS9S5        U	R                  U5        U	R                  U5        U	R                  U
5        [        R                  " U	5      nUR                  5       nU R                  [        UR!                  [         R                  5      5      S5        U R                  [        UR#                  5       R$                  5      S5        U R                  UR!                  [         R                  5       Vs/ s H  ofR&                  PM     sn/ SQ5        U R                  UR)                  5       R!                  [        R                  5       Vs/ s H  nUR*                  PM     sn/ SQ5        g s  snf s  snf s  snf s  snf s  snf )Nr    numberr   r   r   r   r!   r#   r   r%      )rJ   rK   rL   rM   )rO   rO   rO   rO   rO   rO   rO   rO   rQ   rQ   rQ   rQ   rQ   rQ   rQ   rQ   )11a22af3      )rJ   rK   rL   rM   rN   )rO   rO   rO   rO   rO   rO   rO   rO   F3ru   ru   ru   rQ   rQ   rQ   rQ   rQ   rQ   rQ   rQ   )r   r&   r'   r   r(   r)   r*   r+   r   r,   r0   r   r1   rS   r-   r.   r/   rT   rU   rV   rW   rX   measureNumberWithSuffix)r5   pr7   r8   r9   rZ   r[   r\   measureNumbersPostr6   rB   s              r:   testExpandRepeatATest.testExpandRepeatA   s    KKM^^1%g6**u5
		$a8!<^^1%g6**u5
		$a8!<		__Qzz|T44V^^DEqIT\\^99:B?D,C,CFNN,ST,Sq((,ST.	0 	#'<<>#D#DTYY#OQ#Oa **#OQJ	K
 (,'>'>v~~'NP'N!  779'N 	 P/1CD KKM^^g6**u5
		$a8!<^^
		$a8!<^^g6**u5
		$a8!<			 __Qzz|T44V^^DEqIT\\^99:B?D,C,CFNN,ST,Sq((,ST4	6#'<<>#D#DTYY#OQ#Oa **#OQJ	KM UQP: UQs   T&$T+%T0,T5T:c                *   [         R                  " [        R                  5      nU R	                  [        UR                  S   R                  [        R                  5      5      S5        U R	                  UR                  R                  S5        U R	                  [        UR                  5       R                  5      S5        [        R                  " UR                  S   5      nUR!                  5       nU R	                  [        UR                  S   R                  [        R                  5      5      S5        U R	                  UR                  R                  S5        U R	                  [        UR                  5       R                  5      S5        g )Nr      z$"A Draught of Ale"    (jig)     0912X   $      )r   parser   draughtOfAler-   r.   partsr/   r   r'   metadatatitlerT   rU   r   r1   expandRepeats)r5   r6   	unused_exrZ   s       r:   testExpandRepeatBTest.testExpandRepeatBH  s   OOI223QWWQZ::6>>JKRP))+QRQYY[667< OOAGGAJ/	  TZZ]==fnnMNPRS,,.TUT\\^99:FCr=   c                   [         R                  " [        R                  5      nU R	                  [        UR                  S   R                  [        R                  5      5      S5        U R	                  UR                  R                  S5        U R	                  [        UR                  5       R                  5      S5        [        R                  " UR                  S   5      nU R	                  UR!                  UR                  S   R                  [        R                  5      5      / SQ5        UR#                  5       nU R	                  [        UR                  S   R                  [        R                  5      5      S5        U R	                  UR                  R                  S5        U R	                  [        UR                  5       R                  5      S5        g )Nr      zKing of the fairies   )	r   r    r      r#   rs            #      )r   r   r   kingOfTheFairiesr-   r.   r   r/   r   r'   r   r   rT   rU   r   r1   r4   r   )r5   r6   r9   rZ   s       r:   testExpandRepeatCTest.testExpandRepeatC[  sH   OOI667QWWQZ::6>>JK	))+@AQYY[667= __QWWQZ(66GGAJ))&..9;'	
  TZZ]==fnnMNPRS,,.CDT\\^99:C@r=   c                   [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " SSS9S5        [
        R                  " SS9Ul        U R                  UR                  R                  S5        [         R                  " 5       nUR                  [        R                  " S	SS9S5        [         R                  " 5       nUR                  [        R                  " S
SS9S5        [         R                  " 5       nUR                  XX4/5        U R                  [        UR                  5       R                  5      S5        UR                  5       nU R                  [        UR!                  [         R                  5      5      S5        U R                  [        UR                  5       R                  5      S5        g )Nc4halftyper   e4r   r   rightg4zb-4r   r   rH   )r   r'   r+   r   r,   r   r(   r*   r-   locationr&   r0   r.   rT   notesr   r/   )r5   r7   r8   rB   rY   r6   rZ   s          r:   testExpandRepeatDTest.testExpandRepeatDs  sP    ^^
		$V4a8^^
		$V4a8**u5117;^^
		$V4a8^^
		%f5q9KKM	""!"QYY[../3 T44V^^DEqIT\\^112B7r=   c                   [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " SSS9S5        [
        R                  " SS9Ul        [
        R                  " SS9nX2l        [         R                  " 5       nUR                  [        R                  " S	SS9S5        [         R                  " 5       nUR                  XU/5        U R                  [        UR                  5       R                  5      S
5        U R                  [        UR                  [         R                  5      5      S5        UR!                  5       nU R                  [        UR                  5       R                  5      S5        U R                  [        UR                  [         R                  5      5      S5        SUl        UR!                  5       nU R                  [        UR                  5       R                  5      S
5        U R                  [        UR                  [         R                  5      5      S5        SUl        UR!                  5       nU R                  [        UR                  5       R                  5      S5        U R                  [        UR                  [         R                  5      5      S5        SUl        UR!                  5       nU R                  [        UR                  5       R                  5      S5        U R                  [        UR                  [         R                  5      5      S
5        g )Nr   r   r   r   r   r   r   r   r   r   r   r   r#   r    r   rH   )r   r'   r+   r   r,   r   r(   r)   r*   r&   r0   r-   r.   rT   r   r/   r   r   )r5   r7   r8   rbrB   r6   rZ   s          r:   testExpandRepeatETest.testExpandRepeatE  sS    ^^
		$V4a8^^
		$V4a8g6ZZ%(^^
		$V4a8KKM	""QYY[../3Q11&..ABAF  T\\^112A6T44V^^DEqI  T\\^112A6T44V^^DEqI T\\^112A6T44V^^DEqI T\\^112B7T44V^^DEqIr=   c                   / SQnUnUSS  US S -   nUSS  US S -   nUSS  US S -   n[         R                  " 5       n/ nX#XE4 H  n[         R                  " 5       n[        R                  " S5      Ul        U Hy  n	UR                  [        R                  " U	S95        [        R                  " SS9Ul        [        R                  " S	S9n
Xl        UR                  S
S9  UR                  U
5        M{     UR                  U5        M     [         R                  " 5       n[        S5       HS  nU H   n
[        R                   " / SQ5      U
l        M"     UR%                  5       nU H  nUR                  U5        M     MU     g )N      ?      ?g      ?r   r    r   r   1/4r!   r   r   r   TinPlacer   )r   r    r   )r   Streamr'   r   TimeSignaturetimeSignaturer0   r   r,   r   r(   r)   r*   	makeBeamsrangerandomchoicer   r   )r5   durdurAdurBdurCdurDr6   repeatHandlesr[   dr   finaliexpandeds                 r:   testExpandRepeatFTest.testExpandRepeatF  sL   '12wRa 12wRa 12wRa MMO+C A#11%8AO34 #

W =ZZ%0!#D)$$R(  HHQK , qA#!==3 $(HQ 	 r=   c           
         / SQn/ SQnS Vs/ s H  n[         R                  " U5      PM     nn[        R                  " 5       n/ n[	        S5       GH  n[        R
                  " 5       n[        R                  " S5      Ul        [        U5       H=  u  pUR                  [        R                  " UR                  US-  5      X   S95        M?     [        R                  " SS	9Ul        [        R                  " S
S	9n
X'[#        U5      -     U
l        U
R'                  5       nXl        UR                  U5        UR+                  SS9  UR                  U
5        UR                  U5        GM     U R-                  [#        U5      S5        U R-                  [/        UR1                  5       R2                  S   5      S5        U R-                  [4        R6                  " US5      / SQ5        U R-                  UR1                  5       R2                   Vs/ s H  oR8                  PM     sn/ SQ5        UR;                  5       nU R-                  [#        U5      S5        U R-                  [/        UR1                  5       R2                  S   5      S5        U R-                  [4        R6                  " US5      / SQ5        U R-                  UR1                  5       R2                   Vs/ s H  oR8                  PM     sn/ SQ5        g s  snf s  snf s  snf )Nr   )r   r    r   rs   )a2zb-3r   r   r   r   r   r!   r   r   r   Tr   r   A2p20)      ?      ?rJ   r   r   rJ   r   r   rJ   r   r   rJ   ) r   zB-3r   r   C3C#4r   r   E-3E4r   r   F#3G4r   r   A3zB-4r   r   C4C#5r   r   E-4E5r   r   F#4G5r   r   r|   r   )g?grq?rJ   rJ   rJ   rJ   UUUUUU?gqq?rJ   r   r   rJ   )Hr   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   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   r   r   r   r   r   r   r   )r   Pitchr   r   r   r'   r   r   r   	enumerater0   r   r,   	transposer   r(   r)   r.   r   getTextExpressionr*   r   r-   strrW   pitchesr
   
vectorByIdrX   r   )r5   r   repeatTimesCyclerw   r   r6   r   r   r[   jr   texs1s                 r:   testExpandRepeatHTest.testExpandRepeatH  sk   ''+DE+Da5;;q>+DEMMOqA A#11%8AO!'*1;;q1u#5SVLM +JJ9AMe,B'C0@,A(ABBH%%'BNHHRLKKK%  $HHQK  	Q#QYY[0034d;,,Q6I	J 	AIIK4G4GH4Gq**4GHC	D __ 	R"%RZZ\11!45t<,,R7C	D 	BJJL4H4HI4Hq**4HIW		XW F2 I$ Js    LL!Lc                T   [         R                  " 5       nU R                  UR                  S5      5        U R                  UR                  S5      5        U R                  UR                  S5      5        U R	                  UR                  S5      5        [         R
                  " 5       nU R                  UR                  S5      5        U R                  UR                  S5      5        [         R                  " 5       nU R                  UR                  S5      5        U R                  UR                  S5      5        U R	                  UR                  S	5      5        [         R                  " 5       nU R                  UR                  S
5      5        U R                  UR                  S5      5        U R                  UR                  S5      5        U R	                  UR                  S5      5        [         R                  " 5       nU R                  UR                  S5      5        U R                  UR                  S5      5        [         R                  " 5       nU R                  UR                  S5      5        [         R                  " 5       nU R                  UR                  S5      5        U R                  UR                  S5      5        [         R                  " 5       nU R                  UR                  S5      5        U R                  UR                  S5      5        g )Ncodarf   zTO CodaD.C.zsegno  zsegNO  FINEfinesegnoDCzd.c.zd. c.   zd. c. al capozd.c. al finezda capo al finezda capo al codazd.s. al finezdal segno al finezd.s. al codazdal segno al coda)r   rf   r2   isValidTextr?   rb   rc   r`   rd   rg   re   DalSegnoAlCoda)r5   rms     r:   testRepeatExpressionValidText"Test.testRepeatExpressionValidText  s   [[]v./v./y12/0\\^y12y12[[]v./v./01]]_t,-v./z2389  "~67'89:  "'89:""$~67':;<""$~67':;<r=   c                n   [         R                  " 5       n[        R                  " 5       n[	        S5       H)  n[        R
                  " 5       nUR                  U5        M+     [        R                  " U5      nUS   R                  S[        R                  " 5       5        U R                  [        U[        R                     5      S5        UR                  U5      R                  S5      nU R!                  UR#                  S5      SU5        [        R                  " U5      n[$        R&                  " S5      US   l        US   R                  S[*        R,                  " S5      5        U R                  [        U[        R                     5      S5        UR                  U5      R                  S5      nU R!                  UR#                  S5      SU5        [.        R                  " U5      nU R                  [        UR1                  5       R3                  [        R                  5      5      S5        g )	Nrs   r   r   r    zutf-8zDa Capoz4/4zda capo)r   GeneralObjectExporterr   r   r   r'   r0   copydeepcopyinsertr   r`   r-   r.   r   decodeassertGreaterfindr   r   r   r	   TextExpressionr   rW   r/   )r5   GEXtemplater   r[   r6   raws2s           r:   testRepeatExpressionOnStream!Test.testRepeatExpressionOnStream@  s   ,,.==?qA AOOA  MM(#	!Av}}'Qv}}-.2iil!!'*388I.37 MM(#"007!	!A{11)<=Qv}}-.2iil!!'*388I.37__S!RZZ\<<V]]KLaPr=   c                2   [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " SSS9S5        [
        R                  " SS9Ul        [
        R                  " SS9nX2l        [         R                  " 5       nUR                  [        R                  " S	SS9S5        UR                  [        R                  " 5       5        [         R                  " 5       nUR                  [        R                  " S
SS9S5        [         R                  " 5       nUR                  XXE/5        [        R                  " U5      nU R                  UR                  5       5        U R!                  UR#                  5       [        R                  5        [$        R&                  " U5      nUS   R                  [        R(                  " 5       5        [        R                  " U5      nU R+                  UR                  5       5        U R!                  UR#                  5       S 5        [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R,                  " 5       5        UR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " S	SS9S5        UR                  [        R                  " 5       5        [         R                  " 5       nUR                  [        R                  " S
SS9S5        [         R                  " 5       nUR                  XXE/5        [        R                  " U5      nU R+                  UR                  5       5        U R!                  UR#                  5       [        R                  5        g )Nr   r   r   r   r   r   r   r   r   a4r    )r   r'   r+   r   r,   r   r(   r)   r*   r0   r   r`   r&   r1   r2   _daCapoIsCoherentr-   _daCapoOrSegnor   r   rd   r?   rf   )	r5   r7   r8   r   rB   rY   r6   r9   sAlt1s	            r:   testExpandDaCapoATest.testExpandDaCapoA_  s   ^^
		$V4a8^^
		$V4a8g6ZZ%(^^
		$V4a8
		&--/"^^
		$V4a8KKM	""!"__Q,,./**,fmm< a a++-.__U#--/0**,d3 ^^
		$V4a8^^
		&++- 
		$V4a8^^
		$V4a8
		&--/"^^
		$V4a8KKM	""!"__Q--/0**,fmm<r=   c                	   [         R                  " 5       n[         R                  " 5       n[         R                  " 5       n[         R                  " 5       nUR                  [        R
                  " 5       5        UR                  X#U/5        [        R                  " U5      nU R                  UR                  5       5        U R                  UR                  US5      S/5        UR                  U5        [        R                  " U5      nU R                  UR                  5       5        [         R                  " 5       n[         R                  " 5       nUR                  [        R                  " 5       5        UR                  [        R                  " 5       5        [         R                  " 5       n[         R                  " 5       nUR                  [        R                  " 5       5        UR                  [        R                  " 5       5        UR                  X#U/5        [        R                  " U5      nU R                  UR                  U[        R                  5      S/5        U R                  UR                  US5      S/5        U R                  UR                  US5      SS/5        U R                  UR                  US5      S/5        UR                  U5        [        R                  " U5      nU R                  UR                  5       5        [         R                  " 5       nUR!                  S[        R                  " S5      5        [         R                  " 5       n[         R                  " 5       n["        R$                  " S	S
9Ul        ["        R$                  " SS
9Ul        UR!                  S[        R                  " 5       5        [         R                  " 5       n[         R                  " 5       nUR                  [        R                  " S5      5        [         R                  " 5       nUR                  X#XFU/5        [        R                  " U5      nU R                  UR                  U[        R                  5      SS/5        U R                  UR                  U[        R                  5      S/5        UR+                  5       ng )Nr`   r   r   rb   rf   rg   r#   zTo Codar   r   r   )r   r&   r'   r0   r   r`   r1   r2   r@   r-   getRepeatExpressionIndex_stripRepeatExpressionsr?   rb   rf   rg   r   r   r(   r)   r*   rS   )	r5   r6   r7   r8   rB   r9   rY   m5dummys	            r:   testRemoveRepeatExpressions Test.testRemoveRepeatExpressions  s1   KKM^^^^^^
		&--/"	""__Q)*44QAA3G
""2&__Q*+KKM^^
		&,,.!
		&++- ^^^^
		&++- 
		&%%'(	""__Q44QEsK44Q@1#F44Q?!QH44QG!M
""1%__Q*+ ^^
		!V[[+,^^^^g6**u5
		!V((*+^^^^
		&++f%&KKM	"""%&__Q44QDq!fM44Q8K8KLqcR

r=   c                   [         R                  " 5       n[         R                  " SS9nUR                  U5        UR	                  5       nU R                  U[         R                  5        U R                  [        U5      S5        U R                  US   [         R                  5        U R                  US   R                  S5        [         R                  " 5       nUR                  SU5        UR	                  5       nU R                  U[         R                  5        U R                  US   [         R                  5        g )Nr    rk   r   )r   r&   r'   r0   r   assertIsInstancer-   r.   rl   Scorer   )r5   rw   r[   p1r6   r   s         r:   testExpandSimplestPartTest.testExpandSimplestPart  s    KKMNN!$	__b&++.R!$beV^^4Aq)LLN	A__b&,,/beV[[1r=   c                R	   [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " SSS9S5        UR                  [        R                  " 5       5        [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  XX4/5        [        R                  " U5      nU R                  UR                  5       5        U R                  UR                  5       [        R                  5        [         R                  " 5       nUR                  [        R                  " SSS9S5        UR                  [        R                  " 5       5        [         R                  " 5       nUR                  [        R                  " 5       5        UR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  X/5        [        R                  " U5      nU R                  UR                  5       5        U R                  UR                  5       S 5        [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " 5       5        UR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  X/5        [        R                  " U5      nU R                  UR                  5       5        U R                  UR                  5       [        R                   5        U R                  UR#                  5       5        [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  U/5        [        R                  " U5      nU R                  UR                  5       S 5        g )Nr   r   r   r   r   r   r   )r   r'   r+   r   r,   r0   r   rd   r&   r1   r?   r   r-   r   r`   r   rb   _dalSegnoIsCoherent)r5   r7   r8   rB   rY   r6   r9   s          r:   testExpandRepeatExpressionA Test.testExpandRepeatExpressionA  s    ^^
		$V4a8^^
		$V4a8^^
		$V4a8
		&%%'(^^
		$V4a8KKM	""!"__Q--/0**,fmm< ^^
		$V4a8
		&%%'(^^
		&'')*
		$V4a8KKM	"__Q--/0**,d3 ^^
		$V4a8^^
		&'')*
		$V4a8KKM	"__Q--/0**,fll;//12 ^^
		$V4a8KKM	"__Q**,d3r=   c                .   [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " SSS9S5        UR                  [        R                  " 5       5        [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  XX4/5        U R                  [        UR                  [         R                  5      5      S5        [        R                  " U5      nUR                  5       nU R                  [        UR                  [         R                  5      5      S	5        U R                  UR                  5       R                   Vs/ s H  oR                   PM     sn/ S
Q5        g s  snf )Nr   r   r   r   r   r   r   r#   r   )r   r   r   r   r   r   r   r   r   r   r   r   A4r  )r   r'   r+   r   r,   r0   r   r`   r&   r-   r.   r/   r1   rS   rW   r   rX   	r5   r7   r8   rB   rY   r6   r9   rZ   r   s	            r:   testExpandRepeatExpressionB Test.testExpandRepeatExpressionB  s`    ^^
		$V4a8^^
		$V4a8^^
		$V4a8
		&--/"^^
		$V4a8KKM	""!"Q11&..ABAF__Qzz|T44V^^DEqIDLLN4J4JK4Jq**4JK>	?Ks   2Hc                v   [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " SSS9S5        UR                  [        R                  " 5       5        [         R                  " 5       nUR                  [        R                  " SSS9S5        UR                  [        R                  " 5       5        [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  XX4/5        U R                  [        UR                  [         R                  5      5      S5        [        R                  " U5      nUR                  5       nU R                  [        UR                  [         R                  5      5      S	5        U R                  UR                  5       R                    Vs/ s H  oR"                  PM     sn/ S
Q5        g s  snf )Nr   r   r   r   r   r   r   r#   rs   )
r   r   r   r   r   r   r   r   r   r   )r   r'   r+   r   r,   r0   r   rc   rd   r&   r-   r.   r/   r1   rS   rW   r   rX   r  s	            r:   testExpandRepeatExpressionC Test.testExpandRepeatExpressionC*  st   ^^
		$V4a8^^
		$V4a8
		&++- ^^
		$V4a8
		&%%'(^^
		$V4a8KKM	""!"Q11&..ABAF__Qzz| 	T44V^^DEqIDLLN4J4JK4Jq**4JKU	WK   H6c                6   [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " SSS9S5        UR                  [        R                  " S5      5        [         R                  " 5       nUR                  [        R                  " SSS9S5        UR                  [        R                  " 5       5        [         R                  " 5       nUR                  [        R                  " 5       5        UR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " S	SS9S5        [         R                  " 5       nUR                  XX4U/5        U R                  [        UR                  [         R                  5      5      S
5        [        R                  " U5      nUR                  5       nU R                  [        UR                  [         R                  5      5      S5        U R                  UR                  5       R                    V	s/ s H  oR"                  PM     sn	/ SQ5        g s  sn	f )Nr   r   r   r   r   to codar   r   b4rs   r   )r   r   r   r   r   r   r   r   r   r   r  r  B4r   )r   r'   r+   r   r,   r0   r   rf   rg   r&   r-   r.   r/   r1   rS   rW   r   rX   
r5   r7   r8   rB   rY   r  r6   r9   rZ   r   s
             r:   testExpandRepeatExpressionD Test.testExpandRepeatExpressionDB  s   ^^
		$V4a8^^
		$V4a8
		&++i()^^
		$V4a8
		&%%'(^^
		&++- 
		$V4a8^^
		$V4a8KKM	"""%&Q11&..ABAF__Qzz| 	T44V^^DEqIDLLN4J4JK4Jq**4JK>	?Ks   6Jc                v   [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " 5       5        UR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " SSS9S5        UR                  [        R                  " 5       5        [         R                  " 5       nUR                  XX4/5        U R                  [        UR                  [         R                  5      5      S5        [        R                  " U5      nUR                  5       nU R                  [        UR                  [         R                  5      5      S	5        U R                  UR                  5       R                    Vs/ s H  oR"                  PM     sn/ S
Q5        g s  snf )Nr   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,   r0   r   rb   ra   r&   r-   r.   r/   r1   rS   rW   r   rX   r  s	            r:   testExpandRepeatExpressionE Test.testExpandRepeatExpressionE_  ss   ^^
		$V4a8^^
		&,,.!
		$V4a8^^
		$V4a8^^
		$V4a8
		&//#$KKM	""!"Q11&..ABAF__Qzz| 	T44V^^DEqIDLLN4J4JK4Jq**4JK2	3Kr  c                4   [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " 5       5        UR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " SSS9S5        UR                  [        R                  " 5       5        [         R                  " 5       nUR                  [        R                  " SSS9S5        UR                  [        R                  " 5       5        [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  XX4U/5        U R                  [        UR                  [         R                  5      5      S	5        [        R                  " U5      nUR                  5       nU R                  [        UR                  [         R                  5      5      S
5        U R                  UR!                  5       R"                   V	s/ s H  oR$                  PM     sn	/ SQ5        g s  sn	f )Nr   r   r   r   r   r   r   r  rs   r   )r   r   r   r   r   r   r  r  r   r   r   r   )r   r'   r+   r   r,   r0   r   rb   rc   re   r&   r-   r.   r/   r1   rS   rW   r   rX   r!  s
             r:   testExpandRepeatExpressionF Test.testExpandRepeatExpressionFz  s   ^^
		$V4a8^^
		&,,.!
		$V4a8^^
		$V4a8
		&++- ^^
		$V4a8
		&'')*^^
		$V4a8KKM	"""%&Q11&..ABAF__Qzz| 	T44V^^DEqIDLLN4J4JK4Jq**4JK2	3Ks   5Jc           	     j   [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " 5       5        UR                  [        R                  " SSS9S5        UR                  [        R                  " S5      5        [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " SSS9S5        UR                  [        R                  " 5       5        [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " S5      5        UR                  [        R                  " S	SS9S5        [         R                  " 5       nUR                  [        R                  " S
SS9S5        [         R                  " 5       nUR                  XX4XVU/5        U R                  [        UR                  [         R                  5      5      S5        [        R                  " U5      n	U	R                  5       n
U R                  [        U
R                  [         R                  5      5      S5        U R                  U
R!                  5       R"                   Vs/ s H  oR$                  PM     sn/ SQ5        g s  snf )Nr   r   r   r   r   r  r   CODAr   r  r   )r   r   r   r   r   r   r   r   r   r   r  r  r   r   )r   r'   r+   r   r,   r0   r   rb   rf   r   r&   r-   r.   r/   r1   rS   rW   r   rX   )r5   r7   r8   rB   rY   r  m6m7r6   r9   rZ   r   s               r:   testExpandRepeatExpressionG Test.testExpandRepeatExpressionG  s   ^^
		$V4a8^^
		&,,.!
		$V4a8
		&++i()^^
		$V4a8^^
		$V4a8
		&'')*^^
		$V4a8^^
		&++f%&
		$V4a8^^
		$V4a8KKM	""""-.Q11&..ABAF__Qzz| 	T44V^^DEqIDLLN4J4JK4Jq**4JK>	?Ks   L0c                n   [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       n[
        R                  " SS9Ul        UR                  [        R                  " SSS9S5        [
        R                  " S	S9Ul        [         R                  " 5       nUR                  [        R                  " S
SS9S5        [        R                  " S5      nUR                  U5        [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  XX4U/5        U R                  [        UR                  [         R                  5      5      S5        [        R                   " U5      nUR#                  5       n	U R                  [        U	R                  [         R                  5      5      S5        U R                  U	R%                  5       R&                   V
s/ s H  oR(                  PM     sn
/ SQ5        SUl        [        R                   " U5      nUR#                  5       n	U R                  [        U	R                  [         R                  5      5      S5        U R                  U	R%                  5       R&                   V
s/ s H  oR(                  PM     sn
/ SQ5        g s  sn
f s  sn
f )Nr   r   r   r   r   r   r   r   r   r   r   r  rs   
   )r   r   r   r   r   r   r   r   r  r  r   r   r   r   r   r   r  r  r   r   T   )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   r`   r0   r&   r-   r.   r/   r1   rS   rW   r   rX   repeatAfterJump)r5   r7   r8   rB   rY   dcHandler  r6   r9   rZ   r   s              r:   testExpandRepeatExpressionH Test.testExpandRepeatExpressionH  s9    ^^
		$V4a8^^
		$V4a8^^g6
		$V4a8**u5^^
		$V4a8==(
		(^^
		$V4a8KKM	"""%&Q11&..ABAF__Qzz| 	T44V^^DErJDLLN4J4JK4Jq**4JK&	' $( __Qzz| 	T44V^^DErJDLLN4J4JK4Jq**4JK2	3 L Ls   "L-L2c                   [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " SSS9S5        UR                  [        R                  " S5      5        [         R                  " 5       n[        R                  " SS9Ul
        UR                  [        R                  " S	SS9S5        [        R                  " 5       nUR                  U5        [        R                  " S
S9Ul        [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " 5       5        UR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  XX5U/5        U R                  [        UR!                  [         R                  5      5      S5        [        R"                  " U5      nUR%                  5       n	U R                  [        U	R!                  [         R                  5      5      S5        U R                  U	R'                  5       R(                   V
s/ s H  oR*                  PM     sn
/ SQ5        g s  sn
f )Nr   r   r   r   r   r  r   r   r   r   r   r  rs   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r'   r+   r   r,   r0   r   rf   r   r(   r)   rg   r*   r&   r-   r.   r/   r1   rS   rW   r   rX   )r5   r7   r8   rB   r4  rY   r  r6   r9   rZ   r   s              r:   testExpandRepeatExpressionI Test.testExpandRepeatExpressionI  s    ^^
		$V4a8^^
		$V4a8
		&++i()^^g6
		$V4a8&&(
		(**u5^^
		$V4a8^^
		&++- 
		$V4a8KKM	"""%&Q11&..ABAF __Qzz|T44V^^DEqIDLLN4J4JK4Jq**4JK>	?Ks   *K
c                   [         R                  " 5       nUR                  [        R                  " 5       5        UR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " SSS9S5        UR                  [        R                  " S5      5        [         R                  " 5       n[        R                  " SS9Ul        UR                  [        R                  " S	SS9S5        [        R                  " 5       nUR                  U5        [        R                  " S
S9Ul        [         R                  " 5       nUR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  [        R                  " 5       5        UR                  [        R                  " SSS9S5        [         R                  " 5       nUR                  XX5U/5        UR                  S[         R"                  " 5       5        UR                  S[$        R&                  " US   US   5      5        U R)                  [+        UR-                  [         R                  5      5      S5        UR/                  5       nU R)                  [+        UR-                  [         R                  5      5      S5        U R)                  UR1                  5       R2                   V	s/ s H  oR4                  PM     sn	/ SQ5        U R)                  UR-                  [         R6                  5      R9                  5       R:                  S5        g s  sn	f )Nr   r   r   r   r   r  r   r   r   r   r   r  r   r    rs   r   r8  Trumpet)r   r'   r0   r   rb   r+   r   r,   rf   r   r(   r)   r   r*   r&   r   r   r<  r   Slurr-   r.   r/   r   rW   r   rX   
InstrumentfirstinstrumentName)
r5   r7   r8   rB   dsHandlerY   r  r6   rZ   r   s
             r:   testExpandRepeatExpressionJ Test.testExpandRepeatExpressionJ  sM    ^^
		&,,.!
		$V4a8^^
		$V4a8
		&++i()^^g6
		$V4a8((*
		(**u5^^
		$V4a8^^
		&++- 
		$V4a8KKM	"""%&	J&&()	GLLA1./Q11&..ABAF
  T44V^^DEqIDLLN4J4JK4Jq**4JK>	?
 	001F1FGMMO^^"	$ Ls   
M1c                $   [         R                  " S5      nU R                  [        UR                  5      S5        U R                  [        UR                  S   R                  [        R                  5      5      S5        U R                  [        UR                  S   R                  5       R                  5      S5        UR                  S   [        R                     nU R                  [        U5      S5        UR                  5       nU R                  [        UR                  S   R                  [        R                  5      5      S5        U R                  [        UR                  S   R                  5       R                  5      S5        g	)
z}
tests expanding repeats in a piece with repeats mid-measure

Also has grace notes, so it tests our importing of grace notes
ryansMammoth/BanjoReelr    r   r2  :   r   rt   i   N)r   r   r-   r.   r   r/   r   r'   rW   r   r   Barliner   rT   )r5   r6   barsr   s       r:   testExpandRepeatsImportedATest.testExpandRepeatsImportedA>  s    LL12QWWq)QWWQZ::6>>JKRPQWWQZ//1778"=wwqz#++&TA&__ 	RXXa[;;FNNKLbQRXXa[0028893?r=   c                X   [         R                  " S5      nU R                  [        UR                  5      S5        U R                  [        UR                  S   R                  [        R                  5      5      S5        U R                  [        UR                  S   R                  5       R                  5      S5        UR                  5       nU R                  [        UR                  S   R                  [        R                  5      5      S5        U R                  [        UR                  S   R                  5       R                  5      S5        UR                  S   R                  5       R                  [        R                  5      nU R                  [        U5      S5        g )NGlobeHornpiper    r   r|   }   r~      )r   r   r-   r.   r   r/   r   r'   rW   r   r   r   r(   )r5   r6   r   rI  s       r:   testExpandRepeatsImportedBTest.testExpandRepeatsImportedBS  s   LL)QWWq)QWWQZ::6>>JKRPQWWQZ//1778#>__RXXa[;;FNNKLbQRXXa[0028893?xx{""$77

CTA&r=   c                   [         R                  " [        R                  5      nU R	                  [        US   5      S5        [         R                  " [        R                  5      nU R	                  [        US   5      S5        g )NRepeatExpressionr   )r   r   r   repeatExpressionsAr-   r.   repeatExpressionsB)r5   r6   s     r:   testExpandRepeatsImportedCTest.testExpandRepeatsImportedCc  s`    OOM<<=Q123Q7OOM<<=Q123Q7r=   c                
   [         R                  " [        R                  5      n[        R
                  " 5       nUR                  U5      nU R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        UR                  U5      nU R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        [        R                  " U5      n[        R                  " UR                  S   5      nU R                  [        UR                  5      S5        g )	Ns   <repeat direction=r    s   <ending number="1" type="start"s   <ending number="1" type="stop"s   <ending number="2" type="start"s   <ending number="2" type="stop"r   r   )r   r   r   repeatBracketsAr   r   r   r   r   r   r   r1   r   r-   r.   _repeatBrackets)r5   r6   r   r   r   r9   s         r:   testRepeatsEndingsATest.testRepeatsEndingsAl  s    OOM99:,,.iil388$9:A>388$FGK388$EFJ388$FGK388$EFJ iil388$9:A>388$FGK388$EFJ388$FGK388$EFJ]]1 __RXXa[)R//0!4r=   c                F   [         R                  " 5       n[         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        UR                  X#XEU/5        [        R                  " X4/SS	9n[        R                  " 5       Ul
        U R                  UR                  U5      5        U R                  UR                  U5      5        UR                  U5        [        R                  " US
S	9nU R                  UR                  U5      5        [        R                  " 5       Ul
        UR                  U5        [        R                  " U5      n	U R                  U	R                  5       5        SUl        U R#                  U	R                  5       5        S
Ul        U R                  U	R                  5       5        S
Ul        SUl        U R#                  U	R                  5       5        SUl        S
Ul        U R                  U	R                  5       5        U R                  U	R%                  5       5        g Nr   wholer   r%   r   rG   r   r    rk   r      r   r&   r'   r0   r   r,   r   RepeatBracketr   r(   r*   r2   hasSpannedElementr   r1   _repeatBracketsAreCoherentrl   r?   r3   
r5   rw   r7   r8   rB   rY   r  rb1rb2r9   s
             r:   testRepeatEndingsBTest.testRepeatEndingsB  &   KKM^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0	"""%&##RHQ7**,--b12--b12	##Bq1--b12**,	__Q5578 
6689
5578

6689

55780023r=   c                F   [         R                  " 5       n[         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        UR                  X#XEU/5        [        R                  " X4/SS	9n[        R                  " 5       Ul
        U R                  UR                  U5      5        U R                  UR                  U5      5        UR                  U5        [        R                  " US
S	9nU R                  UR                  U5      5        [        R                  " 5       Ul
        UR                  U5        [        R                  " U5      n	U R                  U	R                  5       5        SUl        U R#                  U	R                  5       5        S
Ul        U R                  U	R                  5       5        S
Ul        SUl        U R#                  U	R                  5       5        SUl        S
Ul        U R                  U	R                  5       5        U R                  U	R%                  5       5        g r^  ra  re  s
             r:   testRepeatEndingsB2Test.testRepeatEndingsB2  rj  r=   c                :   [         R                  " 5       n[         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        UR                  X#XEU/5        [        R                  " X4/SS	9nUR                  U5        [        R                  " U5      nU R                  UR                  5       5        [        R                  " 5       Ul        [        R                  " U5      nU R                  UR                  5       5        [        R                  " US
S	9n	UR                  U	5        [        R                  " U5      nU R                  UR                  5       5        [        R                  " 5       Ul        [        R                  " U5      nU R                  UR                  5       5        g )Nr   r_  r   r%   r   rG   r   r    rk   r   )r   r&   r'   r0   r   r,   r   rb  r   r1   r?   rd  r   r(   r*   r2   )
r5   rw   r7   r8   rB   rY   r  rf  r9   rg  s
             r:   testRepeatEndingsCTest.testRepeatEndingsC  s   KKM^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0	"""%&##RHQ7	 __Q6689**,__Q5578 ##Bq1	__Q5578**,__Q5578r=   c                    [         R                  " 5       n[         R                  " SS9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " S	SS95        [         R                  " S
S9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " SSS95        UR                  X#XEU/5        [        R                  " X4/SS9nUR                  U5        [        R                  " 5       Ul
        [        R                  " U5      n[        R                  " XE/SS9n	UR                  U	5        [        R                  " 5       Ul
        [        R                  " U5      n
U R                  U
R                  5       5        g )Nr    rk   r   r_  r   r   r%   r   r   r#   rG   rs   r   )r   r&   r'   r0   r   r,   r   rb  r   r(   r*   r   r1   r?   rd  )r5   rw   r7   r8   rB   rY   r  rf  r   rg  r9   s              r:   testRepeatEndingsDTest.testRepeatEndingsD  sh   KKM^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0	"""%&##RHQ7	**,OOA&	 ##RHQ7	**, __Q6689r=   c                   [         R                  " 5       n[         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        UR                  X#XEU/5        [        R                  " X4/SS	9n[        R                  " 5       Ul
        UR                  U5        [        R                  " US
S	9nUR                  U5        [        R                  " U5      n	U R                  U	R                  5       5        U R                  U	R                  5       5        U R!                  U	R#                  U5      / SQ5        U	R%                  U5      n
U R!                  U
S   S   / SQ5        g)z=
Expanding two endings (1, 2, then 3) without a start repeat
r   r_  r   r%   r   rG   r   1,2rk   r   )r   r    r   r   measureIndicesr    r   r   N)r   r&   r'   r0   r   r,   r   rb  r   r(   r*   r   r1   r2   rd  r@   r-   r4   _groupRepeatBracketIndices)r5   rw   r7   r8   rB   rY   r  rf  rg  r9   rZ   s              r:   testRepeatEndingsETest.testRepeatEndingsE,  s    KKM^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0	"""%&##RHU;**,	##Bq1	 __Q5578)*66q99E,,Q/a!12I>r=   c           
        [         R                  " 5       n[         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " S	SS95        [         R                  " 5       n	U	R                  [        R
                  " S
SS95        UR                  X#XEXgX/5        [        R                  " X4/SS9n
[        R                  " 5       Ul
        UR                  U
5        [        R                  " USS9nUR                  U5        [        R                  " 5       Ul        [        R                  " 5       Ul
        [        R                  " USS9nUR                  U5        [        R                  " 5       Ul
        [        R                  " USS9nUR                  U5        [        R                  " U	SS9nUR                  U5        [        R                  " U5      nU R                  UR                  5       5        U R                  UR!                  5       5        U R#                  UR%                  USS 5      SS/5        UR'                  U5      nU R#                  US   S   / SQ5        U R#                  US   S   / SQ5        g)?
Two sets of two endings (1, 2, then 3) without a start repeat
r   r_  r   r%   r   rG   r   r   r  c5ru  rk   r   1-3r#   rs   Nr    r   r   rv  rw  )rs   r   r   )r   r&   r'   r0   r   r,   r   rb  r   r(   r*   r)   r   r1   r2   rd  r@   r-   r4   rx  )r5   rw   r7   r8   rB   rY   r  r,  r-  m8rf  rg  rb3rb4rb5r9   rZ   s                    r:   testRepeatEndingsFTest.testRepeatEndingsFN  s    KKM^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0	""""12##RHU;**,	##Bq1	 **,##Bu5	**,##Bq1	##Bq1	 __Q5578)*66qu=1vF ,,Q/a!12I>a!12I>r=   c                
   [         R                  " 5       n[         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " SSS95        [         R                  " 5       nUR                  [        R
                  " S	SS95        [         R                  " 5       n	U	R                  [        R
                  " S
SS95        UR                  X#XEU/5        [        R                  " X4/SS9n
[        R                  " 5       Ul
        UR                  U
5        [        R                  " USS9nUR                  U5        [        R                  " U5      nU R                  UR                  5       5        UR                  5       nU R!                  [#        U5      S5        U R!                  UR%                  5       R&                   Vs/ s H  oR(                  PM     sn/ SQ5        gs  snf )r|  r   r_  r   r%   r   rG   r   r   r  r}  ru  rk   r   	   )	CDEr  r  r  r  FGN)r   r&   r'   r0   r   r,   r   rb  r   r(   r*   r   r1   r2   r@   rS   r-   r.   rW   r   name)r5   rw   r7   r8   rB   rY   r  r,  r-  r  rf  rg  r9   rZ   r\   s                  r:   testRepeatEndingsGTest.testRepeatEndingsG  s    KKM^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0	"""%&##RHU;**,	##Bq1	 __Q)*zz|TA&$,,.*>*>?*>Q&&*>?F	H?s    L c           
        [         R                  " 5       n[         R                  " SS9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " S	SS95        [         R                  " S
S9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " SSS95        [         R                  " SS9n	U	R                  [        R
                  " SSS95        UR                  X#XEXgX/5        [        R                  " X4/SS9n
[        R                  " 5       Ul
        UR                  U
5        [        R                  " USS9nUR                  U5        [        R                  " 5       Ul
        [        R                  " US
S9nUR                  U5        [        R                  " U5      nU R                  UR                  5       5        UR                  5       n[         R#                  SUR%                  5       R&                   Vs/ s H  oR(                  PM     sn/5        U R+                  [-        U5      S5        U R+                  UR%                  5       R&                   Vs/ s H  oR(                  PM     sn/ SQ5        gs  snf s  snf )r|  r    rk   r   r_  r   r   r%   r   r   r#   rG   rs   r   r   r   r   r  r   r}  ru  zpost process   )r  r  r  r  r  r  r  r  r  r  ABr  N)r   r&   r'   r0   r   r,   r   rb  r   r(   r*   r   r1   r2   r@   rS   environLocal
printDebugrW   r   r  r-   r.   )r5   rw   r7   r8   rB   rY   r  r,  r-  r  rf  rg  r  r9   rZ   r\   s                   r:   testRepeatEndingsHTest.testRepeatEndingsH  sr    KKM^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0	""""12##RHU;**,	##Bq1	**,##Bq1	 __Q)*zz|$,,.BVBV1WBVQ&&BV1W XYTB'$,,.*>*>?*>Q&&*>?Z	\ 2X @s   N
"Nc           
        [         R                  " 5       n[         R                  " SS9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " S	SS95        [         R                  " S
S9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " SSS95        [         R                  " SS9n	U	R                  [        R
                  " SSS95        UR                  X#XEXgX/5        [        R                  " X4/SS9n
[        R                  " 5       Ul
        UR                  U
5        [        R                  " USS9nUR                  U5        [        R                  " 5       Ul
        [        R                  " 5       Ul        [        R                  " 5       Ul
        [        R                  " USS9nUR                  U5        [        R                  " 5       Ul
        [        R                  " US
S9nUR                  U5        [        R                  " U	SS9nUR                  U5        [        R                  " U5      nU R                  UR                  5       5        UR!                  5       nU R#                  [%        U5      S5        U R#                  UR'                  5       R(                   Vs/ s H  nUR*                  PM     sn/ SQ5        gs  snf )r|  r    rk   r   r_  r   r   r%   r   r   r#   rG   rs   r   r   r   r   r  r   r}  ru  r~  r|   )r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  N)r   r&   r'   r0   r   r,   r   rb  r   r(   r*   r)   r   r1   r2   r@   rS   r-   r.   rW   r   r  )r5   rw   r7   r8   rB   rY   r  r,  r-  r  rf  rg  r  r  r  r9   rZ   r\   s                     r:   testRepeatEndingsITest.testRepeatEndingsI  s    KKM^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0	""""12##RHU;**,	##Bq1	**, **,##Bu5	**,##Bq1	##Bq1	
 __Q)*zz| 	TB'$,,.*>*>?*>Q!&&*>?B	C?s   3Oc                   [         R                  " 5       n[         R                  " SS9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " S	SS95        [         R                  " S
S9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " SSS95        [         R                  " SS9n[        R
                  " SSS9n[        R
                  " SSS9n	UR                  X/5        [         R                  " SS9n
U
R                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " SSS95        [         R                  " SS9nUR                  [        R
                  " SSS95        UR                  X#XEXgXXX/5        [        R                  " X4/SS9nUR                  U5        [        R                  " 5       Ul
        [        R                  " USS9nUR                  U5        [        R                  " 5       Ul        [        R                  " 5       Ul        [        R                  " 5       Ul
        [        R                  " U
SS9nUR                  U5        [        R                  " 5       U
l
        [        R                  " X/SS9nUR                  U5        [        R                  " 5       Ul
        [        R                  " U/S S9nUR                  U5        UR                  5       nU R                  [        U5      S!5        g")#r|  r    rk   r   r_  r   r   r%   r   r   r#   rG   rs   r   r   r   r   r   r  r   r}  r  d5r1  e5r2  f5rH   g5ru  r~  z4,56%   N)r   r&   r'   r0   r   r,   r   rb  r   r(   r*   r)   r   r-   r.   )r5   rw   r7   r8   rB   rY   r  r,  n1n2r-  r  m9m10m11m12rf  rg  r  r  r  rZ   s                         r:   testRepeatEndingsJTest.testRepeatEndingsJ  s    KKM^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%YYt&)YYt&)
		2(^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0nnB'

499T01nnB'

499T01nnB'

499T01	"""""3DE##RHU;	**,##Bq1	 **,##Bu5	**,##RIe<	::<##SE#6	  TB'r=   c                
   [         R                  " S5      n[        UR                  5       R                  5      nUSS USS -   USS -   USS -   USS -   USS -   nU Vs/ s H  oDR
                  PM     nn[        R                  " UR                  S   5      nUR                  5       n[        UR                  5       R                  5      nU Vs/ s H  oDR
                  PM     n	nU R                  XY5        g s  snf s  snf )NrE  r   rm         rF  )r   r   listrW   r   rX   r   r1   r   rS   r-   )
r5   r6   firstNotesListexpandedByHandListr\   expandedByHandNoteNamesr9   rZ   secondNotesListsecondNotesNoteNamess
             r:   testRepeatEndingsImportedATest.testRepeatEndingsImportedAW  s	   LL12aiik//0,Qr2^Br5JJ .q 457Eb7LM .r" 568Fr"8MN >P"P=O#3#3=O"P__QWWQZ(zz| t||~334:IJ/Q 0 0/J0G #Q  Ks   !C;D c                    [         R                  " S5      n[        R                  " UR                  S   5      nU R                  [        UR                  5      S5        UR                  5       ng )NzryansMammoth/SmugglersReelr   r   )	r   r   r   r1   r   r-   r.   rZ  rS   )r5   r6   r9   unused_posts       r:   testRepeatEndingsImportedBTest.testRepeatEndingsImportedBi  sO     LL56__QWWQZ(R//0!4jjlr=   c                    [         R                  " [        R                  5      nUR	                  5       nU R                  [        UR                  S   5      S5        g )Nr       )r   r   r   mysteryReelr   r-   r.   r   )r5   r6   rZ   s      r:   testRepeatEndingsImportedCTest.testRepeatEndingsImportedCu  s?    OOI112 TZZ]+R0r=   c                B   [         R                  " S5      nUR                  S5      R                  [        R
                  " SSS95        SUl        SUl        UR                  5       nU R                  UR                  S5        U R                  UR                  S5        g )NztinyNotation: c1 d e fr   r   r    r   my_part_namemy_part_abbreviation)
r   r   measure
storeAtEndr   r(   partNamepartAbbreviationr   r-   )r5   rw   exps      r:   "test_expand_repeats_preserves_name'Test.test_expand_repeats_preserves_name  sz     OO45			!

U! DE#
3oo~6--/EFr=    N)1__name__
__module____qualname____firstlineno__r;   rC   r]   rh   ry   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r"  r%  r(  r.  r5  r9  rB  rJ  rP  rV  r[  rh  rl  ro  rr  ry  r  r  r  r  r  r  r  r  r  __static_attributes__r  r=   r:   r   r      s
   @6@.3Kjx+vDKRD&A084*JX L8Xx#=JQ>-=^3l2"74r?8W0?:363:!?F.3`#?J-$^@*' 8 5D)4Z)4Z"9H:@ ?D3?j%HP*\X5CnB(RH$	#1	Gr=   r   __main__)
__future__r   r   r   unittestmusic21.abcFormatr   music21r   r   r   r   r	   r
   r   r   music21.musicxmlr   r   r   r   r   r   r   Environmentr  TestCaser   r  mainTestr  r=   r:   <module>r     s    "    '         % *     &&'9:mG8 mG`3 zT r=   