
    3jX.                       d dl mZ d dlZd dlZd dlZd dlZ G d d      Z G d de      Z G d de      Z G d	 d
e      Z	 G d de      Z
 G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d d e      Z G d! d"e      Z G d# d$e      Z G d% d&e      Z G d' d(e      Z G d) d*e      Z G d+ d,e      Z G d- d.e      Z G d/ d0e      Z G d1 d2e      Z G d3 d4e      Z G d5 d6e      Z G d7 d8e      Z  G d9 d:e      Z! G d; d<e      Z" G d= d>e      Z#d? Z$e%d@k(  r	 e$e#       yy)A    )annotationsNc                      e Zd ZdZy)Testz?
    Base class for timed tests that need music21 imported
    N)__name__
__module____qualname____doc__     D/DATA/.local/lib/python3.12/site-packages/music21/test/timeGraphs.pyr   r      s    r   r   c                      e Zd Zd Zy)TestTimeHumdrumc                    t         j                  j                  t         j                  j                  j
                         y N)music21	converterparsehumdrum	testFilesmazurka6selfs    r   	testFocuszTestTimeHumdrum.testFocus    s&     9 9 B BCr   Nr   r   r   r   r
   r   r   r   r      s    Dr   r   c                      e Zd Zd Zy)TestTimeMozartc                    t         j                  j                  t         j                  j	                  d      d          y )Nk155r   )r   r   r   corpusgetWorkr   s    r   r   zTestTimeMozart.testFocus$   s*     6 6v >q ABr   Nr   r
   r   r   r   r   #   s    Cr   r   c                      e Zd Zd Zy)TestTimeIsmirc                B    t         j                  j                  d       y )Nzbach/bwv248r   r   r   r   s    r   r   zTestTimeIsmir.testFocus1   s    ]+r   Nr   r
   r   r   r"   r"   0   s    ,r   r"   c                  $     e Zd Z fdZd Z xZS )TestMakeMeasuresc                    t         |           t        j                  j	                         | _        t        d      D ];  }t        j                  j                         }| j
                  j                  |       = y )N
   )
super__init__r   streamStreamsrangenoteNoteappendr   in	__class__s      r   r*   zTestMakeMeasures.__init__6   sR    &&(rA!!#AFFMM! r   c                8    | j                   j                          y r   )r-   makeMeasuresr   s    r   r   zTestMakeMeasures.testFocus=   s    r   r   r   r   r*   r   __classcell__r5   s   @r   r&   r&   5   s    r   r&   c                  $     e Zd Z fdZd Z xZS )TestMakeTiesc                F   t         |           t        j                  j	                         | _        t        d      D ]B  }t        j                  j                         }d|_	        | j
                  j                  |       D | j
                  j                         | _        y )Nd      r)   r*   r   r+   r,   r-   r.   r/   r0   quarterLengthr1   r7   r2   s      r   r*   zTestMakeTies.__init__B   so    &&(sA!!#AAOFFMM!  $$&r   c                <    | j                   j                  d       y NT)inPlace)r-   makeTiesr   s    r   r   zTestMakeTies.testFocusL   s    %r   r8   r:   s   @r   r<   r<   A   s    '&r   r<   c                  $     e Zd Z fdZd Z xZS )TestMakeBeamsc                F   t         |           t        j                  j	                         | _        t        d      D ]B  }t        j                  j                         }d|_	        | j
                  j                  |       D | j
                  j                         | _        y Nr>   g      ?r@   r2   s      r   r*   zTestMakeBeams.__init__Q   so    &&(sA!!#A"AOFFMM!  $$&r   c                <    | j                   j                  d       y rC   )r-   	makeBeamsr   s    r   r   zTestMakeBeams.testFocus[   s    &r   r8   r:   s   @r   rG   rG   P   s    ''r   rG   c                  $     e Zd Z fdZd Z xZS )TestMakeAccidentalsc                F   t         |           t        j                  j	                         | _        t        d      D ]B  }t        j                  j                         }d|_	        | j
                  j                  |       D | j
                  j                         | _        y rI   r@   r2   s      r   r*   zTestMakeAccidentals.__init__`   so    &&(sA!!#A"AOFFMM!  $$&r   c                <    | j                   j                  d       y rC   )r-   makeAccidentalsr   s    r   r   zTestMakeAccidentals.testFocusk   s    t,r   r8   r:   s   @r   rM   rM   _   s    	'-r   rM   c                      e Zd Zd Zd Zy)TestMusicXMLOutputc                    t         j                  j                         | _        t	        d      D ]B  }t         j
                  j                         }d|_        | j                  j                  |       D y )Nr>   g      ?)	r   r+   r,   r-   r.   r/   r0   rA   r1   )r   r3   r4   s      r   r*   zTestMusicXMLOutput.__init__p   sM    &&(sA!!#A!AOFFMM! r   c                :    | j                   j                  d       y Nmusicxmlr-   writer   s    r   r   zTestMusicXMLOutput.testFocusw       Z r   Nr   r   r   r*   r   r
   r   r   rR   rR   o   s    !r   rR   c                      e Zd ZdZd Zd Zy)TestMusicXMLOutputPartszg
    This tries to isolate a problem whereby part
    creation is much faster than score creation.
    c                @    ddl m} |j                  dd      | _        y )Nr   r   bach/bwv66.6TforceSourcer   r   r   r-   r   r   s     r   r*   z TestMusicXMLOutputParts.__init__   s    "n$?r   c                \    | j                   j                  D ]  }|j                  d        y rU   )r-   partsrX   )r   ps     r   r   z!TestMusicXMLOutputParts.testFocus   s     AGGJ r   N)r   r   r   r	   r*   r   r
   r   r   r\   r\   {   s    @ r   r\   c                      e Zd Zd Zd Zy)TestCreateTimeSignaturec                :    ddl m} |j                         | _        y Nr   )testPerformancemusic21.testrk   r   tr   rk   s     r   r*   z TestCreateTimeSignature.__init__       0 %%'r   c                8    | j                   j                          y r   )rn   runCreateTimeSignaturesr   s    r   r   z!TestCreateTimeSignature.testFocus   s    &&(r   NrZ   r
   r   r   rh   rh      s    ()r   rh   c                      e Zd Zd Zd Zy)TestCreateDurationsc                :    ddl m} |j                         | _        y rj   rl   ro   s     r   r*   zTestCreateDurations.__init__   rp   r   c                8    | j                   j                          y r   )rn   runCreateDurationsr   s    r   r   zTestCreateDurations.testFocus   s    !!#r   NrZ   r
   r   r   rt   rt      s    ($r   rt   c                      e Zd Zd Zd Zy)TestParseABCc                :    ddl m} |j                         | _        y rj   rl   ro   s     r   r*   zTestParseABC.__init__   rp   r   c                8    | j                   j                          y r   )rn   runParseABCr   s    r   r   zTestParseABC.testFocus   s    r   NrZ   r
   r   r   ry   ry      s    (r   ry   c                      e Zd Zd Zd Zy)TestGetContextByClassAc                    ddl m} ddl m} ddl m} ddl m} |j                  d      | _        || _        || _        || _	        y )Nr   r^   meterclef)keybwv66.6)
r   r   r   r   r   r   r-   mck)r   r   r   r   r   s        r   r*   zTestGetContextByClassA.__init__   s3    "! i(r   c                D   | j                   }| j                  }| j                  }| j                  j                  D ]  }|j                  t        j                  j                        D ]  }|j                  |j                         |j                  |j                         |j                  |j                         |j                  D ]S  }|j                  |j                         |j                  |j                         |j                  |j                         U   y r   )r   r   r   r-   re   getElementsByClassr   r+   MeasuregetContextByClassClefTimeSignatureKeySignaturenotesAndRests)r   r   r   r   rf   r   r4   s          r   r   z TestGetContextByClassA.testFocus   s    vvffA))'..*@*@A##DII.##E$7$78##C$4$45A''		2''(;(;<''(8(89 )	 B r   NrZ   r
   r   r   r~   r~      s    :r   r~   c                      e Zd Zd Zd Zy)TestParseRNTextc                :    ddl m} |j                         | _        y rj   rl   ro   s     r   r*   zTestParseRNText.__init__   rp   r   c                8    | j                   j                          y r   )rn   runParseMonteverdiRNTextr   s    r   r   zTestParseRNText.testFocus   s    '')r   NrZ   r
   r   r   r   r      s    (*r   r   c                      e Zd Zd Zd Zy)TestMusicXMLMultiPartOutputc                   ddl m} ddl m} |j                         | _        t        d      D ]  }|j                         }t        d      D ]D  }|j                         }|j                  |j                  d             |j                  |       F d|_
        | j                  j                  d|        | j                  j                  d	      D ]	  }d|_
         y )
Nr   r/   r+   r(   quarter)typeFT)streamsOnly)r   r/   r+   Scorer-   r.   Partr   r1   r0   _mutableinsertrecurse)r   r/   r+   r3   rf   jr   objs           r   r*   z$TestMusicXMLMultiPartOutput.__init__   s     "rAA2YNN$	23  AJFFMM!Q  66>>d>3C CL 4r   c                :    | j                   j                  d       y rU   rW   r   s    r   r   z%TestMusicXMLMultiPartOutput.testFocus   rY   r   NrZ   r
   r   r   r   r      s    !$!r   r   c                      e Zd Zd Zd Zy)TestCommonContextSearchesc                <    ddl m} |j                  d      | _        y Nr   r^   r   rb   rc   s     r   r*   z"TestCommonContextSearches.__init__       "i(r   c                    | j                   j                  d   j                  t        j                  j
                        d   j                  t        j                  j                         y )Nr      )	r-   re   r   r   r+   r   r   r   r   r   s    r   r   z#TestCommonContextSearches.testFocus   sE    Q**7>>+A+A 	--.	00A0A'--B]B]0^r   NrZ   r
   r   r   r   r      s    )_r   r   c                      e Zd Zd Zd Zy)TestBigMusicXMLc                <    ddl m} |j                  d      | _        y )Nr   r^   	opus41no1rb   rc   s     r   r*   zTestBigMusicXML.__init__   s    "k*r   c                :    | j                   j                  d       y rU   rW   r   s    r   r   zTestBigMusicXML.testFocus  rY   r   NrZ   r
   r   r   r   r      s    +!r   r   c                      e Zd Zd Zd Zy)TestGetElementsByClassAc                <    ddl m} |j                  d      | _        y r   rb   rc   s     r   r*   z TestGetElementsByClassA.__init__
  r   r   c                ^    t        | j                  j                         j                         y r   )lenr-   flattennotesr   s    r   r   z!TestGetElementsByClassA.testFocus  s    DFFNN""#r   NrZ   r
   r   r   r   r     s    )$r   r   c                      e Zd Zd Zd Zy)TestGetElementsByClassBc                   ddl m} ddl m} ddl m} ddl m} ddl m} |j                         | _        | j                  j                  |j                         d       | j                  j                  |j                         d       | j                  j                  |j                         d       | j                  j                  |j                         g d       | j                  j                  |j                         g d       y )	Nr   r   r   r   r   )chordi,  )r   2   r>      )r   r+   r/   r   r   r   r,   r-   repeatAppendr0   RestChordrepeatInsertr   BassClef)r   r+   r/   r   r   r   s         r   r*   z TestGetElementsByClassB.__init__  s    "  !!DIIK-DIIK-EKKM3/E//13DEDMMO->?r   c                   t        d      D ]  }| j                  j                  dg       | j                  j                  dg       | j                  j                  dg       | j                  j                  dg       | j                  j                  dg       | j                  j                  dg       | j                  j                  dg        y )	N   r   r0   GeneralNoteNotRestr   r   r   )r.   r-   r   )r   r3   s     r   r   z!TestGetElementsByClassB.testFocus"  s    rAFF%%vh/FF%%vh/FF%%}o6FF%%yk2FF%%zl3FF%%vh/FF%%&78 r   NrZ   r
   r   r   r   r     s    @9r   r   c                      e Zd Zd Zd Zy)TestGetContextByClassBc                   ddl m} ddl m} ddl m} |j	                         | _        |j                         }|j                         }|j                  |j                         d       |j                  d      |_        |j                         }|j                  |j                         d       |j                  |       |j                  |       |j                         }|j                         }|j                  d      |_        |j                  |j                         d       |j                         }	|	j                  |j                         d       |j                  |       |j                  |	       | j
                  j                  d|       | j
                  j                  d|       |j                         }
|j                         }|j                  d      |_        |j                  |j                         d       |j                         }|j                  |j                         d       |
j                  |       |
j                  |       |j                         }|j                         }|j                  d      |_        |j                  |j                         d       |j                         }|j                  |j                         d       |j                  |       |j                  |       | j
                  j                  d|
       | j
                  j                  d|       |	j                  d   | _        |j                  d   | _        y )Nr   r   r   r   r   3/4)r   r   r/   r+   r   r-   r   r   r   r0   r   timeSignaturer1   r   	_elementstargetNoteAtargetNoteB)r   r   r/   r+   p1m1m2p2m3m4p3m5m6p4m7m8s                   r   r*   zTestGetContextByClassB.__init__.  sT   ! "[[]^^
		Q' ..u5^^
		Q'
		"
		"[[]^^ ..u5
		Q'^^
		Q'
		"
		"aa[[]^^ ..u5
		Q'^^
		Q'
		"
		"[[]^^ ..u5
		Q'^^
		Q'
		"
		"aa <<+<<+r   c                j    | j                   j                  t        j                  j                         y r   )r   previousr   r   r   r   s    r   r   z TestGetContextByClassB.testFocusc  s     !!'--"="=>r   NrZ   r
   r   r   r   r   -  s    3,j?r   r   c                      e Zd Zd Zd Zy)TestMeasuresAc                <    ddl m} |j                  d      | _        y )Nr   r^   zsymphony94/02rb   rc   s     r   r*   zTestMeasuresA.__init__k  s    "o.r   c                <    | j                   j                  dd       y )Nr   r(   r-   measuresr   s    r   r   zTestMeasuresA.testFocuso  s    2r   NrZ   r
   r   r   r   r   i  s    /r   r   c                      e Zd Zd Zd Zy)TestMeasuresBc                   ddl m} ddl m} ddl m} |j	                         | _        dD ]  }|j                         }t        d      D ]m  }|j                         }|dk(  r|j                  d      |_
        t        d      D ]!  }|j                  |j                                # |j                  |       o | j
                  j                  d|        y )	Nr   r   r   r   )   r(   r   r   )r   r+   r/   r   r   r-   r   r.   r   r   r   r1   r0   r   )	r   r+   r/   r   r   rf   mnr   r3   s	            r   r*   zTestMeasuresB.__init__t  s    " !AABiNN$7&+&9&9%&@AOqAHHTYY[) "   FFMM!Q r   c                <    | j                   j                  dd       y )Nr      r   r   s    r   r   zTestMeasuresB.testFocus  s    1r   NrZ   r
   r   r   r   r   s  s     $r   r   c                      e Zd Zd Zy)TestGetWorkc                B    t         j                  j                  d       y Nr_   r   r   r    r   s    r   r   zTestGetWork.testFocus  s    ~.r   Nr   r
   r   r   r   r     s    /r   r   c                      e Zd Zd Zd Zy)TestImportCorpus3c                B    t         j                  j                  d       y r   r   r   s    r   r*   zTestImportCorpus3.__init__  s    ~.r   c                F    t         j                  j                  dd       y )Nzbach/bwv1.6Tr`   r$   r   s    r   r   zTestImportCorpus3.testFocus  s    ]=r   NrZ   r
   r   r   r   r     s    />r   r   c                      e Zd Zd Zd Zy)TestImportPianoc                B    t         j                  j                  d       y )Ncpebachr   r   s    r   r*   zTestImportPiano.__init__  s    y)r   c                F    t         j                  j                  dd       y )Nr   Tr`   r$   r   s    r   r   zTestImportPiano.testFocus  s    YD9r   NrZ   r
   r   r   r   r     s    *:r   r   c                      e Zd Zd Zd Zy)TestRomantextParsec                H    ddl m} t        j                  | _        || _        y )Nr   )r   )music21.romanTextr   r   r   tf)r   r   s     r   r*   zTestRomantextParse.__init__  s    5 **r   c                b    | j                   j                  | j                  j                         y r   )r   r   r   monteverdi_3_13r   s    r   r   zTestRomantextParse.testFocus  s    TWW445r   NrZ   r
   r   r   r   r     s    
6r   r   c                      e Zd Zd Zd Zy)TestDeepcopyNotec                L    t         j                  j                  d      | _        y Nr   r   r   r   bachr   s    r   r*   zTestDeepcopyNote.__init__      NN((3	r   c                B    t        j                  | j                         y r   )copydeepcopyr  r   s    r   r   zTestDeepcopyNote.testFocus  s    dii r   NrZ   r
   r   r   r  r    s    4!r   r  c                      e Zd Zd Zd Zy)TestRecursionc                L    t         j                  j                  d      | _        y r  r  r   s    r   r*   zTestRecursion.__init__  r  r   c                B    | j                   j                         D ]  } y r   )r  r   )r   _s     r   r   zTestRecursion.testFocus  s    ""$A %r   NrZ   r
   r   r   r  r    s    4r   r  c                      e Zd Zd Zd Zy)TestChordifySchumannc                L    t         j                  j                  d      | _        y )Nz#schumann_robert/opus41no1/movement1)r   r   r   schumannr   s    r   r*   zTestChordifySchumann.__init__  s    ,,-RSr   c                8    | j                   j                          y r   )r  chordifyr   s    r   r   zTestChordifySchumann.testFocus  s     r   NrZ   r
   r   r   r  r    s    T!r   r  c                &   d} |        }t        j                         5 }|j                          d d d        t        j                        }|j                  t        j                  j                         |j                  |       y # 1 sw Y   YxY w)Ng333333?)	cProfileProfiler   pstatsStats
sort_statsSortKeyTIMEprint_stats)	TestClassMIN_FRACTION_TO_REPORTrn   prstatss        r   mainr#    sk     A				r	 
 LLE	V^^(()	,- 
	s   BB__main__)&
__future__r   r	  r  r  r   r   r   r   r"   r&   r<   rG   rM   rR   r\   rh   rt   ry   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r#  r   r
   r   r   <module>r&     s   #    
 Dd DCT C,D ,
	t 	&4 &'D '-$ - 	! 	! d  $)d )$$ $4 :T :6*d *!$ !0_ _!d !$d $9d 948?T 8?xD D ./$ /> >:d :6 6!t !D !4 !	. z	 r   