
    3j                        d dl mZ d dlZd dlZd dlmZ d dlmZ  ej                  d      Z G d dej                        Z	e
dk(  r ej                  e	       yy)	    )annotationsN)environment)
freezeThawztest.testSerializationc                  <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
Testc                   ddl m} ddl m} ddl m} |j	                         }|j                  dd      }|j                  |       |j                  |j                  dd	             |j                  |      }|j                  |      }| j                  t        |j                        d
       | j                  t        |j                  d   j                        d       y )Nr   streamnote	converterd2       @quarterLengthzg~6g      ?   D2)music21r
   r   r   StreamNoteappend	freezeStrthawStrassertEquallennotesstrpitch)selfr
   r   r   sn1tempposts           K/DATA/.local/lib/python3.12/site-packages/music21/test/testSerialization.py
testBasicCzTest.testBasicC   s    " %MMOYYt3Y/		556""1%  &TZZ!,TZZ]00148    c                x   ddl m} ddl m} ddl m} ddl m} dd l}|j                         }|j                  dd      }|j                  d	d      }|j                  ||      }	|j                  |       |j                  |       |j                  |	       |j                  |      }
|j                  |
      }|j                  |      }| j                  t        |j                        d
       | j                  t!        |j                  d   j"                        d       |j$                  d   }| j                  |j'                         |j                  d   |j                  d   g       | j                  |j)                         t+        |j                  d         t+        |j                  d         g       y )Nr   r	   r   r   spannerr   r   r   e2r   r      )r   r
   r   r   r*   copyr   r   Slurr   deepcopyr   r   r   r   r   r   r   spannersgetSpannedElementsgetSpannedElementIdsid)r    r
   r   r   r*   r-   r!   r"   n2spsCopyr#   r$   spPosts                 r%   
testBasicDzTest.testBasicD(   sR   " %#MMOYYt3Y/YYt3Y/\\"b!			 a ""5)  &TZZ!,TZZ]00148q!224tzz!}djjQRm6TU446DJJqM9JBtzzZ[}L]8^_r'   c                   ddl m} ddl m} |j                  d      }|j	                  |d      }|j                  |      }| j                  t        |j                         j                        t        |j                         j                               | j                  t        |j                  d   j                        t        |j                  d   j                               y )Nr   corpusr   zbwv66.6picklefmt)r   r;   r   parser   r   r   r   recurser   flattenparts)r    r;   r   r!   r#   sPosts         r%   
testBasicEzTest.testBasicEF   s    "%LL#""1("3!!$'QYY[../U]]_5J5J1KLQWWQZ--.EKKN4H4H0IJr'   c                   ddl m} ddl m} ddl m} ddl m} |j                         }|j                  |j                  d      d       t        g d      D ]#  \  }}|j                  |   j                  |       % |j                  |j                  |j                  d   |j                  d	                |j                  |d
      }|j                  |      }	| j                  t!        |	j                        d       y )Nr   r	   r   r   r)   G4   )zse-zri-zal-ziz-ingr<   r=   )r   r
   r   r   r*   ScorerepeatAppendr   	enumerater   addLyricr   r.   r   r   r   r   )
r    r
   r   r   r*   r!   isyldatarC   s
             r%   
testBasicFzTest.testBasicFT   s    " %#LLN	tyy* CDFAsGGAJ$ E	aggaj!''"+67
 ""1("3!!$'U[[)1-r'   c                P   ddl m} ddl m} ddl m} |j	                         }t        d      D ]S  }|j                         }t        d      D ]"  }|j                  |j                  d             $ |j                  |       U |j	                         }t        d      D ]S  }|j                         }t        d      D ]"  }|j                  |j                  d             $ |j                  |       U |j                         }|j                  d|       |j                  d|       |j                  |d	
      }	|j                  |	      }
| j                  t        |
j                        d       | j                  t        |
j                  d   j!                  |j                              d       | j                  t        |
j                  d   j!                  |j                              d       | j                  t        |
j#                         j$                        d       y )Nr   r	   r   r         C4rF   r<   r=   r   r,      )r   r
   r   r   PartrangeMeasurer   r   rJ   insertr   r   r   r   rB   getElementsByClassr@   r   )r    r
   r   r   p1mrN   p2r!   r#   rC   s              r%   
testBasicJzTest.testBasicJh   s   " %[[]qA A1X4) IIaL	  [[]qA A1X4) IIaL	  LLN	B	B ""1("3!!$'U[[)1-U[[^>>v~~NOQRSU[[^>>v~~NOQRSU]]_223R8r'   c                   ddl m} ddl m} ddl m} |j	                         }|j                  |j                  d      d       |j                  d       |j	                         }|j                  |j                  d	      d       |j                  d       |j                         }|j                  d|       |j                  d|       |j                  |d
      }|j                  |      }| j                  t        |j                        d       | j                  t        |j                  d   j                  |j                               d       | j                  t        |j                  d   j                  |j                               d       | j                  t        |j#                         j$                        d       y )Nr   r	   r   r   rU      T)inPlacerF   r<   r=   r   rS   r,   rV   )r   r
   r   r   rW   rK   r   makeMeasuresrJ   rZ   r   r   r   r   rB   r[   rY   r@   r   )	r    r
   r   r   r\   r^   r!   r#   rC   s	            r%   
testBasicIzTest.testBasicI   sI   " %[[]
		$,
%[[]
		$,
%LLN	B	B ""1("3!!$'U[[)1-U[[^>>v~~NOQRSU[[^>>v~~NOQRSU]]_223R8r'   c                p   ddl m} ddl m} ddl m} ddl m} |j                  d      }|j                  d      }|j                  d      }|j                  ||g      }|j                         }	|	j                  d|       |	j                  d|       |j                  |	d	
      }
|j                  |
      }y)zl
        test to see if spanners serialize properly if they
        contain notes not in the pickle
        r   r	   r)   r   r   D4E4F4r<   r=   N)r   r
   r*   r   r   r   r.   rW   rZ   r   r   )r    r
   r*   r   r   r"   r4   n3slur1r!   rP   	unused_s2s               r%   *testSpannerSerializationOfNotesNotInPicklez/Test.testSpannerSerializationOfNotesNotInPickle   s    
 	##% YYt_YYt_YYt_b"X&KKM	B	E""1("3%%d+	r'   c                    ddl m} ddl m} |j                  d      }t	        j
                  |d      }|j                         }|j                  |      }y )Nr   r:   r   zcorelli/opus3no1/1graveT)fastButUnsafe)r   r;   r   r?   r   StreamFreezerwriteStrr   )r    r;   r   r!   sfrP   rk   s          r%   testBigCorpuszTest.testBigCorpus   sH    "% LL23%%at<{{} %%d+	r'   N)__name__
__module____qualname__r&   r8   rD   rQ   r_   rd   rl   rr    r'   r%   r   r      s,    9`<
K.(9>9.,*,r'   r   __main__)
__future__r   unittestr   r   r   EnvironmentenvironLocalTestCaser   rs   mainTestrv   r'   r%   <module>r~      s]    #    &{&&'?@j,8 j,` zGT r'   