§
    PŠtjØ‰  ã                   óÄ  — d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZmZ d dlmZ d dlmZ d d	lmZmZmZ d d
lmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZK d dlLmMZMmNZN d dlOmPZP d dlQmRZRmSZS  ed¦  «        \  ZTZUZVZWd„ ZXd„ ZYd„ ZZd„ Z[d„ Z\d„ Z]d„ Z^d„ Z_d„ Z`d„ Zad„ Zbd„ Zcd„ Zdd„ Zed„ Zfd„ Zgd„ Zhd „ Zid!„ Zjd"„ Zkd#„ Zld$„ Zmd%„ Znd&„ Zod'„ Zpd(„ Zqd)„ Zrd*„ Zsd+„ Ztd,„ Zud-„ Zvd.„ Zwd/„ Zxd0„ Zyd1„ Zzd2„ Z{d3„ Z|d4„ Z}d5„ Z~d6„ Zd7„ Z€d8„ Z�d9„ Z‚d:„ Zƒd;„ Z„d<„ Z…d=„ Z†d>S )?é    )Ú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                  ó~  — ddl m} m} t          ¦   «         5  t	           |t
          t          g¦  «        ¦  «        t          t
          gk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          ¦   «         5  t          t
          t          g| ¬¦  «        t          t
          gk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr   ©Údefault_sort_keyr	   ©Úkey)Úsympy.utilities.iterablesrN   r	   rK   ÚlistÚyÚxÚsortedrM   s     úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/utilities/tests/test_iterables.pyÚtest_deprecated_iterablesrW   !   sA  € ØCÐCÐCÐCÐCÐCÐCÐCÝ	Ñ	!Ô	!ð /ð /Ý�G�G�Q¥˜F‘O”OÑ$Ô$­­A¨Ò.Ð.Ð.Ð.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /å	Ñ	!Ô	!ð >ð >Ý•q�!�fÐ"2Ð3Ñ3Ô3½½1°vÒ=Ð=Ð=Ð=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð >ð >s#   —7AÁAÁ"AÁ40B2Â2B6Â9B6c                  óÔ  — t          d¦  «        sJ ‚t          d¦  «        sJ ‚t          d¦  «        sJ ‚t          d¦  «        sJ ‚t          d¦  «        rJ ‚t          d¦  «        rJ ‚t          dd¦  «        sJ ‚t          dd	¦  «        rJ ‚t          dd	d
¦  «        sJ ‚t          dd	d¦  «        sJ ‚t          dd¦  «        sJ ‚t          dd	¦  «        rJ ‚t          dd	d¦  «        sJ ‚d S )NÚ rT   ÚxxÚxyxÚxyÚxyzxÚxxyzzyxé   é   éÿÿÿÿé   Úxxyzyxé   )r@   © ó    rV   Útest_is_palindromicrg   )   s   € Ý˜"ÑÔÐÐÐÝ˜#ÑÔÐÐÐÝ˜$ÑÔÐÐÐÝ˜%Ñ Ô Ð Ð Ð Ý˜dÑ#Ô#Ð#Ð#Ð#Ý˜fÑ%Ô%Ð%Ð%Ð%Ý˜) QÑ'Ô'Ð'Ð'Ð'Ý˜i¨Ñ+Ô+Ð+Ð+Ð+Ý˜) Q¨Ñ+Ô+Ð+Ð+Ð+Ý˜) Q¨Ñ*Ô*Ð*Ð*Ð*Ý˜( AÑ&Ô&Ð&Ð&Ð&Ý˜h¨Ñ*Ô*Ð*Ð*Ð*Ý˜( A uÑ-Ô-Ð-Ð-Ð-Ð-Ð-rf   c                  ó$  ‡— t          d¦  «        ddgk    sJ ‚t          t          t          ff¦  «        t          t          gk    sJ ‚ddgdggŠt          ‰d¬¦  «        ‰k    sJ ‚t          ‰d¬¦  «        g d¢k    sJ ‚t          ‰d	¬¦  «        g d
¢k    sJ ‚t          ‰d¬¦  «        g d
¢k    sJ ‚t          t          ˆfd„¦  «          G d„ dt          ¦  «        } t           | t          t
          ¦  «        t          g¦  «         | t          t
          ¦  «        t          gk    sJ ‚t           | t          t
          ¦  «        t          g| ¬¦  «        t          t
          t          gk    sJ ‚t          h d£¦  «        t          h d£¦  «        k    sJ ‚d S )N)r_   ©r_   r_   ©éþÿÿÿra   ©r_   r`   ©r   r   r   ©Úlevels)rj   rl   rm   r`   )rk   ra   r_   r`   r   r   é   c                  ó&   •— t          ‰ d¬¦  «        S )Nra   rn   )r   )Úlss   €rV   ú<lambda>ztest_flatten.<locals>.<lambda>D   s   ø€ �w r°"Ð5Ñ5Ô5€ rf   c                   ó   — e Zd ZdS )útest_flatten.<locals>.MyOpN©Ú__name__Ú
__module__Ú__qualname__re   rf   rV   ÚMyOpru   F   ó   € € € € € Øˆrf   rz   ©Úcls>   r_   r`   é   )r   rT   rJ   Ú
ValueErrorr   rS   ÚzrR   )rz   rr   s    @rV   Útest_flattenr�   9   s½  ø€ Ý�9ÑÔ ! Q Ò'Ð'Ð'Ð'Ý•A��t�9ÑÔ¥!¥Q Ò'Ð'Ð'Ð'à�VÐ
˜v˜hÐ	'€Bå�2˜aÐ Ñ Ô  BÒ&Ð&Ð&Ð&Ý�2˜aÐ Ñ Ô Ð$>Ð$>Ð$>Ò>Ð>Ð>Ð>Ý�2˜aÐ Ñ Ô Ð$8Ð$8Ð$8Ò8Ð8Ð8Ð8Ý�2˜aÐ Ñ Ô Ð$8Ð$8Ð$8Ò8Ð8Ð8Ð8å
�:Ð5Ð5Ð5Ð5Ñ6Ô6Ð6ðð ð ð ð �uñ ô ð õ �D�D��A‘J”J¥�?Ñ#Ô#¨¨­Qµ©
¬
µA Ò6Ð6Ð6Ð6Ý�D�D��A‘J”J¥�?¨Ð-Ñ-Ô-µ!µQ½°Ò:Ð:Ð:Ð:å�:�:�:ÑÔ¥$ z z zÑ"2Ô"2Ò2Ð2Ð2Ð2Ð2Ð2rf   c            	      ó  — t          t          ¦   «         ¦  «        dgk    sJ ‚t          t          g ¦  «        ¦  «        g k    sJ ‚t          t          g d¢¦  «        ¦  «        g d¢k    sJ ‚t          t          ddgg d¢¦  «        ¦  «        g d¢k    sJ ‚t          t          ddgddgddg¦  «        ¦  «        g d	¢k    sJ ‚t          t          t          j        ¦  «        ¦  «        d
u sJ ‚t          t          t          j        t          j        ¦  «        ¦  «        d
u sJ ‚dt          t          j        ¦  «        v sJ ‚dt          t          j        t          j        ¦  «        v sJ ‚dt          t          j        t          j        t          j        ¦  «        v sJ ‚t          t          t          t          j        t          j        t          j        ¦  «        d¦  «        ¦  «        } | D ]K\  }}}t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚ŒLt          t          t          dd¦  «        gdz  Ž ¦  «        D ]5}|t          t          j        t          j        t          j        ¦  «        v sJ ‚Œ6d S )Nre   ©r_   r`   rp   ©ri   ©r`   ©rp   r_   r`   ©rp   é   rd   ©©r_   rp   )r_   rˆ   )r_   rd   ©r`   rp   ©r`   rˆ   )r`   rd   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_   Tr†   )rˆ   rd   iè  rk   rp   )rR   r%   rU   rA   rI   ÚIntegersÚsetr   Ú
isinstancer   r   Úrange)ÚtriplesÚn1Ún2Ún3Úts        rV   Útest_iproductr�   O   s‚  € Ý•‘
”
ÑÔ ˜tÒ#Ð#Ð#Ð#Ý•˜‘”ÑÔ Ò#Ð#Ð#Ð#Ý•˜˜˜Ñ!Ô!Ñ"Ô"Ð&6Ð&6Ð&6Ò6Ð6Ð6Ð6Ý•(˜A˜q˜6 9 9 9Ñ-Ô-Ñ.Ô.ð 3-ð 3-ð 3-ò -ð -ð -ð -å•(˜A˜a˜5 ! A ¨¨! uÑ-Ô-Ñ.Ô.ð 3Ið 3Ið 3Iò Ið Ið Ið Iå•H�QœZÑ(Ô(Ñ)Ô)¨TÐ1Ð1Ð1Ð1Ý•H�QœZ­¬Ñ4Ô4Ñ5Ô5¸Ð=Ð=Ð=Ð=Ø•8�AœJÑ'Ô'Ð'Ð'Ð'Ð'Ø•X�aœj­!¬*Ñ5Ô5Ð5Ð5Ð5Ð5Ø�¥¤­Q¬Z½¼ÑDÔDÐDÐDÐDÐDÝ•6�(¥1¤:­q¬z½1¼:ÑFÔFÈÑMÔMÑNÔN€GØð 'ð '‰
ˆˆB�Ý˜"�gÑ&Ô&Ð&Ð&Ð&Ý˜"�gÑ&Ô&Ð&Ð&Ð&Ý˜"�gÑ&Ô&Ð&Ð&Ð&Ð&Ý•�E " a™LœL˜>¨!Ñ+Ð-Ñ.Ô.ð Að AˆØ•H�QœZ­¬µQ´ZÑ@Ô@Ð@Ð@Ð@Ð@Ð@ðAð Arf   c                  óz  — t          g ¦  «        g k    sJ ‚t          g d¬¦  «        g k    sJ ‚t          dg¦  «        dggk    sJ ‚t          dgd¬¦  «        dgk    sJ ‚t          ddg¦  «        ddggk    sJ ‚t          ddgd¬¦  «        dgk    sJ ‚t          g d¢¦  «        g d¢gk    sJ ‚t          g d¢d¬¦  «        dgk    sJ ‚t          g d¢¦  «        dgd	gdggk    sJ ‚t          g d¢d¬¦  «        g d
¢k    sJ ‚t          g d¢¦  «        ddgg d¢dgddggk    sJ ‚t          g d¢d¬¦  «        g d¢k    sJ ‚d S )NF)Úmultipler_   ©r_   r_   rl   r“   rŠ   ©r_   r`   r_   r`   )r    ©r`   r_   r    )r_   r_   r`   r`   r`   r_   rp   rp   ©r`   r`   r`   rp   )rl   r‹   r    ©rp   r`   )r"   re   rf   rV   Ú
test_groupr¥   e   sË  € Ý�‰9Œ9˜Š?ˆ?ˆ?ˆ?Ý�˜eÐ$Ñ$Ô$¨Ò*Ð*Ð*Ð*å�!�‰:Œ:˜1˜#˜ÒÐÐÐÝ�!�˜uÐ%Ñ%Ô%¨&¨Ò1Ð1Ð1Ð1å�!�Q�‰=Œ=˜a ˜V˜HÒ$Ð$Ð$Ð$Ý�!�Q� %Ð(Ñ(Ô(¨V¨HÒ4Ð4Ð4Ð4å���ÑÔ 	 	 	˜{Ò*Ð*Ð*Ð*Ý��� UÐ+Ñ+Ô+°¨xÒ7Ð7Ð7Ð7å���ÑÔ   a S¨1¨#˜Ò.Ð.Ð.Ð.Ý��� UÐ+Ñ+Ô+Ð/GÐ/GÐ/GÒGÐGÐGÐGåÐ)Ð)Ð)Ñ*Ô*°°1¨v°y°y°yÀ1À#ÈÈ1ÀvÐ.NÒNÐNÐNÐNÝÐ)Ð)Ð)°EÐ:Ñ:Ô:ð ?)ð ?)ð ?)ò )ð )ð )ð )ð )ð )rf   c            	      ó  — t          t          g d¢d¦  «        ¦  «        dgk    sJ ‚t          t          g d¢d¦  «        ¦  «        g d¢k    sJ ‚t          t          g d¢d¦  «        ¦  «        g d¢k    sJ ‚t          t          g d¢d¦  «        ¦  «        dgk    sJ ‚t          t          d	¦  «        ¦  «        } t          t          | dd
¬¦  «        ¦  «        dgk    sJ ‚t          t          | dd
¬¦  «        ¦  «        g d¢k    sJ ‚t          t          | dd
¬¦  «        ¦  «        g d¢k    sJ ‚t          t          | dd
¬¦  «        ¦  «        g d¢k    sJ ‚t          t          t          | d	d
¬¦  «        ¦  «        ¦  «        dk    sJ ‚t          t          | d d…         dd¬¦  «        ¦  «        g k    sJ ‚t          t          | d d…         dd
¬¦  «        ¦  «        g d¢k    sJ ‚t          t          ddgd
¬¦  «        ¦  «        g d¢k    sJ ‚t          t          ddgd¬¦  «        ¦  «        g d¢k    sJ ‚t          t          g d¢d¦  «        ¦  «        g d¢k    sJ ‚t          t          g d¢dd
¬¦  «        ¦  «        g d¢k    sJ ‚d S )Nrƒ   r   re   r_   r„   r`   )rl   rŠ   r‹   rp   rˆ   T©Ú
repetition©©r   ri   r…   r†   )
rm   ©r   r_   ©r   r`   ©r   rp   r    rl   rŠ   ©r`   r`   r‹   ©rp   rp   )rŽ   r�   )r   r   r`   )r   r   rp   r�   ©r   r_   r`   ©r   r_   rp   )r   r`   r`   ©r   r`   rp   )r   rp   rp   r“   ©r_   r_   r`   ©r_   r_   rp   ©r_   r`   r`   rƒ   )r_   rp   rp   r£   )r`   r`   rp   )r`   rp   rp   )rp   rp   rp   é#   F)rŽ   r�   r�   r“   )re   ri   r…   r    rl   r®   )re   ri   r…   rl   )r    rl   rŠ   r®   r‹   r¯   )rR   r8   r—   Úlen©Úls    rV   Útest_subsetsrº   z   s:  € å•˜	˜	˜	 1Ñ%Ô%Ñ&Ô&¨2¨$Ò.Ð.Ð.Ð.Ý•˜	˜	˜	 1Ñ%Ô%Ñ&Ô&Ð*<Ð*<Ð*<Ò<Ð<Ð<Ð<Ý•˜	˜	˜	 1Ñ%Ô%Ñ&Ô&Ð*BÐ*BÐ*BÒBÐBÐBÐBÝ•˜	˜	˜	 1Ñ%Ô%Ñ&Ô&¨9¨+Ò5Ð5Ð5Ð5Ý�U�1‰XŒX‰Œ€AÝ•˜˜1¨Ð.Ñ.Ô.Ñ/Ô/°B°4Ò7Ð7Ð7Ð7Ý•˜˜1¨Ð.Ñ.Ô.Ñ/Ô/Ð3KÐ3KÐ3KÒKÐKÐKÐKÝ•˜˜1¨Ð.Ñ.Ô.Ñ/Ô/ð 4<ð 4<ð 4<ò <ð <ð <ð <õ •˜˜1¨Ð.Ñ.Ô.Ñ/Ô/ð 	4Jð 	4Jð 	4Jò 	Jð 	Jð 	Jð 	Jõ �t•G˜A˜q¨TÐ2Ñ2Ô2Ñ3Ô3Ñ4Ô4¸Ò:Ð:Ð:Ð:å•˜˜"˜1˜"œ˜q¨UÐ3Ñ3Ô3Ñ4Ô4¸Ò:Ð:Ð:Ð:Ý•˜˜"˜1˜"œ˜q¨TÐ2Ñ2Ô2Ñ3Ô3ð 8Cð 8Cð 8Cò Cð Cð Cð Cõ •˜˜A˜¨4Ð0Ñ0Ô0Ñ1Ô1Ø0Ð0Ð0ò1ð 1ð 1ð 1å•˜˜A˜¨5Ð1Ñ1Ô1Ñ2Ô2Ø Ð Ð ò!ð !ð !ð !å•˜	˜	˜	 1Ñ%Ô%Ñ&Ô&Ø Ð Ð ò!ð !ð !ð !å•˜	˜	˜	 1°Ð6Ñ6Ô6Ñ7Ô7Ø8Ð8Ð8ò9ð 9ð 9ð 9ð 9ð 9rf   c            	      óÜ  — t          t          d¦  «        ¦  «        } t          t          | dd¬¦  «        ¦  «        dgk    sJ ‚t          t          | dd¬¦  «        ¦  «        g d¢k    sJ ‚t          t          | dd¬¦  «        ¦  «        g d	¢k    sJ ‚t          t          | d
d¬¦  «        ¦  «        g d¢k    sJ ‚t          t          | dd¬¦  «        ¦  «        dgk    sJ ‚t          t          | dd¬¦  «        ¦  «        g d¢k    sJ ‚t          t          | dd¬¦  «        ¦  «        g d¢k    sJ ‚t          t          t          | d
d¬¦  «        ¦  «        ¦  «        dk    sJ ‚t          t          t          | dd¬¦  «        ¦  «        ¦  «        dk    sJ ‚t          t          | d d…         d
d¬¦  «        ¦  «        g k    sJ ‚t          t          | d d…         d
d¬¦  «        ¦  «        g d¢k    sJ ‚d S )Nrˆ   r   Fr§   re   r_   r©   r`   )r«   r¬   r­   ©r_   r   rl   rŠ   ©r`   r   r¢   r‹   ©rp   r   ©rp   r_   r¤   rp   )r°   r±   ©r   r`   r_   r²   ©r   rp   r_   )r   rp   r`   ©r_   r   r`   )r_   r   rp   ©r_   r`   r   rƒ   )r_   rp   r   )r_   rp   r`   ©r`   r   r_   )r`   r   rp   ©r`   r_   r   )r`   r_   rp   )r`   rp   r   )r`   rp   r_   )rp   r   r_   )rp   r   r`   )rp   r_   r   )rp   r_   r`   )rp   r`   r   ©rp   r`   r_   T)rm   r«   r¬   r­   r¼   r    rl   rŠ   r½   r¢   r®   r‹   r¾   r¿   r¤   r¯   é@   é   r�   )rR   r—   r=   r·   r¸   s    rV   Útest_variationsrÉ   ¢   sk  € å�U�1‰XŒX‰Œ€AÝ•
˜1˜a¨EÐ2Ñ2Ô2Ñ3Ô3¸°tÒ;Ð;Ð;Ð;Ý•
˜1˜a¨EÐ2Ñ2Ô2Ñ3Ô3Ð7OÐ7OÐ7OÒOÐOÐOÐOÝ•
˜1˜a¨EÐ2Ñ2Ô2Ñ3Ô3ð  8Xð  8Xð  8Xò  Xð  Xð  Xð  XÝ•
˜1˜a¨EÐ2Ñ2Ô2Ñ3Ô3ð  8@ð  8@ð  8@ò  @ð  @ð  @ð  @Ý•
˜1˜a¨DÐ1Ñ1Ô1Ñ2Ô2°r°dÒ:Ð:Ð:Ð:Ý•
˜1˜a¨DÐ1Ñ1Ô1Ñ2Ô2Ð6NÐ6NÐ6NÒNÐNÐNÐNÝ•
˜1˜a¨DÐ1Ñ1Ô1Ñ2Ô2ð 7?ð 7?ð 7?ò ?ð ?ð ?ð ?õ �t•J˜q !°Ð5Ñ5Ô5Ñ6Ô6Ñ7Ô7¸2Ò=Ð=Ð=Ð=Ý�t•J˜q !°Ð5Ñ5Ô5Ñ6Ô6Ñ7Ô7¸3Ò>Ð>Ð>Ð>Ý•
˜1˜R˜a˜Rœ5 !°Ð6Ñ6Ô6Ñ7Ô7¸2Ò=Ð=Ð=Ð=Ý•
˜1˜R˜a˜Rœ5 !°Ð5Ñ5Ô5Ñ6Ô6ð ;ð ;ð ;ò ð ð ð ð ð rf   c            	      ó¨  — t          t          ddgg d¢¦  «        ¦  «        g d¢k    sJ ‚t          t          ¦   «         ¦  «        dgk    sJ ‚t          t          d¦  «        ¦  «        dgk    sJ ‚t          t          dd¬¦  «        ¦  «        d	gk    sJ ‚t          t          t          t          d¦  «        ¦  «        ¦  «        ¦  «        d
dgk    sJ ‚d S )Nr_   r`   r‡   r‰   re   Úa)rË   )Úrepeat)rË   rË   rª   ri   )rR   r   r—   re   rf   rV   Útest_cartesrÍ   º   sÙ   € Ý•˜˜1�v˜y˜y˜yÑ)Ô)Ñ*Ô*Ø8Ð8Ð8ò9ð 9ð 9ð 9å•‘”‰>Œ>˜b˜TÒ!Ð!Ð!Ð!Ý•�s‘”ÑÔ  Ò(Ð(Ð(Ð(Ý•�s 1Ð%Ñ%Ô%Ñ&Ô&¨:¨,Ò6Ð6Ð6Ð6Ý••t�E !™HœH‘~”~Ñ&Ô&Ñ'Ô'¨D°$¨<Ò7Ð7Ð7Ð7Ð7Ð7rf   c                  ó¼   — t          ¦   «         } t          | t          d¦  «        ¦  «        }t          |d¦  «        t	          t          d¦  «        ¦  «        k    sJ ‚d S )Nzx0 x2 x3rp   zx1 x4 x5)r-   r   r   r9   rR   )ÚsÚfiltereds     rV   Útest_filter_symbolsrÑ   Ã   sU   € ÝÑÔ€AÝ˜a¥¨Ñ!4Ô!4Ñ5Ô5€HÝ�˜!ÑÔ¥¥W¨ZÑ%8Ô%8Ñ 9Ô 9Ò9Ð9Ð9Ð9Ð9Ð9rf   c            	      óø   — t          t          ¬¦  «        } t          t          | ¦  «        t          ¦  «        sJ ‚t          t          ddt	          d¦  «        g¬¦  «        ¦  «        t	          d¦  «        k    sJ ‚d S )Nr|   ÚCr_   ÚC1)ÚstartÚexcludeÚC2)r-   r
   r–   Únextr   )rÏ   s    rV   Útest_numbered_symbolsrÙ   É   sx   € Ý�UÐ#Ñ#Ô#€AÝ•d˜1‘g”g�uÑ%Ô%Ð%Ð%Ð%ÝÕ  ¨A½À¹¼°ÐGÑGÔGÑHÔHÝ�‰Œòð ð ð ð ð rf   c                  óÒ  — t          t          t          d¦  «        ¦  «        d„ ¦  «        ddgg d¢dœk    sJ ‚t          t          t          gd„ ¦  «        t          gt          gdœk    sJ ‚t          t
          j        gd	„ ¦  «        d
dgik    sJ ‚t          g d¢d„ d¬¦  «        ddgddgfk    sJ ‚t          g d¢d„ d¬¦  «        dgg d¢fk    sJ ‚t          t          d„ ¦  «         d S )Nrd   c                 ó   — | dz  S ©Nr`   re   ©Ú_s    rV   rs   ztest_sift.<locals>.<lambda>Ñ   s
   € ¨!¨a©%€ rf   r_   rp   )r   r`   rˆ   r¼   c                 ó6   — |                       t          ¦  «        S ©N©ÚhasrT   rÝ   s    rV   rs   ztest_sift.<locals>.<lambda>Ò   s   €  !§%¢%­¡(¤(€ rf   )FTc                 ó6   — |                       t          ¦  «        S rà   rá   rÝ   s    rV   rs   ztest_sift.<locals>.<lambda>Ó   s   €  1§5¢5­¡8¤8€ rf   F©r   r_   r`   rp   c                 ó   — | dz  S rÜ   re   ©rT   s    rV   rs   ztest_sift.<locals>.<lambda>Ô   s
   € ¨¨A©€ rf   T©Úbinaryr   r`   c                 ó   — | dz  dk    S )Nrp   r_   re   ræ   s    rV   rs   ztest_sift.<locals>.<lambda>Ö   s   € ¨¨A©°ª
€ rf   r²   c                  ó,   — t          g d¢d„ d¬¦  «        S )Nrä   c                 ó   — | dz  S )Nrp   re   ræ   s    rV   rs   z-test_sift.<locals>.<lambda>.<locals>.<lambda>Ù   s
   €  Q¨¡U€ rf   Trç   )r6   re   rf   rV   rs   ztest_sift.<locals>.<lambda>Ø   s   € Ýˆ\ˆ\ˆ\˜?˜?°4Ð8Ñ8Ô8ð rf   )	r6   rR   r—   rT   rS   rI   ÚOnerJ   r   re   rf   rV   Ú	test_siftrí   Ð   s9  € Ý••U˜1‘X”X‘”  Ñ0Ô0¸¸A¸À9À9À9Ð4MÐ4MÒMÐMÐMÐMÝ••A�Ð*Ð*Ñ+Ô+½°sÅ1À#Ð/FÐ/FÒFÐFÐFÐFÝ•”�Ð+Ð+Ñ,Ô,°¸¸°Ò<Ð<Ð<Ð<Ý���˜o˜o°dÐ;Ñ;Ô;Ø	
ˆAˆ��A�ð@ò ð ð ð å���Ð2Ð2¸4Ð@Ñ@Ô@Ø	
ˆˆYˆYˆYðEò ð ð ð å
�:ð 9ð 9ñ :ô :ð :ð :ð :rf   c                  ó  — t          ¦   «         } t          | d¦  «        t          t          d¦  «        ¦  «        k    sJ ‚t          | d¦  «        t          t          d¦  «        ¦  «        k    sJ ‚t          g d¢d¦  «        g d¢k    sJ ‚d S )Nrd   zx0:5zx5:10©r_   r`   rp   rˆ   rd   )r-   r9   rR   r   )ÚXs    rV   Ú	test_takerñ   Ü   s†   € ÝÑÔ€Aå��1‰:Œ:��g f™oœoÑ.Ô.Ò.Ð.Ð.Ð.Ý��1‰:Œ:��g gÑ.Ô.Ñ/Ô/Ò/Ð/Ð/Ð/å��� Ñ#Ô#   Ò6Ð6Ð6Ð6Ð6Ð6rf   c                  ó^  — t          i dt          t          t          i¦  «        dt          t          t          ik    sJ ‚t          dt          t          t          ii ¦  «        dt          t          t          ik    sJ ‚t          dt          idt          t          t          i¦  «        dt          dt          t          t          ik    sJ ‚t          dt          t          t          idt          i¦  «        dt          dt          t          t          ik    sJ ‚t          t          t          dœdt          t          t          i¦  «        dt          dt          t          t          ik    sJ ‚t          dt          t          t          it          t          dœ¦  «        dt          dt          t          t          ik    sJ ‚d S )Nr_   r`   rl   )r   rT   rS   r€   re   rf   rV   Útest_dict_mergeró   å   s2  € Ý�b˜1�a¥¥A˜,Ñ'Ô'¨A­qµ!µQ¨<Ò7Ð7Ð7Ð7Ý�q�!�Q¥�l BÑ'Ô'¨A­qµ!µQ¨<Ò7Ð7Ð7Ð7å�q�!�f˜q¥!¥Q­˜lÑ+Ô+°µ1°a½½A½qÐ/AÒAÐAÐAÐAÝ�q�!�Q¥�l Q­ FÑ+Ô+°µ1°a½½A½qÐ/AÒAÐAÐAÐAå�!¥�l�l Q­­1­a LÑ1Ô1°a½¸A½qÅ!ÅQÐ5GÒGÐGÐGÐGÝ�q�!�Q¥�l­­a L LÑ1Ô1°a½¸A½qÅ!ÅQÐ5GÒGÐGÐGÐGÐGÐGrf   c                  óJ  — t          t          g ¦  «        ¦  «        g k    sJ ‚t          t          dg¦  «        ¦  «        dggk    sJ ‚t          t          ddg¦  «        ¦  «        dgddggk    sJ ‚t          t          g d¢¦  «        ¦  «        dgddgg d¢g d¢g d¢gk    sJ ‚d S )Nr_   r`   rï   rƒ   ©r_   r`   rp   rˆ   )rR   r1   re   rf   rV   Útest_prefixesrö   ð   sÐ   € Ý•˜‘”ÑÔ Ò#Ð#Ð#Ð#Ý•˜!˜‘”ÑÔ A 3 %Ò'Ð'Ð'Ð'Ý•˜!˜Q˜Ñ Ô Ñ!Ô! q c¨A¨q¨6 ]Ò2Ð2Ð2Ð2å•˜˜˜Ñ)Ô)Ñ*Ô*Ø
ˆˆq�!ˆf�i�i�i   ¨¨¨Ð?ò@ð @ð @ð @ð @ð @rf   c                  óJ  — t          t          g ¦  «        ¦  «        g k    sJ ‚t          t          dg¦  «        ¦  «        dggk    sJ ‚t          t          ddg¦  «        ¦  «        dgddggk    sJ ‚t          t          g d¢¦  «        ¦  «        dgddgg d¢g d¢g d¢gk    sJ ‚d S )Nr_   r`   rï   rd   rˆ   r‡   )r`   rp   rˆ   rd   )rR   r0   re   rf   rV   Útest_postfixesrø   ù   sÐ   € Ý•	˜"‘”ÑÔ "Ò$Ð$Ð$Ð$Ý•	˜1˜#‘”ÑÔ Q C 5Ò(Ð(Ð(Ð(Ý•	˜1˜a˜&Ñ!Ô!Ñ"Ô"¨ s¨Q°¨F mÒ3Ð3Ð3Ð3å•	˜/˜/˜/Ñ*Ô*Ñ+Ô+Ø
ˆˆq�!ˆf�i�i�i   ¨¨¨Ð?ò@ð @ð @ð @ð @ð @rf   c                  ó¶   ‡ ‡— g d¢Šg d¢Š t          ‰‰ f¦  «        g d¢k    sJ ‚t          ‰‰ fd„ ¬¦  «        g d¢k    sJ ‚t          t          ˆ ˆfd„¦  «         d S )N)r`   rp   rd   é   é   é	   é
   r~   )	)rú   r~   ©rú   rû   )rd   r~   )rp   rû   )rp   rý   )r~   r`   )r~   rü   )r~   rý   )rû   rü   )rp   rd   rú   rû   r~   r`   rü   rý   c                 ó   — |  S rà   re   )Úvs    rV   rs   z'test_topological_sort.<locals>.<lambda>	  s   € °1°"€ rf   rO   )rú   rd   r~   rp   rý   rû   rü   r`   c                  ó.   •— t          ‰‰ dgz   f¦  «        S )N)rý   rú   )r:   ©ÚEÚVs   €€rV   rs   z'test_topological_sort.<locals>.<lambda>  s   ø€ Õ/°°A¸¸	±MÐ0BÑCÔC€ rf   )r:   rJ   r   r  s   @@rV   Útest_topological_sortr    sž   øø€ Ø"Ð"Ð"€Að	$ð 	$ð 	$€Aõ ˜Q ˜FÑ#Ô#Ð'AÐ'AÐ'AÒAÐAÐAÐAÝ˜Q ˜F¨¨Ð5Ñ5Ô5Ø"Ð"Ð"ò#ð #ð #ð #õ �:ÐCÐCÐCÐCÐCÑDÔDÐDÐDÐDrf   c                  óL  — t          g g f¦  «        g k    sJ ‚t          g d¢g f¦  «        dgdgdggk    sJ ‚g d¢} g d¢}t          | |f¦  «        g d¢gk    sJ ‚g d¢} g d¢}t          | |f¦  «        dgddgdggk    sJ ‚g d¢} g d	¢}t          | |f¦  «        ddgddggk    sJ ‚d S )
Nrƒ   r_   r`   rp   ©rl   rŠ   r¢   r‹   r¿   rõ   ©rl   r‹   r¤   ©rp   rˆ   rˆ   )rl   r¢   r	  )rˆ   rp   )r7   ©r  r  s     rV   Ú"test_strongly_connected_componentsr    s  € Ý(¨"¨b¨Ñ2Ô2°bÒ8Ð8Ð8Ð8Ý(¨)¨)¨)°R¨Ñ9Ô9¸q¸cÀAÀ3ÈÈ¸_ÒLÐLÐLÐLàˆ	ˆ	€AØ0Ð0Ð0€AÝ(¨!¨Q¨Ñ0Ô0°Y°Y°Y°KÒ?Ð?Ð?Ð?àˆˆ€AØ(Ð(Ð(€AÝ(¨!¨Q¨Ñ0Ô0°a°S¸1¸a¸&À1À#Ð4FÒFÐFÐFÐFàˆˆ€AØ(Ð(Ð(€AÝ(¨!¨Q¨Ñ0Ô0°a¸°V¸aÀ¸VÐ4DÒDÐDÐDÐDÐDÐDrf   c                  óD  — t          g g f¦  «        g k    sJ ‚t          g d¢g f¦  «        dgdgdggk    sJ ‚g d¢} g d¢}t          | |f¦  «        g d¢gk    sJ ‚g d¢} g d¢}t          | |f¦  «        g d¢gk    sJ ‚g d¢} dd	g}t          | |f¦  «        ddgdd
ggk    sJ ‚d S )Nrƒ   r_   r`   rp   r  rõ   r  rl   r	  rˆ   )r   r
  s     rV   Útest_connected_componentsr     sý   € Ý  R Ñ)Ô)¨RÒ/Ð/Ð/Ð/Ý   ¨B Ñ0Ô0°a°S¸1¸#À¸s°OÒCÐCÐCÐCàˆ	ˆ	€AØ0Ð0Ð0€AÝ  A Ñ'Ô'¨I¨I¨I¨;Ò6Ð6Ð6Ð6àˆˆ€AØ(Ð(Ð(€AÝ  A Ñ'Ô'¨L¨L¨L¨>Ò9Ð9Ð9Ð9àˆˆ€AØ	�Ð€AÝ  A Ñ'Ô'¨Q°¨F°Q¸°FÐ+;Ò;Ð;Ð;Ð;Ð;Ð;rf   c                  óF  — g d¢} t          | d¦  «        g d¢k    sJ ‚t          | d¦  «        g d¢k    sJ ‚g } t          | d¦  «        }|g k    sJ ‚|                     d¦  «         | g k    sJ ‚t          | d¦  «        }|g k    sJ ‚|                     d¦  «         | g k    sJ ‚d S )N©r   r_   r`   rp   rˆ   r`   )r`   rp   rˆ   r   r_   r_   )rˆ   r   r_   r`   rp   )r3   r4   Úappend)ÚAÚBs     rV   Útest_rotater  1  sÂ   € Øˆˆ€Aå�q˜!ÑÔ   Ò/Ð/Ð/Ð/Ý˜˜1ÑÔ   Ò0Ð0Ð0Ð0Ø
€AÝ�Q˜ÑÔ€AØ�Š7ˆ7ˆ7ˆ7Ø‡H‚HˆQ�K„K€KØ�Š7ˆ7ˆ7ˆ7Ý�A�qÑÔ€AØ�Š7ˆ7ˆ7ˆ7Ø‡H‚HˆQ�K„K€KØ�Š7ˆ7ˆ7ˆ7ˆ7ˆ7rf   c            
      óÔ	  — g d¢} t          t          | d¦  «        ¦  «        dgdgdgdgdgggk    sJ ‚t          t          t          | d¦  «        ¦  «        ¦  «        dk    sJ ‚t          t          t          | d¦  «        ¦  «        ¦  «        d	k    sJ ‚t          t          g d
¢d¦  «        ¦  «        g d¢dggg d¢ddggg d¢dggg d¢ddggddgg d¢ggk    sJ ‚t          t          g d¢d¦  «        ¦  «        g d¢dggddgddggg d¢dggddgddgggk    sJ ‚t          t          g d¢d¦  «        ¦  «        g d¢dggg d¢dggddgddggg d¢dggddgddggddgddggdgg d¢ggk    sJ ‚t          t          g d¢d¦  «        ¦  «        ddgdggdgddgggk    sJ ‚t          t          d¦  «        ¦  «        g d¢gddgdggddgdggdgddggdgdgdgggk    sJ ‚t          t          dd¦  «        ¦  «        ddgdggddgdggdgddgggk    sJ ‚t          t          dgdz  d¦  «        ¦  «        dgddgggk    sJ ‚t          t          dgdz  ¦  «        ¦  «        g d¢gdgddggdgdgdgggk    sJ ‚g d¢}t          t          |¦  «        ¦  «        t          t          t          |¦  «        ¦  «        ¦  «        k    sJ ‚t          t          |d¦  «        ¦  «        g k    sJ ‚t          t          |d¦  «        ¦  «        g d¢ggk    sJ ‚t          t          |dgz   d¦  «        ¦  «        g k    sJ ‚t          t          |dgz   d¦  «        ¦  «        g d¢ggk    sJ ‚t          t          dd¦  «        ¦  «        g k    sJ ‚t          t          dd¦  «        ¦  «        ddgggk    sJ ‚t          t          d¦  «        ¦  «        dgggk    sJ ‚t          t          dd¦  «        ¦  «        g k    sJ ‚t          t          d¦  «        ¦  «        ddggdgdgggk    sJ ‚t          t          dd¦  «        ¦  «        ddgggk    sJ ‚t          t          dd¦  «        ¦  «        dggk    sJ ‚t          t          ddgd¦  «        ¦  «        ddgggk    sJ ‚g d¢}d„ t          d¦  «        D ¦   «         |k    sJ ‚dgddgd dgdd!gg d"¢g d#¢g d$¢g}d%„ t	          ddg¦  «        D ¦   «         |k    sJ ‚d S )&Nr  rd   r   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_   rp   rˆ   ©r`   rp   rˆ   r°   rÆ   rË   ÚabÚbÚaaa)$)Úmpsyy)ÚmpsyrS   )ÚmpsÚyy)r  rS   rS   )ÚmpyyrÏ   )ÚmpyÚsy)r   rÏ   rS   )ÚmpÚsyy)r"  r!  rS   )r"  rÏ   r  )r"  rÏ   rS   rS   )ÚmsyyÚp)ÚmsyÚpy)r&  r%  rS   )ÚmsÚpyy)r(  r'  rS   )r(  r%  r  )r(  r%  rS   rS   )ÚmyyÚps)r*  r%  rÏ   )ÚmyÚpsy)r,  r+  rS   )r,  r'  rÏ   )r,  r%  r!  )r,  r%  rÏ   rS   )ÚmÚpsyy)r.  r-  rS   )r.  r+  r  )r.  r+  rS   rS   )r.  r)  rÏ   )r.  r'  r!  )r.  r'  rÏ   rS   )r.  r%  r#  )r.  r%  r!  rS   )r.  r%  rÏ   r  )r.  r%  rÏ   rS   rS   c                 ó@   — g | ]}t          d „ |D ¦   «         ¦  «        ‘ŒS )c              3   ó@   K  — | ]}d                       |¦  «        V — ŒdS ©rY   N©Újoin)Ú.0Úparts     rV   ú	<genexpr>z6test_multiset_partitions.<locals>.<listcomp>.<genexpr>{  s,   è è € Ð.Ð. D�"—'’'˜$‘-”-Ð.Ð.Ð.Ð.Ð.Ð.rf   )Útuple©r5  r%  s     rV   ú
<listcomp>z,test_multiset_partitions.<locals>.<listcomp>{  s?   € ð 7ð 7ð 7Øõ Ð.Ð.¨AÐ.Ñ.Ô.Ñ.Ô.ð 7ð 7ð 7rf   Úsympyé   rû   é   rb   )rˆ   r`   rp   )rb   r`   r`   )r`   r`   r`   rp   c                 ó2   — g | ]}t          |d dg¦  «        ‘ŒS r‹   )rG   r9  s     rV   r:  z,test_multiset_partitions.<locals>.<listcomp>  s6   € ð 8ð 8ð 8Øõ ˜a ! A Ñ'Ô'ð 8ð 8ð 8rf   )rR   r*   r·   rU   rH   )r  rË   ÚansÚ
factoringss       rV   Útest_multiset_partitionsrA  A  s×  € Øˆˆ€AåÕ# A qÑ)Ô)Ñ*Ô*°°°a°S¸1¸#À¸sÀQÀCÐ/HÐ.IÒIÐIÐIÐIÝ�tÕ'¨¨1Ñ-Ô-Ñ.Ô.Ñ/Ô/°2Ò5Ð5Ð5Ð5Ý�tÕ'¨¨1Ñ-Ô-Ñ.Ô.Ñ/Ô/°2Ò5Ð5Ð5Ð5åÕ# O O O°QÑ7Ô7Ñ8Ô8Ø	ˆˆ˜�sÐ˜i˜i˜i¨!¨Q¨Ð0°<°<°<À!ÀÐ2EØ	ˆˆ�Q˜�FÐ˜q !˜f i i iÐ0ð=2ò 2ð 2ð 2ð 2õ Õ# L L L°!Ñ4Ô4Ñ5Ô5Ø	ˆˆ�Q�CÐ˜A˜q˜6 A q 6Ð*¨Y¨Y¨Y¸¸Ð,<Ø
ˆQˆ�!�Q�Ðð:ò ð ð ð õ Õ# L L L°!Ñ4Ô4Ñ5Ô5Ø	ˆˆ�Q�CÐ˜9˜9˜9 q cÐ*¨a°¨V°a¸°VÐ,<Ø	ˆˆ�Q�CÐ˜A˜q˜6 A q 6Ð*¨a°¨V°a¸°VÐ,<Ø
ˆˆiˆiˆiÐð:ò ð ð ð õ
 Õ# I I I¨qÑ1Ô1Ñ2Ô2Ø
ˆQˆ�!�ˆ˜˜˜a ˜V�}ð7&ò &ð &ð &ð &õ Õ# AÑ&Ô&Ñ'Ô'Ø	ˆˆˆ�q˜!�f˜q˜c�] a¨ V¨a¨S M°Q°C¸!¸Q¸°=Ø
ˆˆqˆc�A�3ˆð,ò ð ð ð õ Õ# A qÑ)Ô)Ñ*Ô*Ø
ˆQˆ�!�ˆ˜˜A˜  �}¨ s¨Q°¨F mð/5ò 5ð 5ð 5ð 5åÕ# Q C¨!¡G¨QÑ/Ô/Ñ0Ô0°q°c¸A¸q¸6°]°OÒCÐCÐCÐCÝÕ# Q C¨!¡GÑ,Ô,Ñ-Ô-Ø	ˆˆˆ�q�c˜A˜q˜6�] a S¨1¨#°¨s Oð25ò 5ð 5ð 5ð 5àˆ	ˆ	€AÝÕ# AÑ&Ô&Ñ'Ô'ÝÕ ¥¨¡¤Ñ+Ô+Ñ,Ô,ò-ð -ð -ð -åÕ# A qÑ)Ô)Ñ*Ô*¨bÒ0Ð0Ð0Ð0ÝÕ# A qÑ)Ô)Ñ*Ô*°	°	°	¨{¨mÒ;Ð;Ð;Ð;ÝÕ# A¨¨¡G¨QÑ/Ô/Ñ0Ô0°BÒ6Ð6Ð6Ð6ÝÕ# A¨¨¡G¨QÑ/Ô/Ñ0Ô0°l°l°l°^Ð4DÒDÐDÐDÐDÝÕ# A qÑ)Ô)Ñ*Ô*¨bÒ0Ð0Ð0Ð0ÝÕ# A qÑ)Ô)Ñ*Ô*°°A°¨x¨jÒ8Ð8Ð8Ð8ÝÕ# CÑ(Ô(Ñ)Ô)°¨u¨g¨YÒ6Ð6Ð6Ð6ÝÕ# C¨Ñ+Ô+Ñ,Ô,°Ò2Ð2Ð2Ð2ÝÕ# DÑ)Ô)Ñ*Ô*°°c°
¨|¸s¸eÀcÀU¸^Ð.LÒLÐLÐLÐLÝÕ# D¨!Ñ,Ô,Ñ-Ô-°C¸°:°,°Ò?Ð?Ð?Ð?ÝÕ# E¨1Ñ-Ô-Ñ.Ô.°E°7°)Ò;Ð;Ð;Ð;ÝÕ# Q¨ F¨AÑ.Ô.Ñ/Ô/°a¸°V°H°:Ò=Ð=Ð=Ð=ð&ð &ð &€Cð7ð 7Ý,¨WÑ5Ô5ð7ñ 7ô 7Ø:=ò>ð >ð >ð >à�$˜˜A˜  Q ¨!¨Q¨°°°Ø�)�)˜\˜\˜\ð+€Jð8ð 8Ý.°°1¨vÑ6Ô6ð8ñ 8ô 8Ø;EòFð Fð Fð Fð Fð Frf   c                  óº  — g d¢} d„ t          t          dd¦  «        ¦  «        D ¦   «         | k    sJ ‚t          d¦  «        }d„ t          t          |d¦  «        ¦  «        D ¦   «         | k    sJ ‚d„ t          |d¦  «        D ¦   «         g k    sJ ‚t          t          dgd	dggd	¦  «        ¦  «        dgd	dgggk    sJ ‚t          t          t          d
d¦  «        ¦  «        ¦  «        dk    sJ ‚t          t          t          d
d¦  «        ¦  «        ¦  «        dk    sJ ‚t          t          dd¦  «        ¦  «        d
gdgdggk    sJ ‚t	          t
          d„ ¦  «         d S )N)ÚiiiÚiimÚiipÚiisÚimpÚimsÚippÚipsÚissÚmppr  ÚmssÚppsÚpssÚsssc                 ó8   — g | ]}d                       |¦  «        ‘ŒS ©rY   r3  ©r5  Úis     rV   r:  z.test_multiset_combinations.<locals>.<listcomp>†  s.   € ð ;ð ;ð ;˜1ˆB�GŠG�A‰JŒJð ;ð ;ð ;rf   Úmississippirp   c                 ó8   — g | ]}d                       |¦  «        ‘ŒS rR  r3  rS  s     rV   r:  z.test_multiset_combinations.<locals>.<listcomp>‰  s.   € ð /ð /ð /˜1ˆB�GŠG�A‰JŒJð /ð /ð /rf   c                 ó8   — g | ]}d                       |¦  «        ‘ŒS rR  r3  rS  s     rV   r:  z.test_multiset_combinations.<locals>.<listcomp>‹  s"   € Ð=Ð=Ð=˜1ˆB�GŠG�A‰JŒJÐ=Ð=Ð=rf   é   r_   r`   rË   r   Úabcr  Úcc                  óB   — t          t          dddœd¦  «        ¦  «        S )Nrp   ra   r«   r`   )rR   r)   re   rf   rV   rs   z,test_multiset_combinations.<locals>.<lambda>�  s   € �tÕ$9¸aÀB¸-¸-ÈÑ$KÔ$KÑLÔL€ rf   )rR   r)   r(   r·   rJ   r   )r?  ÚMs     rV   Útest_multiset_combinationsr]  ƒ  s·  € ð<ð <ð <€Cð;ð ;ÝÕ& }°aÑ8Ô8Ñ9Ô9ð;ñ ;ô ;Ø>AòBð Bð Bð Bå�ÑÔ€Að/ð /ÝÕ& q¨!Ñ,Ô,Ñ-Ô-ð/ñ /ô /Ø25ò6ð 6ð 6ð 6à=Ð=Õ 5°a¸Ñ <Ô <Ð=Ñ=Ô=ÀÒCÐCÐCÐCÝÕ%¨ s¨Q°¨F m°QÑ7Ô7Ñ8Ô8¸q¸cÀAÀqÀ6¸]¸OÒKÐKÐKÐKÝ�tÕ)¨#¨qÑ1Ô1Ñ2Ô2Ñ3Ô3°qÒ8Ð8Ð8Ð8Ý�tÕ)¨#¨qÑ1Ô1Ñ2Ô2Ñ3Ô3°qÒ8Ð8Ð8Ð8ÝÕ% e¨QÑ/Ô/Ñ0Ô0°c°U¸S¸EÀCÀ5Ð4IÒIÐIÐIÐIÝ
�:ÐLÐLÑMÔMÐMÐMÐMrf   c                  óÊ  ‡— g d¢} d„ t          d¦  «        D ¦   «         | k    sJ ‚d„ t          t          d¦  «        ¦  «        D ¦   «         | k    sJ ‚t          t          g d¢d¦  «        ¦  «        ddggk    sJ ‚t          t          g d¢d¦  «        ¦  «        dd	gddgd	dgd	dgddgdd	ggk    sJ ‚t          t          t          d
d¦  «        ¦  «        ¦  «        d	k    sJ ‚t          t          t          d
d¦  «        ¦  «        ¦  «        dk    sJ ‚g i dfD ]%}t          t          |¦  «        ¦  «        g gk    sJ ‚Œ&t          t          |d¦  «        ¦  «        g gk    sJ ‚t          t          |d	¦  «        ¦  «        g k    sJ ‚t          t          |d¦  «        ¦  «        g k    sJ ‚d„ Št	          ˆfd„¦  «        t          d¦  «        k    sJ ‚t          t          d„ ¦  «         d S )N)ÚabbyÚabybÚaybbÚbabyÚbaybÚbbayÚbbyaÚbyabÚbybaÚyabbÚybabÚybbac                 ó8   — g | ]}d                       |¦  «        ‘ŒS rR  r3  rS  s     rV   r:  z.test_multiset_permutations.<locals>.<listcomp>–  s"   € Ð>Ð>Ð>˜1ˆB�GŠG�A‰JŒJÐ>Ð>Ð>rf   rb  c                 ó8   — g | ]}d                       |¦  «        ‘ŒS rR  r3  rS  s     rV   r:  z.test_multiset_permutations.<locals>.<listcomp>—  s"   € ÐHÐHÐH˜1ˆB�GŠG�A‰JŒJÐHÐHÐHrf   rŽ   r`   r   rÀ   r_   rË   rp   rY   ra   c                  ó’   — t          dd¦  «        D ]5} t          | ¦  «         t          g d¢| ¦  «        D ]}t          |¦  «         ŒŒ6d S )Nr_   rú   )r   r   r_   r   r_   )r—   Úprintr+   )rT  r%  s     rV   Útestz(test_multiset_permutations.<locals>.test¤  s]   € Ý�q˜!‘”ð 	ð 	ˆAÝ�!‰HŒHˆHÝ*¨?¨?¨?¸AÑ>Ô>ð ð �Ý�a‘”��ðð	ð 	rf   c                  ó   •—  ‰ ¦   «         S rà   re   )ro  s   €rV   rs   z,test_multiset_permutations.<locals>.<lambda>©  s   ø€ ˜4˜4™6œ6€ rf   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                  ó@   — t          t          dddœ¦  «        ¦  «        S )Nrp   ra   r«   )rR   r+   re   rf   rV   rs   z,test_multiset_permutations.<locals>.<lambda>Ñ  s   € �tÕ$9¸aÀB¸-¸-Ñ$HÔ$HÑIÔI€ rf   )r+   r(   rR   r·   r   r   rJ   r   )r?  Únulro  s     @rV   Útest_multiset_permutationsrs  “  sX  ø€ ð+ð +ð +€Cà>Ð>Õ 5°fÑ =Ô =Ð>Ñ>Ô>À#ÒEÐEÐEÐEØHÐHÕ 5µh¸vÑ6FÔ6FÑ GÔ GÐHÑHÔHÈCÒOÐOÐOÐOÝÕ% i i i°Ñ3Ô3Ñ4Ô4¸!¸Q¸¸Ò@Ð@Ð@Ð@ÝÕ% i i i°Ñ3Ô3Ñ4Ô4Ø	
ˆAˆ��A�˜˜A˜  A ¨¨A¨°°A°ð98ò 8ð 8ð 8ð 8å�tÕ)¨#¨qÑ1Ô1Ñ2Ô2Ñ3Ô3°qÒ8Ð8Ð8Ð8Ý�tÕ)¨#¨qÑ1Ô1Ñ2Ô2Ñ3Ô3°qÒ8Ð8Ð8Ð8Ø�B˜ˆ|ð 8ð 8ˆÝÕ)¨#Ñ.Ô.Ñ/Ô/°B°4Ò7Ð7Ð7Ð7Ð7ÝÕ% c¨1Ñ-Ô-Ñ.Ô.°2°$Ò6Ð6Ð6Ð6åÕ% c¨1Ñ-Ô-Ñ.Ô.°"Ò4Ð4Ð4Ð4ÝÕ% c¨2Ñ.Ô.Ñ/Ô/°2Ò5Ð5Ð5Ð5ðð ð õ
 �>�>�>�>Ñ"Ô"¥fð '.ñ ''ô ''ò 'ð 'ð 'ð 'õP �:ÐIÐIÑJÔJÐJÐJÐJrf   c            	      ó   — i gdi fgg} t          d¦  «        D �]}t          t          d|¬¦  «        ¦  «        | |         k    sJ ‚t          t          dd|¬¦  «        ¦  «        | |         k    sJ ‚t          t          ddd|¬¦  «        ¦  «        | |         k    sJ ‚t          t          ddd |¬¦  «        ¦  «        | |         k    sJ ‚t          t          dd d|¬¦  «        ¦  «        | |         k    sJ ‚t          t          ddd|¬¦  «        ¦  «        | |         k    sJ ‚�Œ
t          t          dd¬¦  «        ¦  «        ddidddœd	ddœddigk    sJ ‚t          t          dd¬¦  «        ¦  «        ddidddd
œdddœddidddœd	ddœddigk    sJ ‚t          t          dd	d¬¦  «        ¦  «        d	diddddœdddœdddœgcxk    r d„ t          dd	d¬¦  «        D ¦   «         k    sn J ‚t          t          t          d¦  «        d¬¦  «        ¦  «        ddidddœgk    sJ ‚t          t          d	d¬¦  «        ¦  «        dddœddidddœdd	igcxk    rd„ t          d	¦  «        D ¦   «         k    sn J ‚t          dd¦  «        D ]I}d}t	          |¦  «        D ] \  }}|t          ||¦  «        k    sJ ‚|dz  }Œ!|t          |¦  «        k    sJ ‚ŒJd S )Nr   r`   )Úsizer_   rb   )Úkrp   rl   rˆ   rƒ   rŠ   rû   )rv  r.  r  rŒ   r‹   c                 óŽ   — g | ]B}t          d „ |D ¦   «         ¦  «        r't          |                     ¦   «         ¦  «        dk    ¯@|‘ŒCS )c              3   ó"   K  — | ]
}|d k    V — ŒdS )rˆ   Nre   ©r5  rv  s     rV   r7  z-test_partitions.<locals>.<listcomp>.<genexpr>ç  s&   è è € Ð1DÐ1D¸Q°!°q²&Ð1DÐ1DÐ1DÐ1DÐ1DÐ1Drf   rp   )ÚallÚsumÚvaluesrS  s     rV   r:  z#test_partitions.<locals>.<listcomp>æ  s]   € ð D!ð D!ð D!Ø­cÐ1DÐ1DÀ!Ð1DÑ1DÔ1DÑ.DÔ.DðD!å�—’‘
”
‰OŒO˜aÒÐð 	
ØÐÐrf   )r.  c                 óD   — g | ]}t          d „ |D ¦   «         ¦  «        ¯|‘ŒS )c              3   ó"   K  — | ]
}|d k    V — ŒdS )rp   Nre   ry  s     rV   r7  z-test_partitions.<locals>.<listcomp>.<genexpr>ï  s&   è è € Ð':Ð':°1¨¨QªÐ':Ð':Ð':Ð':Ð':Ð':rf   )rz  rS  s     rV   r:  z#test_partitions.<locals>.<listcomp>î  sD   € ð 8<ð 8<ð 8<Ø¥CÐ':Ð':¸Ð':Ñ':Ô':Ñ$:Ô$:ð8<Ø	ð8<ð 8<ð 8<rf   )r—   rR   r.   rI   r   r   r   )r?  rT  Únr.  Úqs        rV   Útest_partitionsr�  Ô  sõ  € Øˆ4�1�b�'�Ð
€CÝ�1‰XŒXð ;ñ ;ˆÝ•J˜q qÐ)Ñ)Ô)Ñ*Ô*¨c°!¬fÒ4Ð4Ð4Ð4Ý•J˜q !¨!Ð,Ñ,Ô,Ñ-Ô-°°Q´Ò7Ð7Ð7Ð7Ý•J˜q ! Q¨QÐ/Ñ/Ô/Ñ0Ô0°C¸´FÒ:Ð:Ð:Ð:Ý•J˜q ! T°Ð2Ñ2Ô2Ñ3Ô3°s¸1´vÒ=Ð=Ð=Ð=Ý•J˜q $¨°Ð2Ñ2Ô2Ñ3Ô3°s¸1´vÒ=Ð=Ð=Ð=Ý•J˜q ! Q¨QÐ/Ñ/Ô/Ñ0Ô0°C¸´FÒ:Ð:Ð:Ð:Ñ:å•
˜1 Ð"Ñ"Ô"Ñ#Ô#Ø	
ˆAˆ�A˜!�� !¨˜l˜l¨Q°¨Fð(4ò 4ð 4ð 4ð 4õ •
˜1 Ð"Ñ"Ô"Ñ#Ô#Ø	
ˆAˆ�A˜! Ð"Ð"¨¨a L L°1°a°&¸aÀA¸,¸,Ø�!ˆˆ�q˜!�fð(ò ð ð ð õ •
˜1  QÐ'Ñ'Ô'Ñ(Ô(Ø	
ˆAˆ�A˜! Ð"Ð"¨¨a L L°a¸A°,°,ð-@ð !ð !ò !ð !ðD!ð D!Ý˜a 1¨Ð*Ñ*Ô*ðD!ñ D!ô D!ò!ð !ð !ð !ð !ð !õ
 •
�1˜Q™4œ4 1Ð%Ñ%Ô%Ñ&Ô&Ø	
ˆAˆ�A˜!��ð+ò ð ð ð õ •
˜1 Ð"Ñ"Ô"Ñ#Ô#Ø�!ˆˆ�q˜!�f !¨˜l˜l¨Q°¨Fð(4ð <ð <ò <ð <ð8<ð 8<Ý˜a‘=”=ð8<ñ 8<ô 8<ò<ð <ð <ð <ð <ð <õ �1�a‰[Œ[ð  ð  ˆØˆÝ$ QÑ'Ô'ð 	ð 	‰DˆAˆqØ� A qÑ)Ô)Ò)Ð)Ð)Ð)Ø�‰FˆAˆAØ•H˜Q‘K”KÒÐÐÐÐð ð  rf   c                  óð   — d„ t          d¦  «        D ¦   «         ddgg d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gk    sJ ‚t          d„ t          d¦  «        D ¦   «         ¦  «        dk    sJ ‚d S )Nc                 ó"   — g | ]}|d d …         ‘ŒS rà   re   rS  s     rV   r:  z*test_binary_partitions.<locals>.<listcomp>   s    € Ð0Ð0Ð0�QˆAˆaˆaˆaŒDÐ0Ð0Ð0rf   rý   rû   r`   )rû   r_   r_   )rˆ   rˆ   r`   )rˆ   rˆ   r_   r_   )rˆ   r`   r`   r`   )rˆ   r`   r`   r_   r_   )rˆ   r`   r_   r_   r_   r_   )rˆ   r_   r_   r_   r_   r_   r_   )r`   r`   r`   r`   r`   )r`   r`   r`   r`   r_   r_   )r`   r`   r`   r_   r_   r_   r_   )r`   r`   r_   r_   r_   r_   r_   r_   )	r`   r_   r_   r_   r_   r_   r_   r_   r_   )
r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   c                 ó"   — g | ]}|d d …         ‘ŒS rà   re   ©r5  Újs     rV   r:  z*test_binary_partitions.<locals>.<listcomp>  s    € Ð4Ð4Ð4˜��!�!�!”Ð4Ð4Ð4rf   é   é$   )r   r·   re   rf   rV   Útest_binary_partitionsr‰  ÿ  sÝ   € Ø0Ð0Õ+¨BÑ/Ô/Ð0Ñ0Ô0°a¸°V¸Y¸Y¸YØˆ	ˆ	�<�<�<   ¨¨¨ØÐÐÐ1Ð1Ð1°?°?°?ØÐÐÐ1Ð1Ð1Ð3KÐ3KÐ3KØ#Ð#Ð#Ð%CÐ%CÐ%Cð	5Eò Eð Eð Eð Eõ Ð4Ð4Õ/°Ñ3Ô3Ð4Ñ4Ô4Ñ5Ô5¸Ò;Ð;Ð;Ð;Ð;Ð;rf   c                  óÌ  — d„ t          dd¦  «        D ¦   «         d„ t          dd¦  «        D ¦   «         k    sJ ‚t          t          d¦  «        ¦  «        g d¢k    sJ ‚t          dd¦  «        D ]`} t          t          | ¦  «        ¦  «        }t          | ¦  «        }|D ]0}|t	          |j        ¦  «        k    sJ ‚|                     ¦   «         }Œ1Œat          t          d„ ¦  «         d S )	Nc           	      ó`   — g | ]+}t          t          t          |¦  «        ¦  «        ¦  «        ‘Œ,S re   )r·   r•   r   rS  s     rV   r:  z"test_bell_perm.<locals>.<listcomp>
  s0   € Ð<Ð<Ð<¨1�C••M !Ñ$Ô$Ñ%Ô%Ñ&Ô&Ð<Ð<Ð<rf   r_   rú   c                 ó,   — g | ]}t          |¦  «        ‘ŒS re   r   rS  s     rV   r:  z"test_bell_perm.<locals>.<listcomp>
  s1   € ð A+ð A+ð A+Ø�	�!‰ŒðA+ð A+ð A+rf   rp   )r°   rÀ   rÄ   rÅ   rÃ   rÂ   rd   c                  ó:   — t          t          d¦  «        ¦  «        S )Nr   )rR   r   re   rf   rV   rs   z test_bell_perm.<locals>.<lambda>  s   € �t¥M°!Ñ$4Ô$4Ñ5Ô5€ rf   )	r—   rR   r   r   r8  Ú
array_formÚnext_trotterjohnsonrJ   r   )r  r%  r  Úbis       rV   Útest_bell_permr‘  	  s,  € Ø<Ð<µ°a¸±´Ð<Ñ<Ô<ð A+ð A+Ý# A q™kœkðA+ñ A+ô A+ò +ð +ð +ð +å•˜aÑ Ô Ñ!Ô!ð &Jð &Jð &Jò Jð Jð Jð Jõ
 �1�a‰[Œ[ð (ð (ˆÝ�˜a™œÑ!Ô!ˆÝ˜!ÑÔˆØð 	(ð 	(ˆBØ�˜qœ|Ñ,Ô,Ò,Ð,Ð,Ð,Ø×%Ò%Ñ'Ô'ˆAˆAð	(õ �:Ð5Ð5Ñ6Ô6Ð6Ð6Ð6rf   c                  óÞ   — g d¢} t          | ¦  «        D ]X\  }}t          t          |dz   ¦  «        ¦  «        }t          |¦  «        |k    sJ ‚t          d„ |D ¦   «         ¦  «        dk    sJ ‚ŒYd S )N)r_   r`   rˆ   rý   é   éL   r_   c                 ó2   — h | ]}t          |¦  «        d z  ’ŒS r…   )r   r…  s     rV   ú	<setcomp>z#test_involutions.<locals>.<setcomp>  s#   € Ð1Ð1Ð1¨!•K ‘N”N AÑ%Ð1Ð1Ð1rf   )Ú	enumeraterR   r    r·   )Úlengthsr  ÚNrT  s       rV   Útest_involutionsrš    sŠ   € Ø#Ð#Ð#€GÝ˜'Ñ"Ô"ð 8ð 8‰ˆˆ1ÝÕ% a¨!¡eÑ,Ô,Ñ-Ô-ˆÝ�1‰vŒv˜Š{ˆ{ˆ{ˆ{ÝÐ1Ð1¨qÐ1Ñ1Ô1Ñ2Ô2°aÒ7Ð7Ð7Ð7Ð7ð8ð 8rf   c                  óH  — t          t          t          t          t          d¦  «        ¦  «        ¦  «        ¦  «        ¦  «        dk    sJ ‚d                     d„ t          d¦  «        D ¦   «         ¦  «        dk    sJ ‚t          t          g d¢¦  «        ¦  «        g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g	k    sJ ‚t          t          g d¢¦  «        ¦  «        g d¢g d¢gk    sJ ‚t          t          d¦  «        ¦  «        t          d¦  «        gk    sJ ‚t
          } t           | d¦  «        ¦  «        g k    sJ ‚d„  | d¦  «        D ¦   «         dgk    sJ ‚d„  | d¦  «        D ¦   «         ddgk    sJ ‚d„  | d¦  «        D ¦   «         dgk    sJ ‚d„  | d ¦  «        D ¦   «         g d!¢k    sJ ‚d"„  | d#¦  «        D ¦   «         g d$¢k    sJ ‚d%„  | d&¦  «        D ¦   «         g d'¢k    sJ ‚t          t          d(gd)gd)gd*gg¦  «        ¦  «        d)gd*gd(gd)ggd)gd(gd*gd)gggk    sJ ‚d S )+Nrb   i	  rY   c              3   ó@   K  — | ]}d                       |¦  «        V — ŒdS r2  r3  rS  s     rV   r7  z$test_derangements.<locals>.<genexpr>$  s,   è è € ÐFÐF !�2—7’7˜1‘:”:ÐFÐFÐFÐFÐFÐFrf   ÚabcdeÚÜbadecbaecdbcaedbcdeabceadbdaecbdeacbdecabeacdbedacbedcacabedcadebcaebdcdaebcdbeacdeabcdebaceabdcebadcedabcedbadabecdaebcdaecbdcaebdcbeadceabdcebadeabcdeacbdebacdebcaeabcdeadbceadcbecabdecbadecdabecdbaedabcedacbedbacedbcarä   )r_   r   rp   r`   )r_   r`   rp   r   )r_   rp   r   r`   )r`   r   rp   r_   )r`   rp   r   r_   )r`   rp   r_   r   )rp   r   r_   r`   )rp   r`   r   r_   )rp   r`   r_   r   )r   r_   r`   r`   )r`   r`   r   r_   )r`   r`   r_   r   Úbar  Úabbc                 ó8   — g | ]}d                       |¦  «        ‘ŒS rR  r3  rS  s     rV   r:  z%test_derangements.<locals>.<listcomp>2  s"   € Ð(Ð(Ð(˜1ˆB�GŠG�A‰JŒJÐ(Ð(Ð(rf   c                 ó8   — g | ]}d                       |¦  «        ‘ŒS rR  r3  rS  s     rV   r:  z%test_derangements.<locals>.<listcomp>3  s"   € Ð)Ð)Ð)˜1ˆB�GŠG�A‰JŒJÐ)Ð)Ð)rf   rY  ÚbcaÚcabc                 ó8   — g | ]}d                       |¦  «        ‘ŒS rR  r3  rS  s     rV   r:  z%test_derangements.<locals>.<listcomp>4  s"   € Ð*Ð*Ð*˜1ˆB�GŠG�A‰JŒJÐ*Ð*Ð*rf   ÚaabbÚbbaac                 ó8   — g | ]}d                       |¦  «        ‘ŒS rR  r3  rS  s     rV   r:  z%test_derangements.<locals>.<listcomp>5  s"   € Ð.Ð.Ð.˜1ˆB�GŠG�A‰JŒJÐ.Ð.Ð.rf   Úaabbcccc)ÚccccaabbÚccccababÚccccabbaÚccccbaabÚccccbabaÚccccbbaac                 ó8   — g | ]}d                       |¦  «        ‘ŒS rR  r3  rS  s     rV   r:  z%test_derangements.<locals>.<listcomp>8  s"   € Ð-Ð-Ð-˜1ˆB�GŠG�A‰JŒJÐ-Ð-Ð-rf   Úaabbccc)ÚcccabbaÚcccababÚcccaabbÚccacbbaÚccacbabÚccacabbÚcbccbaaÚcbccabaÚcbccaabÚbcccbaaÚbcccabaÚbcccaabc                 ó8   — g | ]}d                       |¦  «        ‘ŒS rR  r3  rS  s     rV   r:  z%test_derangements.<locals>.<listcomp><  s"   € Ð+Ð+Ð+˜1ˆB�GŠG�A‰JŒJÐ+Ð+Ð+rf   Úbooks)ÚkbsooÚksbooÚsbkooÚskbooÚoksboÚoskboÚokbsoÚobksoÚoskobÚoksobÚosbokÚobsokrp   r`   r_   )r·   rR   r   r—   r4  rC   )ÚDs    rV   Útest_derangementsrÍ  "  s  € Ý�tÕ)­$­u°Q©x¬x©.¬.Ñ9Ô9Ñ:Ô:Ñ;Ô;¸sÒBÐBÐBÐBØ�7Š7ÐFÐFÕ'<¸WÑ'EÔ'EÐFÑFÔFÑFÔFðòð ð ð õ
 Õ% l l lÑ3Ô3Ñ4Ô4Øˆˆ�l�l�l L L L°,°,°,Øˆˆ�l�l�l L L L°,°,°,ÀÀÀð9Nò Nð Nð Nð Nõ Õ% l l lÑ3Ô3Ñ4Ô4Øˆˆ�l�l�lð9$ò $ð $ð $ð $åÕ% dÑ+Ô+Ñ,Ô,µ°d±´°Ò<Ð<Ð<Ð<å€AÝ���%‘”‰>Œ>˜RÒÐÐÐØ(Ð(   $¡¤Ð(Ñ(Ô(¨T¨FÒ2Ð2Ð2Ð2Ø)Ð)   %¡¤Ð)Ñ)Ô)¨e°U¨^Ò;Ð;Ð;Ð;Ø*Ð*   &¡	¤	Ð*Ñ*Ô*¨v¨hÒ6Ð6Ð6Ð6Ø.Ð.   *¡¤Ð.Ñ.Ô.ð 3ð 3ð 3ò ð ð ð ð .Ð-   )¡¤Ð-Ñ-Ô-ð 2ð 2ð 2ò ð ð ð ð ,Ð+   '¡
¤
Ð+Ñ+Ô+ð 0#ð 0#ð 0#ò #ð #ð #ð #õ Õ%¨ s¨Q¨C°!°°q°cÐ&:Ñ;Ô;Ñ<Ô<Ø
ˆˆqˆc�A�3˜˜Ð ˜s Q C¨!¨¨q¨cÐ2ðA4ò 4ð 4ð 4ð 4ð 4ð 4rf   c                  ó  — d„ } g }t          dd¦  «        D ]<}|                     | | |dd¦  «         | |dd¦  «         | |dd¦  «        f¦  «         Œ=t          |¦  «        t          g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g¦  «        k    sJ ‚d S )Nc           	      óX   — t          t          t          | ||¦  «        ¦  «        ¦  «        S rà   )r·   rR   r,   )r  rv  Úfs      rV   Úcountztest_necklaces.<locals>.countD  s$   € Ý•4�	 ! Q¨Ñ*Ô*Ñ+Ô+Ñ,Ô,Ð,rf   r_   rû   r`   r   rp   )r_   r`   r`   rp   )r`   rp   rp   rb   )rp   rˆ   rˆ   rý   )rˆ   rb   rb   é   )rd   rû   rû   é'   )rb   é   é   é\   )rú   é   é   éÆ   )r—   r  r   )rÑ  r.  rT  s      rV   Útest_necklacesrÚ  C  sñ   € ð-ð -ð -à
€AÝ�1�a‰[Œ[ð <ð <ˆØ	�ŠØ	ˆ5ˆ5��A�q‰>Œ>˜5˜5  A q™>œ>¨5¨5°°A°q©>¬>ð;ñ 	<ô 	<ð 	<ð 	<å�!‰9Œ9�ØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐð ñ ô ò ð ð ð ð ð rf   c                  ób  — t          t          dd¦  «        ¦  «        } t          | ¦  «        t          ddgddgddgddgddgddgddgddgddgddgg
¦  «        k    sJ ‚t          t          dd¦  «        ¦  «        } t          | ¦  «        t          g d¢g d¢g d¢g d	¢g d
¢g d¢g¦  «        k    sJ ‚d S )Nr`   rˆ   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_   )rR   r   r   )Úbcs    rV   Útest_braceletsrÝ  T  s  € Ý	�i˜˜1‰oŒoÑ	Ô	€BÝ�"‰:Œ:�Ø	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆð!
ñ ô ò ð ð ð õ 
�i˜˜1‰oŒoÑ	Ô	€BÝ�"‰:Œ:�ØˆˆØˆˆØˆˆØˆˆØˆˆØˆˆð!ñ ô ò ð ð ð ð ð rf   c                  ó   — t          t          d¦  «        ¦  «        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gk    sJ ‚t          t          t          d¦  «        ¦  «        ¦  «        dk    sJ ‚d S )Nrd   r  )r   r_   r`   rp   rp   )r   r_   r`   rp   r`   )r   r_   r`   rp   r_   )r   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   )r   r_   r`   r   r_   )r   r_   r`   r   r   )r   r_   r_   r_   r_   )r   r_   r_   r_   r   )r   r_   r_   r   r_   )r   r_   r_   r   r   )r   r_   r   r_   r   )r   r_   r   r   r   )r   r   r   r   r   rý   i2  )rR   r!   r·   re   rf   rV   Útest_generate_oriented_forestrß  m  sÞ   € ÝÕ(¨Ñ+Ô+Ñ,Ô,°°°Øˆˆ˜˜˜¨/¨/¨/¸?¸?¸?Øˆˆ˜˜˜¨/¨/¨/¸?¸?¸?Øˆˆ˜˜˜¨/¨/¨/¸?¸?¸?Øˆˆ˜˜˜¨/¨/¨/¸?¸?¸?Øˆˆ˜˜˜¨/¨/¨/ð1;ò ;ð ;ð ;ð ;õ �tÕ,¨RÑ0Ô0Ñ1Ô1Ñ2Ô2°dÒ:Ð:Ð:Ð:Ð:Ð:rf   c            
      óž  — t          t          d¦  «        ¦  «        } t          | ¦  «        t          t          | d d d…         | dd d…         ¦  «        ¦  «        k    sJ ‚t          | d¦  «        t	          | d d…         ¦  «        t	          | dd …         ¦  «        gk    sJ ‚t          t          d„ ¦  «         t          t          d„ ¦  «         d S )Nrý   r`   r_   rd   c                  óV   — t          t          t          d¦  «        ¦  «        d¦  «        S )Nrý   rp   ©r;   rR   r—   re   rf   rV   rs   z test_unflatten.<locals>.<lambda>{  s   € �y­­e°B©i¬i©¬¸!Ñ<Ô<€ rf   c                  óV   — t          t          t          d¦  «        ¦  «        d¦  «        S )Nrý   rk   râ  re   rf   rV   rs   z test_unflatten.<locals>.<lambda>|  s   € �y­­e°B©i¬i©¬¸"Ñ=Ô=€ rf   )rR   r—   r;   Úzipr8  rJ   r   )Úrs    rV   Útest_unflattenræ  w  s¸   € Ý�U�2‰YŒY‰Œ€AÝ�Q‰<Œ<�4¥ A c c¨ c¤F¨A¨a¨d°¨d¬GÑ 4Ô 4Ñ5Ô5Ò5Ð5Ð5Ð5Ý�Q˜‰?Œ?�u Q r¨ r¤U™|œ|­U°1°Q°R°R´5©\¬\Ð:Ò:Ð:Ð:Ð:Ý
�:Ð<Ð<Ñ=Ô=Ð=Ý
�:Ð=Ð=Ñ>Ô>Ð>Ð>Ð>rf   c                  óÆ  — t          g dg¦  «        g k    sJ ‚t          t          t          d¦  «        ¦  «        ¦  «        g d¢k    sJ ‚t          t          t          d¦  «        ¦  «        t          t          d¦  «        ¦  «        ¦  «        g d¢k    sJ ‚t          g d¢g d¢¦  «        ddgk    sJ ‚t          g d¢g d¢¦  «        dgk    sJ ‚t          g dg¦  «        g k    sJ ‚t          t          t          d¦  «        ¦  «        ¦  «        g d¢k    sJ ‚t          t          t          d¦  «        ¦  «        t          t          d¦  «        ¦  «        ¦  «        g d¢k    sJ ‚t          t          t          d¦  «        ¦  «        t          t          d¦  «        ¦  «        ¦  «        g k    sJ ‚t          g d¢g d	¢¦  «        ddgk    sJ ‚t          g d¢g d
¢¦  «        dgk    sJ ‚d S )Nr_   rp   r°   rˆ   rƒ   )r_   r`   rd   r`   )r_   rp   rd   )rü   r`   rp   )rü   rú   rp   )r   rR   r—   r   re   rf   rV   Útest_common_prefix_suffixrè    sÍ  € Ý˜˜a˜SÑ!Ô! RÒ'Ð'Ð'Ð'Ý��e A™hœh™œÑ(Ô(¨I¨I¨IÒ5Ð5Ð5Ð5Ý��e A™hœh™œ­­e°A©h¬h©¬Ñ8Ô8¸I¸I¸IÒEÐEÐEÐEÝ˜˜˜ I I IÑ.Ô.°1°a°&Ò8Ð8Ð8Ð8Ý˜˜˜ I I IÑ.Ô.°1°#Ò5Ð5Ð5Ð5å˜˜a˜SÑ!Ô! RÒ'Ð'Ð'Ð'Ý��e A™hœh™œÑ(Ô(¨I¨I¨IÒ5Ð5Ð5Ð5Ý��e A™hœh™œ­­e°A©h¬h©¬Ñ8Ô8¸I¸I¸IÒEÐEÐEÐEÝ��e A™hœh™œ­­e°A©h¬h©¬Ñ8Ô8¸BÒ>Ð>Ð>Ð>Ý˜˜˜ I I IÑ.Ô.°1°a°&Ò8Ð8Ð8Ð8Ý˜˜˜ I I IÑ.Ô.°1°#Ò5Ð5Ð5Ð5Ð5Ð5rf   c                  ó  — t          g d¢¦  «        dk    sJ ‚t          d¦  «        dk    sJ ‚t          d¦  «        dk    sJ ‚t          dd¬¦  «        dk    sJ ‚t          d¦  «        dk    sJ ‚t          d	t          ¬
¦  «        dk    sJ ‚d S )NrÃ   r°   rÂ   rÀ   F)ÚdirectedÚabaÚaab)Úbbr  rZ  rË   rO   )rZ  rË   rí  r  )r'   r·   re   rf   rV   Útest_minlexrî  Ž  s¬   € Ý�)�)�)ÑÔ 	Ò)Ð)Ð)Ð)Ý�)ÑÔ 	Ò)Ð)Ð)Ð)Ý�)ÑÔ 	Ò)Ð)Ð)Ð)Ý�) eÐ,Ñ,Ô,°	Ò9Ð9Ð9Ð9Ý�%‰=Œ=˜EÒ!Ð!Ð!Ð!ÝÐ)­sÐ3Ñ3Ô3Ð7NÒNÐNÐNÐNÐNÐNrf   c                  óª  ‡ ‡— t          t          t          t          ft          d¬¦  «        ¦  «        t          t          gt          t          gfv sJ ‚t          t          t          t          ft          d¬¦  «        ¦  «        t          t          t          t          ft          d¬¦  «        ¦  «        k    sJ ‚t          t          t          t          f¦  «        ¦  «        t          t          gk    sJ ‚g d¢g d¢g d¢dgdggd„ d	„ fg\  ŠŠ t          t          ‰‰ dd¬
¦  «        ¦  «        dgdgg d¢g d¢g d¢gk    sJ ‚t          t          ˆ ˆfd„¦  «         d S )NF)Údefaultr¡   rÁ   r´   r`   r_   c                 ó    — t          | ¦  «        S rà   )r·   ræ   s    rV   rs   ztest_ordered.<locals>.<lambda>ž  s   € �C ™FœF€ rf   c                 ó    — t          | ¦  «        S rà   )r{  ræ   s    rV   rs   ztest_ordered.<locals>.<lambda>ž  s   € ­c°!©f¬f€ rf   ©rð  Úwarnc                  óD   •— t          t          ‰‰ dd¬¦  «        ¦  «        S )NFTró  )rR   r	   ©ÚkeysÚseqs   €€rV   rs   ztest_ordered.<locals>.<lambda>¡  s$   ø€ Ý•˜˜T¨5°tÐ<Ñ<Ô<Ñ=Ô=ð rf   )rR   r	   rT   rS   ÚhashrJ   r   rö  s   @@rV   Útest_orderedrú  —  sq  øø€ Ý•��A˜¥¨eÐ4Ñ4Ô4Ñ5Ô5½1½a¸&Å1ÅaÀ&Ð9IÐIÐIÐIÐIÝ•��A˜¥¨eÐ4Ñ4Ô4Ñ5Ô5Ý�W•a��V�T¨5Ð1Ñ1Ô1Ñ2Ô2ò3ð 3ð 3ð 3å•��A˜‘”Ñ Ô ¥Q­ FÒ*Ð*Ð*Ð*à�)�)˜Y˜Y˜Y¨	¨	¨	°A°3¸¸Ð<Ø"Ð"Ð$4Ð$4Ð5ð7�I€Cˆå•˜˜T¨5°uÐ=Ñ=Ô=Ñ>Ô>Ø
ˆˆqˆc�9�9�9˜i˜i˜i¨¨¨Ð3ò4ð 4ð 4ð 4å
�:ð >ð >ð >ð >ð >ñ ?ô ?ð ?ð ?ð ?rf   c                  ó†  — t          g ¦  «        g k    sJ ‚t          dg¦  «        dggk    sJ ‚t          ddg¦  «        dgdggk    sJ ‚t          g d¢¦  «        dgddggk    sJ ‚t          g d¢¦  «        ddgdggk    sJ ‚t          g d¢¦  «        dgdgdggk    sJ ‚ddlm}  t          g d¢| ¦  «        ddgdggk    sJ ‚d S )Nr_   r³   r`   r¡   )r`   r_   r_   r   ©Últ)r5   Úoperatorrý  rü  s    rV   Ú	test_runsrÿ  ¥  s  € Ý�‰8Œ8�rŠ>ˆ>ˆ>ˆ>Ý��‰9Œ9˜!˜˜ÒÐÐÐÝ��A�‰<Œ<˜Q˜C ! ˜:Ò%Ð%Ð%Ð%Ý�	�	�	‰?Œ? ˜s Q¨ F˜mÒ+Ð+Ð+Ð+Ý�	�	�	‰?Œ?  1˜v¨ s˜mÒ+Ð+Ð+Ð+Ý�	�	�	‰?Œ? ˜s Q C¨!¨˜oÒ-Ð-Ð-Ð-ØÐÐÐÐÐÝ�	�	�	˜2ÑÔ A q 6¨A¨3 -Ò/Ð/Ð/Ð/Ð/Ð/rf   c                  óX  — t          t          dd¦  «        ¦  «        } t          | dg¦  «        g d¢g d¢gk    sJ ‚t          | d¦  «        ddgk    sJ ‚t          | d¦  «        ddgk    sJ ‚t          | ddgf¦  «        ddd	dgfd
dddgfgk    sJ ‚t          | ddgf¦  «        dd	dgfdddgfgk    sJ ‚t          | ddgdf¦  «        ddd	gdfd
ddgdfgk    sJ ‚t          t          | ¦  «        dgddgf¦  «        dgddgfd
gddgffk    sJ ‚t          t          | ¦  «        dgddf¦  «        dgddfd
gddffk    sJ ‚t          t          t          d¦  «        ¦  «        dd	gdhdg¦  «        ddg d¢d
dhdggk    sJ ‚t	          t
          d„ ¦  «         t	          t
          d„ ¦  «         d S )Nr_   rü   rˆ   rõ   )rd   rb   rú   rû   )rˆ   r®   r`   rp   rd   rb   rú   rû   r…   rl   )rd   rb   r	  rþ   r=  )r_   r†   r_   r   r  )rú   )rû   rü   rý   r~   c                  ó(   — t          ddgdg¦  «        S )Nr   r_   ra   ©r2   re   rf   rV   rs   ztest_reshape.<locals>.<lambda>Ä  s   € �w¨¨1 v°¨tÑ4Ô4€ rf   c                  ó(   — t          ddgdg¦  «        S )Nr   r_   rp   r  re   rf   rV   rs   ztest_reshape.<locals>.<lambda>Å  s   € �w¨¨1 v°¨sÑ3Ô3€ rf   )rR   r—   r2   r8  rJ   r   )rø  s    rV   Útest_reshaper  °  s‚  € Ý
�u�Q˜‰{Œ{Ñ
Ô
€CÝ�3˜˜ÑÔØ	ˆˆ�|�|�|Ð$ò%ð %ð %ð %å�3˜ÑÔØ	�|Ð$ò%ð %ð %ð %å�3˜ÑÔØ	�|Ð$ò%ð %ð %ð %å�3˜˜Q˜C˜Ñ!Ô!Ø
ˆQ��A�ˆ˜!˜Q  A ˜Ð(ò)ð )ð )ð )å�3˜ ˜s˜Ñ$Ô$Ø
�1�a�&Ð	˜F Q¨ FÐ+Ð,ò-ð -ð -ð -å�3˜˜Q˜C ˜Ñ$Ô$Ø
ˆa�ˆV�Qˆ˜!˜a ˜V Q˜Ð(ò)ð )ð )ð )å•5˜‘:”: !  a¨ Ð0Ñ1Ô1Øˆ3��6Ð
Ð	   Q¨Ð/Ð1Ð2ò3ð 3ð 3ð 3å•5˜‘:”:   Q¨˜~Ñ.Ô.Øˆ#ˆq�&Ð	˜Q˜C  FÐ+Ð,ò-ð -ð -ð -å•4�˜b™	œ	‘?”? Q¨¨¨a¨S°,Ð$?Ñ@Ô@Ø
ˆQ�	�	�	˜A˜q˜6Ð#6Ð	7Ð8ò9ð 9ð 9ð 9å
�:Ð4Ð4Ñ5Ô5Ð5Ý
�:Ð3Ð3Ñ4Ô4Ð4Ð4Ð4rf   c                  óŠ  ‡ — t          t          d„ t          d¦  «        D ¦   «         ¦  «        ¦  «        ddidddœddidddœddigk    sJ ‚t          t          d„ t          d¦  «        D ¦   «         ¦  «        ¦  «        d	dgk    sJ ‚t          t          d
¦  «        ¦  «        d
gk    sJ ‚t          t          d¦  «        ¦  «        t          d¦  «        k    sJ ‚t          t          dgddgdgg¦  «        ¦  «        dgddggk    sJ ‚t          t          t	          d„ dgddfD ¦   «         ¦  «        ¦  «        ¦  «        dgddfddgdfdddgfgk    sJ ‚t          t          dddddgdgdgdgdgg	¦  «        ¦  «        ddddgdgdggk    sJ ‚dgŠ t          t          ˆ fd„¦  «         dggŠ t          t          ˆ fd„¦  «         d S )Nc              3   ó   K  — | ]}|V — Œd S rà   re   r9  s     rV   r7  ztest_uniq.<locals>.<genexpr>É  s"   è è € Ð.Ð.˜1�QÐ.Ð.Ð.Ð.Ð.Ð.rf   rˆ   r_   rŠ   r`   rl   c              3   ó    K  — | ]	}|d z  V — Œ
dS )r`   Nre   )r5  rT   s     rV   r7  ztest_uniq.<locals>.<genexpr>Ë  s&   è è € Ð-Ð-˜q�Q˜‘UÐ-Ð-Ð-Ð-Ð-Ð-rf   rd   r   rË   ÚababcrY  c              3   ó   K  — | ]}|V — Œd S rà   re   rS  s     rV   r7  ztest_uniq.<locals>.<genexpr>Ï  s"   è è € Ð!9Ð!9¨ !Ð!9Ð!9Ð!9Ð!9Ð!9Ð!9rf   rp   c                  ó:   •— ˆ fd„t          ‰ ¦  «        D ¦   «         S )Nc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS re   ©Úremove©r5  rT  rÐ  s     €rV   r:  z/test_uniq.<locals>.<lambda>.<locals>.<listcomp>Ô  ó#   ø€ Ð!?Ð!?Ð!?°! !§(¢(¨1¡+¤+Ð!?Ð!?Ð!?rf   ©r<   ©rÐ  s   €rV   rs   ztest_uniq.<locals>.<lambda>Ô  ó"   ø€ Ð!?Ð!?Ð!?Ð!?µt¸A±w´wÐ!?Ñ!?Ô!?€ rf   c                  ó:   •— ˆ fd„t          ‰ ¦  «        D ¦   «         S )Nc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS re   r  r  s     €rV   r:  z/test_uniq.<locals>.<lambda>.<locals>.<listcomp>Ö  r  rf   r  r  s   €rV   rs   ztest_uniq.<locals>.<lambda>Ö  r  rf   )rR   r<   r.   r—   r/   rJ   ÚRuntimeErrorr  s   @rV   Ú	test_uniqr  È  s)  ø€ Ý•Ð.Ð.¥
¨1¡¤Ð.Ñ.Ô.Ñ.Ô.Ñ/Ô/Ø
ˆQˆ�Q˜1��  1˜v¨1° | |°a¸°VÐ<ò=ð =ð =ð =å•Ð-Ð-¥E¨!¡H¤HÐ-Ñ-Ô-Ñ-Ô-Ñ.Ô.°1°a°&Ò8Ð8Ð8Ð8Ý•�S‘	”	‰?Œ?˜s˜eÒ#Ð#Ð#Ð#Ý•�W‘”ÑÔ¥$ u¡+¤+Ò-Ð-Ð-Ð-Ý•�q�c˜A˜q˜6 A 3Ð'Ñ(Ô(Ñ)Ô)¨q¨c°A°q°6¨]Ò:Ð:Ð:Ð:Ý••\Ð!9Ð!9¨q¨c°1°a¨[Ð!9Ñ!9Ô!9Ñ9Ô9Ñ:Ô:Ñ;Ô;Øˆ#ˆq�!ˆ�q˜1˜#˜q�k A q¨1¨# ;Ð/ò0ð 0ð 0ð 0å•�a˜˜A˜q 1 #¨ s¨Q¨C°!°°q°cÐ:Ñ;Ô;Ñ<Ô<Ø	
ˆAˆq�1�#˜�s˜Q˜CÐ ò!ð !ð !ð !à	
ˆ€AÝ
�<Ð?Ð?Ð?Ð?Ñ@Ô@Ð@Ø
ˆˆ€AÝ
�<Ð?Ð?Ð?Ð?Ñ@Ô@Ð@Ð@Ð@rf   c            	      óž  ‡ ‡— t          t          t          ddd¬¦  «        ¦  «        ¦  «        dk    sJ ‚t          t          t          ddd¬¦  «        ¦  «        ¦  «        dk    sJ ‚t          t          t          ddd¬¦  «        ¦  «        ¦  «        dk    sJ ‚t          t          t          ddd	¬¦  «        ¦  «        ¦  «        d
k    sJ ‚t          t          t          ddd ¬¦  «        ¦  «        ¦  «        dk    sJ ‚d„ Š t          ˆ fd„¦  «        t	          d¦  «        k    sJ ‚d„ Št          ˆfd„¦  «        t	          d¦  «        k    sJ ‚d S )NÚ1123r`   r_   r   r<  r~   rˆ  rý   r   rd   rp   c                  ó~   — dD ]9} t          d| ¦  «         t          g d¢d| ¬¦  «        D ]}t          d|¦  «         ŒŒ:d S )N©Nr   r_   rý   r~   ú	ordered =r�   r`   r   ú   )rn  r&   ©Ú
orderedvalr%  s     rV   Útest1ztest_kbins.<locals>.test1à  sa   € Ø.ð 	 ð 	 ˆJÝ�+˜zÑ*Ô*Ð*Ý˜9˜9˜9 a°Ð<Ñ<Ô<ð  ð  �Ý�e˜Q‘”��ð ð	 ð 	 rf   c                  ó   •—  ‰ ¦   «         S rà   re   )r  s   €rV   rs   ztest_kbins.<locals>.<lambda>å  ó   ø€ ˜E˜E™GœG€ rf   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                  ó®   — dD ]Q} t          d| ¦  «         t          t          t          d¦  «        ¦  «        d| ¬¦  «        D ]}t          d|¦  «         ŒŒRd S )Nr  r  rp   r`   r   r  )rn  r&   rR   r—   r  s     rV   Útest2ztest_kbins.<locals>.test2ý  si   € Ø.ð 	 ð 	 ˆJÝ�+˜zÑ*Ô*Ð*Ý�4¥ a¡¤™>œ>¨1°jÐAÑAÔAð  ð  �Ý�e˜Q‘”��ð ð	 ð 	 rf   c                  ó   •—  ‰ ¦   «         S rà   re   )r#  s   €rV   rs   ztest_kbins.<locals>.<lambda>  r!  rf   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·   rR   r&   r   r   )r  r#  s   @@rV   Ú
test_kbinsr%  Ù  s”  øø€ Ý�t•E˜& !¨QÐ/Ñ/Ô/Ñ0Ô0Ñ1Ô1°RÒ7Ð7Ð7Ð7Ý�t•E˜& !¨RÐ0Ñ0Ô0Ñ1Ô1Ñ2Ô2°bÒ8Ð8Ð8Ð8Ý�t•E˜& !¨RÐ0Ñ0Ô0Ñ1Ô1Ñ2Ô2°bÒ8Ð8Ð8Ð8Ý�t•E˜& !¨QÐ/Ñ/Ô/Ñ0Ô0Ñ1Ô1°QÒ6Ð6Ð6Ð6Ý�t•E˜& !¨TÐ2Ñ2Ô2Ñ3Ô3Ñ4Ô4¸Ò9Ð9Ð9Ð9ð ð  ð  õ
 Ð#Ð#Ð#Ð#Ñ$Ô$­ð 0ñ ) ô ) ò  ð  ð  ð  ð0 ð  ð  õ
 Ð#Ð#Ð#Ð#Ñ$Ô$­ð "0ñ ") ô ") ò " ð " ð " ð " ð " ð " rf   c                  ó$  — t          t          ¦   «         ¦  «        du sJ ‚t          t          t          d¦  «        ¦  «        ¦  «        du sJ ‚t          g d¢¦  «        du sJ ‚t          dgdgg¦  «        du sJ ‚t          dgdgg¦  «        du sJ ‚d S )NFrp   r¡   Tr_   r`   )r#   r•   rR   r—   re   rf   rV   Útest_has_dupsr'  '  s§   € Ý•C‘E”E‰?Œ?˜eÐ#Ð#Ð#Ð#Ý•D�˜q™œ‘N”NÑ#Ô# uÐ,Ð,Ð,Ð,Ý�I�I�IÑÔ $Ð&Ð&Ð&Ð&Ý�a�S˜1˜#�JÑÔ 4Ð'Ð'Ð'Ð'Ý�a�S˜1˜#�JÑÔ 5Ð(Ð(Ð(Ð(Ð(Ð(rf   c                  óÊ   — t          dg d¢¦  «        ddgddgdggk    sJ ‚t          dg d¢d¦  «        ddgddgdggk    sJ ‚dg d¢f} t          dg| ¢R Ž ddgddgdggk    sJ ‚d S )	Nr�  )r_   r   r_   r`   r   r  ÚerË   rZ  Údrp   )r   )Úoutputs    rV   Útest__partitionr,  /  sÀ   € Ý�g˜˜˜Ñ/Ô/Ø	ˆcˆ
�S˜#�J  ð4'ò 'ð 'ð 'ð 'å�g˜˜˜°Ñ2Ô2Ø	ˆcˆ
�S˜#�J  ð7'ò 'ð 'ð 'ð 'à���Ð!€FÝ�gÐ' Ð'Ð'Ð'¨S°#¨J¸¸c¸
ÀSÀEÐ+JÒJÐJÐJÐJÐJÐJrf   c                  óÌ  — ddl m}  t          }t           |dd¦  «        ¦  «        g gk    sJ ‚t           |dd¦  «        ¦  «        g gk    sJ ‚t	          dd¦  «        D ]…}d gt          t	          d|¦  «        ¦  «        z   D ]a}t          d„  |||d¦  «        D ¦   «         ¦  «        t          d„  |||d¦  «        D ¦   «         ¦  «        cxk    r | ||¦  «        k    sn J ‚ŒbŒ†d S )Nr   )ÚnTr_   rú   c              3   ó   K  — | ]}d V — ŒdS ©r_   Nre   r9  s     rV   r7  z*test_ordered_partitions.<locals>.<genexpr>@  ó"   è è € Ð*Ð*˜!�AÐ*Ð*Ð*Ð*Ð*Ð*rf   c              3   ó   K  — | ]}d V — ŒdS r0  re   r9  s     rV   r7  z*test_ordered_partitions.<locals>.<genexpr>A  r1  rf   )Ú%sympy.functions.combinatorial.numbersr.  r>   rR   r—   r{  )r.  rÐ  rT  r†  s       rV   Útest_ordered_partitionsr4  8  s;  € Ø8Ð8Ð8Ð8Ð8Ð8Ý€AÝ���!�Q‘”‰=Œ=˜R˜DÒ Ð Ð Ð Ý���!�Q‘”‰=Œ=˜R˜DÒ Ð Ð Ð Ý�1�a‰[Œ[ð ð ˆØ��$�u Q¨™{œ{Ñ+Ô+Ñ+ð 	ð 	ˆAåÐ*Ð*˜q˜q  A q™zœzÐ*Ñ*Ô*Ñ*Ô*ÝÐ*Ð*˜q˜q  A q™zœzÐ*Ñ*Ô*Ñ*Ô*ðð ò ð à��1�a‘”òð ð ð ð ð ð ð	ðð rf   c                  ó:  — t          t          d¦  «        ¦  «        ddgddggk    sJ ‚t          t          t          d¦  «        ¦  «        ¦  «        g d¢g d¢g d¢gk    sJ ‚t          t          t          d¦  «        d¬	¦  «        ¦  «        g d¢g d¢g d¢gk    sJ ‚d S )
Nr  rË   r  rp   r°   rÃ   rÄ   ra   )Údir)rR   r?   r—   re   rf   rV   Útest_rotationsr7  E  s­   € Ý•	˜$‘”Ñ Ô  c¨3 Z°#°s°Ð$<Ò<Ð<Ð<Ð<Ý•	�% ™(œ(Ñ#Ô#Ñ$Ô$¨¨¨°I°I°I¸y¸y¸yÐ(IÒIÐIÐIÐIÝ•	�% ™(œ(¨Ð+Ñ+Ô+Ñ,Ô,°°°¸I¸I¸IÀyÀyÀyÐ0QÒQÐQÐQÐQÐQÐQrf   c                  ó²  — t          d¦  «        ddgk    sJ ‚t          dd¦  «        g d¢k    sJ ‚t          dd¬¦  «        dk    sJ ‚t          ddd¬¦  «        dk    sJ ‚t          t          dd	¦  «        ¦  «        g d
¢k    sJ ‚t          t          ddd¬¦  «        ¦  «        g d¢k    sJ ‚t          t          d„ ¦  «         t          t          d„ ¦  «         d S )Nrp   r_   r�   T)ÚstrÚ11Ú011r`   rz  )rm   r«   r¼   r    rY   )Ú00Ú01Ú10r:  c                  ó    — t          d¦  «        S )Ng      à¿©r$   re   rf   rV   rs   ztest_ibin.<locals>.<lambda>R  s   € �t C™yœy€ rf   c                  ó"   — t          dd¦  «        S )Nr`   r_   r@  re   rf   rV   rs   ztest_ibin.<locals>.<lambda>S  s   € �t A q™zœz€ rf   )r$   rR   rJ   r   re   rf   rV   Ú	test_ibinrB  K  sý   € Ý�‰7Œ7�q˜!�fÒÐÐÐÝ��1‰:Œ:˜˜˜Ò"Ð"Ð"Ð"Ý��tÐÑÔ Ò$Ð$Ð$Ð$Ý��1˜$ÐÑÔ 5Ò(Ð(Ð(Ð(Ý•�Q˜‘”ÑÔÐ#CÐ#CÐ#CÒCÐCÐCÐCÝ•�Q˜ Ð%Ñ%Ô%Ñ&Ô&Ð*BÐ*BÐ*BÒBÐBÐBÐBÝ
�:Ð(Ð(Ñ)Ô)Ð)Ý
�:Ð)Ð)Ñ*Ô*Ð*Ð*Ð*rf   c                  ór  — t          d¦  «        du sJ ‚t          d¦  «        du sJ ‚t          d ¦  «        du sJ ‚ G d„ dt          ¦  «        } t           | ¦   «         ¦  «        du sJ ‚ G d„ dt          ¦  «        }t           |¦   «         ¦  «        du sJ ‚ G d	„ d
¦  «        }t           |¦   «         ¦  «        du sJ ‚ G d„ d¦  «        }t           |¦   «         ¦  «        du sJ ‚ G d„ d¦  «        }t           |¦   «         ¦  «        du sJ ‚ G d„ d|¦  «        }t           |¦   «         ¦  «        du sJ ‚d S )Nr   Fr_   c                   ó   — e Zd ZdS )útest_iterable.<locals>.Test1Nrv   re   rf   rV   ÚTest1rE  [  r{   rf   rF  c                   ó   — e Zd ZdZdS )útest_iterable.<locals>.Test2TN©rw   rx   ry   Ú	_iterablere   rf   rV   ÚTest2rH  `  ó   € € € € € Øˆ	ˆ	ˆ	rf   rK  Tc                   ó   — e Zd ZdS )útest_iterable.<locals>.Test3Nrv   re   rf   rV   ÚTest3rN  e  r{   rf   rO  c                   ó   — e Zd ZdZdS )útest_iterable.<locals>.Test4TNrI  re   rf   rV   ÚTest4rQ  j  rL  rf   rR  c                   ó   — e Zd Zd„ ZdS )útest_iterable.<locals>.Test5c              3   ó   K  — dV — d S )Nr_   re   )Úselfs    rV   Ú__iter__z%test_iterable.<locals>.Test5.__iter__p  s   è è € ØˆGˆGˆGˆGˆGrf   N)rw   rx   ry   rW  re   rf   rV   ÚTest5rT  o  s#   € € € € € ð	ð 	ð 	ð 	ð 	rf   rX  c                   ó   — e Zd ZdZdS )útest_iterable.<locals>.Test6FNrI  re   rf   rV   ÚTest6rZ  u  s   € € € € € Øˆ	ˆ	ˆ	rf   r[  )rA   rB   )rF  rK  rO  rR  rX  r[  s         rV   Útest_iterabler\  V  s	  € Ý�A‰;Œ;˜%ÐÐÐÐÝ�A‰;Œ;˜%ÐÐÐÐÝ�D‰>Œ>˜UÐ"Ð"Ð"Ð"ðð ð ð ð •ñ ô ð õ �E�E‘G”GÑÔ Ð%Ð%Ð%Ð%ðð ð ð ð •ñ ô ð õ �E�E‘G”GÑÔ Ð$Ð$Ð$Ð$ðð ð ð ð ñ ô ð õ �E�E‘G”GÑÔ Ð%Ð%Ð%Ð%ðð ð ð ð ñ ô ð õ �E�E‘G”GÑÔ Ð$Ð$Ð$Ð$ðð ð ð ð ñ ô ð õ �E�E‘G”GÑÔ Ð$Ð$Ð$Ð$ðð ð ð ð �ñ ô ð õ �E�E‘G”GÑÔ Ð%Ð%Ð%Ð%Ð%Ð%rf   c                  ó&  — t          t          dgd¦  «        ¦  «        dgggk    sJ ‚t          t          ddgd¦  «        ¦  «        ddgggk    sJ ‚t          t          ddgd¦  «        ¦  «        dgdgggk    sJ ‚t          t          g d¢d¦  «        ¦  «        g d¢ggk    sJ ‚t          t          g d¢d¦  «        ¦  «        dgddggddgdgggk    sJ ‚t          t          g d¢d¦  «        ¦  «        dgdgdgggk    sJ ‚t          t          g d¦  «        ¦  «        g k    sJ ‚t          t          g d¦  «        ¦  «        g k    sJ ‚t          t          ddgd¦  «        ¦  «        g k    sJ ‚t          t          ddgd¦  «        ¦  «        g k    sJ ‚d S )Nr_   r`   rƒ   rp   r   )rR   rE   re   rf   rV   Útest_sequence_partitionsr^  {  sá  € ÝÕ# Q C¨Ñ+Ô+Ñ,Ô,°1°#°°Ò7Ð7Ð7Ð7ÝÕ# Q¨ F¨AÑ.Ô.Ñ/Ô/°a¸°V°H°:Ò=Ð=Ð=Ð=ÝÕ# Q¨ F¨AÑ.Ô.Ñ/Ô/°a°S¸1¸#°J°<Ò?Ð?Ð?Ð?ÝÕ# I I I¨qÑ1Ô1Ñ2Ô2¸	¸	¸	°{°mÒCÐCÐCÐCÝÕ# I I I¨qÑ1Ô1Ñ2Ô2Øˆ#��1ˆvˆ˜!˜Q˜ ! ˜Ð&ò'ð 'ð 'ð 'åÕ# I I I¨qÑ1Ô1Ñ2Ô2¸¸¸a¸SÀ1À#°Ð6GÒGÐGÐGÐGõ Õ# B¨Ñ*Ô*Ñ+Ô+¨rÒ1Ð1Ð1Ð1ÝÕ# B¨Ñ*Ô*Ñ+Ô+¨rÒ1Ð1Ð1Ð1ÝÕ# Q¨ F¨AÑ.Ô.Ñ/Ô/°2Ò5Ð5Ð5Ð5ÝÕ# Q¨ F¨AÑ.Ô.Ñ/Ô/°2Ò5Ð5Ð5Ð5Ð5Ð5rf   c                  ó²  — t          t          g d¦  «        ¦  «        g ggk    sJ ‚t          t          g d¦  «        ¦  «        g g ggk    sJ ‚t          t          g d¦  «        ¦  «        g g g ggk    sJ ‚t          t          dgd¦  «        ¦  «        dgggk    sJ ‚t          t          dgd¦  «        ¦  «        g dggdgg ggk    sJ ‚t          t          dgd¦  «        ¦  «        g g dggg dgg gdgg g ggk    sJ ‚t          t          ddgd¦  «        ¦  «        ddgggk    sJ ‚t          t          ddgd¦  «        ¦  «        g ddggdgdggddgg ggk    sJ ‚t          t          ddgd¦  «        ¦  «        g g ddggg dgdggg ddgg gdgg dggdgdgg gddgg g ggk    sJ ‚t          t          g d¢d¦  «        ¦  «        g d¢ggk    sJ ‚t          t          g d¢d¦  «        ¦  «        g g d¢gdgddggddgdggg d¢g ggk    sJ ‚t          t          g d¢d¦  «        ¦  «        g g g d¢gg dgddggg ddgdggg g d¢g gdgg ddggdgdgdggdgddgg gddgg dggddgdgg gg d¢g g gg
k    sJ ‚t          t          g d¦  «        ¦  «        g k    sJ ‚t          t          dgd¦  «        ¦  «        g k    sJ ‚t          t          ddgd¦  «        ¦  «        g k    sJ ‚d S )Nr_   r`   rp   rƒ   r   )rR   rF   rE   re   rf   rV   Útest_sequence_partitions_emptyr`  ‹  s  € ÝÕ)¨"¨aÑ0Ô0Ñ1Ô1°r°d°VÒ;Ð;Ð;Ð;ÝÕ)¨"¨aÑ0Ô0Ñ1Ô1°r¸2°h°ZÒ?Ð?Ð?Ð?ÝÕ)¨"¨aÑ0Ô0Ñ1Ô1°r¸2¸r°l°^ÒCÐCÐCÐCÝÕ)¨1¨#¨qÑ1Ô1Ñ2Ô2¸¸°u°gÒ=Ð=Ð=Ð=ÝÕ)¨1¨#¨qÑ1Ô1Ñ2Ô2¸¸Q¸C°yÀAÀ3ÈÀ)Ð6LÒLÐLÐLÐLÝÕ)¨1¨#¨qÑ1Ô1Ñ2Ô2Ø
ˆb�1�#ˆ˜˜a˜S "˜¨¨¨R° }Ð5ò6ð 6ð 6ð 6åÕ)¨1¨a¨&°!Ñ4Ô4Ñ5Ô5¸A¸q¸6¸(¸ÒCÐCÐCÐCÝÕ)¨1¨a¨&°!Ñ4Ô4Ñ5Ô5Ø
ˆq�!ˆfˆ˜˜˜a˜S�z Q¨ F¨B <Ð0ò1ð 1ð 1ð 1åÕ)¨1¨a¨&°!Ñ4Ô4Ñ5Ô5Ø	ˆR�!�Q�Ð˜2 ˜s Q C˜.¨2°°1¨v°rÐ*:Ø
ˆˆb�1�#ˆ˜!˜˜q˜c 2˜¨!¨Q¨°°RÐ(8ð:ò ð ð ð õ Õ)¨)¨)¨)°QÑ7Ô7Ñ8Ô8¸i¸i¸i¸[¸MÒIÐIÐIÐIÝÕ)¨)¨)¨)°QÑ7Ô7Ñ8Ô8Ø
ˆiˆiˆiˆ˜A˜3  A ˜-¨1¨a¨&°1°#¨¸¸¸ÀB¸ÐHòIð Ið Ið IåÕ)¨)¨)¨)°QÑ7Ô7Ñ8Ô8Ø	ˆR���Ð˜b 1 #¨¨1 vÐ.Ø	ˆa�ˆV�a�SÐ˜B 	 	 	¨2Ð.Ø
ˆˆb�1�a�&Ð˜Q˜C !  q c˜?Ø
ˆˆq�!ˆf�bÐ˜Q ˜F B¨¨Ð,Ø
ˆQˆ�!��bÐ˜I˜I˜I r¨2Ð.ð=ò ð ð ð õ Õ# B¨Ñ*Ô*Ñ+Ô+¨rÒ1Ð1Ð1Ð1ÝÕ# Q C¨Ñ+Ô+Ñ,Ô,°Ò2Ð2Ð2Ð2ÝÕ# Q¨ F¨AÑ.Ô.Ñ/Ô/°2Ò5Ð5Ð5Ð5Ð5Ð5rf   c                  óÚ   — g d¢} t          t          d¦  «        ¦  «        | k    sJ ‚t          t          d¦  «        ¦  «        | k    sJ ‚t          t          d¦  «        ¦  «        | k    sJ ‚d S )N)r�   )r   ra   r_   )r   r_   ra   )r   ra   ra   r‘   )ra   r   r_   )r_   r   ra   )ra   r   ra   r’   )ra   r_   r   )r_   ra   r   )ra   ra   r   r�   r‘   r’   )rR   rD   )r?  s    rV   Útest_signed_permutationsrb  «  s�   € ð4ð 4ð 4€Cõ Õ# IÑ.Ô.Ñ/Ô/°3Ò6Ð6Ð6Ð6ÝÕ# IÑ.Ô.Ñ/Ô/°3Ò6Ð6Ð6Ð6ÝÕ# IÑ.Ô.Ñ/Ô/°3Ò6Ð6Ð6Ð6Ð6Ð6rf   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   rQ   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   rF   Úsympy.utilities.enumerativerG   rH   Úsympy.core.singletonrI   Úsympy.testing.pytestrJ   rK   ÚwrT   rS   r€   rW   rg   r�   r�   r¥   rº   rÉ   rÍ   rÑ   rÙ   rí   rñ   ró   rö   rø   r  r  r  r  rA  r]  rs  r�  r‰  r‘  rš  rÍ  rÚ  rÝ  rß  ræ  rè  rî  rú  rÿ  r  r  r%  r'  r,  r4  r7  rB  r\  r^  r`  rb  re   rf   rV   ú<module>rp     sM  ðØ Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à "Ð "Ð "Ð "Ð "Ð "Ø &Ð &Ð &Ð &Ð &Ð &Ø &Ð &Ð &Ð &Ð &Ð &Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø >Ð >Ð >Ð >Ð >Ð >Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ Að4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð #Ð "Ð "Ð "Ð "Ð "Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?àˆW�YÑÔ�
€€1€aˆð>ð >ð >ð.ð .ð .ð 3ð 3ð 3ð,Að Að Að,)ð )ð )ð*%9ð %9ð %9ðPð ð ð08ð 8ð 8ð:ð :ð :ðð ð ð	:ð 	:ð 	:ð7ð 7ð 7ðHð Hð Hð@ð @ð @ð@ð @ð @ð
Eð 
Eð 
EðEð Eð Eð"<ð <ð <ð"ð ð ð ?Fð ?Fð ?FðDNð Nð Nð >Kð >Kð >KðB( ð ( ð ( ðV<ð <ð <ð7ð 7ð 7ð"8ð 8ð 8ð4ð 4ð 4ðBð ð ð"ð ð ð2;ð ;ð ;ð?ð ?ð ?ð6ð 6ð 6ðOð Oð Oð?ð ?ð ?ð0ð 0ð 0ð5ð 5ð 5ð0Að Að Að"K ð K ð K ð\)ð )ð )ðKð Kð Kð
ð 
ð 
ðRð Rð Rð+ð +ð +ð"&ð "&ð "&ðJ6ð 6ð 6ð 6ð 6ð 6ð@7ð 7ð 7ð 7ð 7rf   