
    3j                    n   d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ  ej0                  d      Z G d dej4                        Zedk(  rd dlZ ej:                  e       yy)    )annotationsN)	testFiles)bar)	converter)corpus)environment)expressions)features)
instrument)meter)m21ToXml)testPrimitive)note)pitch)repeat)spanner)streamztest.test_repeatc                     e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.y-).Testc                t   t        j                         }t        j                         }t        j                  d      |_        t        j                  dd      |_        |j                  t        j                  dd      d	       | j                  t        |j                  d
            d       t        j                         }t        j                  d      |_        t        j                  dd      |_        |j                  t        j                  dd      d	       |j                  |       |j                  |       | j                  t        |d
         d	       t        j                  |      }| j!                  |j#                                | j                  |j%                  |      dg       y )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        E/DATA/.local/lib/python3.12/site-packages/music21/test/test_repeat.pytestFilterByRepeatMarkz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                   t        j                         }t        j                         }t        j                  d      |_        t        j                  dd      |_        |j                  t        j                  dd      d	       t        j                         }t        j                         }t        j                  d      |_        |j                  t        j                  d
d      d	       |j                  |       |j                  |       |j                  |       t        j                  |      }| j                  |j                                | j                  |j!                  |      dg       y )Nr   r   r   r   r   r   r   r    r"   r$   r   )r   r%   r&   r   r'   r(   r)   r*   r   r+   r/   r   r0   assertFalseisExpandabler,   r3   r4   r5   r6   r7   m3r8   s         r9   testRepeatCoherenceBzTest.testRepeatCoherenceB8   s    KKM^^g6**uA>
		$a8!<^^^^g6
		$a8!<			 __Q*+66q9A3?r;   c                `   t        j                         }t        j                         }t        j                  d      |_        |j                  t        j                  dd      d       t        j                         }t        j                  d      |_        |j                  t        j                  dd      d       t        j                         }t        j                  dd	
      |_	        |j                  t        j                  dd      d       t        j                         }t        j                  dd	
      |_	        |j                  t        j                  dd      d       |j                  |       |j                  |       |j                  |       |j                  |       t        j                  |      }| j                  |j                                | j                  |j!                  |      dd	g       |j#                         }| j                  t%        |j'                  t         j                              d       | j                  t%        |j)                         j*                        d       | j                  |j'                  t         j                        D cg c]  }|j,                   c}g d       | j                  |j/                         j'                  t        j                        D 	cg c]  }	|	j0                   c}	g d       y c c}w c c}	w )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G3rL   rL   rL   B3rM   rM   rM   D4rN   rN   rN   rM   rM   rM   rM   rN   rN   rN   rN   F4rO   rO   rO   rL   rL   rL   rL   rM   rM   rM   rM   rN   rN   rN   rN   rM   rM   rM   rM   rN   rN   rN   rN   rO   rO   rO   rO   )r   r%   r&   r   r'   r(   r*   r   r+   r)   r/   r   r0   r1   r2   r,   r3   processr-   r.   recursenotesAndRestsoffsetflattennameWithOctave)
r4   r5   r6   r7   r@   m4r8   postmns
             r9   testRepeatCoherenceB2zTest.testRepeatCoherenceB2O   s9   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   1L&L+c                   t        j                         }t        j                         }t        j                         }t        j                         }|j                  |||g       t	        j
                  |      }| j                  |j                                t        j                         }t        j                         }t        j                         }t        j                         }|j                  t	        j                                |j                  |||g       t	        j
                  |      }| j                  |j                                t        j                         }t        j                         }t        j                         }t        j                         }|j                  t	        j                                |j                  |||g       t	        j
                  |      }| j                  |j                                t        j                         }t        j                         }t        j                         }|j                  t	        j                                t        j                         }|j                  t	        j                                |j                  |||g       t	        j
                  |      }| j                  |j                                t        j                         }t        j                         }t        j                         }|j                  t	        j                                t        j                         }|j                  t	        j                                |j                  |||g       t	        j
                  |      }| j                  |j                                t        j                         }t        j                         }t        j                         }t        j                         }|j                  t	        j                                |j                  |||g       t	        j
                  |      }| j                  |j                                t        j                         }t        j                         }|j                  t	        j                                t        j                         }|j                  t	        j                                t        j                         }|j                  t	        j                                |j                  |||g       t	        j
                  |      }| j                  |j                                t        j                         }t        j                         }|j                  t	        j                                t        j                         }t        j                         }|j                  t	        j                                |j                  |||g       t	        j
                  |      }| j                  |j                                t        j                         }t        j                         }|j                  t	        j                                t        j                         }t        j                         }|j                  t	        j                                |j                  t	        j                                 |j                  |||g       t	        j
                  |      }| j                  |j                                t        j                         }t        j                         }t        j                         }t        j                         }|j                  t	        j                                |j                  t	        j                                 |j                  |||g       t	        j
                  |      }| j                  |j                                t        j                         }t        j                         }|j                  t	        j                                |j                  t	        j                                t        j                         }t        j                         }|j                  t	        j                                |j                  t	        j                                 |j                  |||g       t	        j
                  |      }| j                  |j                                y)z)
        Using da capo/dal segno
        N)r   r%   r&   r/   r   r0   r=   r>   DaCapor1   DalSegnoSegnoFineDaCapoAlFineDalSegnoAlFineCodaDaCapoAlCodar?   s         r9   testRepeatCoherenceCzTest.testRepeatCoherenceC   s   
 KKM^^^^^^	"b"__Q*+KKM^^^^^^
		&--/"	"b"__Q)* KKM^^^^^^
		&//#$	"b"__Q*+KKM^^^^
		&,,.!^^
		&//#$	"b"__Q)* KKM^^^^
		&++- ^^
		&%%'(	"b"__Q)* KKM^^^^^^
		&%%'(	"b"__Q*+ KKM^^
		&,,.!^^
		&++- ^^
		&'')*	"b"__Q)* KKM^^
		&,,.!^^^^
		&'')*	"b"__Q*+ KKM^^
		&++- ^^^^
		&++- 
		&%%'(	"b"__Q)* KKM^^^^^^
		&++- 
		&%%'(	"b"__Q*+ KKM^^
		&,,.!
		&++- ^^^^
		&++- 
		&%%'(	"b"__Q)*r;   c                
   t        j                         }t        j                  d      }t        j                  d      |_        t        j                  d      |_        |j                  t        j                  dd      d       t        j                  d	      }t        j                  d      |_        t        j                  d      |_        |j                  t        j                  d
d      d       |j                  |       |j                  |       t        j                  |      }|j                         }| j                  t        |j!                  t         j                              d       | j                  t        |j#                         j$                        d       | j                  |j!                  t         j                        D cg c]  }|j&                   c}g d       | j                  |j)                         j!                  t        j                        D cg c]  }|j*                   c}g d       |j!                  t         j                        D cg c]  }|j-                          }}| j                  g d|       t        j                         }	t        j                         }t        j                  d      |_        t        j                  d      |_        |j                  t        j                  dd      d       t        j                         }|j                  t        j                  dd      d       t        j                         }
t        j                  d      |
_        t        j                  d      |
_        |
j                  t        j                  d
d      d       |	j                  |       |	j                  |       |	j                  |
       t        j                  |	      }|j                         }| j                  t        |j!                  t         j                              d       | j                  t        |j#                         j$                        d       | j                  |j!                  t         j                        D cg c]  }|j&                   c}g d       | j                  |j)                         j!                  t        j                        D cg c]  }|j*                   c}g d       y c c}w c c}w c c}w c c}w c c}w )Nr   numberr   r   r   r   r    r"   r   r$      )rG   rH   rI   rJ   )rL   rL   rL   rL   rL   rL   rL   rL   rN   rN   rN   rN   rN   rN   rN   rN   )11a22af3      )rG   rH   rI   rJ   rK   )rL   rL   rL   rL   rL   rL   rL   rL   F3rp   rp   rp   rN   rN   rN   rN   rN   rN   rN   rN   )r   r%   r&   r   r'   r(   r)   r*   r   r+   r/   r   r0   rP   r,   r-   r.   rQ   rR   rS   rT   rU   measureNumberWithSuffix)r4   pr6   r7   r8   rW   rX   rY   measureNumbersPostr5   r@   s              r9   testExpandRepeatAz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   T00T5.T:;T?Uc                &   t        j                  t        j                        }| j	                  t        |j                  d   j                  t        j                              d       | j	                  |j                  j                  d       | j	                  t        |j                         j                        d       t        j                  |j                  d         }|j!                         }| j	                  t        |j                  d   j                  t        j                              d       | j	                  |j                  j                  d       | j	                  t        |j                         j                        d       y )Nr      z$"A Draught of Ale"    (jig)     0912X   $      )r   parser   draughtOfAler,   r-   partsr.   r   r&   metadatatitlerQ   rR   r   r0   expandRepeats)r4   r5   	unused_exrW   s       r9   testExpandRepeatBz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                   t        j                  t        j                        }| j	                  t        |j                  d   j                  t        j                              d       | j	                  |j                  j                  d       | j	                  t        |j                         j                        d       t        j                  |j                  d         }| j	                  |j!                  |j                  d   j                  t        j                              g d       |j#                         }| j	                  t        |j                  d   j                  t        j                              d       | j	                  |j                  j                  d       | j	                  t        |j                         j                        d       y )Nr      zKing of the fairies   )	r   r   r      r"   rn            #      )r   rz   r   kingOfTheFairiesr,   r-   r|   r.   r   r&   r}   r~   rQ   rR   r   r0   r3   r   )r4   r5   r8   rW   s       r9   testExpandRepeatCz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                   t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                  dd      d       t        j                  d      |_        | j                  |j                  j                  d       t        j                         }|j                  t        j                  d	d      d       t        j                         }|j                  t        j                  d
d      d       t        j                         }|j                  ||||g       | j                  t        |j                         j                        d       |j                         }| j                  t        |j!                  t         j                              d       | j                  t        |j                         j                        d       y )Nc4halftyper   e4r   r   rightg4zb-4r   r   rE   )r   r&   r*   r   r+   r   r'   r)   r,   locationr%   r/   r-   rQ   notesr   r.   )r4   r6   r7   r@   rV   r5   rW   s          r9   testExpandRepeatDzTest.testExpandRepeatDs  sT    ^^
		$V4a8^^
		$V4a8**u5117;^^
		$V4a8^^
		%f5q9KKM	"b"b!"QYY[../3 T44V^^DEqIT\\^112B7r;   c                   t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                  dd      d       t        j                  d      |_        t        j                  d      }||_        t        j                         }|j                  t        j                  d	d      d       t        j                         }|j                  |||g       | j                  t        |j                         j                        d
       | j                  t        |j                  t         j                              d       |j!                         }| j                  t        |j                         j                        d       | j                  t        |j                  t         j                              d       d|_        |j!                         }| j                  t        |j                         j                        d
       | j                  t        |j                  t         j                              d       d|_        |j!                         }| j                  t        |j                         j                        d       | j                  t        |j                  t         j                              d       d|_        |j!                         }| j                  t        |j                         j                        d       | j                  t        |j                  t         j                              d
       y )Nr   r   r   r   r   r   r   r   r   r   r   r   r"   r   r   rE   )r   r&   r*   r   r+   r   r'   r(   r)   r%   r/   r,   r-   rQ   r   r.   r   r   )r4   r6   r7   rbr@   r5   rW   s          r9   testExpandRepeatEzTest.testExpandRepeatE  sW    ^^
		$V4a8^^
		$V4a8g6ZZ%(^^
		$V4a8KKM	"b"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                   g d}|}|dd  |d d z   }|dd  |d d z   }|dd  |d d z   }t        j                         }g }||||fD ]  }t        j                         }t        j                  d      |_        |D ]  }	|j                  t        j                  |	             t        j                  d      |_        t        j                  d	      }
|
|_        |j                  d
       |j                  |
        |j                  |        t        j                         }t        d      D ]M  }|D ]  }
t        j                   g d      |
_          |j%                         }|D ]  }|j                  |        O y )N      ?      ?g      ?r   r   r   r   1/4r    r   r   r   TinPlacer   )r   r   r   )r   Streamr&   r   TimeSignaturetimeSignaturer/   r   r+   r   r'   r(   r)   	makeBeamsrangerandomchoicer   r   )r4   durdurAdurBdurCdurDr5   repeatHandlesrX   dr   finaliexpandeds                 r9   testExpandRepeatFzTest.testExpandRepeatF  sR   '12wRa 12wRa 12wRa MMO$d+C A#11%8AO34 #

W =ZZ%0!#D)$$R(  HHQK , qA#!==3 $(HQ 	 r;   c           
        g d}g d}dD cg c]  }t        j                  |       }}t        j                         }g }t	        d      D ]"  }t        j
                         }t        j                  d      |_        t        |      D ]@  \  }	}|j                  t        j                  |j                  |dz        ||	                B t        j                  d	      |_        t        j                  d
	      }
||t#        |      z     |
_        |
j'                         }|
|_        |j                  |       |j+                  d       |j                  |
       |j                  |       % | j-                  t#        |      d       | j-                  t/        |j1                         j2                  d         d       | j-                  t5        j6                  |d      g d       | j-                  |j1                         j2                  D cg c]  }|j8                   c}g d       |j;                         }| j-                  t#        |      d       | j-                  t/        |j1                         j2                  d         d       | j-                  t5        j6                  |d      g d       | j-                  |j1                         j2                  D cg c]  }|j8                   c}g d       y c c}w c c}w c c}w )Nr   )r   r   r   rn   )a2zb-3r   r   r   r   r   r    r   r   r   Tr   r   A2p20)      ?      ?rG   r   r   rG   r   r   rG   r   r   rG   ) 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   rv   r   )g?grq?rG   rG   rG   rG   UUUUUU?gqq?rG   r   r   rG   )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   	enumerater/   r   r+   	transposer   r'   r(   r-   r   getTextExpressionr)   r   r,   strrT   pitchesr
   
vectorByIdrU   r   )r4   r   repeatTimesCyclerr   r   r5   r   r   rX   jr   texs1s                 r9   testExpandRepeatHzTest.testExpandRepeatH  sw   ''+DE+Da5;;q>+DEMMOqA A#11%8AO!'*11;;q1u#5SVLM +JJ9AMe,B'C0@,A(ABBH%%'BAN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   K=LLc                D   t        j                         }| j                  |j                  d             | j                  |j                  d             | j                  |j                  d             | j	                  |j                  d             t        j
                         }| j                  |j                  d             | j                  |j                  d             t        j                         }| j                  |j                  d             | j                  |j                  d             | j	                  |j                  d	             t        j                         }| j                  |j                  d
             | j                  |j                  d             | j                  |j                  d             | j	                  |j                  d             t        j                         }| j                  |j                  d             | j                  |j                  d             t        j                         }| j                  |j                  d             t        j                         }| j                  |j                  d             | j                  |j                  d             t        j                         }| j                  |j                  d             | j                  |j                  d             y )Ncodarb   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   rb   r1   isValidTextr=   r^   r_   r\   r`   rc   ra   DalSegnoAlCoda)r4   rms     r9   testRepeatExpressionValidTextz"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                X   t        j                         }t        j                         }t	        d      D ]'  }t        j
                         }|j                  |       ) t        j                  |      }|d   j                  dt        j                                | j                  t        |t        j                           d       |j                  |      j                  d      }| j!                  |j#                  d      d|       t        j                  |      }t%        j&                  d      |d   _        |d   j                  dt+        j,                  d             | j                  t        |t        j                           d       |j                  |      j                  d      }| j!                  |j#                  d      d|       t/        j                  |      }| j                  t        |j1                         j3                  t        j                              d       y )	Nrn   r   r   r   zutf-8zDa Capoz4/4zda capo)r   GeneralObjectExporterr   r   r   r&   r/   copydeepcopyinsertr   r\   r,   r-   rz   decodeassertGreaterfindr   r   r   r	   TextExpressionr   rT   r.   )r4   GEXtemplater   rX   r5   raws2s           r9   testRepeatExpressionOnStreamz!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                @   t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                  dd      d       t        j                  d      |_        t        j                  d      }||_        t        j                         }|j                  t        j                  d	d      d       |j                  t        j                                t        j                         }|j                  t        j                  d
d      d       t        j                         }|j                  ||||g       t        j                  |      }| j                  |j                                | j!                  |j#                         t        j                         t%        j&                  |      }|d   j                  t        j(                                t        j                  |      }| j+                  |j                                | j!                  |j#                         d        t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j,                                |j                  t        j                  dd      d       t        j                         }|j                  t        j                  d	d      d       |j                  t        j                                t        j                         }|j                  t        j                  d
d      d       t        j                         }|j                  ||||g       t        j                  |      }| j+                  |j                                | j!                  |j#                         t        j                         y )Nr   r   r   r   r   r   r   r   r   a4r   )r   r&   r*   r   r+   r   r'   r(   r)   r/   r   r\   r%   r0   r1   _daCapoIsCoherentr,   _daCapoOrSegnor   r   r`   r=   rb   )	r4   r6   r7   r   r@   rV   r5   r8   sAlt1s	            r9   testExpandDaCapoAzTest.testExpandDaCapoA_  s   ^^
		$V4a8^^
		$V4a8g6ZZ%(^^
		$V4a8
		&--/"^^
		$V4a8KKM	"b"b!"__Q,,./**,fmm< a a++-.__U#--/0**,d3 ^^
		$V4a8^^
		&++- 
		$V4a8^^
		$V4a8
		&--/"^^
		$V4a8KKM	"b"b!"__Q--/0**,fmm<r;   c                	   t        j                         }t        j                         }t        j                         }t        j                         }|j                  t	        j
                                |j                  |||g       t	        j                  |      }| j                  |j                                | j                  |j                  |d      dg       |j                  |       t	        j                  |      }| j                  |j                                t        j                         }t        j                         }|j                  t	        j                                |j                  t	        j                                t        j                         }t        j                         }|j                  t	        j                                |j                  t	        j                                |j                  |||g       t	        j                  |      }| j                  |j                  |t        j                        dg       | j                  |j                  |d      dg       | j                  |j                  |d      ddg       | j                  |j                  |d      dg       |j                  |       t	        j                  |      }| j                  |j                                t        j                         }|j!                  dt	        j                  d             t        j                         }t        j                         }t#        j$                  d	
      |_        t#        j$                  d
      |_        |j!                  dt	        j                                t        j                         }t        j                         }|j                  t	        j                  d             t        j                         }|j                  |||||g       t	        j                  |      }| j                  |j                  |t        j                        ddg       | j                  |j                  |t        j                        dg       |j+                         }y )Nr\   r   r   r^   rb   rc   r"   zTo Codar   r   r   )r   r%   r&   r/   r   r\   r0   r1   r>   r,   getRepeatExpressionIndex_stripRepeatExpressionsr=   r^   rb   rc   r   r   r'   r(   r)   rP   )	r4   r5   r6   r7   r@   r8   rV   m5dummys	            r9   testRemoveRepeatExpressionsz Test.testRemoveRepeatExpressions  s9   KKM^^^^^^
		&--/"	"b"__Q)*44QAA3G
""2&__Q*+KKM^^
		&,,.!
		&++- ^^^^
		&++- 
		&%%'(	"b"__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	"b"b"%&__Q44QDq!fM44Q8K8KLqcR

r;   c                   t        j                         }t        j                  d      }|j                  |       |j	                         }| j                  |t         j                         | j                  t        |      d       | j                  |d   t         j                         | j                  |d   j                  d       t        j                         }|j                  d|       |j	                         }| j                  |t         j                         | j                  |d   t         j                         y )Nr   rf   r   )r   r%   r&   r/   r   assertIsInstancer,   r-   rg   Scorer   )r4   rr   rX   p1r5   r   s         r9   testExpandSimplestPartzTest.testExpandSimplestPart  s    KKMNN!$	__b&++.R!$beV^^4Aq)LLN	A__b&,,/beV[[1r;   c                T	   t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                  dd      d       |j                  t        j                                t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  ||||g       t        j                  |      }| j                  |j                                | j                  |j                         t        j                         t        j                         }|j                  t        j                  dd      d       |j                  t        j                                t        j                         }|j                  t        j                                |j                  t        j                  dd      d       t        j                         }|j                  ||g       t        j                  |      }| j                  |j                                | j                  |j                         d        t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                                |j                  t        j                  dd      d       t        j                         }|j                  ||g       t        j                  |      }| j                  |j                                | j                  |j                         t        j                          | j                  |j#                                t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  |g       t        j                  |      }| j                  |j                         d        y )Nr   r   r   r   r   r   r   )r   r&   r*   r   r+   r/   r   r`   r%   r0   r=   r   r,   r   r\   r   r^   _dalSegnoIsCoherent)r4   r6   r7   r@   rV   r5   r8   s          r9   testExpandRepeatExpressionAz Test.testExpandRepeatExpressionA  s    ^^
		$V4a8^^
		$V4a8^^
		$V4a8
		&%%'(^^
		$V4a8KKM	"b"b!"__Q--/0**,fmm< ^^
		$V4a8
		&%%'(^^
		&'')*
		$V4a8KKM	"b__Q--/0**,d3 ^^
		$V4a8^^
		&'')*
		$V4a8KKM	"b__Q--/0**,fll;//12 ^^
		$V4a8KKM	"__Q**,d3r;   c                0   t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                  dd      d       |j                  t        j                                t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  ||||g       | j                  t        |j                  t         j                              d       t        j                  |      }|j                         }| j                  t        |j                  t         j                              d	       | j                  |j                         j                  D cg c]  }|j                    c}g d
       y c c}w )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+   r/   r   r\   r%   r,   r-   r.   r0   rP   rT   r   rU   	r4   r6   r7   r@   rV   r5   r8   rW   r   s	            r9   testExpandRepeatExpressionBz Test.testExpandRepeatExpressionB  sf    ^^
		$V4a8^^
		$V4a8^^
		$V4a8
		&--/"^^
		$V4a8KKM	"b"b!"Q11&..ABAF__Qzz|T44V^^DEqIDLLN4J4JK4Jq!**4JK>	?Ks   5Hc                v   t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                  dd      d       |j                  t        j                                t        j                         }|j                  t        j                  dd      d       |j                  t        j                                t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  ||||g       | j                  t        |j                  t         j                              d       t        j                  |      }|j                         }| j                  t        |j                  t         j                              d	       | j                  |j                         j                   D cg c]  }|j"                   c}g d
       y c c}w )Nr   r   r   r   r   r   r   r"   rn   )
r   r   r   r   r   r   r   r   r   r   )r   r&   r*   r   r+   r/   r   r_   r`   r%   r,   r-   r.   r0   rP   rT   r   rU   r  s	            r9   testExpandRepeatExpressionCz Test.testExpandRepeatExpressionC*  sz   ^^
		$V4a8^^
		$V4a8
		&++- ^^
		$V4a8
		&%%'(^^
		$V4a8KKM	"b"b!"Q11&..ABAF__Qzz| 	T44V^^DEqIDLLN4J4JK4Jq!**4JKU	WK   H6c                6   t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                  dd      d       |j                  t        j                  d             t        j                         }|j                  t        j                  dd      d       |j                  t        j                                t        j                         }|j                  t        j                                |j                  t        j                  dd      d       t        j                         }|j                  t        j                  d	d      d       t        j                         }|j                  |||||g       | j                  t        |j                  t         j                              d
       t        j                  |      }|j                         }| j                  t        |j                  t         j                              d       | j                  |j                         j                   D 	cg c]  }	|	j"                   c}	g d       y c c}	w )Nr   r   r   r   r   to codar   r   b4rn   r   )r   r   r   r   r   r   r   r   r   r   r  r  B4r  )r   r&   r*   r   r+   r/   r   rb   rc   r%   r,   r-   r.   r0   rP   rT   r   rU   
r4   r6   r7   r@   rV   r   r5   r8   rW   r   s
             r9   testExpandRepeatExpressionDz Test.testExpandRepeatExpressionDB  s   ^^
		$V4a8^^
		$V4a8
		&++i()^^
		$V4a8
		&%%'(^^
		&++- 
		$V4a8^^
		$V4a8KKM	"b"b"%&Q11&..ABAF__Qzz| 	T44V^^DEqIDLLN4J4JK4Jq!**4JK>	?Ks   8Jc                v   t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                                |j                  t        j                  dd      d       t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                  dd      d       |j                  t        j                                t        j                         }|j                  ||||g       | j                  t        |j                  t         j                              d       t        j                  |      }|j                         }| j                  t        |j                  t         j                              d	       | j                  |j                         j                   D cg c]  }|j"                   c}g d
       y c c}w )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+   r/   r   r^   r]   r%   r,   r-   r.   r0   rP   rT   r   rU   r  s	            r9   testExpandRepeatExpressionEz Test.testExpandRepeatExpressionE_  sy   ^^
		$V4a8^^
		&,,.!
		$V4a8^^
		$V4a8^^
		$V4a8
		&//#$KKM	"b"b!"Q11&..ABAF__Qzz| 	T44V^^DEqIDLLN4J4JK4Jq!**4JK2	3Kr  c                4   t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                                |j                  t        j                  dd      d       t        j                         }|j                  t        j                  dd      d       |j                  t        j                                t        j                         }|j                  t        j                  dd      d       |j                  t        j                                t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  |||||g       | j                  t        |j                  t         j                              d	       t        j                  |      }|j                         }| j                  t        |j                  t         j                              d
       | j                  |j!                         j"                  D 	cg c]  }	|	j$                   c}	g d       y c c}	w )Nr   r   r   r   r   r   r   r  rn   r   )r   r   r   r   r   r   r  r  r   r   r   r   )r   r&   r*   r   r+   r/   r   r^   r_   ra   r%   r,   r-   r.   r0   rP   rT   r   rU   r  s
             r9   testExpandRepeatExpressionFz Test.testExpandRepeatExpressionFz  s   ^^
		$V4a8^^
		&,,.!
		$V4a8^^
		$V4a8
		&++- ^^
		$V4a8
		&'')*^^
		$V4a8KKM	"b"b"%&Q11&..ABAF__Qzz| 	T44V^^DEqIDLLN4J4JK4Jq!**4JK2	3Ks   7Jc           	     n   t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                                |j                  t        j                  dd      d       |j                  t        j                  d             t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                  dd      d       |j                  t        j                                t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                  d             |j                  t        j                  d	d      d       t        j                         }|j                  t        j                  d
d      d       t        j                         }|j                  |||||||g       | j                  t        |j                  t         j                              d       t        j                  |      }	|	j                         }
| j                  t        |
j                  t         j                              d       | j                  |
j!                         j"                  D cg c]  }|j$                   c}g d       y c c}w )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+   r/   r   r^   rb   r   r%   r,   r-   r.   r0   rP   rT   r   rU   )r4   r6   r7   r@   rV   r   m6m7r5   r8   rW   r   s               r9   testExpandRepeatExpressionGz 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	"b"b"b"-.Q11&..ABAF__Qzz| 	T44V^^DEqIDLLN4J4JK4Jq!**4JK>	?Ks   L2c                t   t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                  dd      d       t        j                         }t        j                  d      |_        |j                  t        j                  dd      d       t        j                  d	      |_        t        j                         }|j                  t        j                  d
d      d       t        j                  d      }|j                  |       t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  |||||g       | j                  t        |j                  t         j                              d       t        j                   |      }|j#                         }	| j                  t        |	j                  t         j                              d       | j                  |	j%                         j&                  D 
cg c]  }
|
j(                   c}
g d       d|_        t        j                   |      }|j#                         }	| j                  t        |	j                  t         j                              d       | j                  |	j%                         j&                  D 
cg c]  }
|
j(                   c}
g d       y c c}
w c c}
w )Nr   r   r   r   r   r   r   r   r   r   r   r  rn   
   )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\   r/   r%   r,   r-   r.   r0   rP   rT   r   rU   repeatAfterJump)r4   r6   r7   r@   rV   dcHandler   r5   r8   rW   r   s              r9   testExpandRepeatExpressionHz Test.testExpandRepeatExpressionH  sA    ^^
		$V4a8^^
		$V4a8^^g6
		$V4a8**u5^^
		$V4a8==(
		(^^
		$V4a8KKM	"b"b"%&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   *L0L5c                   t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                  dd      d       |j                  t        j                  d             t        j                         }t        j                  d      |_
        |j                  t        j                  d	d      d       t        j                         }|j                  |       t        j                  d
      |_        t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                                |j                  t        j                  dd      d       t        j                         }|j                  |||||g       | j                  t        |j!                  t         j                              d       t        j"                  |      }|j%                         }	| j                  t        |	j!                  t         j                              d       | j                  |	j'                         j(                  D 
cg c]  }
|
j*                   c}
g d       y c c}
w )Nr   r   r   r   r   r
  r   r   r   r   r   r  rn   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  )r   r&   r*   r   r+   r/   r   rb   r   r'   r(   rc   r)   r%   r,   r-   r.   r0   rP   rT   r   rU   )r4   r6   r7   r@   r  rV   r   r5   r8   rW   r   s              r9   testExpandRepeatExpressionIz Test.testExpandRepeatExpressionI  s    ^^
		$V4a8^^
		$V4a8
		&++i()^^g6
		$V4a8&&(
		(**u5^^
		$V4a8^^
		&++- 
		$V4a8KKM	"b"b"%&Q11&..ABAF __Qzz|T44V^^DEqIDLLN4J4JK4Jq!**4JK>	?Ks   0Kc                   t        j                         }|j                  t        j                                |j                  t        j                  dd      d       t        j                         }|j                  t        j                  dd      d       |j                  t        j                  d             t        j                         }t        j                  d      |_        |j                  t        j                  d	d      d       t        j                         }|j                  |       t        j                  d
      |_        t        j                         }|j                  t        j                  dd      d       t        j                         }|j                  t        j                                |j                  t        j                  dd      d       t        j                         }|j                  |||||g       |j                  dt!        j"                                |j                  dt%        j&                  |d   |d                | j)                  t+        |j-                  t         j                              d       |j/                         }| j)                  t+        |j-                  t         j                              d       | j)                  |j1                         j2                  D 	cg c]  }	|	j4                   c}	g d       | j)                  |j-                  t         j6                        j9                         j:                  d       y c c}	w )Nr   r   r   r   r   r
  r   r   r   r   r   r  r   r   rn   r   r  Trumpet)r   r&   r/   r   r^   r*   r   r+   rb   r   r'   r(   r   r)   r%   r   r   r"  r   Slurr,   r-   r.   r   rT   r   rU   
InstrumentfirstinstrumentName)
r4   r6   r7   r@   dsHandlerV   r   r5   rW   r   s
             r9   testExpandRepeatExpressionJz Test.testExpandRepeatExpressionJ  sS    ^^
		&,,.!
		$V4a8^^
		$V4a8
		&++i()^^g6
		$V4a8((*
		(**u5^^
		$V4a8^^
		&++- 
		$V4a8KKM	"b"b"%&	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   M3c                "   t        j                  d      }| j                  t        |j                        d       | j                  t        |j                  d   j                  t        j                              d       | j                  t        |j                  d   j                         j                        d       |j                  d   t        j                     }| j                  t        |      d       |j                         }| j                  t        |j                  d   j                  t        j                              d       | j                  t        |j                  d   j                         j                        d       y	)
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   r  :   r   ro   i   N)r   rz   r,   r-   r|   r.   r   r&   rT   r   r   Barliner   rQ   )r4   r5   barsr   s       r9   testExpandRepeatsImportedAz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                V   t        j                  d      }| j                  t        |j                        d       | j                  t        |j                  d   j                  t        j                              d       | j                  t        |j                  d   j                         j                        d       |j                         }| j                  t        |j                  d   j                  t        j                              d       | j                  t        |j                  d   j                         j                        d       |j                  d   j                         j                  t        j                        }| j                  t        |      d       y )NGlobeHornpiper   r   rv   }   rx      )r   rz   r,   r-   r|   r.   r   r&   rT   r   r   r   r'   )r4   r5   r   r.  s       r9   testExpandRepeatsImportedBz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                   t        j                  t        j                        }| j	                  t        |d         d       t        j                  t        j                        }| j	                  t        |d         d       y )NRepeatExpressionr   )r   rz   r   repeatExpressionsAr,   r-   repeatExpressionsB)r4   r5   s     r9   testExpandRepeatsImportedCzTest.testExpandRepeatsImportedCc  s`    OOM<<=Q123Q7OOM<<=Q123Q7r;   c                   t        j                  t        j                        }t	        j
                         }|j                  |      }| j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      d       |j                  |      }| j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      d       t        j                  |      }t        j                  |j                  d         }| j                  t        |j                        d       y )	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   rz   r   repeatBracketsAr   r   r   r   r   r   r   r0   r|   r,   r-   _repeatBrackets)r4   r5   r   r   r   r8   s         r9   testRepeatsEndingsAz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                V   t        j                         }t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             |j                  |||||g       t        j                  ||gd	      }t        j                         |_
        | j                  |j                  |             | j                  |j                  |             |j                  |       t        j                  |d
	      }| j                  |j                  |             t        j                         |_
        |j                  |       t        j                  |      }	| j                  |	j                                d|_        | j#                  |	j                                d
|_        | j                  |	j                                d
|_        d|_        | j#                  |	j                                d|_        d
|_        | j                  |	j                                | j                  |	j%                                y Nr   wholer   r$   r   rD   r   r   rf   r      r   r%   r&   r/   r   r+   r   RepeatBracketr   r'   r)   r1   hasSpannedElementr   r0   _repeatBracketsAreCoherentrg   r=   r2   
r4   rr   r6   r7   r@   rV   r   rb1rb2r8   s
             r9   testRepeatEndingsBzTest.testRepeatEndingsB  ,   KKM^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0	"b"b"%&##RHQ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                V   t        j                         }t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             |j                  |||||g       t        j                  ||gd	      }t        j                         |_
        | j                  |j                  |             | j                  |j                  |             |j                  |       t        j                  |d
	      }| j                  |j                  |             t        j                         |_
        |j                  |       t        j                  |      }	| j                  |	j                                d|_        | j#                  |	j                                d
|_        | j                  |	j                                d
|_        d|_        | j#                  |	j                                d|_        d
|_        | j                  |	j                                | j                  |	j%                                y r?  rB  rF  s
             r9   testRepeatEndingsB2zTest.testRepeatEndingsB2  rJ  r;   c                D   t        j                         }t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             |j                  |||||g       t        j                  ||gd	      }|j                  |       t        j                  |      }| j                  |j                                t        j                         |_        t        j                  |      }| j                  |j                                t        j                  |d
	      }	|j                  |	       t        j                  |      }| j                  |j                                t        j                         |_        t        j                  |      }| j                  |j                                y )Nr   r@  r   r$   r   rD   r   r   rf   r   )r   r%   r&   r/   r   r+   r   rC  r   r0   r=   rE  r   r'   r)   r1   )
r4   rr   r6   r7   r@   rV   r   rG  r8   rH  s
             r9   testRepeatEndingsCzTest.testRepeatEndingsC  s   KKM^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0	"b"b"%&##RHQ7	 __Q6689**,__Q5578 ##Bq1	__Q5578**,__Q5578r;   c                N   t        j                         }t        j                  d      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  d	d             t        j                  d
      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  dd             |j                  |||||g       t        j                  ||gd      }|j                  |       t        j                         |_
        t        j                  |      }t        j                  ||gd      }	|j                  |	       t        j                         |_
        t        j                  |      }
| j                  |
j                                y )Nr   rf   r   r@  r   r   r$   r   r   r"   rD   rn   r   )r   r%   r&   r/   r   r+   r   rC  r   r'   r)   r   r0   r=   rE  )r4   rr   r6   r7   r@   rV   r   rG  r   rH  r8   s              r9   testRepeatEndingsDzTest.testRepeatEndingsD  sp   KKM^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0	"b"b"%&##RHQ7	**,OOA&	 ##RHQ7	**, __Q6689r;   c                   t        j                         }t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             |j                  |||||g       t        j                  ||gd	      }t        j                         |_
        |j                  |       t        j                  |d
	      }|j                  |       t        j                  |      }	| j                  |	j                                | j                  |	j                                | j!                  |	j#                  |      g d       |	j%                  |      }
| j!                  |
d   d   g d       y)zM
        Expanding two endings (1, 2, then 3) without a start repeat
        r   r@  r   r$   r   rD   r   1,2rf   r   )r   r   r   r   measureIndicesr   r   r   N)r   r%   r&   r/   r   r+   r   rC  r   r'   r)   r   r0   r1   rE  r>   r,   r3   _groupRepeatBracketIndices)r4   rr   r6   r7   r@   rV   r   rG  rH  r8   rW   s              r9   testRepeatEndingsEzTest.testRepeatEndingsE,  s    KKM^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0	"b"b"%&##RHU;**,	##Bq1	 __Q5578)*66q99E,,Q/a!12I>r;   c           
        t        j                         }t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  d	d             t        j                         }	|	j                  t	        j
                  d
d             |j                  ||||||||	g       t        j                  ||gd      }
t        j                         |_
        |j                  |
       t        j                  |d      }|j                  |       t        j                         |_        t        j                         |_
        t        j                  |d      }|j                  |       t        j                         |_
        t        j                  |d      }|j                  |       t        j                  |	d      }|j                  |       t        j                  |      }| j                  |j                                | j                  |j!                                | j#                  |j%                  |dd       ddg       |j'                  |      }| j#                  |d   d   g d       | j#                  |d   d   g d       y)O
        Two sets of two endings (1, 2, then 3) without a start repeat
        r   r@  r   r$   r   rD   r   r   r  c5rR  rf   r   1-3r"   rn   Nr   r   r   rS  rT  )rn   r   r   )r   r%   r&   r/   r   r+   r   rC  r   r'   r)   r(   r   r0   r1   rE  r>   r,   r3   rU  )r4   rr   r6   r7   r@   rV   r   r  r  m8rG  rH  rb3rb4rb5r8   rW   s                    r9   testRepeatEndingsFzTest.testRepeatEndingsFN  s    KKM^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0	"b"b"b"b12##RHU;**,	##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                   t        j                         }t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  dd             t        j                         }|j                  t	        j
                  d	d             t        j                         }	|	j                  t	        j
                  d
d             |j                  |||||g       t        j                  ||gd      }
t        j                         |_
        |j                  |
       t        j                  |d      }|j                  |       t        j                  |      }| j                  |j                                |j                         }| j!                  t#        |      d       | j!                  |j%                         j&                  D cg c]  }|j(                   c}g d       yc c}w )rX  r   r@  r   r$   r   rD   r   r   r  rY  rR  rf   r   	   )	CDErb  rc  rd  rb  FGN)r   r%   r&   r/   r   r+   r   rC  r   r'   r)   r   r0   r1   r>   rP   r,   r-   rT   r   name)r4   rr   r6   r7   r@   rV   r   r  r  r[  rG  rH  r8   rW   rY   s                  r9   testRepeatEndingsGzTest.testRepeatEndingsG  s    KKM^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0^^
		$))Dw/0	"b"b"%&##RHU;**,	##Bq1	 __Q)*zz|TA&$,,.*>*>?*>Q!&&*>?F	H?s   ,L
c           
     ^   t        j                         }t        j                  d      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  d	d             t        j                  d
      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  dd             t        j                  d      }	|	j                  t	        j
                  dd             |j                  ||||||||	g       t        j                  ||gd      }
t        j                         |_
        |j                  |
       t        j                  |d      }|j                  |       t        j                         |_
        t        j                  |d
      }|j                  |       t        j                  |      }| j                  |j                                |j                         }t         j#                  d|j%                         j&                  D cg c]  }|j(                   c}g       | j+                  t-        |      d       | j+                  |j%                         j&                  D cg c]  }|j(                   c}g d       yc c}w c c}w )rX  r   rf   r   r@  r   r   r$   r   r   r"   rD   rn   r   r   r   r   r  r   rY  rR  zpost process   )rb  rc  rd  rb  rc  rd  rb  re  rb  rf  ABrb  N)r   r%   r&   r/   r   r+   r   rC  r   r'   r)   r   r0   r1   r>   rP   environLocal
printDebugrT   r   rg  r,   r-   )r4   rr   r6   r7   r@   rV   r   r  r  r[  rG  rH  r\  r8   rW   rY   s                   r9   testRepeatEndingsHzTest.testRepeatEndingsH  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	"b"b"b"b12##RHU;**,	##Bq1	**,##Bq1	 __Q)*zz|$,,.BVBV1WBVQ!&&BV1W XYTB'$,,.*>*>?*>Q!&&*>?Z	\ 2X @s   *N%
N*c           
        t        j                         }t        j                  d      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  d	d             t        j                  d
      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  dd             t        j                  d      }	|	j                  t	        j
                  dd             |j                  ||||||||	g       t        j                  ||gd      }
t        j                         |_
        |j                  |
       t        j                  |d      }|j                  |       t        j                         |_
        t        j                         |_        t        j                         |_
        t        j                  |d      }|j                  |       t        j                         |_
        t        j                  |d
      }|j                  |       t        j                  |	d      }|j                  |       t        j                  |      }| j                  |j                                |j!                         }| j#                  t%        |      d       | j#                  |j'                         j(                  D cg c]  }|j*                   c}g d       yc c}w )rX  r   rf   r   r@  r   r   r$   r   r   r"   rD   rn   r   r   r   r   r  r   rY  rR  rZ  rv   )rb  rc  rd  rb  rc  rd  rb  re  rf  rk  rf  rk  rf  rk  rf  rl  rf  rb  N)r   r%   r&   r/   r   r+   r   rC  r   r'   r)   r(   r   r0   r1   r>   rP   r,   r-   rT   r   rg  )r4   rr   r6   r7   r@   rV   r   r  r  r[  rG  rH  r\  r]  r^  r8   rW   rY   s                     r9   testRepeatEndingsIz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	"b"b"b"b12##RHU;**,	##Bq1	**, **,##Bu5	**,##Bq1	##Bq1	
 __Q)*zz| 	TB'$,,.*>*>?*>Q!&&*>?B	C?s   O9c                X	   t        j                         }t        j                  d      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  d	d             t        j                  d
      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  dd             t        j                  d      }t	        j
                  dd      }t	        j
                  dd      }	|j                  ||	g       t        j                  d      }
|
j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  dd             t        j                  d      }|j                  t	        j
                  dd             |j                  |||||||
|||||g       t        j                  ||gd      }|j                  |       t        j                         |_
        t        j                  |d      }|j                  |       t        j                         |_        t        j                         |_        t        j                         |_
        t        j                  |
d      }|j                  |       t        j                         |
_
        t        j                  ||gd      }|j                  |       t        j                         |_
        t        j                  |gd       }|j                  |       |j                         }| j                  t        |      d!       y")#rX  r   rf   r   r@  r   r   r$   r   r   r"   rD   rn   r   r   r   r   r   r  r   rY  ra  d5r  e5r  f5rE   g5rR  rZ  z4,56%   N)r   r%   r&   r/   r   r+   r   rC  r   r'   r)   r(   r   r,   r-   )r4   rr   r6   r7   r@   rV   r   r  n1n2r  r[  m9m10m11m12rG  rH  r\  r]  r^  rW   s                         r9   testRepeatEndingsJzTest.testRepeatEndingsJ  s    KKM^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%YYt&)YYt&)
		2r(^^1%
		$))Dw/0^^1%
		$))Dw/0^^1%
		$))Dw/0nnB'

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

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

499T01	"b"b"b"b"c3DE##RHU;	**,##Bq1	 **,##Bu5	**,##RIe<	::<##SE#6	  TB'r;   c                    t        j                  d      }t        |j                         j                        }|dd |dd z   |dd z   |dd z   |dd z   |dd z   }|D cg c]  }|j
                   }}t        j                  |j                  d         }|j                         }t        |j                         j                        }|D cg c]  }|j
                   }	}| j                  ||	       y c c}w c c}w )Nr*  r   rh         r+  )r   rz   listrT   r   rU   r   r0   r|   rP   r,   )
r4   r5   firstNotesListexpandedByHandListrY   expandedByHandNoteNamesr8   rW   secondNotesListsecondNotesNoteNamess
             r9   testRepeatEndingsImportedAz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1#3#3=O"P__QWWQZ(zz| t||~334:IJ/Q 0 0/J02FG #Q  Ks    C6C;c                    t        j                  d      }t        j                  |j                  d         }| j                  t        |j                        d       |j                         }y )NzryansMammoth/SmugglersReelr   r   )	r   rz   r   r0   r|   r,   r-   r<  rP   )r4   r5   r8   unused_posts       r9   testRepeatEndingsImportedBzTest.testRepeatEndingsImportedBi  sO     LL56__QWWQZ(R//0!4jjlr;   c                    t        j                  t        j                        }|j	                         }| j                  t        |j                  d         d       y )Nr       )r   rz   r   mysteryReelr   r,   r-   r|   )r4   r5   rW   s      r9   testRepeatEndingsImportedCzTest.testRepeatEndingsImportedCu  s?    OOI112 TZZ]+R0r;   c                D   t        j                  d      }|j                  d      j                  t	        j
                  dd             d|_        d|_        |j                         }| j                  |j                  d       | j                  |j                  d       y )NztinyNotation: c1 d e fr   r   r   r   my_part_namemy_part_abbreviation)
r   rz   measure
storeAtEndr   r'   partNamepartAbbreviationr   r,   )r4   rr   exps      r9   "test_expand_repeats_preserves_namez'Test.test_expand_repeats_preserves_name  sz     OO45			!

U! DE#
3oo~6--/EFr;   N)/__name__
__module____qualname__r:   rA   rZ   rd   rt   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r   r(  r/  r4  r9  r=  rI  rL  rN  rP  rV  r_  rh  ro  rq  r  r  r  r  r   r;   r9   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   Environmentrm  TestCaser   r  mainTestr  r;   r9   <module>r     s    "    '         % *     &{&&'9:mG8 mG`3 zGT r;   