+
    i؉                        ^ RI Ht ^ RIHtHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHtHt ^ RIHt ^ RIHt ^ R	IHtHtHt ^ R
IHtHtHtHtHtHtHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t*H+t+H,t,H-t-H.t.H/t/H0t0H1t1H2t2H3t3H4t4H5t5H6t6H7t7H8t8H9t9H:t:H;t;H<t<H=t=H>t>H?t?H@t@HAtAHBtBHCtCHDtDHEtEHFtFHGtGHHtHHItIHJtJHKtK ^ RILHMtMHNtN ^ RIOHPtP ^ RIQHRtRHStS ]! R4      w  tTtUtVtWR tXR tYR tZR t[R t\R t]R t^R t_R t`R taR tbR tcR tdR teR tfR tgR thR  tiR! tjR" tkR# tlR$ tmR% tnR& toR' tpR( tqR) trR* tsR+ ttR, tuR- tvR. twR/ txR0 tyR1 tzR2 t{R3 t|R4 t}R5 t~R6 tR7 tR8 tR9 tR: tR; tR< tR= tR># )?    )dedent)isliceproduct)Basic)Integerordered)Dummysymbols)	factorial)Matrix)RGS_enum
RGS_unrankPermutation)5
_partition_set_partitionsbinary_partitions	braceletscapturecartescommon_prefixcommon_suffixconnected_components
dict_mergefilter_symbolsflattengenerate_bellgenerate_derangementsgenerate_involutionsgenerate_oriented_forestgrouphas_dupsibiniproductkbinsminlexmultisetmultiset_combinationsmultiset_partitionsmultiset_permutations	necklacesnumbered_symbols
partitionspermutations	postfixesprefixesreshaperotate_leftrotate_rightrunssiftstrongly_connected_componentssubsetstaketopological_sort	unflattenuniq
variationsordered_partitions	rotationsis_palindromiciterableNotIterablemultiset_derangementssigned_permutationssequence_partitionssequence_partitions_empty)factoring_visitormultiset_partitions_taocp)S)raiseswarns_deprecated_sympyzw,x,y,zc                  |   ^ RI Hp Hp \        4       ;_uu_ 4        \	        V! \
        \        .4      4      \        \
        .8X  g   Q h RRR4       \        4       ;_uu_ 4        \        \
        \        .V R7      \        \
        .8X  g   Q h RRR4       R#   + '       g   i     LV; i  + '       g   i     R# ; i)r   default_sort_keyr	   Nkey)sympy.utilities.iterablesrM   r	   rJ   listyxsortedrL   s     b/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/utilities/tests/test_iterables.pytest_deprecated_iterablesrV   !   st    C		!	!GQFO$A... 
"		!	!q!f"231v=== 
"	! 
"	!	!	!	!s   -B#)B*B'	*B;	c                     \        R 4      '       g   Q h\        R4      '       g   Q h\        R4      '       g   Q h\        R4      '       g   Q h\        R4      '       d   Q h\        R4      '       d   Q h\        R^4      '       g   Q h\        R^4      '       d   Q h\        R^R	4      '       g   Q h\        R^^4      '       g   Q h\        R^4      '       g   Q h\        R^4      '       d   Q h\        R^^4      '       g   Q hR# )
 rS   xxxyxxyxyzxxxyzzyxxxyzyxN)r?        rU   test_is_palindromicrb   )   s    "#$%    d####f%%%%)Q''''i++++)Q++++)Q****(A&&&&h****(Au----ra   c                    a \        R4      ^^.8X  g   Q h\        \        \        334      \        \        .8X  g   Q hRR	.R
..o\        S^ R7      S8X  g   Q h\        S^R7      . RO8X  g   Q h\        S^R7      . RO8X  g   Q h\        S^R7      . RO8X  g   Q h\        \        V3R l4        ! R R\        4      p \        V ! \        \
        4      \        .4      V ! \        \
        4      \        .8X  g   Q h\        V ! \        \
        4      \        .V R7      \        \
        \        .8X  g   Q h\        0 Rm4      \        0 Rm4      8X  g   Q hR# )   levelsc                     < \        S RR7      # )rd   re   r_   )r   )lss   rU   <lambda>test_flatten.<locals>.<lambda>D   s    wr"5ra   c                       ] tR t^FtRtR# )test_flatten.<locals>.MyOpr`   N__name__
__module____qualname____firstlineno____static_attributes__r`   ra   rU   MyOprl   F       ra   rs   clsN)rd   rd   r_   rd      r   r   )rx   rz   r|   )ry   r_   rd   r{   r   r   >   rd   r{      )r   rS   rI   
ValueErrorr   rR   zrQ   )rs   rh   s    @rU   test_flattenr   9   s   9!Q'''At9!Q'''V
vh	'B2a B&&&2a $>>>>2a $88882a $8888
:56u  DAJ?#Q
A666DAJ?-!Q::::$z"2222ra   c            	      $   \        \        4       4      R.8X  g   Q h\        \        . 4      4      . 8X  g   Q h\        \        . RO4      4      . RO8X  g   Q h\        \        ^^.. RO4      4      . R	O8X  g   Q h\        \        ^ ^.^ ^.^ ^.4      4      . R
O8X  g   Q h\        \        \        P
                  4      4      RJ g   Q h\        \        \        P
                  \        P
                  4      4      RJ g   Q hR\        \        P
                  4      9   g   Q hR\        \        P
                  \        P
                  4      9   g   Q hR\        \        P
                  \        P
                  \        P
                  4      9   g   Q h\        \        \        \        P
                  \        P
                  \        P
                  4      R4      4      p V  FN  w  rp\        V\        4      '       g   Q h\        V\        4      '       g   Q h\        V\        4      '       d   KN  Q h	  \        \        \        R^4      .^,          !  4       FA  pV\        \        P
                  \        P
                  \        P
                  4      9   d   KA  Q h	  R# )rd   Ti  Nr`   rd   r{      r   rw   r{   r   r         rd   r   )rd   r   )rd   r   r{   r   )r{   r   )r{   r   r   r   r   r   r   rd   )r   rd   r   r   rd   rd   )rd   r   r   rd   r   rd   rd   rd   r   rd   rd   rd   )r   r   ry   )rQ   r$   rT   r@   rH   Integerssetr   
isinstancer   r   range)triplesn1n2n3ts        rU   test_iproductr   O   s   
t######!"&6666(Aq69-. 3- - - -(Aa5!A!u-. 3I I I IHQZZ()T111HQZZ45===8AJJ''''Xajj!**5555QZZDDDD6(1::qzz1::FMNG
"g&&&&"g&&&&"g&&&&  E"aL>!+-.HQZZQZZ@@@@ /ra   c                  2   \        . 4      . 8X  g   Q h\        . R R7      . 8X  g   Q h\        ^.4      ^..8X  g   Q h\        ^.R R7      R.8X  g   Q h\        ^^.4      ^^..8X  g   Q h\        ^^.R R7      R.8X  g   Q h\        . RO4      . RO.8X  g   Q h\        . ROR R7      R.8X  g   Q h\        . RO4      ^.^.^..8X  g   Q h\        . ROR R7      . RO8X  g   Q h\        . R	O4      ^^.. R
O^.^^..8X  g   Q h\        . R	OR R7      . RO8X  g   Q hR# )F)multipleNrd   rd   rz   r   r   rd   r{   rd   )r   r{   rd   r   )rd   rd   r{   r{   r{   rd   r   r   r{   r{   r{   )rz   r   r   r   r{   )r!   r`   ra   rU   
test_groupr   e   s6   9??e$***!:1#!u%&111!Q=aVH$$$!Q%(VH444	{***U+x777aS1#...U+/GGGG)*1vy1#1v.NNNN)E: ?) ) ) )ra   c            
         \        \        . RO^ 4      4      R.8X  g   Q h\        \        . RO^4      4      . RO8X  g   Q h\        \        . RO^4      4      . R	O8X  g   Q h\        \        . RO^4      4      R.8X  g   Q h\        \        ^4      4      p \        \        V ^ RR7      4      R.8X  g   Q h\        \        V ^RR7      4      . R
O8X  g   Q h\        \        V ^RR7      4      . RO8X  g   Q h\        \        V ^RR7      4      . RO8X  g   Q h\        \        \        V ^RR7      4      4      ^#8X  g   Q h\        \        V R,          ^RR7      4      . 8X  g   Q h\        \        V R,          ^RR7      4      . RO8X  g   Q h\        \        ^^.RR7      4      . RO8X  g   Q h\        \        ^^.RR7      4      . RO8X  g   Q h\        \        . RO^4      4      . R	O8X  g   Q h\        \        . RO^RR7      4      . RO8X  g   Q hR# )rd   T
repetitionNr{   NFNr   r`   r   )rz   r   r   r   rw   r   r   )
r|   r   rd   r   r{   r   r   r   rz   r   r{   r{   r   r   r   )r   r   )r   r   r{   )r   r   r   r   r   rd   r{   r   rd   r   )r   r{   r{   r   r{   r   )r   r   r   r   rd   rd   r{   rd   rd   r   rd   r{   r{   r   )rd   r   r   r   )r{   r{   r   )r{   r   r   )r   r   r   )r   r   r   r   )r`   rw   r   r   rz   r   )r`   rw   r   rz   )r   rz   r   r   r   r   )rQ   r7   r   lenls    rU   test_subsetsr   z   s   	1%&2$...	1%&*<<<<	1%&*BBBB	1%&9+555U1XA1./B47771./3KKKK1./ 4< < < < 1./ 	4J 	J 	J 	J tGAqT234:::"qU34:::"qT23 8C C C C A40101 1 1A512 ! ! !	1%& ! ! !	16789 9 9ra   c            
         \        \        ^4      4      p \        \        V ^ RR7      4      R.8X  g   Q h\        \        V ^RR7      4      . RO8X  g   Q h\        \        V ^RR7      4      . R	O8X  g   Q h\        \        V ^RR7      4      . R
O8X  g   Q h\        \        V ^ RR7      4      R.8X  g   Q h\        \        V ^RR7      4      . RO8X  g   Q h\        \        V ^RR7      4      . RO8X  g   Q h\        \        \        V ^RR7      4      4      ^@8X  g   Q h\        \        \        V ^RR7      4      4      R8X  g   Q h\        \        V R,          ^RR7      4      . 8X  g   Q h\        \        V R,          ^RR7      4      . RO8X  g   Q hR# )r   Fr   T   r   Nr`   r   )r   r   r   rd   r   rz   r   r{   r   r   r   r   r   r   rd   r   )r   r   r   r{   rd   r   r   r   rd   )r   r   r{   rd   r   r{   )rd   r   r   rd   r{   r   r   )rd   r   r   )rd   r   r{   r{   r   rd   )r{   r   r   r{   rd   r   )r{   rd   r   )r{   r   r   )r{   r   rd   )r   r   rd   )r   r   r{   )r   rd   r   )r   rd   r{   )r   r{   r   r   r{   rd   )r|   r   r   r   r   r   rz   r   r   r   r   r   r   r   r   r   r   )rQ   r   r<   r   r   s    rU   test_variationsr      s   U1XA
1aE23t;;;
1aE237OOOO
1aE23  8X  X  X  X
1aE23  8@  @  @  @
1aD12rd:::
1aD126NNNN
1aD12 7? ? ? ? tJq!5672===tJq!5673>>>
1R5!672===
1R5!56 ;   ra   c            	      R   \        \        ^^.. RO4      4      . RO8X  g   Q h\        \        4       4      R.8X  g   Q h\        \        R4      4      R.8X  g   Q h\        \        R^R7      4      R.8X  g   Q h\        \        \        \        ^4      4      4      4      R	R
.8X  g   Q hR# )rd   a)repeatNr   r   r`   )r   )r   r   r   rw   )rQ   r   r   r`   ra   rU   test_cartesr      s    1vy)*89 9 9>bT!!!s(((s1%&:,666tE!H~&'D$<777ra   c                      \        4       p \        V \        R 4      4      p\        V^4      \	        \        R4      4      8X  g   Q hR# )zx0 x2 x3zx1 x4 x5N)r,   r   r   r8   rQ   )sfiltereds     rU   test_filter_symbolsr      s:    Aa!45H!WZ%8 9999ra   c            	          \        \        R 7      p \        \        V 4      \        4      '       g   Q h\        \        R^\	        R4      .R7      4      \	        R4      8X  g   Q hR# )ru   CC1)startexcludeC2N)r,   r
   r   nextr   )r   s    rU   test_numbered_symbolsr      sQ    U#Ad1gu%%%% AGH  ra   c                     \        \        \        ^4      4      R 4      ^^^.^ . RO/8X  g   Q h\        \        \        .R 4      R\        .R\        ./8X  g   Q h\        \
        P                  .R 4      R^./8X  g   Q h\        . ROR RR7      ^^.^ ^.38X  g   Q h\        . ROR RR7      ^.. RO38X  g   Q h\        \        R	 4       R
# )r   c                     V ^,          # r   r`   _s   &rU   ri   test_sift.<locals>.<lambda>   s    !a%ra   c                 ,    V P                  \        4      # NhasrS   r   s   &rU   ri   r      s    !%%(ra   FTc                 ,    V P                  \        4      # r   r   r   s   &rU   ri   r      s    1558ra   c                     V ^,          # r   r`   rS   s   &rU   ri   r      s    Ara   binaryc                     V ^,          ^8H  # r   r`   r   s   &rU   ri   r      s    A
ra   c                  $    \        . ROR RR7      # )r   c                     V ^,          # r   r`   r   s   &rU   ri   -test_sift.<locals>.<lambda>.<locals>.<lambda>   s    QUra   Tr   r   rd   r{   r   )r5   r`   ra   rU   ri   r      s    \?48ra   N)r   r{   r   r   r   )	r5   rQ   r   rS   rR   rH   OnerI   r~   r`   ra   rU   	test_siftr      s    U1X0QA94MMMMA*+sD1#/FFFF+,<<<od;	
AA@   24@	
YE   
: 9 :ra   c                      \        4       p \        V ^4      \        \        R4      4      8X  g   Q h\        V ^4      \        \        R4      4      8X  g   Q h\        . RO^4      . RO8X  g   Q hR# )r   zx0:5zx5:10Nrd   r{   r   r   r   )r,   r8   rQ   r   )Xs    rU   	test_taker      sZ    A1:gfo....1:gg.////#666ra   c                     \        / ^\        \        \        /4      ^\        \        \        /8X  g   Q h\        ^\        \        \        // 4      ^\        \        \        /8X  g   Q h\        ^\        /^\        \        \        /4      ^\        ^\        \        \        /8X  g   Q h\        ^\        \        \        /^\        /4      ^\        ^\        \        \        /8X  g   Q h\        ^\        ^\        /^\        \        \        /4      ^\        ^\        \        \        /8X  g   Q h\        ^\        \        \        /^\        ^\        /4      ^\        ^\        \        \        /8X  g   Q hR# rd   N)r   rS   rR   r   r`   ra   rU   test_dict_merger      s   b1aA,'Aq!Q<777q!QlB'Aq!Q<777q!fq!Ql+1aAq/AAAAq!QlQF+1aAq/AAAAq!QlQ1aL1aAq!Q5GGGGq!QlQ1aL1aAq!Q5GGGGra   c                     \        \        . 4      4      . 8X  g   Q h\        \        ^.4      4      ^..8X  g   Q h\        \        ^^.4      4      ^.^^..8X  g   Q h\        \        . RO4      4      ^.^^.. RO. RO. RO.8X  g   Q hR# )rd   Nr   r   rd   r{   r   r   )rQ   r0   r`   ra   rU   test_prefixesr      s    ###!A3%'''!Q !qcAq6]222)*
q!fi?@ @ @ra   c                     \        \        . 4      4      . 8X  g   Q h\        \        ^.4      4      ^..8X  g   Q h\        \        ^^.4      4      ^.^^..8X  g   Q h\        \        . RO4      4      ^.^^.. RO. RO. RO.8X  g   Q hR# )rd   Nr   r   )r{   r   r   r   )rQ   r/   r`   ra   rU   test_postfixesr      s    	""$$$	1#QC5(((	1a&!"sQFm333	/*+
q!fi?@ @ @ra   c                     a a . ROo. ROo \        SS 34      . RO8X  g   Q h\        SS 3R R7      . RO8X  g   Q h\        \        V V3R l4       R# )	r{   c                     V ) # r   r`   )vs   &rU   ri   'test_topological_sort.<locals>.<lambda>	  s    1"ra   rN   c                  .   < \        SS R.,           34      # )
   )r      )r9   EVs   rU   ri   r     s    /A	M0BCra   N)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{   )r9   rI   r~   r  s   @@rU   test_topological_sortr    sV    "A	$A QF#'AAAAQF5"# # # :CDra   c                  (   \        . . 34      . 8X  g   Q h\        . RO. 34      ^.^.^..8X  g   Q h. ROp . ROp\        W34      . RO.8X  g   Q h. ROp . ROp\        W34      ^.^^.^..8X  g   Q h. ROp . ROp\        W34      ^^.^^..8X  g   Q hR# )rd   Nr   rz   r   r   r   r   r   rz   r   r   r   r   )rz   r   r  )r   r   )r6   r  r  s     rU   "test_strongly_connected_componentsr    s    ("b2b888()R9qcA3_LLLA0A(!0YK???A(A(!0aS1a&1#4FFFFA(A(!0aVaV4DDDDra   c                      \        . . 34      . 8X  g   Q h\        . RO. 34      ^.^.^..8X  g   Q h. ROp . ROp\        W34      . RO.8X  g   Q h. ROp . ROp\        W34      . RO.8X  g   Q h. ROp RR.p\        W34      ^^.^^..8X  g   Q hR# )rd   Nr   rz   r	  r   r  r
  )r   r  s     rU   test_connected_componentsr     s    R)R///B0aS1#sOCCCA0A'I;666A(A'L>999A	A'QFQF+;;;;ra   c                  "   . ROp \        V ^4      . RO8X  g   Q h\        V ^4      . RO8X  g   Q h. p \        V ^4      pV. 8X  g   Q hVP                  ^4       V . 8X  g   Q h\        V ^4      pV. 8X  g   Q hVP                  ^4       V . 8X  g   Q hR# )r   Nr   rd   r{   r   r   )r{   r   r   r   rd   )r   r   rd   r{   r   )r2   r3   append)ABs     rU   test_rotater  1  s    Aq!///1000
AQA7N7HHQK7N7AqA7N7HHQK7N7ra   c            
      	   . ROp \        \        V ^4      4      ^ .^.^.^.^...8X  g   Q h\        \        \        V ^4      4      4      ^
8X  g   Q h\        \        \        V ^4      4      4      ^8X  g   Q h\        \        . R	O^4      4      . R
O^... RO^^... RO^... RO^^..^^.. RO..8X  g   Q h\        \        . RO^4      4      . RO^..^^.^^... RO^..^^.^^...8X  g   Q h\        \        . RO^4      4      . RO^... RO^..^^.^^... RO^..^^.^^..^^.^^..^.. RO..8X  g   Q h\        \        . RO^4      4      ^^.^..^.^^...8X  g   Q h\        \        ^4      4      . RO.^ ^.^..^ ^.^..^ .^^..^ .^.^...8X  g   Q h\        \        ^^4      4      ^ ^.^..^ ^.^..^ .^^...8X  g   Q h\        \        ^.^,          ^4      4      ^.^^...8X  g   Q h\        \        ^.^,          4      4      . RO.^.^^..^.^.^...8X  g   Q h. ROp\        \        V4      4      \        \        \        V4      4      4      8X  g   Q h\        \        V^4      4      . 8X  g   Q h\        \        V^4      4      . RO..8X  g   Q h\        \        V^.,           ^4      4      . 8X  g   Q h\        \        V^.,           ^4      4      . RO..8X  g   Q h\        \        ^^4      4      . 8X  g   Q h\        \        ^^4      4      ^ ^...8X  g   Q h\        \        R4      4      R...8X  g   Q h\        \        R^4      4      . 8X  g   Q h\        \        R4      4      RR..R.R...8X  g   Q h\        \        R^4      4      RR...8X  g   Q h\        \        R^4      4      R..8X  g   Q h\        \        ^^.^4      4      ^^...8X  g   Q h. RNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0NR1NR2NR3NR4NR5NR6NR7NR8NR9Np\        R4       Uu. uF/  p\        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      NK1  	  upV8X  g   Q h^.^^.^^.^^.. R:O. R;O. R<O.p\        ^^.4       Uu. uF  p\        V^^.4      NK  	  upV8X  g   Q hR# u upi u upi )=r   r   abbaaasympyc              3   D   "   T F  pR P                  V4      x  K  	  R# 5irX   Njoin).0parts   & rU   	<genexpr>+test_multiset_partitions.<locals>.<genexpr>{  s     .AD"''$--A    Nr  )rd   rd   rd   r{   r{   )rd   rd   rd   r{   r   )rd   rd   r{   r{   r   r   r   r   )rd   r{   r   )rd   r   r   r{   r   r   r   r   )mpsyy)mpsyrR   )mpsyy)r'  rR   rR   )mpyyr   )mpysy)r*  r   rR   )mpsyy)r,  r+  rR   )r,  r   r(  )r,  r   rR   rR   )msyyp)msypy)r0  r/  rR   )mspyy)r2  r1  rR   )r2  r/  r(  )r2  r/  rR   rR   )myyps)r4  r/  r   )mypsy)r6  r5  rR   )r6  r1  r   )r6  r/  r+  )r6  r/  r   rR   )mpsyy)r8  r7  rR   )r8  r5  r(  )r8  r5  rR   rR   )r8  r3  r   )r8  r1  r+  )r8  r1  r   rR   )r8  r/  r-  )r8  r/  r+  rR   )r8  r/  r   r(  )r8  r/  r   rR   rR   )r   r{   r   )   r{   r{   )r{   r{   r{   r   )rQ   r)   r   rT   tuplerG   rF   )r  r   ansr/  
factoringss        rU   test_multiset_partitionsr>  A  s   A#Aq)*aS1#sQC/H.IIIIt'1-./2555t'1-./2555#OQ78	si!Q0<!2E	QFq!fi0=2 2 2 2 #L!45	QCAq6Aq6*Y,<
Q!Q:    #L!45	QC9qc*aVaV,<	QCAq6Aq6*aVaV,<
i:   
 #Iq12
Q!aV}7& & & & #A&'	q!fqc]aVaSMQC!Q=
qcA3,    #Aq)*
Q!A}sQFm/5 5 5 5#QC!GQ/0qcAq6]OCCC#QC!G,-	qcAq6]aS1#sO25 5 5 5A#A&' +,- - -#Aq)*b000#Aq)*	{m;;;#AGQ/0B666#AGQ/0l^4DDDD#Aq)*b000#Aq)*Axj888#C()ugY666#C+,222#D)*c
|secU^.LLLL#D!,-C:,???#E1-.E7);;;#QFA./aVH:===&: &} &m &5F &&'&):&<I&&/&1F& & (& *;& =J& 	& 0	& 2G	&
 &
 ,&
 .;&
 =N& & 0& 2G& & ,& .?& !& #4& 6G& !& #4& !& #8& %&C -W575A E.A.EE.A..57:=> > >$AQ!Q\+J /1v686 a!A'68;EF F F	78s   9S 	%S Sc                     . R	Op \        \        R^4      4       Uu. uF  pRP                  V4      NK  	  upV 8X  g   Q h\        R4      p\        \        V^4      4       Uu. uF  pRP                  V4      NK  	  upV 8X  g   Q h\        V^4       Uu. uF  pRP                  V4      NK  	  up. 8X  g   Q h\        \        ^.^^..^4      4      ^.^^...8X  g   Q h\	        \        \        R^4      4      4      ^ 8X  g   Q h\	        \        \        R^ 4      4      4      ^8X  g   Q h\        \        R^4      4      R.R.R..8X  g   Q h\        \        R 4       R# u upi u upi u upi )
iiimississippirX   r   abcr  cc                  4    \        \        ^ ^^R/^4      4      # r   r_   )rQ   r(   r`   ra   rU   ri   ,test_multiset_combinations.<locals>.<lambda>  s    t$91aB-$KLra   N)r@  iimiipiisimpimsippipsissmppr'  mssppspsssss)rQ   r(   r  r'   r   rI   r~   )r<  iMs      rU   test_multiset_combinationsrV    s{   <C &}a89;9 BGGAJ9;>AB B BA&q!,-/- BGGAJ-/256 6 6 5a <= <1BGGAJ <=CCC%sQFmQ78qcAq6]OKKKt)#q123q888t)#q123q888%eQ/0cUSEC54IIII
:LM;/=s   E"E#E(c                    a . R	Op \        R4       Uu. uF  pRP                  V4      NK  	  upV 8X  g   Q h\        \        R4      4       Uu. uF  pRP                  V4      NK  	  upV 8X  g   Q h\        \        . R
O^4      4      ^ ^ ..8X  g   Q h\        \        . RO^4      4      ^ ^.^ ^.^^ .^^.^^ .^^..8X  g   Q h\	        \        \        R^ 4      4      4      ^8X  g   Q h\	        \        \        R^4      4      4      ^ 8X  g   Q h. / R3 F  p\        \        V4      4      . .8X  d   K  Q h	  \        \        X^ 4      4      . .8X  g   Q h\        \        V^4      4      . 8X  g   Q h\        \        VR4      4      . 8X  g   Q hR o\        V3R l4      \        R4      8X  g   Q h\        \        R 4       R# u upi u upi )abbybabyrX   r   c                      \        ^^4       F.  p \        V 4       \        . ROV 4       F  p\        V4       K  	  K0  	  R# )rd   N)r   r   rd   r   rd   )r   printr*   )rT  r/  s     rU   test(test_multiset_permutations.<locals>.test  s1    q!A!H*?A>a ? ra   c                     < S ! 4       # r   r`   )r\  s   rU   ri   ,test_multiset_permutations.<locals>.<lambda>  s    46ra   a          1
        [0]
        [1]
        2
        [0, 0]
        [0, 1]
        [1, 0]
        [1, 1]
        3
        [0, 0, 0]
        [0, 0, 1]
        [0, 1, 0]
        [0, 1, 1]
        [1, 0, 0]
        [1, 0, 1]
        [1, 1, 0]
        4
        [0, 0, 0, 1]
        [0, 0, 1, 0]
        [0, 0, 1, 1]
        [0, 1, 0, 0]
        [0, 1, 0, 1]
        [0, 1, 1, 0]
        [1, 0, 0, 0]
        [1, 0, 0, 1]
        [1, 0, 1, 0]
        [1, 1, 0, 0]
        5
        [0, 0, 0, 1, 1]
        [0, 0, 1, 0, 1]
        [0, 0, 1, 1, 0]
        [0, 1, 0, 0, 1]
        [0, 1, 0, 1, 0]
        [0, 1, 1, 0, 0]
        [1, 0, 0, 0, 1]
        [1, 0, 0, 1, 0]
        [1, 0, 1, 0, 0]
        [1, 1, 0, 0, 0]
        6
c                  2    \        \        ^ ^^R/4      4      # rE  )rQ   r*   r`   ra   rU   ri   r_    s    t$91aB-$HIra   N)rX  abybaybbrY  baybbbaybbyabyabbybayabbybabybbar   r   r_   )	r*   r  r'   rQ   r   r   r   rI   r~   )r<  rT  nulr\  s      @rU   test_multiset_permutationsrl    s   +C 5f => =1BGGAJ =>#EEE 5hv6F GH G1BGGAJ GHCOOO%i34!Q@@@%i34	
AAAAAA98 8 8 8t)#q123q888t)#q123q888B|)#./B4777 %c1-.2$666%c1-."444%c2./2555
 >"f '. '' ' ' 'P :IJw ?Hs   F>Gc            
      b   / .^ / 3..p \        ^4       F  p\        \        ^ VR7      4      W,          8X  g   Q h\        \        ^^ VR7      4      W,          8X  g   Q h\        \        ^^^VR7      4      W,          8X  g   Q h\        \        ^^RVR7      4      W,          8w  g   Q h\        \        ^R^VR7      4      W,          8w  g   Q h\        \        ^^^ VR7      4      W,          8X  d   K  Q h	  \        \        ^^R7      4      ^^/^^^^/^^^^/^^/.8X  g   Q h\        \        ^^R7      4      ^^/^^^^^^/^^^^/^^/^^^^/^^^^/^^/.8X  g   Q h\        \        ^^^R7      4      ^^/^^^^^^/^^^^/^^^^/.u;8X  d   \        ^^^R7       Uu. uFa  p\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   K?  \	        VP                  4       4      ^8:  g   K_  VNKc  	  up8X  g   Q h Q h\        \        \        ^4      ^R7      4      ^^/^^^^/.8X  g   Q h\        \        ^^R7      4      ^^^^/^^/^^^^/^^/.u;8X  d^   \        ^4       Uu. uFA  p\        ;QJ d    R	 V 4       F  '       d   K   RM	  RM! R	 V 4       4      '       g   K?  VNKC  	  up8X  g   Q h Q h\        ^^4       FF  p^ p\        V4       F   w  r4V\        W4      8X  g   Q hV^,          pK"  	  V\        V4      8X  d   KF  Q h	  R# u upi u upi )
r   )sizeN)k)ro  r8  c              3   *   "   T F	  q^8*  x  K  	  R# 5i)r   Nr`   r  ro  s   & rU   r!  "test_partitions.<locals>.<genexpr>  s     1D!Qq&!   FT)r8  c              3   *   "   T F	  q^8*  x  K  	  R# 5i)r   Nr`   rq  s   & rU   r!  rr    s     ':1Qrs  )
r   rQ   r-   allsumvaluesrH   r   r   r   )r<  rT  nr8  qs        rU   test_partitionsrz    sn   41b'
C1XJqq)*cf444Jq!!,-777Jq!QQ/0CF:::Jq!T23sv===Jq$23sv===Jq!QQ/0CF:::  
1"#	
AAq!q!QlQF(4 4 4 4 
1"#	
AAq!Q"Q1aL1a&1aA,	
Aq!q!f(    
1Q'(	
AAq!Q"Q1aL1aA,-@ !a1*D!*acc1D!1Dccc1D!1D.D
Oa 	
*D!! ! ! ! !
 
1Q41%&	
AAq!+    
1"#	
Aq!q!fq!QlQF(4 <a=8< aCC':':CCC':':$:=8<< < < < < 1a[$Q'DAA))))FA ( HQK #D!8<s6   !L'1L'L'"L'L'<L,L, L,=L,c                      \        ^
4       U u. uF  q R,          NK  	  up ^^.. RO. RO. RO. RO. RO. RO. R	O. R
O. RO. RO. RO. RO. RO.8X  g   Q h\        \        ^4       Uu. uF  qR,          NK  	  up4      ^$8X  g   Q hR# u up i u upi )r   :NNNN)r  rd   rd   )r   r   r{   )r   r   rd   rd   )r   r{   r{   r{   )r   r{   r{   rd   rd   )r   r{   rd   rd   rd   rd   )r   rd   rd   rd   rd   rd   rd   )r{   r{   r{   r{   r{   )r{   r{   r{   r{   rd   rd   )r{   r{   r{   rd   rd   rd   rd   )r{   r{   rd   rd   rd   rd   rd   rd   )	r{   rd   rd   rd   rd   rd   rd   rd   rd   )
rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   )r   r   )rT  js     rU   test_binary_partitionsr}    s    +B/0/QaDD/0aVY<1?13K#%C	5E E E E /343!345;;; 1 5s   B%Bc            
         \        ^^4       U u. uF   p \        \        \        V 4      4      4      NK"  	  up \        ^^4       U u. uF  p \	        V 4      NK  	  up 8X  g   Q h\        \        ^4      4      . RO8X  g   Q h\        ^^4       FW  p\        \        V4      4      p\        V4      pV F/  pV\        VP                  4      8X  g   Q hVP                  4       pK1  	  KY  	  \        \        R 4       R# u up i u up i )rd   c                  *    \        \        ^ 4      4      # r   )rQ   r   r`   ra   rU   ri    test_bell_perm.<locals>.<lambda>  s    tM!$45ra   N)r   r   r   r   r   r   )r   r   r   r   r   rQ   r   r;  
array_formnext_trotterjohnsonrI   r~   )rT  rx  r/  r  bis        rU   test_bell_permr  	  s    05a<1CM!$%&<#AqkA+)	!kA+ + + +a ! &J J J J
 1a[a!!Bq||,,,,%%'A   :56 = A+s   &C9C>c            	          . ROp \        V 4       Fd  w  r\        \        V^,           4      4      p\        V4      V8X  g   Q h\        V Uu0 uF  p\	        V4      ^,          kK  	  up4      ^8X  d   Kd  Q h	  R# u upi )rd   N)rd   r{   r   r      L   )	enumeraterQ   r   r   r   )lengthsrx  NrT  r|  s        rU   test_involutionsr    so    #G'"%a!e,-1v{{q1q!KNA%%q12a777 # 2s   A:
c                     \        \        \        \        \        ^4      4      4      4      4      R8X  g   Q hRP	                  R \        R4       4       4      R8X  g   Q h\        \        . RO4      4      . RO. RO. RO. RO. RO. RO. RO. RO. RO.	8X  g   Q h\        \        . RO4      4      . RO. RO.8X  g   Q h\        \        R4      4      \        R4      .8X  g   Q h\
        p \        V ! R4      4      . 8X  g   Q hV ! R4       Uu. uF  pRP	                  V4      NK  	  upR.8X  g   Q hV ! R	4       Uu. uF  pRP	                  V4      NK  	  upR
R.8X  g   Q hV ! R4       Uu. uF  pRP	                  V4      NK  	  upR.8X  g   Q hV ! R4       Uu. uF  pRP	                  V4      NK  	  up. RO8X  g   Q hV ! R4       Uu. uF  pRP	                  V4      NK  	  up. R O8X  g   Q hV ! R4       Uu. uF  pRP	                  V4      NK  	  up. R!O8X  g   Q h\        \        ^.^.^.^..4      4      ^.^.^.^..^.^.^.^...8X  g   Q hR# u upi u upi u upi u upi u upi u upi )"r:  i	  rX   c              3   D   "   T F  pR P                  V4      x  K  	  R# 5ir  r  r  rT  s   & rU   r!  $test_derangements.<locals>.<genexpr>$  s     F'E!2771::'Er#  abcdebadecbaecdbcaedbcdeabceadbdaecbdeacbdecabeacdbedacbedcacabedcadebcaebdcdaebcdbeacdeabcdebaceabdcebadcedabcedbadabecdaebcdaecbdcaebdcbeadceabdcebadeabcdeacbdebacdebcaeabcdeadbceadcbecabdecbadecdabecdbaedabcedacbedbacedbcabar  abbrB  bcacabaabbbbaaaabbccccaabbcccbooksNr   )rd   r   r   r{   )rd   r{   r   r   )rd   r   r   r{   )r{   r   r   rd   )r{   r   r   rd   )r{   r   rd   r   )r   r   rd   r{   )r   r{   r   rd   )r   r{   rd   r   )r   rd   r{   r{   )r{   r{   r   rd   )r{   r{   rd   r   )ccccaabbccccababccccabbaccccbaabccccbabaccccbbaa)cccabbacccababcccaabbccacbbaccacbabccacabbcbccbaacbccabacbccaabbcccbaabcccababcccaab)kbsooksboosbkooskboooksbooskbookbsoobksooskoboksobosbokobsok)r   rQ   r   r   r  rB   )DrT  s     rU   test_derangementsr  "  s   t)$uQx.9:;sBBB77F'<W'EFF  
 %l34lL,lL,9N N N N %l34l9$ $ $ $%d+,d<<<A%>R !$(1BGGAJ(TF222 !%)1BGGAJ)eU^;;; !&	*	1BGGAJ	*vh666 !*.1BGGAJ. 3    !")-1BGGAJ- 2    !"'
+
1BGGAJ
+ 0# # # # %sQC!qc&:;<
qcA3sQC!qc2A4 4 4 4 ))*. . ,s$   I6I&II!I&5I+c                      R  p . p\        ^^4       F/  pVP                  W ! V^^ 4      V ! V^^4      V ! V^^4      34       K1  	  \        V4      \        . RO. RO. RO. RO. RO. RO. RO.4      8X  g   Q hR# )	c           	      >    \        \        \        WV4      4      4      # r   )r   rQ   r+   )rx  ro  fs   &&&rU   counttest_necklaces.<locals>.countD  s    4	!*+,,ra   N)rd   r{   r{   r   )r{   r   r   r:  )r   r   r   r   )r   r:  r:     )r   r  r  '   )r:        \   )r            )r   r  r   )r  r8  rT  s      rU   test_necklacesr  C  s    -
A1a[		5Aq>5Aq>5Aq>; 	<  !9     ra   c                  &   \        \        ^^4      4      p \        V 4      \        ^ ^ .^ ^.^ ^.^ ^.^^.^^.^^.^^.^^.^^..
4      8X  g   Q h\        \        ^^4      4      p \        V 4      \        . RO. RO. RO. RO. RO. RO.4      8X  g   Q hR# )r{   N)r   r   r   r   )r   r   r   rd   )r   r   rd   rd   )r   rd   r   rd   )r   rd   rd   rd   )rd   rd   rd   rd   )rQ   r   r   )bcs    rU   test_braceletsr  T  s    	i1o	B":	
A	
A	
A	
A	
A	
A	
A	
A	
A	
A!
     
i1o	B":!    ra   c                      \        \        ^4      4      . RO. RO. RO. RO. RO. RO. R	O. R
O. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO. RO.8X  g   Q h\        \        \        ^
4      4      4      R8X  g   Q hR# )r   i2  Nr  )r   rd   r{   r   r   )r   rd   r{   r   r{   )r   rd   r{   r   rd   )r   rd   r{   r   r   )r   rd   r{   r{   r{   )r   rd   r{   r{   rd   )r   rd   r{   r{   r   )r   rd   r{   rd   r{   )r   rd   r{   rd   rd   )r   rd   r{   rd   r   )r   rd   r{   r   rd   )r   rd   r{   r   r   )r   rd   rd   rd   rd   )r   rd   rd   rd   r   )r   rd   rd   r   rd   )r   rd   rd   r   r   )r   rd   r   rd   r   )r   rd   r   r   r   )r   r   r   r   r   )rQ   r    r   r`   ra   rU   test_generate_oriented_forestr  m  sq    (+,/?/?/?/?/1; ; ; ; t,R012d:::ra   c                  B   \        \        ^
4      4      p \        V 4      \        \        V R,          V R,          4      4      8X  g   Q h\        V ^4      \	        V R,          4      \	        V R,          4      .8X  g   Q h\        \        R 4       \        \        R 4       R# )r   :NNr{   :rd   Nr{   :Nr   N:r   NNc                  >    \        \        \        ^
4      4      ^4      # )r   r:   rQ   r   r`   ra   rU   ri    test_unflatten.<locals>.<lambda>{  s    yeBi!<ra   c                  >    \        \        \        ^
4      4      R4      # )r   ry   r  r`   ra   rU   ri   r  |  s    yeBi"=ra   N)rQ   r   r:   zipr;  rI   r~   )rs    rU   test_unflattenr  w  st    U2YAQ<4AcFAdG 45555Q?uQrU|U1R5\::::
:<=
:=>ra   c                     \        . ^.4      . 8X  g   Q h\        \        \        ^4      4      4      . RO8X  g   Q h\        \        \        ^4      4      \        \        ^4      4      4      . RO8X  g   Q h\        . RO. RO4      ^^.8X  g   Q h\        . RO. RO4      ^.8X  g   Q h\        . ^.4      . 8X  g   Q h\        \        \        ^4      4      4      . RO8X  g   Q h\        \        \        ^4      4      \        \        ^4      4      4      . RO8X  g   Q h\        \        \        ^4      4      \        \        ^4      4      4      . 8X  g   Q h\        . RO. RO4      ^^.8X  g   Q h\        . RO. RO4      ^.8X  g   Q hR# )rd   Nr   r   )rd   r{   r   )rd   r   r   )r  r{   r   )r  r   r   )r   rQ   r   r   r`   ra   rU   test_common_prefix_suffixr    s5   aS!R'''eAh(I555eAheAh8IEEEI.1a&888I.1#555aS!R'''eAh(I555eAheAh8IEEEeAheAh8B>>>I.1a&888I.1#555ra   c                      \        . RO4      R8X  g   Q h\        R4      R8X  g   Q h\        R	4      R
8X  g   Q h\        R	RR7      R8X  g   Q h\        R4      R8X  g   Q h\        R\        R7      R8X  g   Q hR# )rd   F)directedabaaabrN   Nr   r   r   r   )bbr  rC  r   )rC  r   r  r  )r&   r   r`   ra   rU   test_minlexr    sy    )	))))	))))	))))e,	999%=E!!!)s37NNNNra   c            	      <  a a \        \        \        \        3\        R R7      4      \        \        .\        \        .39   g   Q h\        \        \        \        3\        R R7      4      \        \        \        \        3\        R R7      4      8X  g   Q h\        \        \        \        34      4      \        \        .8X  g   Q h. RO. RO. R	O^.^..R R 3.w  oo \        \        SS R R R7      4      ^.^.. RO. RO. R	O.8X  g   Q h\        \        V V3R l4       R# )
F)defaultc                     \        V 4      # r   )r   r   s   &rU   ri   test_ordered.<locals>.<lambda>  s    CFra   c                     \        V 4      # r   )rv  r   s   &rU   ri   r    s    c!fra   r  warnc            	      4   < \        \        SS R RR7      4      # )FTr  )rQ   r	   keysseqs   rU   ri   r    s    T5t<=ra   Nr   r   r   )rQ   r	   rS   rR   hashrI   r~   r  s   @@rU   test_orderedr    s    Ae451a&1a&9IIIIAe45WaVT5123 3 3A QF***Y	A3<"$457ICT5u=>
qc9i34 4 4
: > ?ra   c                  \   \        . 4      . 8X  g   Q h\        ^.4      ^..8X  g   Q h\        ^^.4      ^.^..8X  g   Q h\        . RO4      ^.^^..8X  g   Q h\        . RO4      ^^.^..8X  g   Q h\        . RO4      ^.^.^..8X  g   Q h^ RIHp  \        . ROV 4      ^^.^..8X  g   Q hR# )rd   ltNr   r   )r{   rd   rd   )r4   operatorr  r  s    rU   	test_runsr    s    8r>>9!A<QC!:%%%	?sQFm+++	?1vsm+++	?sQC!o---	2Aq6A3-///ra   c                     \        \        ^^	4      4      p \        V ^.4      . RO. RO.8X  g   Q h\        V R4      RR.8X  g   Q h\        V R4      RR.8X  g   Q h\        V ^^.34      ^^^^.3^^^^.3.8X  g   Q h\        V R^.34      R	^^.3R
^^.3.8X  g   Q h\        V ^^.^34      ^^^.^3^^^.^3.8X  g   Q h\        \        V 4      ^.^R.34      ^.^R.3^.^R.338X  g   Q h\        \        V 4      ^.^R34      ^.^R3^.^R338X  g   Q h\        \        \        ^4      4      ^^.^0R.4      ^ ^. RO^^0R..8X  g   Q h\	        \
        R 4       \	        \
        R 4       R# )rd   c                       \        ^ ^.R.4      # rE  r1   r`   ra   rU   ri   test_reshape.<locals>.<lambda>  s    w1vt4ra   c                       \        ^ ^.^.4      # r   r  r`   ra   rU   ri   r    s    w1vs3ra   Nr   )r   r:  r   r  )r   r   r   rz   )r   r:  r  r  )rd   r   rd   r$  )r   )r  r  r   r}   )rQ   r   r1   r;  rI   r~   )r  s    rU   test_reshaper    s	   
uQ{
C3	|$% % %3	|$% % %3	|$% % %3QC!
QA!QA() ) )3s$
1a&	FQF+,- - -3QC$
aVQ!aVQ() ) )5:!a0136
	Q/123 3 35:Q~.#q&	QCF+,- - -4b	?QaS,$?@
Q	Aq6#6	789 9 9
:45
:34ra   c                    a  \        \        R  \        ^4       4       4      4      ^^/^^^^/^^/^^^^/^^/.8X  g   Q h\        \        R \        ^4       4       4      4      ^ ^.8X  g   Q h\        \        R4      4      R.8X  g   Q h\        \        R4      4      \        R4      8X  g   Q h\        \        ^.^^.^..4      4      ^.^^..8X  g   Q h\        \        \	        R ^.^^3 4       4      4      4      ^.^^3^^.^3^^^.3.8X  g   Q h\        \        ^^^^^.^.^.^.^..	4      4      ^^^^.^.^..8X  g   Q h^.o \        \        V 3R l4       ^..o \        \        V 3R l4       R# )	c              3   $   "   T F  qx  K  	  R # 5ir   r`   r  r/  s   & rU   r!  test_uniq.<locals>.<genexpr>  s     .1Q   c              3   2   "   T F  q^,          x  K  	  R# 5i)r{   Nr`   )r  rS   s   & rU   r!  r    s     -HqUUHs   r   ababcrB  c              3   $   "   T F  qx  K  	  R # 5ir   r`   r  s   & rU   r!  r    s     !9[![r  c                  b   < \        S4       U u. uF  p SP                  V 4      NK  	  up # u up i r   r;   removerT  r  s    rU   ri   test_uniq.<locals>.<lambda>  #    tAw!?w!!((1+w!?!?   ,c                  b   < \        S4       U u. uF  p SP                  V 4      NK  	  up # u up i r   r  r  s    rU   ri   r    r  r  N)rQ   r;   r-   r   r.   rI   RuntimeError)r  s   @rU   	test_uniqr    s   .
1../
Q!Q11v1a|aV<= = =-E!H--.1a&888S	?se###W$u+---qcAq6A3'()qcAq6]:::\!9qc1a[!99:;#q!q1#qkAq1#;/0 0 0aAq1#sQC!qc:;<	
Aq1#sQC ! ! !	
A
<?@
A
<?@ra   c            
        a a \        \        \        R ^^R7      4      4      ^8X  g   Q h\        \        \        R ^^R7      4      4      ^$8X  g   Q h\        \        \        R ^^
R7      4      4      ^
8X  g   Q h\        \        \        R ^^ R7      4      4      ^8X  g   Q h\        \        \        R ^RR7      4      4      ^8X  g   Q hR o \        V 3R l4      \	        R4      8X  g   Q hR o\        V3R l4      \	        R4      8X  g   Q hR# )	1123r   Nc                  v    R F2  p \        RV 4       \        . RO^V R7       F  p\        RV4       K  	  K4  	  R # )N	ordered =r      Nr   rd   r   r}   r   )r[  r%   
orderedvalr/  s     rU   test1test_kbins.<locals>.test1  s2    .J+z*9a<eQ = /ra   c                     < S ! 4       # r   r`   )r  s   rU   ri   test_kbins.<locals>.<lambda>      EGra   a#          ordered = None
            [[0], [0, 1]]
            [[0, 0], [1]]
        ordered = 0
            [[0, 0], [1]]
            [[0, 1], [0]]
        ordered = 1
            [[0], [0, 1]]
            [[0], [1, 0]]
            [[1], [0, 0]]
        ordered = 10
            [[0, 0], [1]]
            [[1], [0, 0]]
            [[0, 1], [0]]
            [[0], [0, 1]]
        ordered = 11
            [[0], [0, 1]]
            [[0, 0], [1]]
            [[0], [1, 0]]
            [[0, 1], [0]]
            [[1], [0, 0]]
            [[1, 0], [0]]
c                      R FB  p \        RV 4       \        \        \        ^4      4      ^V R7       F  p\        RV4       K  	  KD  	  R # )Nr  r   r  r  )r[  r%   rQ   r   r  s     rU   test2test_kbins.<locals>.test2  s;    .J+z*4a>1jAeQ B /ra   c                     < S ! 4       # r   r`   )r  s   rU   ri   r    r  ra   a[          ordered = None
            [[0], [1, 2]]
            [[0, 1], [2]]
        ordered = 0
            [[0, 1], [2]]
            [[0, 2], [1]]
            [[0], [1, 2]]
        ordered = 1
            [[0], [1, 2]]
            [[0], [2, 1]]
            [[1], [0, 2]]
            [[1], [2, 0]]
            [[2], [0, 1]]
            [[2], [1, 0]]
        ordered = 10
            [[0, 1], [2]]
            [[2], [0, 1]]
            [[0, 2], [1]]
            [[1], [0, 2]]
            [[0], [1, 2]]
            [[1, 2], [0]]
        ordered = 11
            [[0], [1, 2]]
            [[0, 1], [2]]
            [[0], [2, 1]]
            [[0, 2], [1]]
            [[1], [0, 2]]
            [[1, 0], [2]]
            [[1], [2, 0]]
            [[1, 2], [0]]
            [[2], [0, 1]]
            [[2, 0], [1]]
            [[2], [1, 0]]
            [[2, 1], [0]]
)r   rQ   r%   r   r   )r  r  s   @@rU   
test_kbinsr    s    tE&!Q/01R777tE&!R012b888tE&!R012b888tE&!Q/01Q666tE&!T234999 
 #$ 0 )       0 
 #$ "0 ")  "  "  " ra   c                      \        \        4       4      R J g   Q h\        \        \        ^4      4      4      R J g   Q h\        . RO4      RJ g   Q h\        ^.^..4      RJ g   Q h\        ^.^..4      R J g   Q hR# )FTNr   )r"   r   rQ   r   r`   ra   rU   test_has_dupsr  '  sz    CE?e###DqN#u,,,I$&&&aS1#J4'''aS1#J5(((ra   c                      \        R . RO4      RR.RR.R..8X  g   Q h\        R . RO^4      RR.RR.R..8X  g   Q h^. RO3p \        R .V O5!  RR.RR.R..8X  g   Q hR# )r  r  er   rC  dN)rd   r   rd   r{   r   )r   )outputs    rU   test__partitionr   /  s    g/	c
S#J4' ' ' 'g2	c
S#J7' ' ' '!Fg''S#Jc
SE+JJJJra   c                     ^ RI Hp  \        p\        V! ^ ^4      4      . .8X  g   Q h\        V! ^^ 4      4      . .8X  g   Q h\	        ^^4       Fp  pR.\        \	        ^V4      4      ,            FL  p\        R V! W#^4       4       4      \        R V! W#^ 4       4       4      u;8X  d   V ! W#4      8X  d   KH   Q h Q h	  Kr  	  R# )r   )nTNc              3   &   "   T F  p^x  K	  	  R# 5ir   r`   r  s   & rU   r!  *test_ordered_partitions.<locals>.<genexpr>@       *z!Az   c              3   &   "   T F  p^x  K	  	  R# 5ir   r`   r  s   & rU   r!  r$  A  r%  r&  )%sympy.functions.combinatorial.numbersr"  r=   rQ   r   rv  )r"  r  rT  r|  s       rU   test_ordered_partitionsr)  8  s    8A!Q=RD   !Q=RD   1a[$uQ{+++A*qqz***qqz**1 , ra   c                      \        \        R 4      4      RR.RR..8X  g   Q h\        \        \        ^4      4      4      . RO. RO. RO.8X  g   Q h\        \        \        ^4      RR7      4      . RO. RO. RO.8X  g   Q hR# )	r  r   r  )dirNr   r   r   r_   )rQ   r>   r   r`   ra   rU   test_rotationsr,  E  sn    	$ c3Z#s$<<<<	%(#$Iy(IIII	%(+,Iy0QQQQra   c                  j   \        ^4      ^^.8X  g   Q h\        ^^4      . R
O8X  g   Q h\        ^RR7      R8X  g   Q h\        ^^RR7      R8X  g   Q h\        \        ^R4      4      . RO8X  g   Q h\        \        ^RRR7      4      . RO8X  g   Q h\        \        R 4       \        \        R 4       R	# )r   T)str11011ru  rX   c                      \        R4      # )g      ?g      ࿩r#   r`   ra   rU   ri   test_ibin.<locals>.<lambda>R  s    tCyra   c                      \        ^^4      # r   r2  r`   ra   rU   ri   r3  S  s
    tAqzra   Nr   )r|   r   r   r   )000110r/  )r#   rQ   rI   r~   r`   ra   rU   	test_ibinr8  K  s    7q!f1:"""t$$$1$5(((Q#CCCCQ%&*BBBB
:()
:)*ra   c                     \        ^ 4      RJ g   Q h\        ^4      RJ g   Q h\        R4      RJ g   Q h ! R R\        4      p \        V ! 4       4      RJ g   Q h ! R R\        4      p\        V! 4       4      RJ g   Q h ! R R	4      p\        V! 4       4      RJ g   Q h ! R
 R4      p\        V! 4       4      RJ g   Q h ! R R4      p\        V! 4       4      RJ g   Q h ! R RV4      p\        V! 4       4      RJ g   Q hR# )r   FNc                       ] tR tRtRtR# )test_iterable.<locals>.Test1i[  r`   Nrm   r`   ra   rU   Test1r;  [  rt   ra   r<  c                       ] tR tRtRtRtR# )test_iterable.<locals>.Test2i`  Tr`   Nrn   ro   rp   rq   	_iterablerr   r`   ra   rU   Test2r>  `      	ra   rA  Tc                       ] tR tRtRtR# )test_iterable.<locals>.Test3ie  r`   Nrm   r`   ra   rU   Test3rD  e  rt   ra   rE  c                       ] tR tRtRtRtR# )test_iterable.<locals>.Test4ij  Tr`   Nr?  r`   ra   rU   Test4rG  j  rB  ra   rH  c                   &   a  ] tR tRt o R tRtV tR# )test_iterable.<locals>.Test5io  c              3     "   ^x  R# 5ir   r`   )selfs   &rU   __iter__%test_iterable.<locals>.Test5.__iter__p  s
     Gs   	r`   N)rn   ro   rp   rq   rM  rr   __classdictcell__)__classdict__s   @rU   Test5rJ  o  s     	 	ra   rQ  c                       ] tR tRtRtRtR# )test_iterable.<locals>.Test6iu  Fr`   Nr?  r`   ra   rU   Test6rS  u  s    	ra   rT  )r@   rA   )r<  rA  rE  rH  rQ  rT  s         rU   test_iterablerU  V  s   A;%A;%D>U"""  EG%%%  EG$$$  EG%%%  EG$$$  EG$$$  EG%%%ra   c                     \        \        ^.^4      4      ^...8X  g   Q h\        \        ^^.^4      4      ^^...8X  g   Q h\        \        ^^.^4      4      ^.^...8X  g   Q h\        \        . RO^4      4      . RO..8X  g   Q h\        \        . RO^4      4      ^.^^..^^.^...8X  g   Q h\        \        . RO^4      4      ^.^.^...8X  g   Q h\        \        . ^ 4      4      . 8X  g   Q h\        \        . ^4      4      . 8X  g   Q h\        \        ^^.^ 4      4      . 8X  g   Q h\        \        ^^.^4      4      . 8X  g   Q hR# rd   Nr   )rQ   rD   r`   ra   rU   test_sequence_partitionsrX  {  so   #QC+,1#777#QFA./aVH:===#QFA./aS1#J<???#Iq12	{mCCC#Iq12#1v!Q!&' ' '#Iq12aS1#6GGGG #B*+r111#B*+r111#QFA./2555#QFA./2555ra   c                     \        \        . ^4      4      . ..8X  g   Q h\        \        . ^4      4      . . ..8X  g   Q h\        \        . ^4      4      . . . ..8X  g   Q h\        \        ^.^4      4      ^...8X  g   Q h\        \        ^.^4      4      . ^..^.. ..8X  g   Q h\        \        ^.^4      4      . . ^... ^.. .^.. . ..8X  g   Q h\        \        ^^.^4      4      ^^...8X  g   Q h\        \        ^^.^4      4      . ^^..^.^..^^.. ..8X  g   Q h\        \        ^^.^4      4      . . ^^... ^.^... ^^.. .^.. ^..^.^.. .^^.. . ..8X  g   Q h\        \        . RO^4      4      . RO..8X  g   Q h\        \        . RO^4      4      . . RO.^.^^..^^.^... RO. ..8X  g   Q h\        \        . RO^4      4      . . . RO.. ^.^^... ^^.^... . RO. .^.. ^^..^.^.^..^.^^.. .^^.. ^..^^.^.. .. RO. . ..
8X  g   Q h\        \        . ^ 4      4      . 8X  g   Q h\        \        ^.^ 4      4      . 8X  g   Q h\        \        ^^.^ 4      4      . 8X  g   Q hR# rW  )rQ   rE   rD   r`   ra   rU   test_sequence_partitions_emptyrZ    sJ   )"a01rdV;;;)"a01r2hZ???)"a01r2rl^CCC)1#q12ug===)1#q12QCyA3)6LLLL)1#q12
b1#aS"R}56 6 6)1a&!45Aq6(CCC)1a&!45
q!faSzQFB<01 1 1)1a&!45	R!Q2sQC.21vr*:
b1#!qc2!QR(8:    ))Q78i[MIII))Q78
iA3A-1a&1#BHI I I))Q78	Rb1#1v.	aVaSB	2.
b1a&QC!qc?
q!fbQFB,
Q!bIr2.=    #B*+r111#QC+,222#QFA./2555ra   c                      . ROp \        \        R4      4      V 8X  g   Q h\        \        R4      4      V 8X  g   Q h\        \        R4      4      V 8X  g   Q hR# )r   Nr   r   r   )r   )r   r_   rd   )r   rd   r_   )r   r_   r_   r   )r_   r   rd   )rd   r   r_   )r_   r   r_   r   )r_   rd   r   )rd   r_   r   )r_   r_   r   )rQ   rC   )r<  s    rU   test_signed_permutationsr\    sV    4C #I./3666#I./3666#I./3666ra   N)textwrapr   	itertoolsr   r   sympy.core.basicr   sympy.core.numbersr   sympy.core.sortingr	   sympy.core.symbolr
   r   (sympy.functions.combinatorial.factorialsr   sympy.matrices.denser   sympy.combinatoricsr   r   r   rP   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   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   sympy.utilities.enumerativerF   rG   sympy.core.singletonrH   sympy.testing.pytestrI   rJ   wrS   rR   r   rV   rb   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r>  rV  rl  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r)  r,  r8  rU  rX  rZ  r\  r`   ra   rU   <module>rj     s    % " & & . > ' A A4 4 4 4 4 4 4 4 4 4 4 4 4 43 # ?Y
1a>. 3,A,)*%9P08:	:7H@@
EE"<" ?FDN >KB( V<7"84B"2;?6O?050A"K \)K
R+"&J6 6@7ra   