
    3j4k                        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mZ  G d	 d
ej                        Z G d dej                        Zedk(  rd dlZ ej&                  e       yy)    )annotationsN)common)duration)note)stream)TimeSignature)MeterSequenceMeterTerminalc                  (    e Zd ZdZd Zd Zd Zd Zy)TestExternalTc                T    t        d      }| j                  r|j                          yy)z?
        Need to test direct meter creation w/o stream
        3/16N)r   showselfas     @/DATA/.local/lib/python3.12/site-packages/music21/meter/tests.py
testSinglezTestExternal.testSingle   s#     &!99FFH     c                8   t        j                         }dD ]d  }dD ]]  }t        | d|       }t        j                         }||_        |j                  |j                  j                  j                  |       _ f | j                  r|j                          y y )N                   
r      r            	            /)	r   Streamr   MeasuretimeSignatureinsertbarDurationquarterLengthr   )r   r   meterStrDenominatormeterStrNumeratortsms         r   	testBasiczTestExternal.testBasic#   s    MMO#7%F!"&7%8:M9N#OPNN$"$44BBAF	 &G $8 99FFH r   c                0   t        j                         }g d}g d}t        d      D ]  }g }t        dt        j                  ddg            D ]B  }t        j                  |      }t        j                  |      }|j                  | d|        D t        dj                  |            }	t        j                         }
|	|
_	        |j                  |
j                  j                  j                  |
        | j                  r|j                          y y )	Nr   r   r   r   r   r   r'   +)r   r(   rangerandomchoiceappendr   joinr)   r*   r+   r,   r-   r   )r   r   r.   r/   imsgj	numeratordenominatorr0   r1   s              r   testCompoundzTestExternal.testCompound.   s    MMO2=qAC1fmmQF34"MM*;<	$mm,?@

i[+78 5 sxx}-B A AOHHQ__00>>B  99FFH r   c                :   t        dd      }t        j                  d      gdz  }t        j                         }|j                  d|       |D ].  }t        j                         }||_        |j                  |       0 | j                  r|j                          y y )N6/8r   16thr%   r   )
r   r   Durationr   r(   r+   r   Noter8   r   )r   r0   bsxns         r   testMeterBeamzTestExternal.testMeterBeam@   s|    5!$v&'",MMO	BA		AAJHHQK  99FFH r   N)__name__
__module____qualname__r   r   r2   r?   rI    r   r   r   r      s    D	$
r   r   c                      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y)Testc                :   t               }|j                  dd       | j                  t        |      d       |d   j	                  d      |d<   | j                  t        |      d       |d   j	                  d      |d<   | j                  t        |      d       y )	N4/4r   z{1/4+1/4+1/4+1/4}r   r   z{{1/8+1/8}+1/4+1/4+1/4}r   z){{1/8+1/8}+1/4+1/4+{1/16+1/16+1/16+1/16}})r	   loadassertEqualstr	subdivider   s     r   testMeterSubdivisionzTest.testMeterSubdivisionN   s    O	uaQ!45t~~a !Q!:;t~~a !Q!LMr   c                    t               }|j                  dd       t        j                  |      }| j	                  ||       y )NrQ   r   )r	   rR   copydeepcopyassertIsNot)r   r   rE   s      r   testMeterSequenceDeepcopyzTest.testMeterSequenceDeepcopyY   s5    O	uaMM!Ar   c                    t        d      }t        j                  |      }| j                  ||       | j	                  ||       t        d      }t        d      }| j                  ||       y )NrQ   slow 6/8zfast 6/8)r   rX   rY   rZ   rS   assertNotEqual)r   cdefs        r   testTimeSignatureDeepcopyzTest.testTimeSignatureDeepcopya   s^    % MM!AA*%*%Aq!r   c                    t        d      }g d}|D cg c]  }t        j                  d|z         }}|j                  |      }d}| j	                  t        j                  t        |      |             y c c}w )NrA   )
r   r   r   r   r   r   r   r   r   r   r   r-   a6  [<music21.beam.Beams <music21.beam.Beam 1/start>/<music21.beam.Beam 2/start>>,
        <music21.beam.Beams <music21.beam.Beam 1/continue>/<music21.beam.Beam 2/continue>>,
        <music21.beam.Beams <music21.beam.Beam 1/continue>/<music21.beam.Beam 2/continue>>,
        <music21.beam.Beams <music21.beam.Beam 1/continue>/<music21.beam.Beam 2/stop>>,
        <music21.beam.Beams <music21.beam.Beam 1/stop>>,
        <music21.beam.Beams <music21.beam.Beam 1/start>/<music21.beam.Beam 2/start>>,
        <music21.beam.Beams <music21.beam.Beam 1/continue>/<music21.beam.Beam 2/continue>>,
        <music21.beam.Beams <music21.beam.Beam 1/continue>/<music21.beam.Beam 2/continue>>,
        <music21.beam.Beams <music21.beam.Beam 1/continue>/<music21.beam.Beam 2/stop>>,
        <music21.beam.Beams <music21.beam.Beam 1/stop>>])r   r   rD   getBeams
assertTruer   whitespaceEqualrT   )r   r0   durListr`   	notesListbeamsmatchs          r   testGetBeamszTest.testGetBeamsk   sl    5!8=DEWTYYQU3W	EI&	< 	..s5z5AB Fs    A8c                Z   t        j                         }|j                  t        j                  d      d       t        d      }|j                  |d      }| j                  |d          |dd	 D ]  }| j                  |        d
}| j                  t        j                  t        |      |             |j                  t        j                  d             |j                  |d      }d}| j                  t        j                  t        |      |      t        |             t        j                         }|j                  t        j                  d      d       t        d      }|j                  |d      }d
}| j                  t        j                  t        |      |             t        j                         }|j                  t        j                  d      d       t        d      }|j                  |d      }d}| j                  t        j                  t        |      |             |j                  t        j                  d             |j                  |d      }d}| j                  t        j                  t        |      |      t        |             y	)zw
        Test getting Beams from a Measure that has an anacrusis that makes the
        first note not beamed.
        eighthtyper    2/2      ?)measureStartOffsetr   r   Nz[None,
        <music21.beam.Beams <music21.beam.Beam 1/start>>,
        <music21.beam.Beams <music21.beam.Beam 1/continue>>,
        <music21.beam.Beams <music21.beam.Beam 1/continue>>,
        <music21.beam.Beams <music21.beam.Beam 1/stop>>]      ?aX  [<music21.beam.Beams <music21.beam.Beam 1/start>>,
        <music21.beam.Beams <music21.beam.Beam 1/stop>>,
        <music21.beam.Beams <music21.beam.Beam 1/start>>,
        <music21.beam.Beams <music21.beam.Beam 1/continue>>,
        <music21.beam.Beams <music21.beam.Beam 1/continue>>,
        <music21.beam.Beams <music21.beam.Beam 1/stop>>]3/2g      @r   rA   z[None,
        <music21.beam.Beams <music21.beam.Beam 1/start>>,
        <music21.beam.Beams <music21.beam.Beam 1/continue>>,
        <music21.beam.Beams <music21.beam.Beam 1/stop>>]      ?a  [<music21.beam.Beams <music21.beam.Beam 1/start>>,
        <music21.beam.Beams <music21.beam.Beam 1/stop>>,
        <music21.beam.Beams <music21.beam.Beam 1/start>>,
        <music21.beam.Beams <music21.beam.Beam 1/continue>>,
        <music21.beam.Beams <music21.beam.Beam 1/stop>>])r   r)   repeatAppendr   rD   r   rf   assertIsNoneassertIsNotNonerg   r   rh   rT   r8   )r   r1   r0   rk   rE   rl   s         r   test_getBeams_offsetzTest.test_getBeams_offset~   s   
 NN	tyyh/35!A#6%(#qrA  # <
 	..s5z5AB	)*A#6< 	..s5z5A3u:NNN	tyyh/35!A#6<
 	..s5z5AB NN	tyyh/35!A#6< 	..s5z5AB	)*A#6<
 	..s5z5A3u:Nr   c                   t        d      }t        t        |            D ]  }||   j                  d      ||<   t        t        ||               D ]a  }||   |   j                  d      ||   |<   t        t        ||   |               D ]%  }||   |   |   j                  d      ||   |   |<   ' c  g d}t        d      D ]/  }|dz  }|j	                  |d      }| j                  |||          1 g d}t        d	      D ]2  }|dz  dz   }|j	                  |d
      }| j                  |||          4 g d}t        d      D ]2  }|dz  dz   }|j	                  |d      }| j                  |||          4 y )NrQ   r   )r   r   r   r   r   r   r   r   r   rw   start)align)r   r   r   r   r   r   r   r"   end      ?quantize)r	   r5   lenrU   offsetToDepthrS   )	r   r   hr:   r<   rl   rG   postests	            r   testOffsetToDepthzTest.testOffsetToDepth   s   % s1vAQ4>>!$AaD3qt9%A$q'++A.!Qs1Q47|,A!"1a!5!5a!8AaDGAJ - &  )qAc'C??3g?6DT58, 
 &qAs7c/C??3e?4DT58,	  )qAs7d"C??3j?9DT58, r   c                0	   g d}|D ]  }t        |      }| j                  t        |j                        d       | j                  |j                  d       |j
                  dk(  r-|j                  D ]  }| j                  t        |      d        |j
                  dk(  s|j                  D ]  }| j                  t        |      d         g d}|D ]  }t        |      }| j                  t        |j                        d       | j                  |j                  d       |j
                  dk(  r-|j                  D ]  }| j                  t        |      d        |j
                  dk(  s|j                  D ]  }| j                  t        |      d         g d	}|D ]u  }t        |      }| j                  t        |j                        d
       | j                  |j                  d       |j                  D ]  }| j                  |t                w g d}|D ]  }t        |      }| j                  t        |j                        d       | j                  |j                  d       |j
                  dk(  r-|j                  D ]  }| j                  t        |      d        |j
                  dk(  s|j                  D ]  }| j                  t        |      d         g d}|D ]  }t        |      }| j                  t        |j                        d       | j                  |j                  d       |j
                  dk(  r-|j                  D ]  }| j                  t        |      d        |j
                  dk(  s|j                  D ]  }| j                  t        |      d         g d}|D ]  }t        |      }| j                  t        |j                        d       | j                  |j                  d       |j
                  dk(  s_|j                  D ]  }| j                  t        |      d         g d}|D ]@  }|j                  d      \  }}t        |      }| j                  |j                  |dz          B y )N)rr   2/4z2/8z6/4rA   6/16r   Dupler!   r   )rv   3/49/49/8z9/16Tripler#   )3/8r   z3/32r   Single)z4/2rQ   z4/8z12/412/8z12/16r   	Quadrupler%   )z5/25/45/8z15/4z15/8z15/16r    	Quintuple   )18/4z18/8z18/16Sextuple   )z13/4z19/8z17/16r'   z-uple)	r   rS   r   beatSequencebeatCountNamer=   assertIsInstancer
   split)r   srctsStrr0   ms	firstPartunuseds          r   testDefaultBeatPartitionszTest.testDefaultBeatPartitions   s   9Eu%BS115R--w7||q //B$$SWa0 *"//B$$SWa0 *  3Eu%BS115R--x8||q //B$$SWa0 *"//B$$SWa0 *  &Eu%BS115R--x8oo%%b-8 &	  =Eu%BS115R--{;||q //B$$SWa0 *#//B$$SWa0 *  =Eu%BS115R--{;||q //B$$SWa0 *#//B$$SWa0 *  (Eu%BS115R--z:||r!//B$$SWa0 *  (E %C 0Ivu%BR--y7/BC	 r   c                B   g dg dg dg dg dg dg dg}|D ]  \  }}}}t        |      }t        t        |            D ]Z  }||   }| j                  |j	                  |      ||   d       | j                  |j                  |      j                  ||          \  y )	N)r   r   rw   r   rs   r   rs   r   g      @r   r   r   r   )r   r   r   r   )rQ   r   r   r   )rA   r   rw   r   rs   r   r   gUUUUUU?g?g       @竪@rs   rs   rs   rs   rs   )r   r   r   r   )r   r   r   r   )2/8+3/8r   )r   rs   r   r   )r   r   rs   rs   rs   r   )r   r5   r   assertAlmostEqualgetBeatProportionrS   getBeatDurationr-   )	r   datar   r   dstbeatDurr0   r:   qls	            r   #testBeatProportionFromTimeSignaturez(Test.testBeatProportionFromTimeSignature&  s     FEEbbcT

 )-$E3Wu%B3s8_V&&r';';B'?QK  !3!3B!7!E!E!(- % )-r   c                t   t        d      }|j                  d        | j                  t        |      d       t        d      }|j                  d        | j                  t        |      d       t        d      }|j                  d        | j                  t        |      d       t        d      }|j                  d        | j                  t        |      d       t        d	      }|j                  d        | j                  t        |      d
       t        d      }|j                  d        | j                  t        |      d       t        d      }|j                  d        | j                  t        |      d       t        d      }|j                  d        | j                  t        |      d       y )Nr   z{{1/4+1/4}}r   z{{1/4+1/4+1/4}}rA   z{{3/8+3/8}}r   z{{3/16+3/16}}z3/8+3/8{{1/8+1/8+1/8}+{1/8+1/8+1/8}}r   {{1/8+1/8}+{1/8+1/8+1/8}}r   z{{1/8+1/8+1/8+1/8+1/8}}z3/8+3/4z{{1/8+1/8+1/8}+{1/4+1/4+1/4}})r	   subdividePartitionsEqualrS   rT   )r   r   s     r   testSubdividePartitionsEqualz!Test.testSubdividePartitionsEqual<  sg   5!
##D)R-05!
##D)R"345!
##D)R-06"
##D)R/29%
##D)R"AB9%
##D)R"=>5!
##D)R";<9%
##D)R"ABr   c                >   dg dfdg dfdg dfdg dfdg d	fd
g dfdg dfdg dfdg dfdg dfdg dfdg dfg}|D ]U  \  }}t        |      }|j                  d       | j                  |j                  D cg c]  }|j                   c}|       W y c c}w )NrQ   )ru         ?r   r   rw   r   r   r   r   )ru   r   r   r   rw   r   r   r   rw   r   r   r   r   rA   )ru   r   r   r   r   r   rw   r   r   r   r   r   r   )ru   r   r   r   rw   r   r   r   rw   r   r   r   rw   r   r   r   rw   r   r   r   r   )ru   r   r   r   r   r   rw   r   r   r   r   r   rw   r   r   r   r   r   r   )$ru   r   r   r   r   r   rw   r   r   r   r   r   rw   r   r   r   r   r   rw   r   r   r   r   r   rw   r   r   r   r   r   rw   r   r   r   r   r   r   z11/8),ru   r   r   r   rw   r   r   r   rw   r   r   r   rw   r   r   r   rw   r   r   r   rw   r   r   r   rw   r   r   r   rw   r   r   r   rw   r   r   r   rw   r   r   r   rw   r   r   r   r   )
ru   r   r   r   rw   r   r   r   r   r   z3/8+2/8+3/4),ru         ?r   r   r   r   r   r   r   r   r   r   rw   r   r   r   r   r   r   r   rw         ?r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   z1/2+2/16)(ru         ?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   rw   r   r   r   r   r   r   r   r   )r   _setDefaultAccentWeightsrS   accentSequenceweight)r   pairsr   rl   ts1mts         r   testSetDefaultAccentWeightsz Test.testSetDefaultAccentWeights]  s    FG_`FG  ; < YZ  ; <  < =  ; < 
'( 45  GHwD
L "LE5&C((+#2D2DE2DBbii2DEuM	 " Fs   <B
c                   ddl m} t        d      }|j                         j	                  |      j                  d      }d}|j                  dd      }|j                  dd      }| j                  |j                  |      d	       y )
Nr   )m21ToXmlr   zutf-8z5<time><beats>3</beats><beat-type>8</beat-type></time>  
)	music21.musicxmlr   r   GeneralObjectExporterparsedecodereplacer^   find)r   r   r0   xmlOutrl   s        r   testMusicxmlDirectOutzTest.testMusicxmlDirectOut  sq    -5!//177;BB7KGR(b)FKK.3r   c                
   ddl m} |j                  d      }|j                  j	                  d       | j                  t        |j                        d       | j                  t        |j                        d       t        j                         }||_
        t        j                  d      }|j                  |d       |j                  D cg c]  }|j                   }}| j                  |g d	       |j!                  d
       |j                  d      }| j                  |j"                  d       | j                  t        |j                        d       |j                  d      }| j                  |j"                  d       | j                  t        |j                        d       |j                  d      }| j                  |j"                  d       | j                  t        |j                        d       y c c}w )Nr   meterrA   r!   z{1/8+1/8+1/8+1/8+1/8+1/8}z	{3/8+3/8}rw   re   )123456T)inPlacer]   SimplezI{{1/16+1/16}+{1/16+1/16}+{1/16+1/16}+{1/16+1/16}+{1/16+1/16}+{1/16+1/16}}Compoundr   z6/8 fast)music21r   r   r   	partitionrS   rT   beamSequencer   r)   r*   r   rD   rx   notesbeatStr	makeBeamsbeatDivisionCountName)r   r   r0   r1   rH   rl   s         r   testSlowSixEightzTest.testSlowSixEight  s   !  '
!!!$R__-/JKR__-{; NNIIC(	q!$%GG,GqG, >?	D!   ,118< W	

   '11:>R__-/NO  ,11:>R__-/NO% -s   H c                   t        d      }t        j                  } |d       |d       |d       |d       |d       |d      g}|j                  |      }| j	                  |d gdz          |d       |d       |d       |d       |d       |d      g}|j                  |      }| j	                  |D cg c]  }t        |       c}g d       y c c}w )NrQ   ro   rp   quarterr!   )Noner   r   0<music21.beam.Beams <music21.beam.Beam 1/start>>z/<music21.beam.Beams <music21.beam.Beam 1/stop>>r   )r   r   rD   rf   rS   repr)r   fourFourrH   dListbeamListrE   s         r   testMixedDurationsBeamszTest.testMixedDurationsBeams  s     'II!1)#4aX6F!1)#4aX6FH$$U+D6A:.!1)#4aX6F!1(#3QI5FH$$U+848a$q'84"	#4s   C$c                   ddl m} |j                  d      j                         }|j	                         }|j                         j                  D cg c]  }|j                   }}| j                  |D cg c]  }t        |       c}g d       |j                  d      }|j	                         }|j                         j                  D cg c]  }|j                   }}t        t        |            D cg c]  }t        |      dz   t        ||         z   ! }}d| _        | j                  |g d       y c c}w c c}w c c}w c c}w )	Nr   	converterz!tinyNotation: 3/8 b8 c16 r e. d32)r   zR<music21.beam.Beams <music21.beam.Beam 1/stop>/<music21.beam.Beam 2/partial/left>>zL<music21.beam.Beams <music21.beam.Beam 1/start>/<music21.beam.Beam 2/start>>zm<music21.beam.Beams <music21.beam.Beam 1/stop>/<music21.beam.Beam 2/stop>/<music21.beam.Beam 3/partial/left>>z%tinyNotation: 2/4 b16 c' b a g f# g rr   i  )zN0 <music21.beam.Beams <music21.beam.Beam 1/start>/<music21.beam.Beam 2/start>>zP1 <music21.beam.Beams <music21.beam.Beam 1/continue>/<music21.beam.Beam 2/stop>>zQ2 <music21.beam.Beams <music21.beam.Beam 1/continue>/<music21.beam.Beam 2/start>>zL3 <music21.beam.Beams <music21.beam.Beam 1/stop>/<music21.beam.Beam 2/stop>>zN4 <music21.beam.Beams <music21.beam.Beam 1/start>/<music21.beam.Beam 2/start>>zT5 <music21.beam.Beams <music21.beam.Beam 1/continue>/<music21.beam.Beam 2/continue>>zL6 <music21.beam.Beams <music21.beam.Beam 1/stop>/<music21.beam.Beam 2/stop>>)r   r   r   flattenmakeNotationrecurser   rk   rS   r   r5   r   rT   maxDiff)	r   r   bmbm2rH   r   rE   r:   beamListReprs	            r   testMixedDurationBeams2zTest.testMixedDurationBeams2  s   %__@AIIKoo%([[]%8%89%8AGG%89&'hT!Wh'8	
 __DEoo%([[]%8%89%8AGG%89BGHBVWBVQAtHQK'88BVW (
 	 :' :Ws   D<6EE:$Ec                8   ddl m} ddl m} |j                  dd      j	                         j
                  }t        j                         }|D ]  }|j                  |j                  |         |j                  |      }| j                  t        |      d       y )Nr   r   r   zC4 D16.tinyNotationformatz#<music21.meter.TimeSignature 11/32>r   r   r   r   r   r   r   r)   r+   offsetbestTimeSignaturerS   r   r   r   r   s6m6elts6s          r   testBestTimeSignaturezTest.testBestTimeSignature  sv    %!__Y~_>FFHNN^^BIIbii$ %%b)c$IJr   c                   ddl m} |j                  d      }|j                         j	                  t
        j                        D ]  }|j                         |_         |j                  d   }g }|j	                  t
        j                        D ]&  }|j                  t        |j                               ( | j                  |g d       y)z
        Correct the TimeSignatures (4/4 in m. 1; no others) in a 4-measure score
        of 12, 11.5, 12, 13 quarters, where one of the parts is a PartStaff with
        multiple voices.
        r   )corpusz!demos/incorrect_time_signature_pvr   )"<music21.meter.TimeSignature 12/4>z"<music21.meter.TimeSignature 23/8>r  z"<music21.meter.TimeSignature 13/4>N)r   r  r   r   getElementsByClassr   r)   r  r*   partsr8   r   rS   )r   r  faultyr1   p1tsRepss         r   testBestTimeSignatureBzTest.testBestTimeSignatureB  s     	#AB!44V^^DA113AO E\\!_&&v~~6AMM$q/0 7 "H 	Ir   c                p   ddl m} ddl m} |j                  dd      j	                         j
                  }t        j                         }|D ]  }|j                  |j                  |         |j                  |      }| j                  t        |      d       |j                  dd      j	                         j
                  }t        j                         }|D ]  }|j                  |j                  |         |j                  |      }| j                  t        |      d	       |j                  d
d      j	                         j
                  }t        j                         }|D ]  }|j                  |j                  |         |j                  |      }| j                  t        |      d       y )Nr   r   r   zC4.r   r   z!<music21.meter.TimeSignature 3/8>zC2..!<music21.meter.TimeSignature 7/8>zC2...#<music21.meter.TimeSignature 15/16>r  r  s          r   !testBestTimeSignatureDoubleDottedz&Test.testBestTimeSignatureDoubleDotted$  sR   %!__U>_:BBDJJ^^BIIbii$ %%b)c$GH__VN_;CCEKK^^BIIbii$ %%b)c$GH__W^_<DDFLL^^BIIbii$ %%b)c$IJr   c                T   ddl m} ddl m} |j                  dd      j	                         j
                  }t        j                         }|D ]  }|j                  |j                  |         |j                  |      }| j                  t        |      d       |j                  dd      j	                         j
                  }t        j                         }|D ]  }|j                  |j                  |         |j                  |      }| j                  t        |      d	       y
)zm
        These add up the same as testBestTimeSignatureDoubleDotted, but
        use multiple notes.
        r   r   r   zC2 D4 E8r   r   r  zC2 D4 E8 F16r  Nr  r  s          r   "testBestTimeSignatureDoubleDottedBz'Test.testBestTimeSignatureDoubleDottedB=  s    
 	&!__Z_?GGIOO^^BIIbii$ %%b)c$GH__^N_CKKMSS^^BIIbii$ %%b)c$IJr   c                T   ddl m} ddl m} |j                  dd      j	                         j
                  }t        j                         }|D ]  }|j                  |j                  |         |j                  |      }| j                  t        |      d       |j                  dd      j	                         j
                  }t        j                         }|D ]  }|j                  |j                  |         |j                  |      }| j                  t        |      d	       y
)z
        These add up the same as testBestTimeSignatureDoubleDotted, but
        use multiple notes which are dotted divisions of the original
        r   r   r   z	C4.. D4..r   r   r  zC4... D4...r  Nr  r  s          r   "testBestTimeSignatureDoubleDottedCz'Test.testBestTimeSignatureDoubleDottedCR  s    
 	&!__[_@HHJPP^^BIIbii$ %%b)c$GH__]>_BJJLRR^^BIIbii$ %%b)c$IJr   c                h    t        d      }|j                  }| j                  t        |      d       y )N3+2/8z	{3/8+2/8})r   r   rS   rT   )r   ts328beatSeqs      r   testCompoundSameDenominatorz Test.testCompoundSameDenominatorh  s+    g&$$W{3r   c                   t        d      }t        d      }| j                  |j                  d       | j                  t        |j                        d       | j                  |j                  d       | j                  t        |j                        d       | j                  ||       t        d      }| j                  |j                  d       | j                  t        |j                        d       | j                  ||       t        d      }t               }| j                  ||       t        d      }| j                  |j                  d	       | j                  ||       | j                  t        d      t        d	             | j                  t               t        j                                | j                  t        j                         t                      y
)a  
        Additional tests of TimeSignature object equality.
        Apart from this and the doc tests,
        see also testTimeSignatureDeepcopy for a test of
        time signatures with different structure with same ratioString
        (fast vs slow 6/8).
        z2+3/8r   r   r  z3/8+2/8z{{1/8+1/8+1/8}+{1/8+1/8}}rQ   Cutrr   N)r   rS   ratioStringrT   r   r^   r   rD   )r   
oneKindOf5sameKindOf5otherKindOf5oneKindOf44sameKindOf44otherKindOf44s          r   testEqualityzTest.testEqualitym  sw    #7+
#G,//;Z4457RS00)<[5568ST[1$W-119=\6679TUJ5 $E*$l3%e,22E:J6M%0-2FG 	MOTYY[9DIIK9r   N)rJ   rK   rL   rV   r[   rc   rm   r{   r   r   r   r   r   r   r   r   r   r	  r  r  r  r  r  r)  rM   r   r   rO   rO   M   s~    	N"C&<O~->HDT-,CBMN^
4PB#":KI&K2K*K,4
':r   rO   __main__)
__future__r   rX   r6   unittestr   r   r   r   r   music21.meter.baser   music21.meter.corer	   r
   TestCaser   rO   rJ   mainTestrM   r   r   <module>r1     so    #        , ;28$$ 2jG	:8 G	:V zGT r   