§
    OG(fÜW ã                   ó,  — d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z	ddl
m
Z
 ddlmZ ddlmZmZmZmZmZ ddlmZ ddlmZmZmZmZmZ dd	lmZ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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z= erddl>m?Z?m@Z@ ejA        d         dk    rddlBmCZC nddlBmDZC  G d„ de	jE        ¦  «        ZF G d„ de	jE        ¦  «        ZG G d„ de	jE        ¦  «        ZH G d„ de	jE        e¦  «        ZI G d„ de	jE        e¦  «        ZJ G d„ de	jE        e¦  «        ZK G d„ de	jE        e¦  «        ZL G d„ de	jE        e¦  «        ZM G d„ d e	jE        e¦  «        ZN G d!„ d"e	jE        e¦  «        ZO G d#„ d$e	jE        e¦  «        ZP G d%„ d&e	jE        e¦  «        ZQ G d'„ d(e	jE        e¦  «        ZR G d)„ d*e	jE        e¦  «        ZS G d+„ d,e	jE        e¦  «        ZT G d-„ d.e	jE        e¦  «        ZU G d/„ d0e	jE        e¦  «        ZV G d1„ d2e	jE        e¦  «        ZW G d3„ d4e	jE        e¦  «        ZX G d5„ d6e	jE        e¦  «        ZY G d7„ d8e	jE        ¦  «        ZZ G d9„ d:e	jE        e¦  «        Z[e\d;k    r e	j]        ¦   «          dS dS )<z 
Tests for bitarray.util module
é    )Úabsolute_importN)Úarray)Ú	hexdigits)ÚchoiceÚgetrandbitsÚ	randrangeÚrandintÚrandom)ÚCounter)ÚbitarrayÚfrozenbitarrayÚ
decodetreeÚ
bits2bytesÚ_set_default_endian)ÚUtilÚskipIfÚSYSINFOÚDEBUG)ÚzerosÚonesÚurandomÚpprintÚmake_endianÚrindexÚstripÚcount_nÚparityÚ	count_andÚcount_orÚ	count_xorÚany_andÚsubsetÚ_correspond_allÚ	intervalsÚ	serializeÚdeserializeÚba2hexÚhex2baÚba2baseÚbase2baÚba2intÚint2baÚ	sc_encodeÚ	sc_decodeÚ	vl_encodeÚ	vl_decodeÚhuffman_codeÚcanonical_huffmanÚcanonical_decode)Ú_sc_rtsÚ_SEGSIZEé   )ÚStringIO)ÚBytesIOc                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestsZerosOnesc                 óF  — t          d¦  «        D �]�}t          |¦  «        }|                      t          |¦  «        |¦  «         |                      |                     ¦   «         ¦  «         |                      |                     d¦  «        |¦  «         |                      |                     d¦  «        d¦  «         |                      |t          ¦  «         t          |¦  «        }|                      t          |¦  «        |¦  «         |  
                    |                     ¦   «         ¦  «         |                      |                     d¦  «        d¦  «         |                      |                     d¦  «        |¦  «         |                      |t          ¦  «         �Œ‘d S ©Néd   r   é   )Úranger   ÚassertEqualÚlenÚassertFalseÚanyÚcountÚassertIsInstancer   r   Ú
assertTrueÚall)ÚselfÚnÚaÚbs       ú^/home/gothic/public_html/test_impala/venv/lib64/python3.11/site-packages/bitarray/test_util.pyÚ
test_rangezTestsZerosOnes.test_range,   sT  € Ý�s‘”ð 	/ñ 	/ˆAÝ�a‘”ˆAØ×Ò�S ™VœV QÑ'Ô'Ð'Ø×Ò˜QŸUšU™WœWÑ%Ô%Ð%Ø×Ò˜QŸWšW Q™ZœZ¨Ñ+Ô+Ð+Ø×Ò˜QŸWšW Q™ZœZ¨Ñ+Ô+Ð+Ø×!Ò! !¥XÑ.Ô.Ð.Ý�Q‘”ˆAØ×Ò�S ™VœV QÑ'Ô'Ð'Ø�OŠO˜AŸEšE™GœGÑ$Ô$Ð$Ø×Ò˜QŸWšW Q™ZœZ¨Ñ+Ô+Ð+Ø×Ò˜QŸWšW Q™ZœZ¨Ñ+Ô+Ð+Ø×!Ò! !¥XÑ.Ô.Ð.Ñ.ð	/ð 	/ó    c           
      óJ  — dD �]ž}t          |¦  «         t          d¦  «        t          dd ¦  «        t          dd ¬¦  «        t          d¦  «        t          dd ¦  «        t          dd ¬¦  «        fD ]L}|                      |t	          ¦   «         ¦  «         |                      |                     ¦   «         |¦  «         ŒMdD ]à}t          d|¦  «        t          d|¬¦  «        fD ]M}|                      |t	          d¦  «        ¦  «         |                      |                     ¦   «         |¦  «         ŒNt          d|¦  «        t          d|¬¦  «        fD ]M}|                      |t	          d¦  «        ¦  «         |                      |                     ¦   «         |¦  «         ŒNŒá�Œ d S )N©ÚbigÚlittler   ©Úendianr6   Ú000Ú111)r   r   r   r@   r   rT   )rH   Údefault_endianrJ   rT   rK   s        rL   Útest_endianzTestsZerosOnes.test_endian;   s¡  € Ø-ð 	9ñ 	9ˆNÝ Ñ/Ô/Ð/å˜A‘h”h¥ a¨¡¤µ°aÀÐ0EÑ0EÔ0EÝ˜1‘g”g�t A t™}œ}­d°1¸TÐ.BÑ.BÔ.BðDð =ð =�à× Ò  ¥H¡J¤JÑ/Ô/Ð/Ø× Ò  §¢¡¤¨^Ñ<Ô<Ð<Ð<à)ð 9ð 9�Ý˜q &Ñ)Ô)­5°¸6Ð+BÑ+BÔ+BÐBð 9ð 9�AØ×$Ò$ Q­°©¬Ñ8Ô8Ð8Ø×$Ò$ Q§X¢X¡Z¤Z°Ñ8Ô8Ð8Ð8Ý˜a ™œ­$¨q¸Ð*@Ñ*@Ô*@Ð@ð 9ð 9�AØ×$Ò$ Q­°©¬Ñ8Ô8Ð8Ø×$Ò$ Q§X¢X¡Z¤Z°Ñ8Ô8Ð8Ð8ð9ñ	9ð	9ð 	9rN   c                 ó  — t           t          fD ]ú}|                      t          |¦  «         |                      t          |d¦  «         |                      t          |t	          ¦   «         ¦  «         |                      t          |g ¦  «         |                      t          |d¦  «         |                      t
          |d¦  «         ddi g ddfD ]}|                      t          |d|¦  «         Œ |                      t
          |dd¦  «         Œûd S )	NÚ ç      ð?éÿÿÿÿr   r>   FTÚfoo)r   r   ÚassertRaisesÚ	TypeErrorr   Ú
ValueError)rH   ÚfÚxs      rL   Útest_wrong_argszTestsZerosOnes.test_wrong_argsL   s	  € Ý��ð 	7ð 	7ˆAØ×Ò�i¨Ñ+Ô+Ð+Ø×Ò�i¨¨BÑ/Ô/Ð/Ø×Ò�i¨­H©J¬JÑ7Ô7Ð7Ø×Ò�i¨¨BÑ/Ô/Ð/Ø×Ò�i¨¨CÑ0Ô0Ð0Ø×Ò�j¨!¨RÑ0Ô0Ð0ð ˜˜2˜r 5¨$Ð.ð 6ð 6�Ø×!Ò!¥)¨Q°°1Ñ5Ô5Ð5Ð5à×Ò�j¨!¨Q°Ñ6Ô6Ð6Ð6ð	7ð 	7rN   N)Ú__name__Ú
__module__Ú__qualname__rM   rX   rc   © rN   rL   r:   r:   *   sA   € € € € € ð/ð /ð /ð9ð 9ð 9ð"7ð 7ð 7ð 7ð 7rN   r:   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestsURandomc                 óê  — dD �]n}t          |¦  «         t          d¦  «        t          dd ¦  «        t          dd ¬¦  «        fD ]L}|                      |t          ¦   «         ¦  «         |                      |                     ¦   «         |¦  «         ŒMt          d¦  «        D ]\}t          |¦  «        }|                      t          |¦  «        |¦  «         |                      |                     ¦   «         |¦  «         Œ]dD ]q}t          d|¦  «        t          d|¬¦  «        fD ]M}|                      t          |¦  «        d¦  «         |                      |                     ¦   «         |¦  «         ŒNŒr�Œpd S )NrP   r   rS   é2   é   )r   r   r@   r   rT   r?   rA   )rH   rW   rJ   rI   rT   s        rL   Ú
test_basiczTestsURandom.test_basic_   su  € Ø-ð 	9ñ 	9ˆNÝ Ñ/Ô/Ð/å˜Q‘Z”Z¥¨¨DÑ!1Ô!1µ7¸1ÀTÐ3JÑ3JÔ3JÐJð =ð =�Ø× Ò  ¥H¡J¤JÑ/Ô/Ð/Ø× Ò  §¢¡¤¨^Ñ<Ô<Ð<Ð<å˜2‘Y”Yð =ð =�Ý˜A‘J”J�Ø× Ò ¥ Q¡¤¨Ñ+Ô+Ð+Ø× Ò  §¢¡¤¨^Ñ<Ô<Ð<Ð<à)ð 9ð 9�Ý   VÑ,Ô,­g°bÀÐ.HÑ.HÔ.HÐHð 9ð 9�AØ×$Ò$¥S¨¡V¤V¨RÑ0Ô0Ð0Ø×$Ò$ Q§X¢X¡Z¤Z°Ñ8Ô8Ð8Ð8ð9ñ9ð	9ð 	9rN   c                 óB  — t          d¦  «        }t          d¦  «        }|                      ||¦  «         |                      d|                     ¦   «         cxk     odk     nc ¦  «         |                      d|                     ¦   «         cxk     odk     nc ¦  «         d S )Néè  i�  iX  )r   ÚassertNotEqualrF   rD   ©rH   rJ   rK   s      rL   Ú
test_countzTestsURandom.test_countq   s    € Ý�D‰MŒMˆÝ�D‰MŒMˆØ×Ò˜A˜qÑ!Ô!Ð!Ø�Š˜˜aŸgšg™iœiÐ-Ð-Ò-Ð-¨#Ò-Ð-Ð-Ð-Ñ.Ô.Ð.Ø�Š˜˜aŸgšg™iœiÐ-Ð-Ò-Ð-¨#Ò-Ð-Ð-Ð-Ñ.Ô.Ð.Ð.Ð.rN   c                 ó0  — |                       t          t          ¦  «         |                       t          t          d¦  «         |                       t          t          t          ¦   «         ¦  «         |                       t          t          g ¦  «         |                       t          t          d¦  «         |                       t          t          d¦  «         |                       t          t          dd¦  «         |                       t          t          dd¦  «         d S )NrZ   r[   r\   r   r>   r]   )r^   r_   r   r   r`   ©rH   s    rL   rc   zTestsURandom.test_wrong_argsx   sÎ   € Ø×Ò�)¥WÑ-Ô-Ð-Ø×Ò�)¥W¨bÑ1Ô1Ð1Ø×Ò�)¥W­h©j¬jÑ9Ô9Ð9Ø×Ò�)¥W¨bÑ1Ô1Ð1Ø×Ò�)¥W¨cÑ2Ô2Ð2Ø×Ò�*¥g¨rÑ2Ô2Ð2à×Ò�)¥W¨a°Ñ3Ô3Ð3Ø×Ò�*¥g¨q°%Ñ8Ô8Ð8Ð8Ð8rN   N)rd   re   rf   rm   rr   rc   rg   rN   rL   ri   ri   ]   sA   € € € € € ð9ð 9ð 9ð$/ð /ð /ð	9ð 	9ð 	9ð 	9ð 	9rN   ri   c                   óT   — e Zd Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
S )ÚTestsPPrintc                 óh   — t          ¦   «         }t          | |¬¦  «         |                     ¦   «         S )N)Ústream)r7   r   Úgetvalue)rJ   ra   s     rL   Úget_code_stringzTestsPPrint.get_code_string‡   s,   € å‰JŒJˆÝˆq˜ÐÑÔÐØ�zŠz‰|Œ|ÐrN   c                 óÖ   — t          |                      |¦  «        ¦  «        }|                      ||¦  «         |                      t          |¦  «        t          |¦  «        ¦  «         d S ©N)Úevalrz   r@   Útyperq   s      rL   Ú
round_tripzTestsPPrint.round_trip�   s[   € Ý�×%Ò% aÑ(Ô(Ñ)Ô)ˆØ×Ò˜˜AÑÔÐØ×Ò�˜a™œ¥$ q¡'¤'Ñ*Ô*Ð*Ð*Ð*rN   c                 ó    — t          d¦  «        }|                      |                      |¦  «        d¦  «         |                      |¦  «         d S )NÚ110zbitarray('110')
)r   r@   rz   r   ©rH   rJ   s     rL   Útest_bitarrayzTestsPPrint.test_bitarray’   sJ   € Ý�U‰OŒOˆØ×Ò˜×-Ò-¨aÑ0Ô0Ð2EÑFÔFÐFØ�Š˜ÑÔÐÐÐrN   c                 ó    — t          d¦  «        }|                      |                      |¦  «        d¦  «         |                      |¦  «         d S )NÚ01zfrozenbitarray('01')
)r   r@   rz   r   r‚   s     rL   Útest_frozenbitarrayzTestsPPrint.test_frozenbitarray—   sL   € Ý˜4Ñ Ô ˆØ×Ò˜×-Ò-¨aÑ0Ô0Ð2JÑKÔKÐKØ�Š˜ÑÔÐÐÐrN   c                 óP  — t          d¦  «        }t          ddd¦  «        D �]}t          dd¦  «        D ]ï}t          ¦   «         }t          ||||¬¦  «         |                     ¦   «         }|                      t          |¦  «        |¦  «         |                     d¦  «        }|                     ¦   «         d d…         D ]%}|                      t          |¦  «        |¦  «         Œ&|                     d	¦  «        D ](}|  
                    t          |¦  «        |k     ¦  «         Œ)Œð�Œd S )
NéÈ   é(   é‚   é
   r>   )rx   ÚgroupÚwidthz
bitary(')
r\   ú
)r   r?   r7   r   ry   r@   r}   r   ÚsplitrA   rF   )	rH   rJ   r�   rI   ra   ÚrÚsrŒ   Úlines	            rL   Útest_formattingzTestsPPrint.test_formattingœ   s$  € Ý�S‰MŒMˆÝ˜2˜s BÑ'Ô'ð 
	7ñ 
	7ˆEÝ˜1˜b‘\”\ð 	7ð 	7�Ý‘J”J�Ý�q ¨!°5Ð9Ñ9Ô9Ð9Ø—J’J‘L”L�Ø× Ò ¥ a¡¤¨!Ñ,Ô,Ð,Ø—G’G˜MÑ*Ô*�ØŸWšW™YœY s¨ sœ^ð 4ð 4�EØ×$Ò$¥S¨¡Z¤Z°Ñ3Ô3Ð3Ð3ØŸGšG D™MœMð 7ð 7�DØ—O’O¥C¨¡I¤I°Ò$5Ñ6Ô6Ð6Ð6ð7ñ	7ð
	7ð 
	7rN   c                 óz   — d dddgt          ¦   «         t          d¦  «        fD ]}|                      |¦  «         Œd S )NÚasdr>   é   Ú1)r   r   r   r‚   s     rL   Útest_fallbackzTestsPPrint.test_fallbackª   sK   € Ø�u˜q !˜f¥h¡j¤jµ.ÀÑ2EÔ2EÐEð 	ð 	ˆAØ�OŠO˜AÑÔÐÐð	ð 	rN   c                 ó@  —  G d„ dt           ¦  «        } |¦   «         }|                      |¦  «        }|                      |d¦  «         t          |¦  «        }|                      ||¦  «         |                      t	          |¦  «        t	          |¦  «        ¦  «         d S )Nc                   ó   — e Zd ZdS )ú&TestsPPrint.test_subclass.<locals>.FooN)rd   re   rf   rg   rN   rL   ÚFoor›   ¯   s   € € € € € ØˆDrN   rœ   zFoo()
)r   rz   r@   r}   r~   )rH   rœ   rJ   ÚcoderK   s        rL   Útest_subclasszTestsPPrint.test_subclass®   s«   € ð	ð 	ð 	ð 	ð 	•(ñ 	ô 	ð 	ð ˆC‰EŒEˆØ×#Ò# AÑ&Ô&ˆØ×Ò˜˜yÑ)Ô)Ð)Ý�‰JŒJˆØ×Ò˜˜AÑÔÐØ×Ò�˜a™œ¥$ q¡'¤'Ñ*Ô*Ð*Ð*Ð*rN   c                 ón   — t          d¦  «        D ]$}|                      t          |¦  «        ¦  «         Œ%d S )Né–   ©r?   r   r   ©rH   rI   s     rL   Útest_randomzTestsPPrint.test_random¹   ó<   € Ý�s‘”ð 	(ð 	(ˆAØ�OŠO�G A™JœJÑ'Ô'Ð'Ð'ð	(ð 	(rN   c                 ó  — t          j        ¦   «         }t          j                             |d¦  «        }t          d¦  «        }	 t          |d¦  «        5 }t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          |d¦  «        5 }t          | 	                    ¦   «         ¦  «        }d d d ¦  «         n# 1 swxY w Y   |  
                    ||¦  «         t          j        |¦  «         d S # t          j        |¦  «         w xY w)NÚtestfilero   Úwr�   )ÚtempfileÚmkdtempÚosÚpathÚjoinr   Úopenr   r}   Úreadr@   ÚshutilÚrmtree)rH   ÚtmpdirÚtmpfilerJ   ÚfoÚfirK   s          rL   Ú	test_filezTestsPPrint.test_file½   s[  € ÝÔ!Ñ#Ô#ˆÝ”'—,’,˜v zÑ2Ô2ˆÝ�T‰NŒNˆð	"Ý�g˜sÑ#Ô#ð  rÝ�q˜"‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å�g˜sÑ#Ô#ð $ rÝ˜Ÿš™œ‘O”O�ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $à×Ò˜Q Ñ"Ô"Ð"åŒM˜&Ñ!Ô!Ð!Ð!Ð!ø�FŒM˜&Ñ!Ô!Ð!Ð!øøøsT   ÁC1 ÁA1Á%C1 Á1A5Á5C1 Á8A5Á9C1 Â"B:Â.C1 Â:B>Â>C1 ÃB>ÃC1 Ã1DN)rd   re   rf   Ústaticmethodrz   r   rƒ   r†   r“   r˜   rž   r£   rµ   rg   rN   rL   rv   rv   …   s¥   € € € € € àðð ñ „\ðð
+ð +ð +ð
ð ð ð
ð ð ð
7ð 7ð 7ðð ð ð	+ð 	+ð 	+ð(ð (ð (ð"ð "ð "ð "ð "rN   rv   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestsMakeEndianc                 óB  — t          dd¬¦  «        }t          |d¦  «        }|                      ||u ¦  «         t          |d¬¦  «        }|                      ||k    ¦  «         |                      |                     ¦   «         d¦  «         |                      |d¦  «         |                      t          t          dd¦  «         |                      t          t          t          ¦   «         d¦  «         |                      t          t          t          ¦   «         d¦  «         d S )	NÚ1110001rQ   rS   rR   r   rZ   r>   r]   )	r   r   rF   r@   rT   ÚassertIsTyper^   r_   r`   ©rH   rJ   rK   Úcs       rL   Útest_simplezTestsMakeEndian.test_simpleÎ   só   € Ý�Y uÐ-Ñ-Ô-ˆÝ˜˜5Ñ!Ô!ˆØ�Š˜˜Q˜ÑÔÐÝ˜ (Ð+Ñ+Ô+ˆØ�Š˜˜QšÑÔÐØ×Ò˜Ÿš™œ XÑ.Ô.Ð.Ø×Ò˜!˜ZÑ(Ô(Ð(ð 	×Ò�)¥[°"°eÑ<Ô<Ð<Ø×Ò�)¥[µ(±*´*¸aÑ@Ô@Ð@Ø×Ò�*¥kµ8±:´:¸uÑEÔEÐEÐEÐErN   c                 ó  — t          d¬¦  «        }t          |d¦  «        }|                      ||k    ¦  «         |                      t	          |¦  «        d¦  «         |                      |                     ¦   «         d¦  «         d S )NrR   rS   rQ   r   )r   r   rF   r@   rA   rT   rq   s      rL   Ú
test_emptyzTestsMakeEndian.test_emptyÜ   sw   € Ý˜HÐ%Ñ%Ô%ˆÝ˜˜5Ñ!Ô!ˆØ�Š˜˜QšÑÔÐØ×Ò�˜Q™œ Ñ#Ô#Ð#Ø×Ò˜Ÿš™œ UÑ+Ô+Ð+Ð+Ð+rN   c                 ó  — t          dd¦  «        }t          |d¦  «        }|                      ||u ¦  «         t          |d¦  «        }|                      ||k    ¦  «         |                      |                     ¦   «         d¦  «         d S )NÚ1101111rQ   rR   )r   r   rF   r@   rT   r¼   s       rL   Útest_from_frozenz TestsMakeEndian.test_from_frozenã   s   € Ý˜9 eÑ,Ô,ˆÝ˜˜5Ñ!Ô!ˆØ�Š˜˜Q˜ÑÔÐÝ˜˜8Ñ$Ô$ˆØ�Š˜˜QšÑÔÐØ×Ò˜Ÿš™œ XÑ.Ô.Ð.Ð.Ð.rN   c                 óŒ  — |                       ¦   «         D ]®}|                     ¦   «         }dD ]}t          ||¦  «        }|                      ||¦  «         |                      |                     ¦   «         |¦  «         |                     ¦   «         |k    r|                      ||u ¦  «         Œ€|                      ||¦  «         Œ¯d S )NrP   )ÚrandombitarraysÚcopyr   r@   rT   rF   ÚassertEQUAL)rH   rJ   ÚaarT   rK   s        rL   r£   zTestsMakeEndian.test_randomì   sÉ   € Ø×%Ò%Ñ'Ô'ð 	$ð 	$ˆAØ—’‘”ˆBØ)ð ,ð ,�Ý  6Ñ*Ô*�Ø× Ò   AÑ&Ô&Ð&Ø× Ò  §¢¡¤¨VÑ4Ô4Ð4Ø—8’8‘:”: Ò'Ð'Ø—O’O A¨ FÑ+Ô+Ð+øØ×Ò˜Q Ñ#Ô#Ð#Ð#ð	$ð 	$rN   N)rd   re   rf   r¾   rÀ   rÃ   r£   rg   rN   rL   r¸   r¸   Ì   sS   € € € € € ðFð Fð Fð,ð ,ð ,ð/ð /ð /ð	$ð 	$ð 	$ð 	$ð 	$rN   r¸   c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestsRIndexc           
      ó$  — |                       t          t          ¦  «         |                       t          t          d ¦  «         |                       t          t          t	          ¦   «         d¦  «         dD �]œ}t	          d|¦  «        }|                      t          |¦  «        d¦  «         |                      t          |d¦  «        d¦  «         |                      t          |dd¦  «        d¦  «         |                      t          |ddd¦  «        d¦  «         |                      t          |ddd¦  «        d¦  «         |                      t          |dd	d
¦  «        d¦  «         |                      t          |dd	d¦  «        d¦  «         |                      t          |dd	d¦  «        d
¦  «         |                       t          t          |d¦  «         |                       t          t          |d¦  «         |                       t          t          |dd¦  «         |                       t          t          |ddd¦  «         |                       t          t          |ddd	¦  «         |                       t          t          |dddd¦  «         t	          d|¦  «        }|                      t          |d	¦  «        d¦  «         |                      t          |d	d	d¦  «        d¦  «         |                      t          |d¦  «        d¦  «         t          d|¦  «        }|                      t          |d	¦  «        d¦  «         |                       t          t          |d ¦  «         |                       t          t          |d¦  «         dD ]2}|                       t          t          t	          d	|¦  «        |¦  «         Œ3|                       t          t          t	          d|¦  «        d¦  «         |                       t          t          t	          d|¦  «        d	¦  «         �Œžd S )Nr>   rP   z00010110 000é   r6   é   iìÿÿÿé   r   é   iúÿÿÿéûÿÿÿÚAr–   é   r‹   r\   é   z00010110 111F©r   r>   rU   Ú11111)r^   r_   r   r`   r   r@   r   )rH   rT   rJ   Úvs       rL   r¾   zTestsRIndex.test_simpleû   s�  € Ø×Ò�)¥VÑ,Ô,Ð,Ø×Ò�)¥V¨TÑ2Ô2Ð2Ø×Ò�*¥f­h©j¬j¸!Ñ<Ô<Ð<Ø%ð !	<ñ !	<ˆFÝ˜¨Ñ0Ô0ˆAØ×Ò�V A™YœY¨Ñ*Ô*Ð*Ø×Ò�V A q™\œ\¨1Ñ-Ô-Ð-Ø×Ò�V A q¨!™_œ_¨aÑ0Ô0Ð0Ø×Ò�V A q¨!¨QÑ/Ô/°Ñ3Ô3Ð3Ø×Ò�V A q¨#¨rÑ2Ô2°AÑ6Ô6Ð6Ø×Ò�V A q¨!¨QÑ/Ô/°Ñ3Ô3Ð3Ø×Ò�V A q¨!¨RÑ0Ô0°!Ñ4Ô4Ð4Ø×Ò�V A q¨!¨RÑ0Ô0°!Ñ4Ô4Ð4Ø×Ò�i­°°CÑ8Ô8Ð8Ø×Ò�j­&°!°QÑ7Ô7Ð7Ø×Ò�j­&°!°Q¸Ñ:Ô:Ð:Ø×Ò�j­&°!°Q¸¸AÑ>Ô>Ð>Ø×Ò�j­&°!°Q¸¸AÑ>Ô>Ð>Ø×Ò�i­°°A°r¸1¸aÑ@Ô@Ð@å˜¨Ñ0Ô0ˆAØ×Ò�V A q™\œ\¨1Ñ-Ô-Ð-Ø×Ò�V A q¨!¨QÑ/Ô/°Ñ3Ô3Ð3Ø×Ò�V A uÑ-Ô-¨qÑ1Ô1Ð1å˜~¨vÑ6Ô6ˆAØ×Ò�V A q™\œ\¨1Ñ-Ô-Ð-Ø×Ò�i­°°DÑ9Ô9Ð9Ø×Ò�j­&°!°QÑ7Ô7Ð7àð :ð :�Ø×!Ò!¥*­fÝ"*¨1¨fÑ"5Ô"5°qñ:ô :ð :ð :à×Ò�j­&Ý& u¨fÑ5Ô5°qñ:ô :ð :à×Ò�j­&Ý& w°Ñ7Ô7¸ñ<ô <ð <ñ <ðA!	<ð !	<rN   c                 óÌ  — d}t          |¦  «        }t          |¦  «        D ]Â}|                     d¦  «         |                      t          t
          |d¦  «         d||<   |                      t          |d¦  «        |¦  «         |                     d¦  «         |                      t          t
          |d¦  «         d||<   |                      t          |d¦  «        |¦  «         ŒÃd S r<   )r   r?   Úsetallr^   r`   r   r@   )rH   rI   rJ   Úms       rL   rM   zTestsRIndex.test_range"  sÔ   € ØˆÝ�Q‰KŒKˆÝ�q‘”ð 		.ð 		.ˆAØ�HŠH�Q‰KŒKˆKØ×Ò�j­&°!°QÑ7Ô7Ð7ØˆAˆa‰DØ×Ò�V A q™\œ\¨1Ñ-Ô-Ð-à�HŠH�Q‰KŒKˆKØ×Ò�j­&°!°QÑ7Ô7Ð7ØˆAˆa‰DØ×Ò�V A q™\œ\¨1Ñ-Ô-Ð-Ð-ð		.ð 		.rN   c                 óZ  — |                       ¦   «         D ]•}t          d¦  «        }	 t          ||¦  «        }n# t          $ r d }Y nw xY w|                     ¦   «         }	 |                     t          |¦  «        ¦  «        }n# t          $ r d }Y nw xY w|                      ||¦  «         Œ–d S ©Nr>   )rÅ   r   r   r`   Úto01Ústrr@   )rH   rJ   rÖ   Úir‘   Újs         rL   r£   zTestsRIndex.test_random0  sÒ   € Ø×%Ò%Ñ'Ô'ð 	#ð 	#ˆAÝ˜A‘”ˆAðÝ˜1˜a‘L”L��øÝð ð ð Ø���ðøøøà—’‘”ˆAðØ—H’H�S ™VœVÑ$Ô$��øÝð ð ð Ø���ðøøøà×Ò˜Q Ñ"Ô"Ð"Ð"ð	#ð 	#s!   §8¸AÁAÁ"BÂBÂBc                 óª  ‡‡‡	— t          d¦  «        D ]¿}t          dd¦  «        Št          ‰¦  «        }ˆfd„t          d¦  «        D ¦   «         }d||<   t          d‰¦  «        Št          d‰¦  «        Š	ˆˆ	fd„|D ¦   «         }|rt	          |¦  «        nd}	 t          |d‰‰	¦  «        }n# t          $ r d}Y nw xY w|                      ||¦  «         ŒÀd S )	Nr‹   r>   ro   c                 ó.   •— g | ]}t          ‰¦  «        ‘ŒS rg   ©r   ©Ú.0Ú_rI   s     €rL   ú
<listcomp>z6TestsRIndex.test_random_start_stop.<locals>.<listcomp>B  s   ø€ Ð8Ð8Ð8¨•y ‘|”|Ð8Ð8Ð8rN   r=   r   c                 ó,   •— g | ]}|‰k    ¯|‰k     ¯|‘ŒS rg   rg   )rä   rÞ   ÚstartÚstops     €€rL   ræ   z6TestsRIndex.test_random_start_stop.<locals>.<listcomp>F  s&   ø€ ÐFÐFÐF˜a¨a°5ªj¨j¸QÀºX¸X˜¸X¸X¸XrN   r\   )r?   r   r   r	   Úmaxr   r`   r@   )
rH   rå   rJ   ÚindicesÚfilteredÚrefÚresrI   rè   ré   s
          @@@rL   Útest_random_start_stopz"TestsRIndex.test_random_start_stop>  s  øøø€ Ý�r‘”ð 	'ð 	'ˆAÝ˜!˜TÑ"Ô"ˆAÝ�a‘”ˆAØ8Ð8Ð8Ð8­U°3©Z¬ZÐ8Ñ8Ô8ˆGØˆAˆg‰JÝ˜A˜q‘M”MˆEÝ˜1˜a‘=”=ˆDØFÐFÐFÐFÐF 7ÐFÑFÔFˆHØ#+Ð3•#�h‘-”-�-°ˆCðÝ˜Q  5¨$Ñ/Ô/��øÝð ð ð Ø���ðøøøà×Ò˜S #Ñ&Ô&Ð&Ð&ð	'ð 	's   ÂB*Â*B9Â8B9c                 óV  ‡— t          d¦  «        D ]—}t          dd¦  «        Št          d¦  «        }t          ‰¦  «        }|                     | ¦  «         ˆfd„t          d¦  «        D ¦   «         }|||<   |                      t          ||¦  «        t          |¦  «        ¦  «         Œ˜d S )Nr‹   r>   é'  c                 ó.   •— g | ]}t          ‰¦  «        ‘ŒS rg   râ   rã   s     €rL   ræ   z-TestsRIndex.test_many_set.<locals>.<listcomp>T  s   ø€ Ð4Ð4Ð4 A•9˜Q‘<”<Ð4Ð4Ð4rN   r=   )r?   r	   r   r   rØ   r@   r   rê   )rH   rå   rÖ   rJ   ÚlstrI   s        @rL   Útest_many_setzTestsRIndex.test_many_setN  s§   ø€ Ý�r‘”ð 	5ð 	5ˆAÝ˜˜5Ñ!Ô!ˆAÝ˜A‘”ˆAÝ˜‘”ˆAØ�HŠH˜�U‰OŒOˆOØ4Ð4Ð4Ð4­¨s©¬Ð4Ñ4Ô4ˆCØˆAˆc‰FØ×Ò�V A q™\œ\­3¨s©8¬8Ñ4Ô4Ð4Ð4ð	5ð 	5rN   c                 óø   — t          d¦  «        D ]i}t          dd¦  «        }t          |¦  «        }d|t          |¦  «        <   |                      t          |¦  «        |                     d¦  «        ¦  «         Œjd S )Nr‹   r>   rñ   )r?   r	   r   r   r@   r   Úindex)rH   rå   ÚNrJ   s       rL   Útest_one_setzTestsRIndex.test_one_setX  ss   € Ý�r‘”ð 	4ð 	4ˆAÝ˜˜5Ñ!Ô!ˆAÝ�a‘”ˆAØˆA�i˜‰lŒl‰OØ×Ò�V A™YœY¨¯ª°©
¬
Ñ3Ô3Ð3Ð3ð		4ð 	4rN   N)	rd   re   rf   r¾   rM   r£   rï   rô   rø   rg   rN   rL   rÊ   rÊ   ù   so   € € € € € ð%<ð %<ð %<ðN.ð .ð .ð#ð #ð #ð'ð 'ð 'ð 5ð 5ð 5ð4ð 4ð 4ð 4ð 4rN   rÊ   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )Ú
TestsStripc                 ó  — |                       t          t          d¦  «         |                       t          t          t          ¦   «         d¦  «         |                       t          t          t          ¦   «         d¦  «         dD �]}t          |¦  «         t          d¦  «        }|                      t          |¦  «        t          d¦  «        ¦  «         |                      t          |d¦  «        t          d¦  «        ¦  «         |                      t          |d	¦  «        t          d
¦  «        ¦  «         t          d¦  «        }t          |d	¦  «        }|                      |t          d
¦  «        ¦  «         |  	                    |d¦  «         �Œd S )NÚ0110é{   ÚuprP   Ú00010110000Ú0001011ÚleftÚ10110000ÚbothÚ1011r   )
r^   r_   r   r   r`   r   rÇ   r   r@   r»   )rH   rW   rJ   rK   r½   s        rL   r¾   zTestsStrip.test_simplec  sR  € Ø×Ò�)¥U¨FÑ3Ô3Ð3Ø×Ò�)¥U­H©J¬J¸Ñ<Ô<Ð<Ø×Ò�*¥e­X©Z¬Z¸Ñ>Ô>Ð>Ø-ð 		3ñ 		3ˆNÝ Ñ/Ô/Ð/Ý˜Ñ'Ô'ˆAØ×Ò�U 1™XœX¥x°	Ñ':Ô':Ñ;Ô;Ð;Ø×Ò�U 1 fÑ-Ô-­x¸
Ñ/CÔ/CÑDÔDÐDØ×Ò�U 1 fÑ-Ô-­x¸Ñ/?Ô/?Ñ@Ô@Ð@Ý˜}Ñ-Ô-ˆAÝ�a˜Ñ Ô ˆAØ×Ò˜Q¥¨Ñ 0Ô 0Ñ1Ô1Ð1Ø×Ò˜aÐ!1Ñ2Ô2Ð2Ñ2ð		3ð 		3rN   c                 ón  — t          d¦  «        D �]#}dD �]}t          |¦  «        }t          ||¦  «        }|                      |d¦  «         |                      |t          ¦   «         ¦  «         |                      |t          |¦  «        ¦  «         t          |¦  «        }t          ||¦  «        }|                      |d¦  «         |                      |t          ¦   «         ¦  «         |                     d¦  «         t          ||¦  «        }|                      |t          |¦  «        ¦  «         �Œ�Œ%d S )Nr‹   )r  Úrightr  r   r   r>   )	r?   r   r   r»   r@   r   r   rØ   r   )rH   rI   ÚmoderJ   r½   rK   s         rL   Útest_zeros_oneszTestsStrip.test_zeros_onesr  s  € Ý�r‘”ð 	-ñ 	-ˆAØ/ð -ñ -�Ý˜!‘H”H�Ý˜!˜T‘N”N�Ø×!Ò! ! ZÑ0Ô0Ð0Ø× Ò  ¥H¡J¤JÑ/Ô/Ð/Ø× Ò  ¥E¨!¡H¤HÑ-Ô-Ð-å" 1Ñ%Ô%�Ý˜!˜T‘N”N�Ø×!Ò! !Ð%5Ñ6Ô6Ð6Ø× Ò  ¥H¡J¤JÑ/Ô/Ð/à—’˜‘”�Ý˜!˜T‘N”N�Ø× Ò  ¥D¨¡G¤GÑ,Ô,Ð,Ñ,ñ-ð	-ð 	-rN   c           	      óB  — |                       ¦   «         D �]ˆ}|                     ¦   «         }t          |¦  «        }|                     ¦   «         }dt	          |                     d¦  «        |                     ¦   «         ¦  «        fdt	          |                     d¦  «        |                     ¦   «         ¦  «        fdt	          |                     d¦  «        |                     ¦   «         ¦  «        ffD ]©\  }}t          ||¦  «        }|  	                    ||¦  «         |  
                    |d¦  «         |  	                    ||¦  «         t          ||¦  «        }|  	                    ||¦  «         |  
                    |d¦  «         |  	                    ||¦  «         Œª�ŒŠd S )Nr  Ú0r  r  r   r   )rÅ   rÆ   r   rÜ   r   ÚlstriprT   Úrstripr   rÇ   r»   )rH   rJ   rK   ra   r‘   r  rî   r½   s           rL   r£   zTestsStrip.test_random„  sx  € Ø×%Ò%Ñ'Ô'ð 	'ñ 	'ˆAØ—’‘”ˆAÝ˜qÑ!Ô!ˆAØ—’‘”ˆAà�h q§x¢x°¡}¤}°a·h²h±j´jÑAÔAÐBØ�h q§x¢x°¡}¤}°a·h²h±j´jÑAÔAÐBØ�h q§w¢w¨s¡|¤|°a·h²h±j´jÑAÔAÐBðð 'ð '‘	��cõ
 ˜!˜T‘N”N�Ø× Ò   CÑ(Ô(Ð(Ø×!Ò! ! ZÑ0Ô0Ð0Ø× Ò   AÑ&Ô&Ð&å˜!˜T‘N”N�Ø× Ò   CÑ(Ô(Ð(Ø×!Ò! !Ð%5Ñ6Ô6Ð6Ø× Ò   AÑ&Ô&Ð&Ð&ñ'ð		'ð 	'rN   c                 ó^  — t          d¦  «        D ]œ}t          dd¦  «        }t          |¦  «        }|                     d¦  «         d|t	          |¦  «        <   |                      t          |d¦  «        t          d¦  «        ¦  «         |                      t          |¦  «        |¦  «         Œ�d S )Nr‹   r>   rñ   r   r  r—   )r?   r	   r   rØ   r   r@   r   rA   )rH   rå   rI   rJ   s       rL   rø   zTestsStrip.test_one_set˜  sž   € Ý�r‘”ð 	(ð 	(ˆAÝ˜˜5Ñ!Ô!ˆAÝ˜‘”ˆAØ�HŠH�Q‰KŒKˆKØˆA�i˜‰lŒl‰OØ×Ò�U 1 fÑ-Ô-­x¸©}¬}Ñ=Ô=Ð=Ø×Ò�S ™VœV QÑ'Ô'Ð'Ð'ð	(ð 	(rN   N)rd   re   rf   r¾   r  r£   rø   rg   rN   rL   rú   rú   a  sP   € € € € € ð3ð 3ð 3ð-ð -ð -ð$'ð 'ð 'ð((ð (ð (ð (ð (rN   rú   c                   ó\   — e Zd Zed„ ¦   «         Zdd„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ ZdS )ÚTestsCount_Nc                 óp   — ||                       dd|¦  «        }}||k     r|| |         z  }|dz  }||k     °|S )z2return lowest index i for which a[:i].count() == nr>   r   )rD   )rJ   rI   rÞ   rß   s       rL   r   zTestsCount_N.count_n¥  sN   € ð �!—'’'˜!˜Q Ñ"Ô"ˆ1ˆØ�!ŠeˆeØ��1”‰IˆAØ�‰FˆAð �!Šeˆeð ˆrN   r>   c                 óÖ   — |                       |                     |d|¦  «        |¦  «         |dk    r|                       |d¦  «         d S |                       ||dz
           |¦  «         d S ©Nr   r>   )r@   rD   )rH   rJ   rI   rÞ   rÖ   s        rL   Úcheck_resultzTestsCount_N.check_result®  sq   € Ø×Ò˜Ÿš  A qÑ)Ô)¨1Ñ-Ô-Ð-Ø�Š6ˆ6Ø×Ò˜Q Ñ"Ô"Ð"Ð"Ð"à×Ò˜Q˜q 1™uœX qÑ)Ô)Ð)Ð)Ð)rN   c                 óV  — t          ¦   «         }|                      t          |d¦  «        d¦  «         |                      t          |dd¦  «        d¦  «         |                      t          |dd¦  «        d¦  «         |                      t          t          |d¦  «         |                      t
          t          dd¦  «         |                      t
          t          |d¦  «         |                      t          t          |dd¦  «         |                      t          dt          |d¦  «         d S )Nr   r>   rZ   g      @r–   z,n = 1 larger than bitarray size (len(a) = 0))r   r@   r   r^   r`   r_   ÚassertRaisesMessager‚   s     rL   rÀ   zTestsCount_N.test_emptyµ  s  € Ý‰JŒJˆØ×Ò�  A™œ¨Ñ*Ô*Ð*Ø×Ò�  A qÑ)Ô)¨1Ñ-Ô-Ð-Ø×Ò�  A qÑ)Ô)¨1Ñ-Ô-Ð-Ø×Ò�*¥g¨q°!Ñ4Ô4Ð4Ø×Ò�)¥W¨b°!Ñ4Ô4Ð4Ø×Ò�)¥W¨a°Ñ5Ô5Ð5Ø×Ò�*¥g¨q°!°QÑ7Ô7Ð7Ø× Ò ¥ð .5Ý6=¸qÀ!ñ	Eô 	Eð 	Eð 	Eð 	ErN   c           	      óv  — t          d¦  «        }|                     ¦   «         }|                      t          |¦  «        d¦  «         |                      |                     ¦   «         d¦  «         |                      |                     d¦  «        d¦  «         |                      t          |dd¦  «        d¦  «         |                      t          |dd¦  «        d¦  «         |                      t          |dd¦  «        d	¦  «         |                      t          d
t
          |dd¦  «         |                      t          dt
          |dd¦  «         |                      t          dt
          |dd¦  «         |                      t          |d¦  «        d¦  «         |                      t          |d¦  «        d¦  «         |                      t          |dd¦  «        d¦  «         |                      t          |d¦  «        d¦  «         |                      t          d
t
          |d¦  «         |                      t          dt
          |d¦  «         |                      t          dt
          |d¦  «         dD ]³}t          |                     |¦  «        dz   ¦  «        D ]‹}t          |||¦  «        }|  	                    ||||¦  «         |                      |d |…                              |¦  «        |¦  «         |                      ||                      |r|n| |¦  «        ¦  «         ŒŒŒ´|  
                    ||¦  «         d S )NÚ0111110111110111110111110011110111110111110111000é0   é%   r   rl   r–   é   r‹   é/   znon-negative integer expectedr\   z.n = 49 larger than bitarray size (len(a) = 48)é1   z,n = 12 exceeds total count (a.count(0) = 11)rÎ   é   r>   é-   z,n = 38 exceeds total count (a.count(1) = 37)é&   rÔ   )r   rÆ   r@   rA   rD   r   r  r`   r?   r  rÇ   )rH   rJ   rK   rÖ   rI   rÞ   s         rL   r¾   zTestsCount_N.test_simpleÁ  s4  € ÝÐGÑHÔHˆØ�FŠF‰HŒHˆØ×Ò�˜Q™œ Ñ$Ô$Ð$Ø×Ò˜Ÿš™œ BÑ'Ô'Ð'Ø×Ò˜Ÿš ™œ RÑ(Ô(Ð(à×Ò�  A qÑ)Ô)¨1Ñ-Ô-Ð-Ø×Ò�  A qÑ)Ô)¨2Ñ.Ô.Ð.Ø×Ò�  B¨Ñ*Ô*¨BÑ/Ô/Ð/à× Ò ¥Ð-LÝ!(¨!¨R°ñ	4ô 	4ð 	4ð 	× Ò ¥ð .6Ý7>ÀÀ2Àqñ	Jô 	Jð 	Jð 	× Ò ¥ð .5å!(¨!¨R°ñ	4ô 	4ð 	4ð 	×Ò�  A™œ¨Ñ*Ô*Ð*Ø×Ò�  B™œ¨Ñ,Ô,Ð,Ø×Ò�  B¨Ñ*Ô*¨BÑ/Ô/Ð/Ø×Ò�  B™œ¨Ñ,Ô,Ð,à× Ò ¥Ð-LÝ!(¨!¨Rñ	1ô 	1ð 	1ð 	× Ò ¥ð .6Ý7>ÀÀ2ñ	Gô 	Gð 	Gð 	× Ò ¥ð .5Ý6=¸qÀ"ñ	Fô 	Fð 	Fð ð 	Eð 	EˆAÝ˜1Ÿ7š7 1™:œ:¨™>Ñ*Ô*ð Eð E�Ý˜A˜q !Ñ$Ô$�Ø×!Ò! ! Q¨¨1Ñ-Ô-Ð-Ø× Ò   2 A 2¤§¢¨Q¡¤°Ñ3Ô3Ð3Ø× Ò   D§L¢L°a°°°¸a¸RÀÑ$CÔ$CÑDÔDÐDÐDð	Eð
 	×Ò˜˜AÑÔÐÐÐrN   c           	      óÌ  — t          d¦  «        }|                      t          |¦  «        d¦  «         |                      |                     ¦   «         d¦  «         |                      t	          |d¦  «        d¦  «         |                      t	          |d¦  «        d¦  «         |                      t	          |d¦  «        d¦  «         |                      t          t          |d¦  «         |                      t          t          |d	¦  «         |                      t          t          |d
¦  «         t          d	¦  «        D ]'}|                      ||t	          ||¦  «        ¦  «         Œ(d S )NÚ!001111101111101111101111100111100é!   é   r   r‹   é   é   r\   é   é"   )	r   r@   rA   rD   r   r^   r`   r?   r  )rH   rJ   rI   s      rL   Útest_frozenzTestsCount_N.test_frozenì  s4  € ÝÐ>Ñ?Ô?ˆØ×Ò�˜Q™œ Ñ$Ô$Ð$Ø×Ò˜Ÿš™œ BÑ'Ô'Ð'Ø×Ò�  A™œ¨Ñ*Ô*Ð*Ø×Ò�  B™œ¨Ñ,Ô,Ð,Ø×Ò�  B™œ¨Ñ,Ô,Ð,Ø×Ò�*¥g¨q°"Ñ5Ô5Ð5Ø×Ò�*¥g¨q°"Ñ5Ô5Ð5Ø×Ò�*¥g¨q°"Ñ5Ô5Ð5Ý�r‘”ð 	3ð 	3ˆAØ×Ò˜a ¥G¨A¨q¡M¤MÑ2Ô2Ð2Ð2ð	3ð 	3rN   c                 ó¨  — t          dd¦  «        }t          |¦  «        }|                      t          ||¦  «        |¦  «         |                      t
          t          |dd¦  «         |                      t
          t          ||dz   ¦  «         t          d¦  «        D ]6}t          d|¦  «        }|                      t          ||¦  «        |¦  «         Œ7d S )Nr>   é † r   rÎ   )r	   r   r@   r   r^   r`   r?   ©rH   rI   rJ   rå   rÞ   s        rL   Ú	test_oneszTestsCount_N.test_onesù  sÁ   € Ý�A�vÑÔˆÝ�‰GŒGˆØ×Ò�  A™œ¨Ñ*Ô*Ð*Ø×Ò�*¥g¨q°!°QÑ7Ô7Ð7Ø×Ò�*¥g¨q°!°a±%Ñ8Ô8Ð8Ý�r‘”ð 	/ð 	/ˆAÝ˜˜1‘”ˆAØ×Ò�W Q¨™]œ]¨AÑ.Ô.Ð.Ð.ð	/ð 	/rN   c                 óØ  — t          dd¦  «        }t          |¦  «        }|                      t          |d¦  «        d¦  «         |                      t
          t          |d¦  «         t          d¦  «        D ]t}|                     d¦  «         t          |¦  «        }d||<   |                      t          |d¦  «        |dz   ¦  «         |                      t
          t          |d¦  «         Œud S )Nr>   r*  r   rÎ   r–   )	r	   r   r@   r   r^   r`   r?   rØ   r   r+  s        rL   rø   zTestsCount_N.test_one_set  sÕ   € Ý�A�vÑÔˆÝ�!‰HŒHˆØ×Ò�  A™œ¨Ñ*Ô*Ð*Ø×Ò�*¥g¨q°!Ñ4Ô4Ð4Ý�r‘”ð 	9ð 	9ˆAØ�HŠH�Q‰KŒKˆKÝ˜!‘”ˆAØˆAˆa‰DØ×Ò�W Q¨™]œ]¨A°©EÑ2Ô2Ð2Ø×Ò�j­'°1°aÑ8Ô8Ð8Ð8ð	9ð 	9rN   c                 óH  — t          dd¦  «        D ]�}t          |¦  «        }d|d<   |                      |                     ¦   «         d¦  «         |                      t	          |d¦  «        |¦  «         |dk    rd}nd}|                      t          |t          |d¦  «         Œ‘d S )Nr>   ro   r\   z,n = 2 larger than bitarray size (len(a) = 1)z*n = 2 exceeds total count (a.count(1) = 1)r–   )r?   r   r@   rD   r   r  r`   )rH   r÷   rJ   Úmsgs       rL   Ú	test_lastzTestsCount_N.test_last  s«   € Ý�q˜$‘”ð 		Eð 		EˆAÝ�a‘”ˆAØˆAˆb‰EØ×Ò˜QŸWšW™YœY¨Ñ*Ô*Ð*Ø×Ò�W Q¨™]œ]¨AÑ.Ô.Ð.Ø�AŠvˆvØD��àB�Ø×$Ò$¥Z°µg¸qÀ!ÑDÔDÐDÐDð		Eð 		ErN   c           	      óˆ  — t          d¦  «        D �]0}t          dd¦  «        }t          |¦  «        }t          d¦  «        }|                     | ¦  «         t          t          d¦  «        ¦  «        D ]}||t          |¦  «        <   Œ|                     |¦  «        }t          |||¦  «        }|                      ||||¦  «         |dz   }|  	                    t          d|||fz  t          |||¦  «         t          d¦  «        D ];}t          d|¦  «        }t          |||¦  «        }|                      ||||¦  «         Œ<�Œ2d S )Nr=   r*  i�Ð r>   z-n = %d exceeds total count (a.count(%d) = %d)rÎ   r   )r?   r	   r   r   rØ   r   rD   r   r  r  r`   )rH   rå   r÷   rJ   rÖ   ÚtcrÞ   rI   s           rL   Ú
test_largezTestsCount_N.test_large  sV  € Ý�s‘”ð 	.ñ 	.ˆAÝ˜ Ñ'Ô'ˆAÝ˜‘”ˆAÝ˜A‘”ˆAØ�HŠH˜�U‰OŒOˆOÝ�9 S™>œ>Ñ*Ô*ð $ð $�Ø"#�•)˜A‘,”,‘�Ø—’˜‘”ˆBÝ˜˜2˜qÑ!Ô!ˆAØ×Ò˜a  Q¨Ñ*Ô*Ð*Ø�Q‘ˆAØ×$Ò$¥Zð 2:Ø=>ÀÀ2¸Jñ2Gå%,¨a°°Añ7ô 7ð 7õ ˜2‘Y”Yð .ð .�Ý˜A˜r‘N”N�Ý˜A˜q !Ñ$Ô$�Ø×!Ò! ! Q¨¨1Ñ-Ô-Ð-Ð-ñ.ð	.ð 	.rN   c           	      ó
  — |                       ¦   «         D ]m}dD ]h}|                     |¦  «        dz  }t          |||¦  «        }|                      ||||¦  «         |                      t          |d|¦  «        d¦  «         ŒiŒnd S )NrÔ   r–   r   )rÅ   rD   r   r  r@   )rH   rJ   rÖ   rI   rÞ   s        rL   r£   zTestsCount_N.test_random/  sž   € Ø×%Ò%Ñ'Ô'ð 	6ð 	6ˆAØð 6ð 6�Ø—G’G˜A‘J”J !‘O�Ý˜A˜q !Ñ$Ô$�Ø×!Ò! ! Q¨¨1Ñ-Ô-Ð-à× Ò ¥¨¨A¨qÑ!1Ô!1°1Ñ5Ô5Ð5Ð5ð6ð	6ð 	6rN   N)r>   )rd   re   rf   r¶   r   r  rÀ   r¾   r(  r,  rø   r0  r3  r£   rg   rN   rL   r  r  £  sÀ   € € € € € àðð ñ „\ðð*ð *ð *ð *ð
Eð 
Eð 
Eð)ð )ð )ðV3ð 3ð 3ð/ð /ð /ð
9ð 
9ð 
9ð
Eð 
Eð 
Eð.ð .ð .ð(6ð 6ð 6ð 6ð 6rN   r  c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestsBitwiseCountc           	      óü  — t          d¦  «        D �]ê}t          ¦   «         }|                     t          t	          |g¦  «        ¦  «        ¦  «         |                     ¦   «         }|                      t          |t          d¦  «        ¦  «        d¦  «         |                      t          |t          d¦  «        ¦  «        |¦  «         |                      t          ||¦  «        |¦  «         |                      t          |t          d¦  «        ¦  «        |¦  «         |                      t          |t          d¦  «        ¦  «        d¦  «         |                      t          ||¦  «        |¦  «         |                      t          |t          d¦  «        ¦  «        |¦  «         |                      t          |t          d¦  «        ¦  «        d|z
  ¦  «         |                      t          ||¦  «        d¦  «         �Œìd S )Né   rÍ   r   )r?   r   Ú	frombytesÚbytesÚ	bytearrayrD   r@   r   r   r   r   r    )rH   rÞ   rJ   Úcnts       rL   Útest_count_bytez!TestsBitwiseCount.test_count_byte<  sž  € Ý�s‘”ð 	1ñ 	1ˆAÝ‘
”
ˆAØ�KŠK��i¨¨™nœnÑ-Ô-Ñ.Ô.Ð.Ø—'’'‘)”)ˆCØ×Ò�Y q­%°©(¬(Ñ3Ô3°QÑ7Ô7Ð7Ø×Ò�Y q­$¨q©'¬'Ñ2Ô2°CÑ8Ô8Ð8Ø×Ò�Y q¨!™_œ_¨cÑ2Ô2Ð2Ø×Ò�X a­¨q©¬Ñ2Ô2°CÑ8Ô8Ð8Ø×Ò�X a­¨a©¬Ñ1Ô1°1Ñ5Ô5Ð5Ø×Ò�X a¨™^œ^¨SÑ1Ô1Ð1Ø×Ò�Y q­%°©(¬(Ñ3Ô3°SÑ9Ô9Ð9Ø×Ò�Y q­$¨q©'¬'Ñ2Ô2°A¸±GÑ<Ô<Ð<Ø×Ò�Y q¨!™_œ_¨aÑ0Ô0Ð0Ñ0ð	1ð 	1rN   c           
      óL  — t          d¦  «        }|                     ¦   «         }t          d¦  «        }|                     ¦   «         }|                      t          ||¦  «        d¦  «         |                      t	          ||¦  «        d¦  «         |                      t          ||¦  «        d¦  «         t          t          t
          fD ]®}|                      t          |¦  «         |                      t          ||¦  «         |                      t          |||d¦  «         |                      t          ||d¦  «         |                      t          |d|¦  «         |                      t          ||d¦  «         Œ¯|                      ||¦  «         |                      ||¦  «         | 	                    d	¦  «         t          t          t
          fD ]X}|                      t          |||¦  «         |                      t          |t          d
d¦  «        t          dd¦  «        ¦  «         ŒYd S )NÚ001111Ú010011r–   rÏ   r6   rZ   r—   rÓ   r>   r�   rQ   Ú101rR   )r   rÆ   r@   r   r   r    r^   r_   rÇ   Úappendr`   )rH   rJ   rÈ   rK   Úbbra   s         rL   Útest_1zTestsBitwiseCount.test_1K  sñ  € Ý�XÑÔˆØ�VŠV‰XŒXˆÝ�XÑÔˆØ�VŠV‰XŒXˆØ×Ò� 1 a™œ¨!Ñ,Ô,Ð,Ø×Ò� ! Q™œ¨Ñ+Ô+Ð+Ø×Ò� 1 a™œ¨!Ñ,Ô,Ð,Ý�H¥iÐ/ð 	2ð 	2ˆAà×Ò�i¨Ñ+Ô+Ð+Ø×Ò�i¨¨AÑ.Ô.Ð.Ø×Ò�i¨¨A¨q°!Ñ4Ô4Ð4à×Ò�i¨¨A¨rÑ2Ô2Ð2Ø×Ò�i¨¨C°Ñ3Ô3Ð3Ø×Ò�i¨¨A¨qÑ1Ô1Ð1Ð1Ø×Ò˜˜BÑÔÐØ×Ò˜˜BÑÔÐà	�Š�‰ŒˆÝ�H¥iÐ/ð 	9ð 	9ˆAØ×Ò�j¨!¨Q°Ñ2Ô2Ð2Ø×Ò�j¨!Ý& u¨eÑ4Ô4Ý& u¨hÑ7Ô7ñ9ô 9ð 9ð 9ð	9ð 	9rN   c                 ó  — t          d¦  «        }t          d¦  «        }|                      t          ||¦  «        d¦  «         |                      t          ||¦  «        d¦  «         |                      t	          ||¦  «        d¦  «         d S )Nr?  r@  r–   rÏ   r6   )r   r@   r   r   r    rq   s      rL   r(  zTestsBitwiseCount.test_frozenf  s|   € Ý˜8Ñ$Ô$ˆÝ˜8Ñ$Ô$ˆØ×Ò� 1 a™œ¨!Ñ,Ô,Ð,Ø×Ò� ! Q™œ¨Ñ+Ô+Ð+Ø×Ò� 1 a™œ¨!Ñ,Ô,Ð,Ð,Ð,rN   c                 ó*  — t          d¦  «        D �]}t          d¦  «        }t          ||                      ¦   «         ¦  «        }t          ||                     ¦   «         ¦  «        }|                      t          ||¦  «        ||z                       ¦   «         ¦  «         |                      t          ||¦  «        ||z                       ¦   «         ¦  «         |                      t          ||¦  «        ||z                       ¦   «         ¦  «         �Œd S )Nr=   ro   )
r?   r   r   Úrandom_endianrT   r@   r   rD   r   r    )rH   rå   rI   rJ   rK   s        rL   r£   zTestsBitwiseCount.test_randomm  sß   € Ý�s‘”ð 	?ñ 	?ˆAÝ˜$‘”ˆAÝ˜˜4×-Ò-Ñ/Ô/Ñ0Ô0ˆAÝ˜˜1Ÿ8š8™:œ:Ñ&Ô&ˆAØ×Ò�Y q¨!™_œ_¨q°1©u¯mªm©o¬oÑ>Ô>Ð>Ø×Ò�X a¨™^œ^¨q°1©u¯mªm©o¬oÑ>Ô>Ð>Ø×Ò�Y q¨!™_œ_¨q°1©u¯mªm©o¬oÑ>Ô>Ð>Ñ>ð	?ð 	?rN   c                 óT  — |                       ¦   «         D �]‘}t          |¦  «        }t          ||                     ¦   «         ¦  «        }|                      t          ||z  ¦  «        t          ||¦  «        dk    ¦  «         |                      t          ||¦  «        t          ||z  ¦  «        ¦  «         |                      t          ||z  ¦  «        t          ||¦  «        dk    ¦  «         |                      t          ||z  ¦  «        t          |¦  «        pt          |¦  «        ¦  «         |                      t          ||z  ¦  «        t          ||¦  «        dk    ¦  «         |                      t          ||z  ¦  «        ||k    ¦  «         |                      t          ||z  ¦  «        t          ||¦  «        |k    ¦  «         |                      t          ||z  ¦  «        t          |¦  «        ot          |¦  «        ¦  «         |                      t          ||z  ¦  «        t          ||¦  «        |k    ¦  «         |                      t          ||z  ¦  «        t          ||¦  «        |k    ¦  «         |                      t          ||z  ¦  «        || k    ¦  «         �Œ“d S ©Nr   )rÅ   rA   r   rT   r@   rC   r   r!   r   r    rG   ©rH   rJ   rI   rK   s       rL   Ú	test_misczTestsBitwiseCount.test_miscv  s0  € Ø×%Ò%Ñ'Ô'ð 	2ñ 	2ˆAÝ�A‘”ˆAÝ˜˜1Ÿ8š8™:œ:Ñ&Ô&ˆAà×Ò�S  Q¡™ZœZ­°1°a©¬¸1Ò)<Ñ=Ô=Ð=Ø×Ò�W Q¨™]œ]­C°°A±©J¬JÑ7Ô7Ð7à×Ò�S  Q¡™ZœZ­°!°Q©¬¸!Ò);Ñ<Ô<Ð<Ø×Ò�S  Q¡™ZœZ­¨Q©¬Ð)9µ3°q±6´6Ñ:Ô:Ð:à×Ò�S  Q¡™ZœZ­°1°a©¬¸1Ò)<Ñ=Ô=Ð=Ø×Ò�S  Q¡™ZœZ¨¨aªÑ0Ô0Ð0ð ×Ò�S  Q¡™ZœZ­°1°a©¬¸AÒ)=Ñ>Ô>Ð>Ø×Ò�S  Q¡™ZœZ­¨Q©¬Ð):µC¸±F´FÑ;Ô;Ð;à×Ò�S  Q¡™ZœZ­°!°Q©¬¸1Ò)<Ñ=Ô=Ð=à×Ò�S  Q¡™ZœZ­°1°a©¬¸AÒ)=Ñ>Ô>Ð>Ø×Ò�S  Q¡™ZœZ¨¨q¨bªÑ1Ô1Ð1Ñ1ð)	2ð 	2rN   N)rd   re   rf   r=  rD  r(  r£   rK  rg   rN   rL   r6  r6  :  s_   € € € € € ð1ð 1ð 1ð9ð 9ð 9ð6-ð -ð -ð?ð ?ð ?ð2ð 2ð 2ð 2ð 2rN   r6  c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestsBitwiseAnyc           	      óö  — t          d¦  «        }t          d¦  «        }|                      t          ||¦  «        ¦  «         |                      t
          t          ¦  «         |                      t
          t          |d¦  «         |                     d¦  «         |                      t          t          ||¦  «         |                      t          t          t          dd¦  «        t          dd¦  «        ¦  «         d S )	NÚ0101Ú0111rÓ   r>   r…   rR   Ú11rQ   )r   r   rF   r!   r^   r_   rB  r`   rq   s      rL   rm   zTestsBitwiseAny.test_basic‘  sÏ   € Ý˜6Ñ"Ô"ˆÝ�VÑÔˆØ�Š�  1™œÑ&Ô&Ð&Ø×Ò�)¥WÑ-Ô-Ð-Ø×Ò�)¥W¨a°Ñ3Ô3Ð3Ø	�Š�‰ŒˆØ×Ò�*¥g¨q°!Ñ4Ô4Ð4Ø×Ò�*¥gÝ" 4¨Ñ2Ô2Ý" 4¨Ñ/Ô/ñ	1ô 	1ð 	1ð 	1ð 	1rN   c                 ó–  — t          ||¦  «        }|                      |t          ¦  «         |                      |t          ||¦  «        ¦  «         |                      |t	          ||z  ¦  «        ¦  «         |                      |||z                       ¦   «         ¦  «         |                      |t          ||¦  «        dk    ¦  «         d S rI  )r!   rE   Úboolr@   rC   r   )rH   rJ   rK   r�   s       rL   ÚcheckzTestsBitwiseAny.check�  s®   € Ý�A�q‰MŒMˆØ×Ò˜a¥Ñ&Ô&Ð&Ø×Ò˜�G A q™MœMÑ*Ô*Ð*Ø×Ò˜�C  A¡™JœJÑ'Ô'Ð'Ø×Ò˜˜Q ™UŸKšK™MœMÑ*Ô*Ð*Ø×Ò˜�I a¨™OœO¨aÒ/Ñ0Ô0Ð0Ð0Ð0rN   c                 óÊ   — dD ]_\  }}}t          |¦  «        }t          |¦  «        }|                      t          ||¦  «        |u ¦  «         |                      ||¦  «         Œ`d S )N))rZ   rZ   F)r
  r—   F)r
  r
  F)r—   r—   T)Ú00011Ú11100F)z
00001011 1z
01000100 1T)r   rF   r!   rT  ©rH   rJ   rK   rî   s       rL   Útest_explitcitzTestsBitwiseAny.test_explitcit¥  sq   € ð4ð 
	ð 
	‰JˆAˆq�3õ ˜‘”ˆAÝ˜‘”ˆAØ�OŠO�G A q™MœM¨SÐ0Ñ1Ô1Ð1Ø�JŠJ�q˜!ÑÔÐÐð
	ð 
	rN   c                 óÂ   — |                       ¦   «         D ]I}t          |¦  «        }t          ||                     ¦   «         ¦  «        }|                      ||¦  «         ŒJd S r|   )rÅ   rA   r   rT   rT  rJ  s       rL   r£   zTestsBitwiseAny.test_random²  s`   € Ø×%Ò%Ñ'Ô'ð 	ð 	ˆAÝ�A‘”ˆAÝ˜˜1Ÿ8š8™:œ:Ñ&Ô&ˆAØ�JŠJ�q˜!ÑÔÐÐð	ð 	rN   c                 óä   — t          dd¦  «        D ]^}t          |¦  «        }t          |¦  «        }t          |¦  «        }d||<   |                      ||         t          ||¦  «        ¦  «         Œ_d S )Nr>   é,  )r?   r   r   r   r@   r!   )rH   rI   rJ   rK   rÞ   s        rL   Útest_onezTestsBitwiseAny.test_one¸  sr   € Ý�q˜#‘”ð 	2ð 	2ˆAÝ�a‘”ˆAÝ˜‘
”
ˆAÝ˜!‘”ˆAØˆAˆa‰DØ×Ò˜Q˜qœT¥7¨1¨a¡=¤=Ñ1Ô1Ð1Ð1ð	2ð 	2rN   N)rd   re   rf   rm   rT  rY  r£   r]  rg   rN   rL   rM  rM  �  s_   € € € € € ð
1ð 
1ð 
1ð1ð 1ð 1ðð ð ðð ð ð2ð 2ð 2ð 2ð 2rN   rM  c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestsSubsetc           	      óÄ  — t          d¦  «        }t          d¦  «        }|                      t          ||¦  «        ¦  «         |                      t          ||¦  «        ¦  «         |                      t          t          ¦  «         |                      t          t          |d¦  «         |                      t          t          d|¦  «         |                      t          t          |d¦  «         |                     d¦  «         |                      t          t          ||¦  «         |                      t          t          t          dd¦  «        t          d	d
¦  «        ¦  «         d S )NrO  rP  rZ   r—   rÓ   r>   r…   rR   rQ  rQ   )	r   r   rF   r"   rB   r^   r_   rB  r`   rq   s      rL   rm   zTestsSubset.test_basicÄ  s  € Ý˜6Ñ"Ô"ˆÝ�VÑÔˆØ�Š�˜q !™œÑ%Ô%Ð%Ø×Ò�  1™œÑ&Ô&Ð&Ø×Ò�)¥VÑ,Ô,Ð,Ø×Ò�)¥V¨Q°Ñ3Ô3Ð3Ø×Ò�)¥V¨S°!Ñ4Ô4Ð4Ø×Ò�)¥V¨Q°Ñ2Ô2Ð2Ø	�Š�‰ŒˆØ×Ò�*¥f¨a°Ñ3Ô3Ð3Ø×Ò�*¥fÝ" 4¨Ñ2Ô2Ý" 4¨Ñ/Ô/ñ	1ô 	1ð 	1ð 	1ð 	1rN   c                 óü   — t          ||¦  «        }|                      |t          ¦  «         |                      ||¦  «         |                      ||z  |k    |¦  «         |                      ||z  |k    |¦  «         d S r|   )r"   rE   rS  r@   )rH   rJ   rK   rî   r�   s        rL   rT  zTestsSubset.checkÓ  s}   € Ý�1�a‰LŒLˆØ×Ò˜a¥Ñ&Ô&Ð&Ø×Ò˜˜CÑ Ô Ð Ø×Ò˜˜Q™ !š SÑ)Ô)Ð)Ø×Ò˜˜Q™ !š SÑ)Ô)Ð)Ð)Ð)rN   c                 óx   — dD ]6\  }}|                       t          |¦  «        t          |¦  «        d¦  «         Œ7d S )N))rZ   rZ   )r
  r—   )r
  r
  )r—   r—   )rU   rV   )rO  rP  )Ú	000010111Ú	010011111T©rT  r   rq   s      rL   Ú	test_TruezTestsSubset.test_TrueÚ  sH   € ð1ð 	7ð 	7‰DˆAˆqð �JŠJ•x ‘{”{¥H¨Q¡K¤K°Ñ6Ô6Ð6Ð6ð	7ð 	7rN   c                 óx   — dD ]6\  }}|                       t          |¦  «        t          |¦  «        d¦  «         Œ7d S )N))r—   r
  )Ú1101rP  )Ú
0000101111Ú
0100111011Fre  rq   s      rL   Ú
test_FalsezTestsSubset.test_Falseà  sF   € ð3ð 	8ð 	8‰DˆAˆqà�JŠJ•x ‘{”{¥H¨Q¡K¤K°Ñ7Ô7Ð7Ð7ð	8ð 	8rN   c                 óh  — |                       d¬¦  «        D ]š}|                     ¦   «         }|t          t          |¦  «        ¦  «                 dk     |                      ||d¦  «         |                      ||||k    ¦  «         |                     d¦  «         |                      ||d¦  «         Œ›d S )Nr>   ©rè   T)rÅ   rÆ   r   rA   rT  rØ   rq   s      rL   r£   zTestsSubset.test_randomå  s¯   € Ø×%Ò%¨AÐ%Ñ.Ô.ð 		#ð 		#ˆAØ—’‘”ˆAà�i�˜A™œÑÔÔ  AÒ%Ð%Ø�JŠJ�q˜!˜TÑ"Ô"Ð"à�JŠJ�q˜!˜Q !šVÑ$Ô$Ð$à�HŠH�Q‰KŒKˆKØ�JŠJ�q˜!˜TÑ"Ô"Ð"Ð"ð		#ð 		#rN   N)rd   re   rf   rm   rT  rf  rk  r£   rg   rN   rL   r_  r_  Â  s_   € € € € € ð1ð 1ð 1ð*ð *ð *ð7ð 7ð 7ð8ð 8ð 8ð

#ð 
#ð 
#ð 
#ð 
#rN   r_  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestsCorrespondAllc           	      ó´  — t          d¦  «        }t          d¦  «        }|                      t          ||¦  «        d¦  «         |                      t
          t          ¦  «         |                     d¦  «         |                      t          t          ||¦  «         |                      t          t          t          dd¦  «        t          dd¦  «        ¦  «         d S )	NrO  rP  )r>   r>   r>   r>   r>   r…   rR   rQ  rQ   )r   r   rF   r#   r^   r_   rB  r`   rq   s      rL   rm   zTestsCorrespondAll.test_basicõ  s¹   € Ý˜6Ñ"Ô"ˆÝ�VÑÔˆØ�Š�¨¨1Ñ-Ô-¨|Ñ<Ô<Ð<Ø×Ò�)¥_Ñ5Ô5Ð5Ø	�Š�‰ŒˆØ×Ò�*¥o°q¸!Ñ<Ô<Ð<Ø×Ò�*¥oÝ" 4¨Ñ2Ô2Ý" 4¨Ñ/Ô/ñ	1ô 	1ð 	1ð 	1ð 	1rN   c           	      ó”   — dD ]D\  }}}|                       t          t          |¦  «        t          |¦  «        ¦  «        |¦  «         ŒEd S )N))rZ   rZ   )r   r   r   r   )Ú
0000011111Ú
0000100111)rÓ   r>   r–   r6   )r@   r#   r   rX  s       rL   rY  z!TestsCorrespondAll.test_explitcit   sX   € ðð 	Mð 	M‰IˆAˆq�#ð
 ×Ò�_­X°a©[¬[½(À1¹+¼+ÑFÔFÈÑLÔLÐLÐLð	Mð 	MrN   c           	      ó  — |                       ¦   «         D �]s}t          |¦  «        }t          ||                     ¦   «         ¦  «        }t	          ||¦  «        }|                      |d         t          | | ¦  «        ¦  «         |                      |d         t          | |¦  «        ¦  «         |                      |d         t          || ¦  «        ¦  «         |                      |d         t          ||¦  «        ¦  «         |                      |d         |t          ||¦  «        z
  ¦  «         |                      |d         |d         z   t          ||¦  «        ¦  «         |                      t          |¦  «        |¦  «         �Œud S )Nr   r>   r–   r6   )
rÅ   rA   r   rT   r#   r@   r   r   r    Úsum)rH   rJ   rI   rK   rî   s        rL   r£   zTestsCorrespondAll.test_random  s^  € Ø×%Ò%Ñ'Ô'ð 	*ñ 	*ˆAÝ�A‘”ˆAÝ˜˜1Ÿ8š8™:œ:Ñ&Ô&ˆAÝ! ! QÑ'Ô'ˆCØ×Ò˜S œV¥Y°¨r°A°2Ñ%6Ô%6Ñ7Ô7Ð7Ø×Ò˜S œV¥Y°¨r°1Ñ%5Ô%5Ñ6Ô6Ð6Ø×Ò˜S œV¥Y¨q°1°"Ñ%5Ô%5Ñ6Ô6Ð6Ø×Ò˜S œV¥Y¨q°!¡_¤_Ñ5Ô5Ð5à×Ò˜S œV Q­°!°Q©¬Ñ%7Ñ8Ô8Ð8Ø×Ò˜S œV c¨!¤f™_­i¸¸1©o¬oÑ>Ô>Ð>Ø×Ò�S ™XœX qÑ)Ô)Ð)Ñ)ð	*ð 	*rN   N)rd   re   rf   rm   rY  r£   rg   rN   rL   ro  ro  ó  sD   € € € € € ð	1ð 	1ð 	1ðMð Mð Mð*ð *ð *ð *ð *rN   ro  c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestsParityc                 ó  — t          ¦   «         }|                      t          |¦  «        d¦  «         d}t          d¦  «        D ]=}|                      t          |¦  «        |¦  «         |                     d¦  «         | }Œ>d S )Nr   Fro   r>   )r   ÚassertBitEqualr   r?   r@   rB  )rH   rJ   Úparrå   s       rL   rƒ   zTestsParity.test_bitarray  s   € Ý‰JŒJˆØ×Ò�F 1™IœI qÑ)Ô)Ð)ØˆÝ�t‘”ð 	ð 	ˆAØ×Ò�V A™YœY¨Ñ,Ô,Ð,Ø�HŠH�Q‰KŒKˆKØ�'ˆCˆCð	ð 	rN   c                 óh   — t          d¦  «        }|                      t          |¦  «        ¦  «         d S rÛ   )r   rF   r   r‚   s     rL   Útest_pad_ignoredzTestsParity.test_pad_ignored#  s+   € Ý�‰GŒGˆØ�Š�˜q™	œ	Ñ"Ô"Ð"Ð"Ð"rN   c                 óv   — dD ]5\  }}|                       t          t          |¦  «        ¦  «        |¦  «         Œ6d S )N)©rZ   r   )Ú0010011r>   )Ú10100110r   )ry  r   r   )rH   r‘   Úps      rL   r†   zTestsParity.test_frozenbitarray'  sH   € Ø>ð 	>ð 	>‰DˆAˆqØ×Ò¥¥~°aÑ'8Ô'8Ñ 9Ô 9¸1Ñ=Ô=Ð=Ð=ð	>ð 	>rN   c                 ó˜   — |                       t          t          d¦  «         |                       t          t          ¦   «         d¦  «         d S )NrZ   r>   )r^   r_   r   r   rt   s    rL   rc   zTestsParity.test_wrong_args+  s<   € Ø×Ò�)¥V¨RÑ0Ô0Ð0Ø×Ò�)¥X¡Z¤Z°Ñ3Ô3Ð3Ð3Ð3rN   c                 ó  — t          d¦  «        D ]x}t          ¦   «         }|                     t          t	          |g¦  «        ¦  «        ¦  «         |                      t          |¦  «        |                     ¦   «         dz  ¦  «         Œyd S )Nr8  r–   )r?   r   r9  r:  r;  r@   r   rD   )rH   rÞ   rJ   s      rL   Ú	test_bytezTestsParity.test_byte/  sw   € Ý�s‘”ð 	7ð 	7ˆAÝ‘
”
ˆAØ�KŠK��i¨¨™nœnÑ-Ô-Ñ.Ô.Ð.Ø×Ò�V A™YœY¨¯ª©	¬	°A©Ñ6Ô6Ð6Ð6ð	7ð 	7rN   c                 óø   — |                       ¦   «         D ]d}|                     ¦   «         }|                      t          |¦  «        |                     ¦   «         dz  ¦  «         |                      ||¦  «         Œed S )Nr–   )rÅ   rÆ   r@   r   rD   rq   s      rL   r£   zTestsParity.test_random5  su   € Ø×%Ò%Ñ'Ô'ð 	#ð 	#ˆAØ—’‘”ˆAØ×Ò�V A™YœY¨¯ª©	¬	°A©Ñ6Ô6Ð6Ø×Ò˜Q Ñ"Ô"Ð"Ð"ð	#ð 	#rN   N)	rd   re   rf   rƒ   r|  r†   rc   r„  r£   rg   rN   rL   rw  rw    sn   € € € € € ðð ð ð#ð #ð #ð>ð >ð >ð4ð 4ð 4ð7ð 7ð 7ð#ð #ð #ð #ð #rN   rw  c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestsIntervalsc                 ó´   — dg fddgfddgfdg d¢ffD ]D\  }}t          |¦  «        }|                      t          t          |¦  «        ¦  «        |¦  «         ŒEd S )NrZ   r
  )r   r   r>   r—   )r>   r   r>   z00111100 00000111 00))r   r   r–   )r>   r–   rÌ   )r   rÌ   r$  )r>   r$  é   )r   r‰  é   )r   r@   Úlistr$   )rH   r‘   ró   rJ   s       rL   Útest_explicitzTestsIntervals.test_explicit?  s‚   € à�R�Ø�y�kÐ"Ø�y�kÐ"Ø'ØMÐMÐMðOð	ð 	6ð 	6‰FˆAˆsõ ˜‘”ˆAØ×Ò�T¥)¨A¡,¤,Ñ/Ô/°Ñ5Ô5Ð5Ð5ð	6ð 	6rN   c                 ó"  — dD ]‹\  }}t          |¦  «        }|                      |t          t          t	          |¦  «        ¦  «        ¦  «        ¦  «         |                      |t          d„ t	          |¦  «        D ¦   «         ¦  «        ¦  «         ŒŒd S )N)r~  )r
  r>   )r—   r>   )Ú00r>   )r…   r–   )Ú10r–   )rQ  r>   )Ú0011110000000r6   c              3   ó   K  — | ]}d V — ŒdS )r>   Nrg   ©rä   rå   s     rL   ú	<genexpr>z,TestsIntervals.test_count.<locals>.<genexpr>W  s"   è è € Ð%>Ð%>¨A aÐ%>Ð%>Ð%>Ð%>Ð%>Ð%>rN   )r   r@   rA   r‹  r$   ru  )rH   r‘   rî   rJ   s       rL   rr   zTestsIntervals.test_countJ  s”   € ð	ð 	@ð 	@‰FˆAˆsõ ˜‘”ˆAØ×Ò˜S¥#¥d­9°Q©<¬<Ñ&8Ô&8Ñ"9Ô"9Ñ:Ô:Ð:Ø×Ò˜S¥#Ð%>Ð%>µ¸1±´Ð%>Ñ%>Ô%>Ñ">Ô">Ñ?Ô?Ð?Ð?ð	@ð 	@rN   c                 ót  — |                       ¦   «         D �]!}t          t          |¦  «        ¦  «        }ddg}|r|d         nd }t          |¦  «        D ]˜\  }}}|                      t          |t          ¦  «        ¦  «         |                      ||¦  «         | }|                      d|cxk    o|cxk     ot          |¦  «        k    nc ¦  «         ||xx         ||z
  z  cc<   ||||…<   Œ™|                      ||¦  «         dD ]1}|                      ||         | 	                    |¦  «        ¦  «         Œ2�Œ#d S )Nr   rÔ   )
rÅ   r   rA   r$   rB   Ú
isinstancerS  r@   rF   rD   )rH   rJ   rK   r<  rÖ   Úvaluerè   ré   s           rL   r£   zTestsIntervals.test_randomY  sf  € Ø×%Ò%Ñ'Ô'ð 	5ñ 	5ˆAÝ�˜A™œ‘”ˆAØ�a�&ˆCØÐ#��!”�˜tˆAÝ&/°¡l¤lð &ð &Ñ"��u˜dØ× Ò ¥¨Eµ4Ñ!8Ô!8Ñ9Ô9Ð9Ø× Ò  ¨Ñ*Ô*Ð*Ø�E�Ø—’  UÐ ;Ð ;Ò ;Ð ;¨TÐ ;Ð ;Ò ;Ð ;µS¸±V´VÒ ;Ð ;Ð ;Ð ;Ñ<Ô<Ð<Ø�E�
�
”
˜d U™lÑ*�
�
‘
Ø %��%˜�*‘�Ø×Ò˜Q Ñ"Ô"Ð"Øð 5ð 5�Ø× Ò   Q¤¨¯ª°©¬Ñ4Ô4Ð4Ð4ñ5ð	5ð 	5rN   c                 ó&  — |                       ¦   «         D ]{}|r|d         nd }d„ t          |¦  «        D ¦   «         }t          ¦   «         }|}|D ]+}|                     |t          |g¦  «        z  ¦  «         | }Œ,|                      ||¦  «         Œ|d S )Nr   c                 ó    — g | ]\  }}}||z
  ‘ŒS rg   rg   )rä   rå   rè   ré   s       rL   ræ   z,TestsIntervals.test_runs.<locals>.<listcomp>m  s"   € ÐDÐDÐD¡^ Q¨¨t�D˜5‘LÐDÐDÐDrN   )rÅ   r$   r   Úextendr@   )rH   rJ   ÚfirstÚrunsrK   rÖ   Úlengths          rL   Ú	test_runszTestsIntervals.test_runsi  s°   € Ø×%Ò%Ñ'Ô'ð 	#ð 	#ˆAØÐ'�A�a”D�D 4ˆEàDÐDµyÀ±|´|ÐDÑDÔDˆDå‘
”
ˆAØˆAØð ð �Ø—’˜¥(¨A¨3¡-¤-Ñ/Ñ0Ô0Ð0Ø�E��à×Ò˜Q Ñ"Ô"Ð"Ð"ð	#ð 	#rN   N)rd   re   rf   rŒ  rr   r£   r�  rg   rN   rL   r‡  r‡  =  sS   € € € € € ð	6ð 	6ð 	6ð@ð @ð @ð5ð 5ð 5ð #ð #ð #ð #ð #rN   r‡  c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestsHexlifyc                 ó  — |                       t          t          dd¦  «        ¦  «        d¦  «         |                       t          t          dd¦  «        ¦  «        d¦  «         |                       t          t          dd¦  «        ¦  «        d¦  «         |                       t          t          dd¦  «        ¦  «        d	¦  «         |                       t          t          d
d¦  «        ¦  «        d¦  «         |                       t          t          dd¦  «        ¦  «        d¦  «         |                       t          t          d
d¦  «        ¦  «        d¦  «         |                       t          t          dd¦  «        ¦  «        d¦  «         |                      t
          t          t          d¦  «        ¦  «         |                      t          t          d¦  «         t          t          dd¦  «        ¦  «        }|                      |t          ¦  «         t          d¦  «        D ]e}t          |dz  d¦  «        }| 
                    ¦   «         }|                       t          |¦  «        |dz  ¦  «         |                      ||¦  «         Œfd S )Nr   rQ   rZ   Ú1110ÚerR   Ú7ú	0000 0001r…   z	1000 0000Ú80Ú08r�  z	1100 0111Úc7rA  rh  rÒ   Ú1111ra   )r@   r'   r   r   r^   r`   r_   rE   rÝ   r?   rÆ   rÇ   )rH   r½   rI   rJ   rK   s        rL   Útest_ba2hexzTestsHexlify.test_ba2hex{  s  € Ø×Ò�¥¨¨EÑ 2Ô 2Ñ3Ô3°RÑ8Ô8Ð8Ø×Ò�¥¨°Ñ 7Ô 7Ñ8Ô8¸#Ñ>Ô>Ð>Ø×Ò�¥¨°Ñ :Ô :Ñ;Ô;¸SÑAÔAÐAØ×Ò�¥¨°eÑ <Ô <Ñ=Ô=¸tÑDÔDÐDØ×Ò�¥¨°eÑ <Ô <Ñ=Ô=¸tÑDÔDÐDØ×Ò�¥¨°hÑ ?Ô ?Ñ@Ô@À$ÑGÔGÐGØ×Ò�¥¨°hÑ ?Ô ?Ñ@Ô@À$ÑGÔGÐGØ×Ò�¥¨{¸EÑ BÔ BÑCÔCÀTÑJÔJÐJà×Ò�*¥f­h°t©n¬nÑ=Ô=Ð=Ø×Ò�)¥V¨UÑ3Ô3Ð3å•8˜F EÑ*Ô*Ñ+Ô+ˆØ×Ò˜a¥Ñ%Ô%Ð%å�q‘”ð 	#ð 	#ˆAÝ˜˜V™ UÑ+Ô+ˆAØ—’‘”ˆAØ×Ò�V A™YœY¨¨C©Ñ0Ô0Ð0à×Ò˜Q Ñ"Ô"Ð"Ð"ð	#ð 	#rN   c                 ód  — t          d¦  «         |                      t          d¦  «        t          ¦   «         ¦  «         dD ]w}t          |¦  «        }|                      |                     ¦   «         d¦  «         |                      |                     ¦   «         d¦  «         |                      |d¦  «         Œx|                      t          d¦  «        t          dd¦  «        ¦  «         |                      t          dd	¦  «        t          dd	¦  «        ¦  «         |                      t          d
¦  «        t          dd¦  «        ¦  «         |                      t          d¦  «        t          dd¦  «        ¦  «         |                      t          dd	¦  «        t          dd	¦  «        ¦  «         d S )NrQ   rZ   ©r¢  ÚEó   eó   Er¢  r¬  r¡  r   r…   r¤  r¦  rR   ÚaDz	1010 1101s   10aFz0001 0000 1010 1111z1000 0000 0101 1111)r   r@   r(   r   rÜ   rT   r»   rÇ   ©rH   r½   rJ   s      rL   Útest_hex2bazTestsHexlify.test_hex2ba’  sŽ  € Ý˜EÑ"Ô"Ð"Ø×Ò� ™œ¥X¡Z¤ZÑ0Ô0Ð0Ø1ð 	-ð 	-ˆAÝ�q‘	”	ˆAØ×Ò˜QŸVšV™XœX vÑ.Ô.Ð.Ø×Ò˜QŸXšX™ZœZ¨Ñ/Ô/Ð/Ø×Ò˜a Ñ,Ô,Ð,Ð,Ø×Ò� ™œ¥x°¸UÑ'CÔ'CÑDÔDÐDØ×Ò�  hÑ/Ô/Ý! +¨xÑ8Ô8ñ	:ô 	:ð 	:à×Ò� ™œ¥x°¸UÑ'CÔ'CÑDÔDÐDØ×Ò� ™œÝ!Ð"7¸Ñ?Ô?ñ	Aô 	Að 	Aà×Ò� ¨Ñ2Ô2Ý!Ð"7¸ÑBÔBñ	Dô 	Dð 	Dð 	Dð 	DrN   c           	      óô  — |                       t          t          d¦  «         dD ]Ó}t          |¦  «         |                       t          t          d¦  «         |                       t          t          d¦  «         dD ]'}d}|                      t          |t          ||¦  «         Œ(dD ]S}d}t          j        d         d	k    r|                     d
d¦  «        }|                      t          |t          ||¦  «         ŒTŒÔd S )Nr   ©rR   rQ   Ú01a7g89u   0â‚¬)ÚgÚagÚaagaaagar¶  ú+non-hexadecimal digit found, got 'g' (0x67))ó    s    fs   f s    ffs   f fs   ff z+non-hexadecimal digit found, got ' ' (0x00)r–   Ú0x00Ú0x0)	r^   r_   r(   r   r`   r  ÚsysÚversion_infoÚreplace)rH   rT   r‘   r/  rK   s        rL   Útest_hex2ba_errorszTestsHexlify.test_hex2ba_errors£  s  € Ø×Ò�)¥V¨QÑ/Ô/Ð/à%ð 	Mð 	MˆFÝ Ñ'Ô'Ð'Ø×Ò�j­&°)Ñ<Ô<Ð<Ø×Ò�j­&°*Ñ=Ô=Ð=à3ð Mð M�ØC�Ø×(Ò(­°S½&À!ÀVÑLÔLÐLÐLð Fð Mð M�ØD�ÝÔ# AÔ&¨!Ò+Ð+ØŸ+š+ f¨eÑ4Ô4�CØ×(Ò(­°S½&À!ÀVÑLÔLÐLÐLð	Mð	Mð 	MrN   c                 ó|  — g d¢}|D ]´\  }}}t          |d¦  «        }t          |d¦  «        }|                      t          |d¦  «        |¦  «         |                      t          |d¦  «        |¦  «         |                      t	          |¦  «        |¦  «         |                      t	          |¦  «        |¦  «         Œµd S )N))rZ   rZ   rZ   )Ú1000r—   Ú8)z	1000 1100Ú13Ú8c)z1000 1100 1110Ú137Ú8ce)z1000 1100 1110 1111Ú137fÚ8cef)z1000 1100 1110 1111 0100Ú137f2Ú8cef4rQ   rR   )r   rÇ   r(   r@   r'   )rH   ÚdataÚbsÚhex_leÚhex_beÚa_beÚa_les          rL   rŒ  zTestsHexlify.test_explicit¶  sÎ   € ð
ð 
ð 
ˆð #'ð 	3ð 	3ÑˆB�˜Ý˜B Ñ&Ô&ˆDÝ˜B Ñ)Ô)ˆDØ×Ò�V F¨EÑ2Ô2°DÑ9Ô9Ð9Ø×Ò�V F¨HÑ5Ô5°tÑ<Ô<Ð<Ø×Ò�V D™\œ\¨6Ñ2Ô2Ð2Ø×Ò�V D™\œ\¨6Ñ2Ô2Ð2Ð2ð	3ð 	3rN   c                 ó6  — dD �]}t          |¦  «         t          t          ¦  «        }|                      t	          |¦  «        dz  d¦  «         |                      |                     ¦   «         |¦  «         |                      |d¦  «         |                      |¦  «         t          |¦  «        }|                      |t          j	        ¦   «         ¦  «         |  
                    |t          ¦  «         |                      |t          ||¦  «        ¦  «         �Œd S )NrP   rÓ   r   r   )r   r(   r   r@   rA   rT   r»   Ú	check_objr'   ÚlowerrE   rÝ   rÇ   )rH   rW   rJ   Úts       rL   Útest_hexdigitszTestsHexlify.test_hexdigitsÇ  sþ   € Ø-ð 	;ñ 	;ˆNÝ Ñ/Ô/Ð/Ý•yÑ!Ô!ˆAØ×Ò�S ™VœV a™Z¨Ñ+Ô+Ð+Ø×Ò˜QŸXšX™ZœZ¨Ñ8Ô8Ð8Ø×Ò˜a Ñ,Ô,Ð,Ø�NŠN˜1ÑÔÐå�q‘	”	ˆAØ×Ò˜Q¥	¤Ñ 1Ô 1Ñ2Ô2Ð2Ø×!Ò! !¥SÑ)Ô)Ð)Ø×Ò˜Q¥ q¨.Ñ 9Ô 9Ñ:Ô:Ð:Ñ:ð	;ð 	;rN   c                 ó’  — t          dd¦  «        }t          j        |                     ¦   «         ¦  «                             ¦   «         }|                      t          |¦  «        |¦  «         t          d¬¦  «        }|                     t          j	        |¦  «        ¦  «         |  
                    t          |d¦  «        |¦  «         d S )NéP   rQ   rS   )r   ÚbinasciiÚhexlifyÚtobytesÚdecoder@   r'   r   r9  Ú	unhexlifyrÇ   r(   )rH   rJ   r‘   rK   s       rL   Útest_binasciizTestsHexlify.test_binasciiÕ  s¤   € Ý�B˜ÑÔˆÝÔ˜QŸYšY™[œ[Ñ)Ô)×0Ò0Ñ2Ô2ˆØ×Ò� ™œ AÑ&Ô&Ð&Ý˜EÐ"Ñ"Ô"ˆØ	�Š•HÔ& qÑ)Ô)Ñ*Ô*Ð*Ø×Ò�  5Ñ)Ô)¨1Ñ-Ô-Ð-Ð-Ð-rN   N)	rd   re   rf   r©  r±  r¿  rŒ  rÕ  rÝ  rg   rN   rL   rŸ  rŸ  y  st   € € € € € ð#ð #ð #ð.Dð Dð Dð"Mð Mð Mð&3ð 3ð 3ð";ð ;ð ;ð.ð .ð .ð .ð .rN   rŸ  c                   ón   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú	TestsBasec                 óx   — t          dt          dd¦  «        ¦  «        }|                      |t          ¦  «         d S )Nr‰  rh  rQ   )r)   r   rE   rÝ   ©rH   r½   s     rL   Útest_ba2basezTestsBase.test_ba2baseá  s7   € Ý�B� ¨Ñ/Ô/Ñ0Ô0ˆØ×Ò˜a¥Ñ%Ô%Ð%Ð%Ð%rN   c                 ó  — t          d¦  «         dD ]x}t          d|¦  «        }|                      |                     ¦   «         d¦  «         |                      |                     ¦   «         d¦  «         |                      |d¦  «         Œyd S )NrQ   r«  r‰  r¡  r   )r   r*   r@   rÜ   rT   r»   r°  s      rL   Útest_base2bazTestsBase.test_base2baå  s‹   € Ý˜EÑ"Ô"Ð"Ø1ð 	-ð 	-ˆAÝ˜˜A‘”ˆAØ×Ò˜QŸVšV™XœX vÑ.Ô.Ð.Ø×Ò˜QŸXšX™ZœZ¨Ñ/Ô/Ð/Ø×Ò˜a Ñ,Ô,Ð,Ð,ð		-ð 	-rN   c                 ó†  — g d¢}|D ]¹\  }}}}t          |d¦  «        }t          |d¦  «        }|                      t          ||d¦  «        |¦  «         |                      t          ||d¦  «        |¦  «         |                      t	          ||¦  «        |¦  «         |                      t	          ||¦  «        |¦  «         Œºd S )N))rZ   r–   rZ   rZ   )z1 0 1r–   rA  rA  )z11 01 00rÓ   Ú320Ú310)z111 001rÍ   Ú74Ú71)z	1111 0001r‰  Úf8Úf1)z11111 00001é    Ú7QÚ7B)z111111 000001é@   z/gz/BrR   rQ   )r   rÇ   r*   r@   r)   )rH   rË  rÌ  rI   Ús_leÚs_berÐ  rÏ  s           rL   rŒ  zTestsBase.test_explicití  sÜ   € ð
ð 
ð 
ˆð "&ð 	5ð 	5ÑˆB��4˜Ý˜B Ñ)Ô)ˆDÝ˜B Ñ&Ô&ˆDØ×Ò�W Q¨¨hÑ7Ô7¸Ñ>Ô>Ð>Ø×Ò�W Q¨¨eÑ4Ô4¸Ñ>Ô>Ð>Ø×Ò�W Q¨Ñ-Ô-¨tÑ4Ô4Ð4Ø×Ò�W Q¨Ñ-Ô-¨tÑ4Ô4Ð4Ð4ð	5ð 	5rN   c                 ó¼   — dD ]X}t          |d¦  «        }|                      |t          ¦   «         ¦  «         |                      t          ||¦  «        d¦  «         ŒYd S )N©r–   rÓ   rÍ   r‰  rì  rï  rZ   ©r*   r@   r   r)   )rH   rI   rJ   s      rL   rÀ   zTestsBase.test_emptyÿ  sc   € Ø$ð 	0ð 	0ˆAÝ˜˜2‘”ˆAØ×Ò˜Q¥¡
¤
Ñ+Ô+Ð+Ø×Ò�W Q¨™]œ]¨BÑ/Ô/Ð/Ð/ð	0ð 	0rN   c                 óh   — |                       t          dd¦  «        t          d¦  «        ¦  «         d S )Nr‰  ÚFr¨  )r@   r*   r   rt   s    rL   Ú
test_upperzTestsBase.test_upper  s0   € Ø×Ò�  SÑ)Ô)­8°FÑ+;Ô+;Ñ<Ô<Ð<Ð<Ð<rN   c                 ó˜   — dD ]F\  }}|dk    rd}nd||t          |¦  «        fz  }|                      t          |t          ||¦  «         ŒGd S )N)	)r–   Ú2)rÓ   Ú4)rÍ   rÂ  )r‰  rµ  )rì  rÂ  )rì  r—   )rì  rJ   )rï  ú-)rï  rå   r‰  r¸  z2invalid digit found for base %d, got '%s' (0x%02x))Úordr  r`   r*   )rH   rI   r‘   r/  s       rL   Útest_invalid_charactersz!TestsBase.test_invalid_characters  sp   € ðAð 	Eð 	E‰DˆAˆqà�BŠwˆwØC��ð+Ø./°µC¸±F´F¨^ñ<�à×$Ò$¥Z°µg¸qÀ!ÑDÔDÐDÐDð	Eð 	ErN   c                 ó  — t          ¦   «         }|                      t          t          d |¦  «         |                      t          t          d d¦  «         |                      t          t          d|¦  «         |                      t          t          dd¦  «         t          dd¦  «        D ]K}|dv rŒ|                      t          t          ||¦  «         |                      t          t          |d¦  «         ŒL|                      t          t          dd ¦  «         |                      t          t          dd ¦  «         dD ]F}|                      t          t          |d¦  «         |                      t          t          |d¦  «         ŒGd S )	NrZ   g      0@iöÿÿÿi  ró  rì  u´   â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬â‚¬s<                                                               )r   r^   r_   r)   r*   r?   r`   )rH   rJ   rÞ   s      rL   Útest_invalid_argszTestsBase.test_invalid_args  sX  € Ý‰JŒJˆØ×Ò�)¥W¨d°AÑ6Ô6Ð6Ø×Ò�)¥W¨d°BÑ7Ô7Ð7Ø×Ò�)¥W¨d°AÑ6Ô6Ð6Ø×Ò�)¥W¨d°BÑ7Ô7Ð7Ý�s˜C‘”ð 	:ð 	:ˆAØÐ)Ð)Ð)ØØ×Ò�j­'°1°aÑ8Ô8Ð8Ø×Ò�j­'°1°bÑ9Ô9Ð9Ð9à×Ò�)¥W¨b°$Ñ7Ô7Ð7Ø×Ò�)¥W¨b°$Ñ7Ô7Ð7à$ð 	Bð 	BˆAØ×Ò�j­'°1°nÑEÔEÐEØ×Ò�j­'°1°jÑAÔAÐAÐAð	Bð 	BrN   c           	      óÀ  — t          dd¦  «        }|                      |t          d¦  «        ¦  «         |                      t          d|¦  «        d¦  «         |                      ¦   «         D ]q}t          d|¦  «        }|                      ||                     ¦   «         ¦  «         |                      t          d||                     ¦   «         ¦  «        |¦  «         Œrd S )Nr–   r  )r*   r@   r   r)   rÅ   rÜ   rÇ   rT   )rH   rJ   r‘   s      rL   Útest_binaryzTestsBase.test_binary%  sÊ   € Ý�A�vÑÔˆØ×Ò˜�H VÑ,Ô,Ñ-Ô-Ð-Ø×Ò�  A™œ¨Ñ/Ô/Ð/à×%Ò%Ñ'Ô'ð 	;ð 	;ˆAÝ˜˜1‘”ˆAØ×Ò˜Q §¢¡¤Ñ)Ô)Ð)Ø×Ò�W Q¨¨1¯8ª8©:¬:Ñ6Ô6¸Ñ:Ô:Ð:Ð:ð	;ð 	;rN   c                 ó¶   — t          ddd¦  «        }|                      |t          d¦  «        ¦  «         |                      t          d|¦  «        d¦  «         d S )NrÓ   Ú0123rQ   ú00 01 10 11rô  r‚   s     rL   Útest_quaternaryzTestsBase.test_quaternary/  sU   € Ý�A�v˜uÑ%Ô%ˆØ×Ò˜�H ]Ñ3Ô3Ñ4Ô4Ð4Ø×Ò�  A™œ¨Ñ/Ô/Ð/Ð/Ð/rN   c                 ó¶   — t          ddd¦  «        }|                      |t          d¦  «        ¦  «         |                      t          d|¦  «        d¦  «         d S )NrÍ   Ú0147rQ   z000 001 100 111rô  r‚   s     rL   Ú
test_octalzTestsBase.test_octal4  sV   € Ý�A�v˜uÑ%Ô%ˆØ×Ò˜�HÐ%6Ñ7Ô7Ñ8Ô8Ð8Ø×Ò�  A™œ¨Ñ/Ô/Ð/Ð/Ð/rN   c           	      ó  — t          ddd¦  «        }|                      |t          d¦  «        ¦  «         |                      t          d|¦  «        d¦  «         t	          d¦  «        D ]™}d                     d„ t	          |¦  «        D ¦   «         ¦  «        }d	D ]h}t          d||¦  «        }|                      |t          ||¦  «        ¦  «         |                      t          d|¦  «        t          |¦  «        ¦  «         ŒiŒšd S )
Nr‰  ÚF61rQ   z1111 0110 0001Úf61rk   rZ   c              3   ó>   K  — | ]}t          t          ¦  «        V — Œd S r|   )r   r   r’  s     rL   r“  z-TestsBase.test_hexadecimal.<locals>.<genexpr>?  s*   è è € Ð<Ð<¨a��yÑ)Ô)Ð<Ð<Ð<Ð<Ð<Ð<rN   rP   )	r*   r@   r   r)   r?   r¬   rÇ   r(   r'   )rH   rJ   rI   r‘   rT   s        rL   Útest_hexadecimalzTestsBase.test_hexadecimal9  s  € Ý�B˜˜uÑ%Ô%ˆØ×Ò˜�HÐ%5Ñ6Ô6Ñ7Ô7Ð7Ø×Ò�  Q™œ¨Ñ/Ô/Ð/å�r‘”ð 	<ð 	<ˆAØ—’Ð<Ð<µ5¸±8´8Ð<Ñ<Ô<Ñ<Ô<ˆAØ)ð <ð <�Ý˜B  6Ñ*Ô*�Ø× Ò  ¥F¨1¨fÑ$5Ô$5Ñ6Ô6Ð6Ø× Ò ¥¨¨Q¡¤µ¸±´Ñ;Ô;Ð;Ð;ð<ð	<ð 	<rN   c                 ó  — t          ddd¦  «        }|                      |t          d¦  «        ¦  «         |                      t          d|¦  «        d¦  «         t	          j        t          dd¦  «        dz  ¦  «        }t          j        |¦  «         	                    ¦   «         }t          d|d¦  «        }|                      | 
                    ¦   «         |¦  «         |                      t          d|¦  «        |¦  «         d S )Nrì  Ú7SHrQ   z11111 10010 00111r‹   r=   rÏ   )r*   r@   r   r)   rª   r   r	   Úbase64Ú	b32encoderÛ  rÚ  ©rH   rJ   r/  r‘   s       rL   Útest_base32zTestsBase.test_base32E  sÝ   € Ý�B˜˜uÑ%Ô%ˆØ×Ò˜�HÐ%8Ñ9Ô9Ñ:Ô:Ð:Ø×Ò�  Q™œ¨Ñ/Ô/Ð/åŒj�  SÑ)Ô)¨AÑ-Ñ.Ô.ˆÝÔ˜SÑ!Ô!×(Ò(Ñ*Ô*ˆÝ�B˜˜5Ñ!Ô!ˆØ×Ò˜Ÿš™œ cÑ*Ô*Ð*Ø×Ò�  Q™œ¨Ñ+Ô+Ð+Ð+Ð+rN   c                 ó  — t          ddd¦  «        }|                      |t          d¦  «        ¦  «         |                      t          d|¦  «        d¦  «         t	          j        t          dd¦  «        dz  ¦  «        }t          j        |¦  «         	                    ¦   «         }t          d|d¦  «        }|                      | 
                    ¦   «         |¦  «         |                      t          d|¦  «        |¦  «         d S )Nrï  z/jHrQ   z111111 100011 000111r‹   r=   r6   )r*   r@   r   r)   rª   r   r	   r  Ústandard_b64encoderÛ  rÚ  r  s       rL   Útest_base64zTestsBase.test_base64P  sÝ   € Ý�B˜˜uÑ%Ô%ˆØ×Ò˜�HÐ%;Ñ<Ô<Ñ=Ô=Ð=Ø×Ò�  Q™œ¨Ñ/Ô/Ð/åŒj�  SÑ)Ô)¨AÑ-Ñ.Ô.ˆÝÔ% cÑ*Ô*×1Ò1Ñ3Ô3ˆÝ�B˜˜5Ñ!Ô!ˆØ×Ò˜Ÿš™œ cÑ*Ô*Ð*Ø×Ò�  Q™œ¨Ñ+Ô+Ð+Ð+Ð+rN   c                 óŽ  — dD ]Á\  }}}|                       d|z  |¦  «         |                       t          |¦  «        |¦  «         t          |¦  «        D ]o\  }}dD ]g}|                       t          t	          |||¦  «        ¦  «        |¦  «         |                       t          |t          |||¦  «        ¦  «        |¦  «         ŒhŒpŒÂd S )N))r>   r–   r…   )r–   rÓ   r  )r6   rÍ   Ú01234567)rÓ   r‰  Ú0123456789abcdef)rÏ   rì  Ú ABCDEFGHIJKLMNOPQRSTUVWXYZ234567)rÌ   rï  z@ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/r>   rP   )r@   rA   Ú	enumerater+   r*   r)   r,   )rH   rÙ   rI   ÚalpabetrÞ   r½   rT   s          rL   Útest_alphabetszTestsBase.test_alphabets[  sò   € ð
ð 	Jð 	J‰MˆAˆq�'ð ×Ò˜Q !™V QÑ'Ô'Ð'Ø×Ò�S ™\œ\¨1Ñ-Ô-Ð-Ý! 'Ñ*Ô*ð Jð J‘��1Ø-ð Jð J�FØ×$Ò$¥V­G°A°q¸&Ñ,AÔ,AÑ%BÔ%BÀAÑFÔFÐFØ×$Ò$¥W¨Qµ°q¸!¸VÑ0DÔ0DÑ%EÔ%EÀqÑIÔIÐIÐIðJðJð	Jð 	JrN   c                 ó’  — |                       ¦   «         D ]±}t          dd¦  «        D ]ž}d|z  }t          |¦  «        |z  dk    r_t          ||¦  «        }t	          |||                     ¦   «         ¦  «        }|                      ||¦  «         |                      |¦  «         Œ||                      t          t          ||¦  «         ŒŸŒ²d S )Nr>   rÒ   r   )
rÅ   r?   rA   r)   r*   rT   rÇ   rÒ  r^   r`   )rH   rJ   rÙ   rI   r‘   rK   s         rL   r£   zTestsBase.test_randoml  sÔ   € Ø×%Ò%Ñ'Ô'ð 		Að 		AˆAÝ˜1˜a‘[”[ð Að A�Ø˜‘F�Ý�q‘6”6˜A‘: ’?�?Ý  1™œ�AÝ  1 a§h¢h¡j¤jÑ1Ô1�AØ×$Ò$ Q¨Ñ*Ô*Ð*Ø—N’N 1Ñ%Ô%Ð%Ð%à×%Ò%¥jµ'¸1¸aÑ@Ô@Ð@Ð@ðAð		Að 		ArN   c                 ó¤  — t          dd¦  «        D ]¾}d|z  }t          dd|¦  «        D ]¥}t          |d¦  «        }t          ||¦  «        }|                      |t          ¦  «         |                      t          ||d¦  «        |¦  «         t          |d¦  «        }|                      t          |t          ||¦  «        d¦  «        |¦  «         Œ¦Œ¿d S )Nr>   rÒ   r   r=   rR   rQ   )r?   r   r)   rE   rÝ   rÇ   r*   r   )rH   rÙ   rI   rœ  rJ   r‘   rK   s          rL   Útest_random2zTestsBase.test_random2x  sã   € Ý�q˜!‘”ð 	Fð 	FˆAØ�Q‘ˆAÝ  3¨Ñ*Ô*ð Fð F�Ý˜F HÑ-Ô-�Ý˜A˜q‘M”M�Ø×%Ò% a­Ñ-Ô-Ð-Ø× Ò ¥¨¨A¨xÑ!8Ô!8¸!Ñ<Ô<Ð<Ý˜Q Ñ&Ô&�Ø× Ò ¥¨­G°A°q©M¬M¸5Ñ!AÔ!AÀ1ÑEÔEÐEÐEðFð	Fð 	FrN   N)rd   re   rf   râ  rä  rŒ  rÀ   r÷  rý  rÿ  r  r  r  r  r  r  r  r£   r   rg   rN   rL   rß  rß  ß  s  € € € € € ð&ð &ð &ð-ð -ð -ð5ð 5ð 5ð$0ð 0ð 0ð=ð =ð =ðEð Eð EðBð Bð Bð&;ð ;ð ;ð0ð 0ð 0ð
0ð 0ð 0ð

<ð 
<ð 
<ð	,ð 	,ð 	,ð	,ð 	,ð 	,ðJð Jð Jð"
Að 
Að 
Að	Fð 	Fð 	Fð 	Fð 	FrN   rß  c                   ó"  — e Zd Zd„ Zd„ Z eej        d         dk    ¦  «        d„ ¦   «         Z eej        d         dk    ¦  «        d„ ¦   «         Z	d„ Z
d„ Zd	„ Z eej        d         dk    ¦  «        d
„ ¦   «         Zd„ Z eej        d         dk    ¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z ee ¦  «        d„ ¦   «         Z ee pedk    ¦  «        d„ ¦   «         Z ee ¦  «        d„ ¦   «         Z ee ¦  «        d„ ¦   «         ZdS )ÚSC_Testsc                 óÄ   — dD ]\\  }}}t          ||¦  «        }|                      t          |¦  «        |¦  «         |                      t          |¦  «        |¦  «         Œ]d S )N))ó     rZ   rR   )s    r�   rR   )s    Ú0000001rQ   )s   ð z00001111 11110000rR   )s   ¡ z00000000 00001000rQ   )s   	¡ ú
00000000 1rQ   )s   E£ABD ÚE000000000000000000000000000000000000000000000000000000000000000001101rR   )r   r@   r-   r.   )rH   rK   ÚbitsrT   rJ   s        rL   rŒ  zSC_Tests.test_explicit‡  so   € ð 
ð 	.ð 	.‰OˆAˆt�Võ ˜˜vÑ&Ô&ˆAØ×Ò�Y q™\œ\¨1Ñ-Ô-Ð-Ø×Ò�Y q™\œ\¨1Ñ-Ô-Ð-Ð-ð	.ð 	.rN   c                 óÈ   — dD ]^\  }}t          |¦  «        }|                      t          |¦  «        |¦  «         |                      |                     ¦   «         ¦  «         Œ_d S )N))r$  r   )s     r   )s    r>   )s      r   )s     r8  )s       r   )s      é   )r.   r@   rA   rB   rC   )rH   rK   rI   rJ   s       rL   Útest_decode_header_nbitsz!SC_Tests.test_decode_header_nbits•  si   € ð
ð 	&ð 	&‰DˆAˆqõ ˜!‘”ˆAØ×Ò�S ™VœV QÑ'Ô'Ð'Ø×Ò˜QŸUšU™WœWÑ%Ô%Ð%Ð%ð	&ð 	&rN   r   r–   c                 óô  — t          d¦  «        }|                      t          |¦  «        t          d¦  «        ¦  «         |                      t	          |¦  «        t          d¦  «        ¦  «         t          g d¢¦  «        }|                      t          |¦  «        t          d¦  «        ¦  «         |                      t	          |¦  «        d u ¦  «         |                      t	          |¦  «        d¦  «         d S )Ns    XYZr�   ÚX)é   rÏ   r>   éÿ   r   Nr]   rÕ   r]   )Úiterr@   r.   r   Únextrü  rF   ©rH   rx   s     rL   Útest_decode_untouchzSC_Tests.test_decode_untouch£  sÏ   € åÐ.Ñ/Ô/ˆØ×Ò� 6Ñ*Ô*­H°U©O¬OÑ<Ô<Ð<Ø×Ò�˜f™œ¥s¨3¡x¤xÑ0Ô0Ð0åÐ>Ð>Ð>Ñ?Ô?ˆØ×Ò� 6Ñ*Ô*­H°WÑ,=Ô,=Ñ>Ô>Ð>Ø�Š�˜V™œ¨Ð,Ñ-Ô-Ð-Ø×Ò�˜f™œ uÑ-Ô-Ð-Ð-Ð-rN   c                 óê   — dD ]5}|                       t          d|z  t          t          |g¦  «        ¦  «         Œ6dD ]7}|                       t          d|z  t          t          dd|g¦  «        ¦  «         Œ8d S )N)rì  r"  rï  é€   éÀ   éð   r/  zinvalid header: 0x%02x)r6  éÁ   éÅ   r/  zinvalid block head: 0x%02xr>   r‰  )r  r`   r.   r;  rá  s     rL   Útest_decode_header_errorsz"SC_Tests.test_decode_header_errors®  s¦   € ð :ð 	5ð 	5ˆAØ×$Ò$¥ZØ%=ÀÑ%AÝ%.Ý%.°¨s¡^¤^ñ5ô 5ð 5ð 5ð
 (ð 	Að 	AˆAØ×$Ò$¥ZØ%AÀAÑ%EÝ%.Ý%.°°d¸A¨Ñ%?Ô%?ñAô Að Að Að	Að 	ArN   c                 ó�  — t           d         }|                      t          d|z  t          d¦  «         |                      t          d|z  t          t          t          |g|dgz  z   ¦  «        ¦  «        ¦  «         |dk    rF|                      t          dt          d¦  «         |                      t          d	t          d
¦  «         d S d S )Nr>   z,sizeof(Py_ssize_t) = %d: cannot read 9 bytess
   	         z$read %d bytes got negative value: -1r/  rÓ   z+sizeof(Py_ssize_t) = 4: cannot read 5 bytess        ú,read 4 bytes got negative value: -2147483648s      €)r   r  ÚOverflowErrorr.   r`   r:  r;  )rH   Únbytess     rL   Útest_decode_header_overflowz$SC_Tests.test_decode_header_overflow½  sä   € Ý˜”ˆØ× Ò ÝØ:¸VÑCÝÐ,ñ	.ô 	.ð 	.ð
 	× Ò ÝØ2°VÑ;Ý•u�Y¨ x°&¸D¸6±/Ñ'AÑBÔBÑCÔCñ	Eô 	Eð 	Eð
 �QŠ;ˆ;Ø×$Ò$ÝØ=ÝÐ0ñ2ô 2ð 2ð
 ×$Ò$ÝØ>ÝÐ2ñ4ô 4ð 4ð 4ð 4ð ˆ;rN   c                 ó:  — |                       t          dt          d¦  «         |                       t          dt          d¦  «         |                       t          dt          d¦  «         |                       t          dt          d¦  «         |                       t          d	t          d
¦  «         t          d         dk    rd}nd}|                       t          |t          d¦  «         t          d         dk    rd}nd}|                       t          |t          d¦  «         d S )Nzdecode error (raw): 0 + 2 > 1s   ÿÿ zdecode error (raw): 32 + 3 > 34s	    ÿÿÿ zdecode error (n=1): 128 >= 128s   €¡€ zdecode error (n=2): 512 >= 512s    Â  z"decode error (n=3): 32768 >= 32768s	    €Ã €  r>   rÓ   r<  z$decode error (n=4): 2147483648 >= 16s	   Ä   € z#read 4 bytes got negative value: -1z$decode error (n=4): 4294967295 >= 16s	   Äÿÿÿÿ )r  r`   r.   r   )rH   r/  s     rL   Útest_decode_errorszSC_Tests.test_decode_errorsÔ  sD  € à× Ò ÝÐ7ÝÐ0ñ	2ô 	2ð 	2ð 	× Ò ÝÐ9ÝÐ<ñ	>ô 	>ð 	>ð 	× Ò ÝÐ8ÝÐ,ñ	.ô 	.ð 	.ð 	× Ò ÝÐ8ÝÐ8ñ	:ô 	:ð 	:ð 	× Ò ÝÐ<ÝÐ<ñ	>ô 	>ð 	>õ �1Œ:˜Š?ˆ?Ø@ˆCˆCà8ˆCØ× Ò Ý˜ÝÐ<ñ	>ô 	>ð 	>õ �1Œ:˜Š?ˆ?Ø7ˆCˆCà8ˆCØ× Ò Ý˜ÝÐ<ñ	>ô 	>ð 	>ð 	>ð 	>rN   c                 óT   — dD ]$}|                       t          dt          |¦  «         Œ%d S )N)rN   r¹  ó   s   ws   s   ¡s    úunexpected end of stream)r  r`   r.   r2  s     rL   Útest_decode_end_of_streamz"SC_Tests.test_decode_end_of_stream÷  sE   € ðJð 	8ð 	8ˆFà×$Ò$¥ZÐ1KÝ%.°ñ8ô 8ð 8ð 8ð	8ð 	8rN   c                 ód  — d}|t          |¦  «        t          |¦  «        t          d|¦  «        fD ]w}t          |¦  «        }|                      |d¦  «         |                      |                     ¦   «         d¦  «         |                      |                     ¦   «         d¦  «         Œx|                      t          t          dd g¦  «         d ddt          fD ]#}|                      t          t          |¦  «         Œ$t          d	¦  «        D ]%}|                      t          t          d
d g¦  «         Œ&d S )Nó     ÚBr   rQ   Ú001r–   r6   gš™™™™™	@r‹   r   )r;  r‹  r   r.   r»   r@   rT   rÜ   r^   r_   ÚEllipsisr?   )rH   ÚblobrK   rJ   rb   rå   s         rL   Útest_decode_typeszSC_Tests.test_decode_typesý  s&  € à$ˆØ•y ‘”­¨T©
¬
µE¸#¸tÑ4DÔ4DÐDð 	.ð 	.ˆAÝ˜!‘”ˆAØ×Ò˜a Ñ,Ô,Ð,Ø×Ò˜QŸXšX™ZœZ¨Ñ/Ô/Ð/Ø×Ò˜QŸVšV™XœX uÑ-Ô-Ð-Ð-à×Ò�)¥Y°°t°Ñ=Ô=Ð=Ø�q˜#�xÐ'ð 	7ð 	7ˆAØ×Ò�i­°AÑ6Ô6Ð6Ð6Ý�r‘”ð 	Bð 	BˆAØ×Ò�i­°T¸4°LÑAÔAÐAÐAð	Bð 	BrN   c                 ó~   — dD ]9}t          |¦  «        }|                      |                     ¦   «         d¦  «         Œ:d S )N)rG  s   / s   ¡ s   Â  s   Ã   s	   Ä    rI  )r.   r@   rÜ   )rH   rK   rJ   s      rL   Útest_decode_ambiguityzSC_Tests.test_decode_ambiguity  sK   € ð	
ð 	.ð 	.ˆAõ ˜!‘”ˆAØ×Ò˜QŸVšV™XœX uÑ-Ô-Ð-Ð-ð	.ð 	.rN   c           
      óê  — t          dd¦  «        }t          dd¦  «        D �]P}t          j        |¦  «        }t	          dddd|z   g¦  «        }|                     |¦  «         |                     d¦  «         |                     d¦  «         d||<   |                      t          |¦  «        |¦  «         t          t          |¦  «        ¦  «        }t	          ddddt          |¦  «        z   g¦  «        }|                     |¦  «         |                     d¦  «         |                      t          |¦  «        |¦  «         |                      t          |¦  «        t          |¦  «        ¦  «         �ŒRd S )Nr8  rR   r>   rì  r–   r   é    )r   r?   rª   r   r;  r™  rB  rØ   r@   r.   ÚsortedÚsetrA   r-   r:  )rH   rJ   rI   Ú	positionsrK   ró   s         rL   Útest_sparse_block_type1z SC_Tests.test_sparse_block_type1  sB  € å�S˜(Ñ#Ô#ˆÝ�q˜"‘”ð 	5ñ 	5ˆAÝœ
 1™œˆIÝ˜4  t¨T°A©XÐ6Ñ7Ô7ˆAØ�HŠH�YÑÔÐØ�HŠH�Q‰KŒKˆKà�HŠH�Q‰KŒKˆKØˆAˆi‰LØ×Ò�Y q™\œ\¨1Ñ-Ô-Ð-õ �˜Y™œÑ(Ô(ˆCÝ˜4  t¨TµC¸±H´H©_Ð=Ñ>Ô>ˆAØ�HŠH�S‰MŒMˆMØ�HŠH�Q‰KŒKˆKà×Ò�Y q™\œ\¨1Ñ-Ô-Ð-Ø×Ò�Y q™\œ\­5°©8¬8Ñ4Ô4Ð4Ñ4ð%	5ð 	5rN   c                 ór  — t          d¦  «        D ]¦}t          d¦  «        }dt          j        |¦  «        z   }	 t	          |¦  «        }n"# t
          $ r}|dk    rY d }~ŒNY d }~nd }~ww xY w|                      t          |¦  «        d¦  «         |                      |                     ¦   «         d¦  «         Œ§d S )Nr=   rÎ   s    rD  i   rR   )	r?   r   rª   r   r.   r`   r@   rA   rT   )rH   rå   rI   rK   rJ   r¢  s         rL   Útest_decode_random_bytesz!SC_Tests.test_decode_random_bytes1  sÖ   € å�s‘”ð 		3ð 		3ˆAÝ˜"‘”ˆAØ¥"¤*¨Q¡-¤-Ñ/ˆAðÝ˜a‘L”L��øÝð ð ð ØÐ2Ò2Ð2Ø�H�H�H�Hð 3Ð2Ð2Ð2Ð2øøøøðøøøð ×Ò�S ™VœV TÑ*Ô*Ð*Ø×Ò˜QŸXšX™ZœZ¨Ñ2Ô2Ð2Ð2ð		3ð 		3s   ¹A	Á	
A(ÁA#Á#A(c                 ó&  — t          dd¦  «        t          dd¦  «        fD ]B}t          |¦  «        }|                      |t          ¦  «         |                      |d¦  «         ŒCd g dddddfD ]#}|                      t          t          |¦  «         Œ$d S )	Nr—   rQ   s   € r   rý   rN   r¹  g…ëQ¸	@)r   r   r-   rE   r:  r@   r^   r_   rq   s      rL   Útest_encode_typeszSC_Tests.test_encode_types>  s¨   € Ý˜#˜uÑ%Ô%¥~°c¸5Ñ'AÔ'AÐAð 	7ð 	7ˆAÝ˜!‘”ˆAØ×!Ò! !¥UÑ+Ô+Ð+Ø×Ò˜QÐ 5Ñ6Ô6Ð6Ð6à�r˜1˜c 3¨°Ð5ð 	7ð 	7ˆAØ×Ò�i­°AÑ6Ô6Ð6Ð6ð	7ð 	7rN   c                 óò  — |                      ¦   «         }t          t          |¦  «        ¦  «        }t          |¦  «        }|                      ||cxk    o|k    nc ¦  «         |                      |                     ¦   «         |                     ¦   «         cxk    o|                     ¦   «         k    nc ¦  «         t          j        d         dk    r%|                      t          |¦  «        d¦  «         d S d S )Nr   r6   rN   )
rÆ   r0  r-   r.   rF   rT   r¼  r½  r@   r:  )rH   rJ   r½   rÞ   rK   s        rL   r   zSC_Tests.round_tripG  sÖ   € Ø�FŠF‰HŒHˆÝ•˜1‘”ÑÔˆÝ�a‰LŒLˆØ�Š˜˜Q˜˜š˜ !š˜˜˜Ñ$Ô$Ð$Ø�Š˜Ÿš™
œ
 a§h¢h¡j¤jÐ>Ð>Ò>Ð>°A·H²H±J´JÒ>Ð>Ð>Ð>Ñ?Ô?Ð?ÝÔ˜AÔ !Ò#Ð#Ø×Ò�U 1™XœX sÑ+Ô+Ð+Ð+Ð+ð $Ð#rN   c           	      ó˜  — t          d¦  «        D �] }d|z  }t          |¦  «        }d}|t          |                     ¦   «         ¦  «        z  }|                      |t          t          |¦  «        ¦  «        ¦  «         |                      |¦  «         d|d<   |dz  }|dt          |dk    ¦  «        z  z  }|t          |dk    ¦  «        z  }|                      |t          t          |¦  «        ¦  «        ¦  «         |                      |¦  «         �Œt          dd¦  «        }d|d<   |                      t          |¦  «        d	¦  «         d S )
NrŠ  r>   r–   r   é   r*  i   rQ   s      Ä     )	r?   r   r   Ú
bit_lengthr@   rA   r-   r   rS  )rH   rÞ   rI   rJ   rÙ   s        rL   Útest_encode_zeroszSC_Tests.test_encode_zerosP  sC  € Ý�r‘”ð 	ñ 	ˆAØ�Q‘ˆAÝ�a‘”ˆAØˆAØ•˜AŸLšL™NœNÑ+Ô+Ñ+ˆAà×Ò˜Q¥¥I¨a¡L¤LÑ 1Ô 1Ñ2Ô2Ð2Ø�OŠO˜AÑÔÐàˆAˆa‰DØ�‰FˆAØ�•T˜!˜cš'‘]”]Ñ"Ñ"ˆAØ•�a˜%’i‘”Ñ ˆAØ×Ò˜Q¥¥I¨a¡L¤LÑ 1Ô 1Ñ2Ô2Ð2Ø�OŠO˜AÑÔÐÑå�'˜5Ñ!Ô!ˆØˆˆ!‰Ø×ÒÝ�a‰LŒLØ?ñ	Aô 	Að 	Að 	Að 	ArN   c           	      óª  — t          d¦  «        D ]Â}t          d¦  «        }t          |¦  «        }d}|t          |                     ¦   «         ¦  «        z  }t          |¦  «        }||dz  dz   dz  z  }|t          |dz  ¦  «        z  }||z  }|                      |t          t          |¦  «        ¦  «        ¦  «         |  	                    |¦  «         ŒÃd S )Nrk   r*  r–   rì  é   r5  )
r?   r   r   r   r\  rS  r@   rA   r-   r   )rH   rå   ÚnbitsrJ   rÙ   r>  s         rL   Útest_encode_oneszSC_Tests.test_encode_onesg  sÙ   € Ý�r‘”ð 
	ð 
	ˆAÝ˜fÑ%Ô%ˆEÝ�U‘”ˆAØˆAØ•˜E×,Ò,Ñ.Ô.Ñ/Ô/Ñ/ˆAÝ Ñ&Ô&ˆFØ�&˜B‘, Ñ$¨Ñ,Ñ,ˆAØ•�f˜r‘kÑ"Ô"Ñ"ˆAØ�‰KˆAØ×Ò˜Q¥¥I¨a¡L¤LÑ 1Ô 1Ñ2Ô2Ð2Ø�OŠO˜AÑÔÐÐð
	ð 
	rN   c                 ó  — t          d¦  «        D ]o}t          d¦  «        }|                      ¦   «         }t          ||¦  «        }t          d¦  «        D ]*}|t	          ||¦  «        z  }|                      |¦  «         Œ+Œpd S )Nr‹   r*  r‰  )r?   r   rG  r   r   r   )rH   rå   rI   rT   rJ   s        rL   r£   zSC_Tests.test_randomt  s�   € Ý�r‘”ð 	#ð 	#ˆAÝ˜&Ñ!Ô!ˆAØ×'Ò'Ñ)Ô)ˆFÝ�Q˜‘”ˆAÝ˜2‘Y”Yð #ð #�Ø•W˜Q Ñ'Ô'Ñ'�Ø—’ Ñ"Ô"Ð"Ð"ð#ð		#ð 	#rN   c                 ó°   — t          t          ¦   «         ¦  «        }|                      t          |¦  «        d¦  «         |                      |dg¦  «         d S )Nr>   r   )r4   r   r@   rA   )rH   Úrtss     rL   Útest_rts_emptyzSC_Tests.test_rts_empty}  sM   € å•h‘j”jÑ!Ô!ˆØ×Ò�˜S™œ 1Ñ%Ô%Ð%Ø×Ò˜˜q˜cÑ"Ô"Ð"Ð"Ð"rN   rì  c                 ó2  — t          d¦  «        }dx|d d…<   x|dd…<   |dd…<   |                      |                     ¦   «         d¦  «         t          |¦  «        }|                      t	          |¦  «        d¦  «         |                      |g d	¢¦  «         d S )
NiÛ  r>   rÏ   r[  i  i   i  r  )r   rÏ   rÏ   rÍ   r  )r   r@   rD   r4   rA   )rH   rJ   rd  s      rL   Útest_rts_examplezSC_Tests.test_rts_exampleƒ  sž   € õ �#‰JŒJˆØ*+Ð+ˆˆ"ˆ1ˆ"‰Ð+��#�c�'‘
˜Q˜s 3˜w™ZØ×Ò˜Ÿš™œ BÑ'Ô'Ð'Ý�a‰jŒjˆØ×Ò�˜S™œ 1Ñ%Ô%Ð%Ø×Ò˜Ð.Ð.Ð.Ñ/Ô/Ð/Ð/Ð/rN   c           	      ó|  — t          d¦  «        D ]«}t          d¦  «        }t          |¦  «        }t          |¦  «        }|                      |d         d¦  «         |                      |d         |¦  «         t          |¦  «        D ]4\  }}|                      |t          dt          z  |z  |¦  «        ¦  «         Œ5Œ¬d S )NrÎ   rñ   r   r\   rÍ   )r?   r   r   r4   r@   r  Úminr5   )rH   rå   rI   rJ   rd  rÞ   rÖ   s          rL   Útest_rts_oneszSC_Tests.test_rts_ones�  sÂ   € å�r‘”ð 	>ð 	>ˆAÝ˜%Ñ Ô ˆAÝ�Q‘”ˆAÝ˜!‘*”*ˆCØ×Ò˜S œV QÑ'Ô'Ð'Ø×Ò˜S œW aÑ(Ô(Ð(Ý! #™œð >ð >‘��1Ø× Ò  ¥C¨­H©°qÑ(8¸!Ñ$<Ô$<Ñ=Ô=Ð=Ð=ð>ð	>ð 	>rN   c           	      ób  — dt           z  }t          d¦  «        D �]}t          d¦  «        }t          |¦  «        }t	          |¦  «        }|                      t          |¦  «        ||z   dz
  |z  dz   ¦  «         |                      |d         d¦  «         |                      |d         |                     ¦   «         ¦  «         t          t          |¦  «        dz
  ¦  «        D ]J}|                     d||z  ||dz   z  ¦  «        }|                      ||dz            ||         z
  |¦  «         ŒK�Œd S )NrÍ   rÎ   rñ   r>   r   r\   )r5   r?   r   r   r4   r@   rA   rD   )rH   Úsegbitsrå   rI   rJ   rd  rÞ   Úseg_pops           rL   Útest_rts_randomzSC_Tests.test_rts_random˜  s)  € à•h‘,ˆÝ�r‘”ð 		?ñ 		?ˆAÝ˜%Ñ Ô ˆAÝ˜‘
”
ˆAÝ˜!‘*”*ˆCØ×Ò�S ™XœX¨¨G©°a©¸GÑ'CÀaÑ'GÑHÔHÐHØ×Ò˜S œV QÑ'Ô'Ð'Ø×Ò˜S œW a§g¢g¡i¤iÑ0Ô0Ð0Ý�3˜s™8œ8 a™<Ñ(Ô(ð ?ð ?�ØŸ'š' ! W¨q¡[°'¸QÀ¹UÑ2CÑDÔD�Ø× Ò   Q¨¡U¤¨c°!¬fÑ!4°gÑ>Ô>Ð>Ð>ñ?ð		?ð 		?rN   N)rd   re   rf   rŒ  r+  r   r¼  r½  r3  r:  r?  rA  rE  rL  rN  rT  rV  rX  r   r]  ra  r£   r   re  r5   rg  rj  rn  rg   rN   rL   r"  r"  …  sG  € € € € € ð.ð .ð .ð&ð &ð &ð €VˆCÔ˜QÔ 1Ò$Ñ%Ô%ð.ð .ñ &Ô%ð.ð €VˆCÔ˜QÔ 1Ò$Ñ%Ô%ðAð Añ &Ô%ðAð4ð 4ð 4ð.!>ð !>ð !>ðF8ð 8ð 8ð €VˆCÔ˜QÔ 1Ò$Ñ%Ô%ðBð Bñ &Ô%ðBð.ð .ð .ð €VˆCÔ˜QÔ 1Ò$Ñ%Ô%ð5ð 5ñ &Ô%ð5ð,3ð 3ð 3ð7ð 7ð 7ð,ð ,ð ,ðAð Að Að.ð ð ð#ð #ð #ð €V�ˆIÑÔð#ð #ñ Ôð#ð
 €V�ˆIÐ'˜ RšÑ(Ô(ð0ð 0ñ )Ô(ð0ð €V�ˆIÑÔð>ð >ñ Ôð>ð €V�ˆIÑÔð?ð ?ñ Ôð?ð ?ð ?rN   r"  c                   ó¢   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
 eej        d	         d
k    ¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚVLFTestsc                 óÀ   — dD ]Z\  }}t          |¦  «        }|                      t          |¦  «        |¦  «         |                      t          |¦  «        |¦  «         Œ[d S )N))ó   @rZ   )ó   0r
  )ó   8r—   )r¹  Ú0000)rC  Ú0001)s   à@ú0000 1)s   �z0000 000001)s   µ§z0101 0100111 0011)r   r@   r/   r0   )rH   r‘   r(  rJ   s       rL   rŒ  zVLFTests.test_explicitª  si   € ð	
ð 	.ð 	.‰GˆAˆtõ ˜‘”ˆAØ×Ò�Y q™\œ\¨1Ñ-Ô-Ð-Ø×Ò�Y q™\œ\¨1Ñ-Ô-Ð-Ð-ð	.ð 	.rN   c                 ó¬   — dD ]P}t          t          d|¦  «        ¦  «        }|                      |t          ¦  «         |                      |d¦  «         ŒQd S )NrP   Ú001101ó   Ó )r/   r   rE   r:  r@   )rH   rT   r‘   s      rL   Útest_encodezVLFTests.test_encode¹  sa   € Ø%ð 	-ð 	-ˆFÝ�( 8¨VÑ4Ô4Ñ5Ô5ˆAØ×!Ò! !¥UÑ+Ô+Ð+Ø×Ò˜Q Ñ,Ô,Ð,Ð,ð	-ð 	-rN   c           	      óÞ  — t           j        d         dk    rP|                      t          t          d¦  «         |                      t          t          t          dg¦  «        ¦  «         |                      t          t          ddd¦  «         |                      t          t          dd¦  «         dD ]#}|                      t          t          |¦  «         Œ$d dt          fD ]2}|                      t          t          t          d|g¦  «        ¦  «         Œ3d	}|t          |¦  «        t          |¦  «        g}t           j        d         dk    rF| 	                    t          d
dg¦  «        ¦  «         | 	                    t          |¦  «        ¦  «         |D ]^}t	          ||                      ¦   «         ¬¦  «        }|                      |d¦  «         |                      |t          d¦  «        ¦  «         Œ_d S )Nr   r6   r]   rr  rQ   )Nr   r>   ç        g¸…ëQ¸@é•   rz  éÓ   rì  rS   r   ú0011 01)r¼  r½  r^   r_   r0   r0  r`   rJ  Ú
memoryviewrB  r;  rG  r»   r@   r   )rH   ÚargÚitemrK   ró   r‘   rJ   s          rL   Útest_decode_argszVLFTests.test_decode_args¿  sÀ  € ÝÔ˜AÔ !Ò#Ð#Ø×Ò�i­°EÑ:Ô:Ð:à×Ò�i­µD¸'¸±O´OÑDÔDÐDà×Ò�)¥Y°¸ÀÑBÔBÐBØ×Ò�*¥i°¸%Ñ@Ô@Ð@à"ð 	9ð 	9ˆCØ×Ò�i­°CÑ8Ô8Ð8Ð8à˜$¥Ð(ð 	Hð 	HˆDØ×Ò�i­µD¸$À¸Ñ4FÔ4FÑGÔGÐGÐGàˆØ•$�q‘'”'�: a™=œ=Ð)ˆÝÔ˜AÔ !Ò#Ð#Ø�JŠJ•t˜T 4˜LÑ)Ô)Ñ*Ô*Ð*Ø�JŠJ•y ‘|”|Ñ$Ô$Ð$Øð 	5ð 	5ˆAÝ˜! D×$6Ò$6Ñ$8Ô$8Ð9Ñ9Ô9ˆAØ×Ò˜a Ñ,Ô,Ð,Ø×Ò˜Q¥¨Ñ 3Ô 3Ñ4Ô4Ð4Ð4ð	5ð 	5rN   c                 ó˜  — d}t          d¦  «        }dD ]µ}t          |¦  «         dD ]T}t          ||¦  «        }|                      ||¦  «         |                      |                     ¦   «         |r|n|¦  «         ŒUt          |¦  «        }|                      ||¦  «         |                      |                     ¦   «         |¦  «         Œ¶d S )Nrz  r€  r³  )rR   rQ   N)r   r   r0   r@   rT   )rH   rK  rî   rW   rT   rJ   s         rL   Útest_decode_endianzVLFTests.test_decode_endianØ  sì   € ØˆÝ�yÑ!Ô!ˆà-ð 	9ð 	9ˆNÝ Ñ/Ô/Ð/à/ð Gð G�Ý˜d FÑ+Ô+�Ø× Ò   CÑ(Ô(Ð(Ø× Ò  §¢¡¤Ø+1Ð!E  °~ñGô Gð Gð Gõ ˜$‘”ˆAØ×Ò˜Q Ñ$Ô$Ð$Ø×Ò˜QŸXšX™ZœZ¨Ñ8Ô8Ð8Ð8ð	9ð 	9rN   c                 ó
  — dD ]\  }}t          |¦  «        }|                      t          |¦  «        t          |¦  «        ¦  «         |                      t	          |¦  «        t
          j        d         dk    rdnd¦  «         Œ€d S )N))s   @ABCrZ   )s   à@AÚ00001r   r–   ó   AéA   )r0  r@   r0   r   r1  r¼  r½  )rH   r‘   r(  rx   s       rL   Útest_decode_trailingzVLFTests.test_decode_trailingé  s–   € ð1ð 	Gð 	G‰GˆAˆtå˜!‘W”WˆFØ×Ò�Y vÑ.Ô.µ¸±´Ñ?Ô?Ð?Ø×Ò�T &™\œ\Ý%(Ô%5°aÔ%8¸AÒ%=Ð%=˜T˜TÀ2ñGô Gð Gð Gð		Gð 	GrN   c                 ó  — dD ]>}|                       t          t          |¦  «        ¦  «        t          ¦   «         ¦  «         Œ?dD ]?}|                       t          t          |¦  «        ¦  «        t          d¦  «        ¦  «         Œ@d S )N)rr  ó   Or®  )ó   ó   rV   )r@   r0   r0  r   ©rH   r‘   s     rL   rN  zVLFTests.test_decode_ambiguityñ  s†   € Ø*ð 	=ð 	=ˆAØ×Ò�Y¥t¨A¡w¤wÑ/Ô/µ±´Ñ<Ô<Ð<Ð<Ø!ð 	Bð 	BˆAØ×Ò�Y¥t¨A¡w¤wÑ/Ô/µ¸%±´ÑAÔAÐAÐAð	Bð 	BrN   c                 óh  — t          d¦  «        }dD ]2}|                      t          |¦  «        t          |¦  «        ¦  «         Œ3d„ t	          d¦  «        D ¦   «         }t          d                     d„ |D ¦   «         ¦  «        ¦  «        }|D ]%}|                      t          |¦  «        |¦  «         Œ&d S )Ns	   @08@,à@Ó )rZ   r
  r—   rZ   rQ  rw  r€  c                 óF   — g | ]}t          t          d ¦  «        ¦  «        ‘ŒS )é   )r   r   r’  s     rL   ræ   z/VLFTests.test_decode_stream.<locals>.<listcomp>ü  s&   € Ð>Ð>Ð>¨Q•'�) B™-œ-Ñ(Ô(Ð>Ð>Ð>rN   ro   rN   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r|   )r/   ©rä   rJ   s     rL   r“  z.VLFTests.test_decode_stream.<locals>.<genexpr>ý  s(   è è € Ð<Ð<°�y¨™|œ|Ð<Ð<Ð<Ð<Ð<Ð<rN   )r0  r@   r0   r   r?   r¬   )rH   rx   r(  ÚarraysrJ   s        rL   Útest_decode_streamzVLFTests.test_decode_stream÷  sÃ   € ÝÐ=Ñ>Ô>ˆØ?ð 	@ð 	@ˆDØ×Ò�Y vÑ.Ô.µ¸±´Ñ?Ô?Ð?Ð?à>Ð>µ%¸±+´+Ð>Ñ>Ô>ˆÝ�c—h’hÐ<Ð<°VÐ<Ñ<Ô<Ñ<Ô<Ñ=Ô=ˆØð 	3ð 	3ˆAØ×Ò�Y vÑ.Ô.°Ñ2Ô2Ð2Ð2ð	3ð 	3rN   c                 ó"  — |                       t          t          d¦  «         dD ]#}|                       t          t          |¦  «         Œ$|                       t          t          d¦  «         dD ]#}|                       t          t          |¦  «         Œ$d S )NrN   )ó   Pó   `ó   pó   ð)ó   €s   €€)r^   r`   r0   r�  s     rL   rA  zVLFTests.test_decode_errors  s�   € à×Ò�*¥i°Ñ5Ô5Ð5à*ð 	8ð 	8ˆAØ×Ò�j­)°QÑ7Ô7Ð7Ð7Ø×Ò�*¥i°Ñ9Ô9Ð9à%ð 	8ð 	8ˆAØ×Ò�j­)°QÑ7Ô7Ð7Ð7ð	8ð 	8rN   r   r–   c                 ó$  — d}t          |ddgz  dgz   z  dgz   ¦  «        }t          |¦  «        D ]<}d }	 t          |¦  «        }n# t          $ r Y nw xY w|                      |d u ¦  «         Œ=|                      t          |¦  «        d¦  «         d S )Nr=   r6   r5  ÚXXzend.)r0  r?   r0   r_   rF   r@   r1  )rH   r÷   r‘   rå   rJ   s        rL   Útest_decode_invalid_streamz#VLFTests.test_decode_invalid_stream  s´   € àˆÝ��a˜4˜&‘j D 6Ñ)Ñ*¨f¨XÑ5Ñ6Ô6ˆÝ�q‘”ð 	'ð 	'ˆAØˆAðÝ˜a‘L”L��øÝð ð ð Ø�ðøøøà�OŠO˜A ˜IÑ&Ô&Ð&Ð&Ø×Ò�˜a™œ &Ñ)Ô)Ð)Ð)Ð)s   µAÁ
AÁAc                 óð   — t          d¦  «        D ]e}t          d|dz  z   ¦  «        }|dz  dz   }|                      t          |¦  «        |¦  «         |                      t	          |¦  «        |¦  «         Œfd S )Nr=   rÓ   rÒ   r�  r¹  )r?   r   r@   r/   r0   )rH   rI   rJ   r‘   s       rL   Útest_explicit_zeroszVLFTests.test_explicit_zeros  s   € Ý�s‘”ð 	.ð 	.ˆAÝ�a˜!˜a™%‘iÑ Ô ˆAØ�G‘˜gÑ%ˆAØ×Ò�Y q™\œ\¨1Ñ-Ô-Ð-Ø×Ò�Y q™\œ\¨1Ñ-Ô-Ð-Ð-ð		.ð 	.rN   c                 ó  — |                      ¦   «         }t          |¦  «        }t          |¦  «        }|                      ||cxk    o|k    nc ¦  «         d}|                      t          |¦  «        t          |¦  «        |z   dz   dz  ¦  «         t          j        d         dk    rt          |d         ¦  «        n|d         }|dz  dz	  }|                      t          |¦  «        |z   dt          |¦  «        z  |z
  ¦  «         d S )Nr6   rÌ   rÒ   r   r–   ép   rÓ   )	rÆ   r/   r0   rF   r@   rA   r¼  r½  rü  )rH   rJ   r½   r‘   rK   ÚLEN_PAD_BITSÚheadÚpaddings           rL   r   zVLFTests.round_trip   sî   € Ø�FŠF‰HŒHˆÝ�a‰LŒLˆÝ�a‰LŒLˆØ�Š˜˜Q˜˜š˜ !š˜˜˜Ñ$Ô$Ð$ØˆØ×Ò�˜Q™œ¥# a¡&¤&¨<Ñ"7¸!Ñ";ÀÑ!AÑBÔBÐBåÔ,¨QÔ/°1Ò4Ð4�s�1�Q”4‰yŒyˆy¸!¸A¼$ˆØ˜$‘; 1Ñ$ˆØ×Ò�˜Q™œ 'Ñ)¨1­s°1©v¬v©:¸Ñ+DÑEÔEÐEÐEÐErN   c                 ón   — t          d¦  «        D ]$}|                      t          |¦  «        ¦  «         Œ%d S )Néô  r¡   r¢   s     rL   rM   zVLFTests.test_range,  r¤   rN   c                 ój   — t          t          dd¦  «        ¦  «        }|                      |¦  «         d S )NéPÃ  r*  )r   r	   r   r‚   s     rL   r3  zVLFTests.test_large0  s1   € Ý•G˜E 6Ñ*Ô*Ñ+Ô+ˆØ�Š˜ÑÔÐÐÐrN   c                 ó^   — |                       ¦   «         D ]}|                      |¦  «         Œd S r|   )rÅ   r   r‚   s     rL   r£   zVLFTests.test_random4  s<   € Ø×%Ò%Ñ'Ô'ð 	ð 	ˆAØ�OŠO˜AÑÔÐÐð	ð 	rN   N)rd   re   rf   rŒ  r{  r„  r†  r‹  rN  r—  rA  r   r¼  r½  r   r¢  r   rM   r3  r£   rg   rN   rL   rp  rp  ¨  s  € € € € € ð.ð .ð .ð-ð -ð -ð5ð 5ð 5ð29ð 9ð 9ð"Gð Gð GðBð Bð Bð3ð 3ð 3ð	8ð 	8ð 	8ð €VˆCÔ˜QÔ 1Ò$Ñ%Ô%ð
*ð 
*ñ &Ô%ð
*ð.ð .ð .ð
Fð 
Fð 
Fð(ð (ð (ðð ð ðð ð ð ð rN   rp  c                   ól   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zed„ ¦   «         Zd„ ZdS )ÚTestsIntegerizationc                 ó˜  — |                       t          t          d¦  «        ¦  «        d¦  «         |                       t          t          d¦  «        ¦  «        d¦  «         |                       t          t          dd¦  «        ¦  «        d¦  «         |                       t          t          dd¦  «        ¦  «        d	¦  «         |                       t          t          d
¦  «        ¦  «        d¦  «         |                      t
          t          t          ¦   «         ¦  «         |                      t
          t          t          ¦   «         ¦  «         |                      t          t          d¦  «         t          d¦  «        }|                     ¦   «         }|                       t          |¦  «        d¦  «         |                      ||¦  «         d S )Nr
  r   r—   r>   Ú00101rQ   rÏ   rR   rÎ   rQ  r6   rA  rV   rÒ   )	r@   r+   r   r   r^   r`   r_   rÆ   rÇ   rq   s      rL   Útest_ba2intzTestsIntegerization.test_ba2int<  sb  € Ø×Ò�¥¨¡¤Ñ.Ô.°Ñ2Ô2Ð2Ø×Ò�¥¨¡¤Ñ.Ô.°Ñ2Ô2Ð2Ø×Ò�¥¨°%Ñ 8Ô 8Ñ9Ô9¸1Ñ=Ô=Ð=Ø×Ò�¥¨°(Ñ ;Ô ;Ñ<Ô<¸bÑAÔAÐAØ×Ò�¥¨tÑ 4Ô 4Ñ5Ô5°qÑ9Ô9Ð9Ø×Ò�*¥f­h©j¬jÑ9Ô9Ð9Ø×Ò�*¥f­nÑ.>Ô.>Ñ?Ô?Ð?Ø×Ò�)¥V¨UÑ3Ô3Ð3Ý�U‰OŒOˆØ�FŠF‰HŒHˆØ×Ò� ™œ AÑ&Ô&Ð&à×Ò˜˜AÑÔÐÐÐrN   c                 óâ   — |                       d¬¦  «        D ]W}t          |¦  «        }|                      t          |¦  «        t          |¦  «        ¦  «         |                      ||¦  «         ŒXd S )Nr>   rm  )rÅ   r   r@   r+   rÇ   rq   s      rL   Útest_ba2int_frozenz&TestsIntegerization.test_ba2int_frozenK  st   € Ø×%Ò%¨AÐ%Ñ.Ô.ð 	#ð 	#ˆAÝ˜qÑ!Ô!ˆAØ×Ò�V A™YœY­¨q©	¬	Ñ2Ô2Ð2Ø×Ò˜Q Ñ"Ô"Ð"Ð"ð	#ð 	#rN   c                 ó
  — |                       d¬¦  «        D ]k}t          |d¦  «        }|                      ||¦  «         |                      t          |¦  «        t	          |                     ¦   «         d¦  «        ¦  «         Œld S )Nr>   rm  rQ   r–   )rÅ   r   r@   r+   ÚintrÜ   rq   s      rL   Útest_ba2int_randomz&TestsIntegerization.test_ba2int_randomQ  s‚   € Ø×%Ò%¨AÐ%Ñ.Ô.ð 	:ð 	:ˆAÝ˜˜EÑ"Ô"ˆAØ×Ò˜Q Ñ"Ô"Ð"Ø×Ò�V A™YœY­¨A¯FªF©H¬H°aÑ(8Ô(8Ñ9Ô9Ð9Ð9ð	:ð 	:rN   c                 ón  — t          dd¦  «        D ]£}t          d|z  |                      ¦   «         ¦  «        }t          |                     ¦   «         ¦  «        }d}|                     ¦   «         dk    r|nt          |¦  «        D ]}|dz  }||z  }Œ|                      t          |¦  «        |¦  «         Œ¤d S )Nr>   rk   rÍ   r   rQ   )	r?   r   rG  r;  rÚ  rT   Úreversedr@   r+   )rH   rI   rJ   r½   rÞ   rb   s         rL   Útest_ba2int_bytesz%TestsIntegerization.test_ba2int_bytesW  sº   € Ý�q˜"‘”ð 	+ð 	+ˆAÝ˜˜A™˜t×1Ò1Ñ3Ô3Ñ4Ô4ˆAÝ˜!Ÿ)š)™+œ+Ñ&Ô&ˆAØˆAØŸ8š8™:œ:¨Ò.Ð.�a�aµH¸Q±K´Kð ð �Ø�a‘�Ø�Q‘��Ø×Ò�V A™YœY¨Ñ*Ô*Ð*Ð*ð	+ð 	+rN   c                 óŽ  — |                       t          d¦  «        t          d¦  «        ¦  «         |                       t          d¦  «        t          d¦  «        ¦  «         |                       t          d¦  «        t          d¦  «        ¦  «         |                      t          dd¬	¦  «        t          d
d¦  «        ¦  «         |                      t          dd¬	¦  «        t          dd¦  «        ¦  «         |                      t
          t          d¦  «         |                      t
          t          dd¦  «         |                      t          t          dd¦  «         |                      t
          t          ddd¦  «         |                      t          t          ddd¦  «         |                      t
          t          dd¬¦  «         d S )Nr   r
  r>   r—   rÏ   rA  rÌ   rQ   rS   r�   rR   Ú011r[   g      @r‹   rý   r•   r=   T©Úsigned)r@   r,   r   rÇ   r^   r_   r`   rt   s    rL   Útest_int2bazTestsIntegerization.test_int2baa  sp  € Ø×Ò� ™œ¥H¨S¡M¤MÑ2Ô2Ð2Ø×Ò� ™œ¥H¨S¡M¤MÑ2Ô2Ð2Ø×Ò� ™œ¥H¨U¡O¤OÑ4Ô4Ð4Ø×Ò� ¨%Ð0Ñ0Ô0µ(¸5À%Ñ2HÔ2HÑIÔIÐIØ×Ò� ¨(Ð3Ñ3Ô3Ý! %¨Ñ2Ô2ñ	4ô 	4ð 	4à×Ò�)¥V¨SÑ1Ô1Ð1Ø×Ò�)¥V¨Q°Ñ4Ô4Ð4Ø×Ò�*¥f¨a°Ñ3Ô3Ð3Ø×Ò�)¥V¨Q°°CÑ8Ô8Ð8Ø×Ò�*¥f¨a°°UÑ;Ô;Ð;à×Ò�)¥V¨S¸ÐÑ>Ô>Ð>Ð>Ð>rN   c                 ó  — dD �]\  }}|                       t          t          |d¦  «        d¬¦  «        |¦  «         |                       t          t          |d d d…         d¦  «        d¬¦  «        |¦  «         t          t          |¦  «        ¦  «        }|                      t          ||dd¬¦  «        t          |d¦  «        ¦  «         |                      t          ||dd¬¦  «        t          |d d d…         d¦  «        ¦  «         �Œd S )N))r
  r   )r—   r\   )rŽ  r   )r�  r>   )r…   éþÿÿÿ)rQ  r\   )rU   r   )Ú100r>   )Ú010r–   )r�   r6   )rI  éüÿÿÿ)rA  éýÿÿÿ)r»  rÀ  )rV   r\   )Ú00000r   )Ú11110é   )rˆ  iðÿÿÿ)rÕ   r\   )z
00000000 0r   )z
11111111 0r/  )r&  i ÿÿÿ)z
11111111 1r\   )z00000000 00000000 000000r   )z10010000 11000000 100010i	 )z11111111 11111111 111110iÿÿ )z00000000 00000000 000001i  àÿ)z10010000 11000000 100011i	ñÿ)z11111111 11111111 111111r\   rR   r>   r¼  r\   rQ   )r@   r+   r   rA   rÇ   r,   )rH   r‘   rÞ   Úlen_ss       rL   Útest_signedzTestsIntegerization.test_signedp  s  € ð
ð &	7ñ &	7‰DˆAˆqð> ×Ò�V¥H¨Q°Ñ$9Ô$9À!ÐDÑDÔDÀaÑHÔHÐHØ×Ò�V¥H¨Q¨t¨t°¨t¬W°eÑ$<Ô$<ÀQÐGÑGÔGÈÑKÔKÐKå� ™œÑ$Ô$ˆEØ×Ò�V A u¨h¸qÐAÑAÔAÝ% a¨Ñ2Ô2ñ4ô 4ð 4à×Ò�V A u¨e¸AÐ>Ñ>Ô>Ý% a¨¨¨"¨¤g¨uÑ5Ô5ñ7ô 7ð 7ñ 7ðK&	7ð &	7rN   c                 ó€  — |                       t          t          d¦  «         |                       t          t          dd¦  «         |                       t          t          dd¦  «         |                       t          t          ddd¬¦  «         |                       t          t          ddd¬¦  «         t          dd	¦  «        D ]}|                       t          t          d
|z  |¦  «         |                       t          t          d
|dz
  z  |d¬¦  «         |                       t          t          d
|dz
  z   dz
  |d¬¦  «         Œ€d S )Nr\   rÓ   r5  rÒ   rï  r>   r¼  i¿ÿÿÿrÎ   r–   )r^   r=  r,   r?   r¢   s     rL   Útest_int2ba_overflowz(TestsIntegerization.test_int2ba_overflow™  s7  € Ø×Ò�-­°Ñ4Ô4Ð4Ø×Ò�-­°°QÑ7Ô7Ð7à×Ò�-­°°aÑ8Ô8Ð8Ø×Ò�-­°°Q¸qÐÑAÔAÐAØ×Ò�-­°°aÀÐÑBÔBÐBå�q˜"‘”ð 	(ð 	(ˆAØ×Ò�m­V°Q¸!±V¸QÑ?Ô?Ð?Ø×Ò�m­V°Q¸1¸q¹5±\À1Ø%&ð ñ (ô (ð (à×Ò�m­V°a¸AÀ¹E±l°]ÀQÑ5FÈØ%&ð ñ (ô (ð (ð (ð		(ð 	(rN   c           
      ó@  — |                       t          t          dd¦  «         |                       t          t          dd¦  «         |                      t          ddd¬¦  «        t          d¦  «        ¦  «         t          dd	¦  «        D �]”}t          d|d¦  «        }t          d|d
¦  «        }|                      |                     ¦   «         d¦  «         |                      |                     ¦   «         d
¦  «         |                      t          |¦  «        |¦  «        f |                      t          |¦  «        |¦  «         |                      |t          |dz
  dz  ¦  «        t          d¦  «        z   ¦  «         |                      |t          d¦  «        t          |dz
  dz  ¦  «        z   ¦  «         t          d|d¦  «        }t          d|d
¦  «        }|                      t          |¦  «        |¦  «         |                      t          |¦  «        |¦  «         |                      |t          |dz  d¦  «        ¦  «         |                      |t          |dz  d
¦  «        ¦  «         |                      t          d|z  dz
  ¦  «        t          |dz  ¦  «        ¦  «         |                      t          d|z  dz
  d
¬¦  «        t          |dz  ¦  «        ¦  «         dD ]9}|                      t          d||d¬¦  «        t          |dz  ¦  «        ¦  «         Œ:�Œ–d S )Nr   r[   rÏ   rÌ   rQ   )rœ  rT   Ú000101r>   r=   rR   r
  r—   r–   rS   rP   r\   Tr¼  )	r^   r_   r,   r`   r@   r   r?   rT   rA   )rH   rI   ÚabÚalrT   s        rL   Útest_int2ba_lengthz&TestsIntegerization.test_int2ba_length¨  së  € Ø×Ò�)¥V¨Q°Ñ4Ô4Ð4Ø×Ò�*¥f¨a°Ñ3Ô3Ð3Ø×Ò� ¨!°EÐ:Ñ:Ô:Ý! (Ñ+Ô+ñ	-ô 	-ð 	-å�q˜#‘”ð 	4ñ 	4ˆAÝ˜˜1˜eÑ$Ô$ˆBÝ˜˜1˜hÑ'Ô'ˆBØ×Ò˜RŸYšY™[œ[¨%Ñ0Ô0Ð0Ø×Ò˜RŸYšY™[œ[¨(Ñ3Ô3Ð3Ø×Ò�S ™WœW aÑ(Ô(Ð)Ð)Ø×Ò�S ™WœW aÑ(Ô(Ð(Ø×Ò˜R¥¨1¨q©5°C©-Ñ!8Ô!8½8ÀC¹=¼=Ñ!HÑIÔIÐIØ×Ò˜R¥¨#¡¤µ¸1¸q¹5ÀC¹-Ñ1HÔ1HÑ!HÑIÔIÐIå˜˜1˜eÑ$Ô$ˆBÝ˜˜1˜hÑ'Ô'ˆBØ×Ò�S ™WœW aÑ(Ô(Ð(Ø×Ò�S ™WœW aÑ(Ô(Ð(Ø×Ò˜R¥¨!¨c©'°5Ñ!9Ô!9Ñ:Ô:Ð:Ø×Ò˜R¥¨!¨c©'°8Ñ!<Ô!<Ñ=Ô=Ð=à×Ò�V A¨¡F¨Q¡JÑ/Ô/µ¸!¸c¹'Ñ1BÔ1BÑCÔCÐCØ×Ò�V A¨¡F¨Q¡J°xÐ@Ñ@Ô@Ý% a¨#¡gÑ.Ô.ñ0ô 0ð 0à)ð 4ð 4�Ø× Ò ¥¨¨A¨v¸dÐ!CÑ!CÔ!CÝ!)¨!¨c©'Ñ!2Ô!2ñ4ô 4ð 4ð 4ñ4ð)	4ð 	4rN   c                 óÂ  — t          d¦  «         dD ]Ì\  }}t          |d¦  «        }t          |d d d…         d¦  «        }|                      t          |¦  «        |¦  «         |                      t          |d¬¦  «        |¦  «         |                      t          |d¬¦  «        |¦  «         |                      t          |¦  «        t          |¦  «        |¦  «         ŒÍd S )NrQ   ))r   r
  )r>   r—   )r–   r�  )r6   rQ  )r&  Ú11001)i	  Ú	100001001)iR8 Ú1110000101001000011110r\   rR   rS   )r   r   rÇ   r,   r@   r+   )rH   rÞ   ÚsarÎ  rÏ  s        rL   rŒ  z!TestsIntegerization.test_explicitÅ  sâ   € Ý˜EÑ"Ô"Ð"ð;ð 		8ð 		8‰EˆAˆrõ ˜"˜eÑ$Ô$ˆBÝ˜"˜T˜T˜r˜Tœ( HÑ-Ô-ˆBØ×Ò�V A™YœY¨Ñ+Ô+Ð+Ø×Ò�V A¨eÐ4Ñ4Ô4°bÑ9Ô9Ð9Ø×Ò�V A¨hÐ7Ñ7Ô7¸Ñ<Ô<Ð<Ø×Ò�V B™ZœZ­°©¬°QÑ7Ô7Ð7Ð7ð		8ð 		8rN   c                 óp  — dD �]±}t          ||¬¦  «        }|                      |¦  «         |                      |                     ¦   «         |¦  «         |                      t          |¦  «        dk    ¦  «         |j        dk    r?|                      t          |¦  «        dk    p|                     d¦  «        dk    ¦  «         |                      t          |¦  «        |¦  «         |dk    r5|                      |                     ¦   «         t          |¦  «        ¦  «         |dk    r!t          t          d¦  «        |¦  «        |z   }n |t          t          d¦  «        |¦  «        z   }|                      |                     ¦   «         |¦  «         |                      t          |¦  «        |¦  «         �Œ³d S )NrP   rS   r   rQ   r>   rÓ   )r,   rÒ  r@   rT   rF   rA   rö   r+   r\  r   r   )rH   rÞ   rT   rJ   s       rL   Úcheck_round_tripz$TestsIntegerization.check_round_tripÒ  sz  € Ø%ð 	+ñ 	+ˆFÝ�q Ð(Ñ(Ô(ˆAØ�NŠN˜1ÑÔÐØ×Ò˜QŸXšX™ZœZ¨Ñ0Ô0Ð0Ø�OŠO�C ™FœF QšJÑ'Ô'Ð'àŒx˜5Ò Ð Ø—’¥ A¡¤¨!¢Ð >¨q¯wªw°q©z¬z¸QªÑ?Ô?Ð?Ø×Ò�V A™YœY¨Ñ*Ô*Ð*Ø�1ŠuˆuØ× Ò  §¢¡¤µ°Q±´Ñ8Ô8Ð8à˜ŠˆÝ�) A™,œ,¨Ñ/Ô/°!Ñ3��à��i¨™lœl¨FÑ3Ô3Ñ3�Ø×Ò˜QŸXšX™ZœZ¨Ñ0Ô0Ð0Ø×Ò�V A™YœY¨Ñ*Ô*Ð*Ñ*ð#	+ð 	+rN   c           
      óº   — t          d¦  «        D ]J}|                      |¦  «         |                      t          dt          dd¦  «        z  ¦  «        ¦  «         ŒKd S )NrÎ   r‹   r6   r\  )r?   r×  r   r	   )rH   rÞ   s     rL   Ú	test_manyzTestsIntegerization.test_manyæ  se   € Ý�r‘”ð 	Dð 	DˆAØ×!Ò! !Ñ$Ô$Ð$Ø×!Ò!¥)¨Bµ'¸!¸S±/´/Ñ,AÑ"BÔ"BÑCÔCÐCÐCð	Dð 	DrN   c                 ó,   — d|dz
  z  }| |z   | | z  z   S ©Nr–   r>   rg   )rÞ   Únum_bitsÚmasks      rL   Útwos_complementz#TestsIntegerization.twos_complementë  s)   € ð �X ‘\Ñ"ˆØ�T‘ˆ{˜a 4 %™iÑ(Ð(rN   c           
      ó²  — |                       d¬¦  «        D ]¿}t          |d¬¦  «        }t          |t          |¦  «        |                     ¦   «         d¬¦  «        }|                      ||¦  «         t          |d¬¦  «        }|dk    r|                      ||¦  «         |                      ||                      |t          |¦  «        ¦  «        ¦  «         ŒÀd S )Nr>   rm  Tr¼  Fr   )rÅ   r+   r,   rA   rT   rÇ   r@   rÞ  )rH   rJ   rÞ   rK   rß   s        rL   Útest_random_signedz&TestsIntegerization.test_random_signedñ  sÜ   € Ø×%Ò%¨AÐ%Ñ.Ô.ð 		Að 		AˆAÝ�q Ð&Ñ&Ô&ˆAÝ�q�#˜a™&œ& !§(¢(¡*¤*°TÐ:Ñ:Ô:ˆAØ×Ò˜Q Ñ"Ô"Ð"å�q Ð'Ñ'Ô'ˆAØ�AŠvˆvØ× Ò   AÑ&Ô&Ð&à×Ò˜Q × 4Ò 4°Q½¸A¹¼Ñ ?Ô ?Ñ@Ô@Ð@Ð@ð		Að 		ArN   N)rd   re   rf   r±  r³  r¶  r¹  r¾  rÉ  rË  rÐ  rŒ  r×  rÙ  r¶   rÞ  rà  rg   rN   rL   r®  r®  :  sì   € € € € € ðð ð ð#ð #ð #ð:ð :ð :ð+ð +ð +ð?ð ?ð ?ð'7ð '7ð '7ðR(ð (ð (ð4ð 4ð 4ð:8ð 8ð 8ð+ð +ð +ð(Dð Dð Dð
 ð)ð )ñ „\ð)ð

Að 
Að 
Að 
Að 
ArN   r®  c                   ór   — e Zd Zd„ Z eej        d         dk    ¦  «        d„ ¦   «         Zd„ Zd„ Z	d„ Z
d„ Zd	S )
Ú
MixedTestsc                 óš  — t          d¦  «        D ]º}t          |¦  «        }|                      |d d…         d¦  «         t          |dd …         d¦  «        }|                      t	          |¦  «        |¦  «         d|                     ¦   «         z  }|                      ||¦  «         |                      t          |¦  «        |¦  «         Œ»d S )Nr=   r–   Ú0brQ   z0b%s)r?   Úbinr@   r   r+   rÜ   r}   ©rH   rÞ   r‘   rJ   rÔ  s        rL   Útest_binzMixedTests.test_bin  sÄ   € Ý�s‘”ð 	)ð 	)ˆAÝ�A‘”ˆAØ×Ò˜Q˜r ˜rœU DÑ)Ô)Ð)Ý˜˜1˜2˜2œ Ñ&Ô&ˆAØ×Ò�V A™YœY¨Ñ*Ô*Ð*Ø˜Ÿš™œÑ!ˆAØ×Ò˜Q Ñ"Ô"Ð"Ø×Ò�T !™WœW aÑ(Ô(Ð(Ð(ð	)ð 	)rN   r   r–   c                 ó”  — t          d¦  «        D ]·}t          |¦  «        }|                      |d d…         d¦  «         t          d|dd …         d¦  «        }|                      t	          |¦  «        |¦  «         dt          d|¦  «        z  }|                      ||¦  «         |                      t          |¦  «        |¦  «         Œ¸d S )Nro   r–   Ú0orÍ   rQ   z0o%s)r?   Úoctr@   r*   r+   r)   r}   ræ  s        rL   Útest_octzMixedTests.test_oct  sÆ   € å�t‘”ð 	)ð 	)ˆAÝ�A‘”ˆAØ×Ò˜Q˜r ˜rœU DÑ)Ô)Ð)Ý˜˜1˜Q˜R˜Rœ5 %Ñ(Ô(ˆAØ×Ò�V A™YœY¨Ñ*Ô*Ð*Ø�  A™œÑ&ˆAØ×Ò˜Q Ñ"Ô"Ð"Ø×Ò�T !™WœW aÑ(Ô(Ð(Ð(ð	)ð 	)rN   c                 ó�  — t          d¦  «        D ]µ}t          |¦  «        }|                      |d d…         d¦  «         t          |dd …         d¦  «        }|                      t	          |¦  «        |¦  «         dt          |¦  «        z  }|                      ||¦  «         |                      t          |¦  «        |¦  «         Œ¶d S )Nro   r–   Ú0xrQ   z0x%s)r?   Úhexr@   r(   r+   r'   r}   ræ  s        rL   Útest_hexzMixedTests.test_hex  sÂ   € Ý�t‘”ð 	)ð 	)ˆAÝ�A‘”ˆAØ×Ò˜Q˜r ˜rœU DÑ)Ô)Ð)Ý�q˜˜˜”u˜eÑ$Ô$ˆAØ×Ò�V A™YœY¨Ñ*Ô*Ð*Ø� ™œÑ"ˆAØ×Ò˜Q Ñ"Ô"Ð"Ø×Ò�T !™WœW aÑ(Ô(Ð(Ð(ð	)ð 	)rN   c                 óÂ  — |                       d¬¦  «        D �]Æ}t          t          |¦  «        |                     ¦   «         ¦  «        }|                     ¦   «         }|                     ¦   «         }t          |¦  «        }t          |¦  «        }|                      t          ||z  ¦  «        ||z  ¦  «         |                      t          ||z  ¦  «        ||z  ¦  «         |                      t          ||z  ¦  «        ||z  ¦  «         t          dt          |¦  «        ¦  «        }|                     ¦   «         dk    rr|                      t          ||z	  ¦  «        ||z	  ¦  «         t          t          |¦  «        d¦  «        |z   }|                      t          ||z  ¦  «        ||z  ¦  «         |  	                    ||¦  «         |  	                    ||¦  «         �ŒÈd S ©Nr>   rm  r   rQ   )
rÅ   r   rA   rT   rÆ   r+   r@   r	   r   rÇ   )	rH   rJ   rK   rÈ   rC  rÞ   rß   rI   r½   s	            rL   Útest_bitwisezMixedTests.test_bitwise   sž  € Ø×%Ò%¨AÐ%Ñ.Ô.ð 	$ñ 	$ˆAÝ�˜A™œ §¢¡
¤
Ñ+Ô+ˆAØ—’‘”ˆBØ—’‘”ˆBÝ�q‘	”	ˆAÝ�q‘	”	ˆAØ×Ò�V A¨¡E™]œ]¨A°©EÑ2Ô2Ð2Ø×Ò�V A¨¡E™]œ]¨A°©EÑ2Ô2Ð2Ø×Ò�V A¨¡E™]œ]¨A°©EÑ2Ô2Ð2å˜�3˜q™6œ6Ñ"Ô"ˆAØ�xŠx‰zŒz˜UÒ"Ð"Ø× Ò ¥¨¨Q©¡¤°°a±Ñ8Ô8Ð8Ý�#˜a™&œ& %Ñ(Ô(¨1Ñ,�Ø× Ò ¥¨¨Q©¡¤°°a±Ñ8Ô8Ð8à×Ò˜Q Ñ#Ô#Ð#Ø×Ò˜Q Ñ#Ô#Ð#Ñ#ð#	$ð 	$rN   c                 ó"  — |                       d¬¦  «        D �]ö}t          t          |¦  «        |                     ¦   «         ¦  «        }|                     ¦   «         }t          |¦  «        }t          |¦  «        }|                     ¦   «         }||z  }|                      t          |¦  «        ||z  ¦  «         |                     ¦   «         }||z  }|                      t          |¦  «        ||z  ¦  «         |                     ¦   «         }||z  }|                      t          |¦  «        ||z  ¦  «         |                      ||¦  «         t          dt          |¦  «        ¦  «        }|                     ¦   «         dk    rŠ|                     ¦   «         }||z  }|                      t          |¦  «        ||z	  ¦  «         t          t          |¦  «        d¦  «        |z   }||z  }|                      t          |¦  «        ||z  ¦  «         �Œød S rñ  )
rÅ   r   rA   rT   rÆ   r+   r@   rÇ   r	   r   )rH   rJ   rK   rC  rÞ   rß   r½   rI   s           rL   Útest_bitwise_inplacezMixedTests.test_bitwise_inplace4  sÆ  € Ø×%Ò%¨AÐ%Ñ.Ô.ð 	4ñ 	4ˆAÝ�˜A™œ §¢¡
¤
Ñ+Ô+ˆAØ—’‘”ˆBÝ�q‘	”	ˆAÝ�q‘	”	ˆAØ—’‘”ˆAØ�‰FˆAØ×Ò�V A™YœY¨¨A©Ñ.Ô.Ð.Ø—’‘”ˆAØ�‰FˆAØ×Ò�V A™YœY¨¨A©Ñ.Ô.Ð.Ø—’‘”ˆAØ�‰FˆAØ×Ò�V A™YœY¨¨A©Ñ.Ô.Ð.Ø×Ò˜Q Ñ#Ô#Ð#å˜�3˜q™6œ6Ñ"Ô"ˆAØ�xŠx‰zŒz˜UÒ"Ð"Ø—F’F‘H”H�Ø�a‘�Ø× Ò ¥¨¡¤¨A°©FÑ3Ô3Ð3Ý�#˜a™&œ& %Ñ(Ô(¨1Ñ,�Ø�a‘�Ø× Ò ¥¨¡¤¨A°©FÑ3Ô3Ð3ùð/	4ð 	4rN   c                 óÌ  — t          d¦  «        }d|d d…<   t          dd¦  «        D ]}||         rd|||z  d |…<   Œ|                      |                     dd¦  «        g d¢¦  «         |                      |                     d¦  «        d¦  «         |                      |                     dd	d
¦  «        d¦  «         |                      t          |d¦  «        dz
  d¦  «         d S )Nrñ   r   r–   r=   r>   rÇ  )r–   r6   rÏ   rÒ   rl   r$  r.  é   r  é   r%  r  é)   é+   r  iÍ  i   iˆ  éw   ro   iï  )r   r?   r@   ÚsearchrD   r   )rH   ÚsieverÞ   s      rL   Útest_primeszMixedTests.test_primesN  s  € Ý�U‘”ˆØˆˆbˆqˆb‰	Ý�q˜#‘”ð 	$ð 	$ˆAØ�QŒxð $Ø"#��a˜!‘e�h˜Q�h‘øà×Ò˜Ÿš a¨Ñ,Ô,ð /Kð /Kð /Kñ 	Lô 	Lð 	Lð 	×Ò˜Ÿš Q™œ¨Ñ.Ô.Ð.à×Ò˜Ÿš Q¨¨dÑ3Ô3°SÑ9Ô9Ð9à×Ò� ¨Ñ-Ô-°Ñ1°4Ñ8Ô8Ð8Ð8Ð8rN   N)rd   re   rf   rç  r   r¼  r½  rë  rï  rò  rô  rý  rg   rN   rL   râ  râ  ÿ  s’   € € € € € ð)ð )ð )ð €VˆCÔ˜QÔ 1Ò$Ñ%Ô%ð)ð )ñ &Ô%ð)ð)ð )ð )ð$ð $ð $ð(4ð 4ð 4ð49ð 9ð 9ð 9ð 9rN   râ  c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestsSerializationc                 ó~  — dD ]¹\  }}}t          ||¦  «        }t          |¦  «        }|                      ||¦  «         |                      |t          ¦  «         t          |¦  «        }|                      ||¦  «         |                      |                     ¦   «         |¦  «         |                      |d¦  «         Œºd S )N))r¹  rR   rZ   )ó   rR   r—   )ó   €rQ   r—   )s   ørQ   rÕ   )s    rR   Ú11110000)s   ðrQ   r  )s   ‡ØrQ   z10000111 110110r   )r   r%   r@   rE   r:  r&   rT   r»   )rH   rK  rT   r(  rJ   r‘   rK   s          rL   rŒ  z TestsSerialization.test_explicitb  sÆ   € ð#
ð 	-ð 	-ÑˆD�&˜$õ ˜˜vÑ&Ô&ˆAÝ˜!‘”ˆAØ×Ò˜T 1Ñ%Ô%Ð%Ø×!Ò! !¥UÑ+Ô+Ð+å˜DÑ!Ô!ˆAØ×Ò˜Q Ñ"Ô"Ð"Ø×Ò˜QŸXšX™ZœZ¨Ñ0Ô0Ð0Ø×Ò˜a Ñ,Ô,Ð,Ð,ð#	-ð 	-rN   c           	      ó¨  — dddddddgt          dg¦  «        fD ]#}|                      t          t          |¦  «         Œ$|                      t          t          ¦  «         |                      t          t          t	          ¦   «         d¦  «         t	          dd¦  «        t          dd¦  «        fD ]%}|                      t          |¦  «        d¦  «         Œ&d S )	Nr
  r   r>   r¹  r}  rP  rQ   s   p)r;  r^   r_   r%   r   r   r@   )rH   rb   rJ   s      rL   Útest_serialize_argsz&TestsSerialization.test_serialize_argsv  sÌ   € Ø�a˜˜G S¨1¨a¨&µ)¸Q¸C±.´.Ð@ð 	7ð 	7ˆAØ×Ò�i­°AÑ6Ô6Ð6Ð6à×Ò�)¥YÑ/Ô/Ð/à×Ò�)¥Yµ±
´
¸AÑ>Ô>Ð>å˜& %Ñ(Ô(­.¸ÀÑ*GÔ*GÐGð 	8ð 	8ˆAØ×Ò�Y q™\œ\¨;Ñ7Ô7Ð7Ð7ð	8ð 	8rN   c           
      ó:  — ddddd dddddgf	D ]#}|                       t          t          |¦  «         Œ$|                       t          t          ¦  «         |                       t          t          dd¦  «         d	}t          ¦   «         }|                     |¦  «         |t          |¦  «        t          |¦  «        |fD ]a}t          |¦  «        }|                      |                     ¦   «         d
¦  «         |                      | 	                    ¦   «         d¦  «         Œbd S )Nr   r>   FTrZ   r…   r}  r¹  s   Ú01100rR   )
r^   r_   r&   r   r9  r;  r�  r@   rÜ   rT   )rH   rb   rK  r‘   rJ   s        rL   Útest_deserialize_argsz(TestsSerialization.test_deserialize_args�  s  € Ø�A�u˜d D¨#¨u°c¸A¸q¸6ÐAð 	9ð 	9ˆAØ×Ò�i­°aÑ8Ô8Ð8Ð8à×Ò�)¥[Ñ1Ô1Ð1à×Ò�)¥[°'¸1Ñ=Ô=Ð=àˆÝ‰JŒJˆØ	�Š�DÑÔÐØ•y ‘”­
°4Ñ(8Ô(8¸!Ð;ð 	3ð 	3ˆAÝ˜A‘”ˆAØ×Ò˜QŸVšV™XœX wÑ/Ô/Ð/Ø×Ò˜QŸXšX™ZœZ¨Ñ2Ô2Ð2Ð2ð	3ð 	3rN   c           	      óp  ‡ — ‰                       t          t          d¦  «         ˆ fd„}t          d¦  «        D ]þ}t	          t          |g¦  «        ¦  «        }|dk    s|dk    r0‰                      t          |¦  «        t          ¦   «         ¦  «         n,‰                       t          t          |¦  «          ||¦  «         |dz  }|dk     r@|dz  dk     r7‰                      t          |¦  «        t          d|dz  z
  ¦  «        ¦  «         ŒÒ‰                       t          t          |¦  «          ||¦  «         Œÿd S )	NrN   c                 ó’   •— t           j        d         dk    r/d| d         z  }‰                     t          |t          | ¦  «         d S d S )Nr   r6   zinvalid header byte: 0x%02x)r¼  r½  r  r`   r&   )rK   r/  rH   s     €rL   Ú	check_msgz8TestsSerialization.test_invalid_bytes.<locals>.check_msg”  sN   ø€ õ Ô Ô" aÒ'Ð'Ø3°a¸´dÑ:�Ø×(Ò(­°S½+ÀqÑIÔIÐIÐIÐIð (Ð'rN   r8  r   r‰  r¹  rì  rÍ   )	r^   r`   r&   r?   r:  r;  r@   r   r   )rH   r  rÞ   rK   s   `   rL   Útest_invalid_bytesz%TestsSerialization.test_invalid_bytes‘  s<  ø€ Ø×Ò�*¥k°3Ñ7Ô7Ð7ð	Jð 	Jð 	Jð 	Jð 	Jõ �s‘”ð 	ð 	ˆAÝ•i  ‘n”nÑ%Ô%ˆAØ�AŠvˆv˜˜bš˜Ø× Ò ¥¨Q¡¤µ±´Ñ<Ô<Ð<Ð<à×!Ò!¥*­k¸1Ñ=Ô=Ð=Ø�	˜!‘”�à�‰JˆAØ�2Švˆv˜!˜b™& 1š*˜*Ø× Ò ¥¨Q¡¤µ°q¸1¸q¹5±yÑ1AÔ1AÑBÔBÐBÐBà×!Ò!¥*­k¸1Ñ=Ô=Ð=Ø�	˜!‘”��ð	ð 	rN   c                 óÔ   — dD ]d\  }}t          |¦  «        }|                      |                     ¦   «         d¦  «         |                      |                     ¦   «         |¦  «         Œed S )N))r  rR   )s   rR   )s   ÿrR   )r  rQ   )s   ÀrQ   )s   ÿrQ   r—   )r&   r@   rÜ   rT   )rH   rK  rT   rJ   s       rL   Útest_bits_ignoredz$TestsSerialization.test_bits_ignoredª  so   € ð
ð 
	1ð 
	1‰LˆD�&õ ˜DÑ!Ô!ˆAØ×Ò˜QŸVšV™XœX sÑ+Ô+Ð+Ø×Ò˜QŸXšX™ZœZ¨Ñ0Ô0Ð0Ð0ð
	1ð 
	1rN   c                 ó:  — |                       ¦   «         D ]…}t          |¦  «        }t          |¦  «        }|                      ||¦  «         |                      |                     ¦   «         |                     ¦   «         ¦  «         |                      |¦  «         Œ†d S r|   )rÅ   r%   r&   r@   rT   rÒ  r¼   s       rL   r£   zTestsSerialization.test_random¸  sŽ   € Ø×%Ò%Ñ'Ô'ð 	ð 	ˆAÝ˜!‘”ˆAÝ˜A‘”ˆAØ×Ò˜Q Ñ"Ô"Ð"Ø×Ò˜QŸXšX™ZœZ¨¯ª©¬Ñ4Ô4Ð4Ø�NŠN˜1ÑÔÐÐð	ð 	rN   N)	rd   re   rf   rŒ  r  r  r  r  r£   rg   rN   rL   rÿ  rÿ  `  sn   € € € € € ð-ð -ð -ð(	8ð 	8ð 	8ð3ð 3ð 3ð ð ð ð21ð 1ð 1ðð ð ð ð rN   rÿ  c                   óJ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ ZdS )ÚTestsHuffmanc                 ól  — ddddœ}t          |¦  «        }|                      t          |¦  «        d¦  «         |                      t          |d         ¦  «        d¦  «         |                      t          |d         ¦  «        d¦  «         |                      t          |d          ¦  «        d¦  «         d S )	Nr‹   r–   gš™™™™™ù?)r   ÚasNr6   r   r>   r  )r1   r@   rA   )rH   Úfreqr�   s      rL   r¾   zTestsHuffman.test_simpleÄ  s    € Ø˜Q cÐ*Ð*ˆÝ˜DÑ!Ô!ˆØ×Ò�˜T™œ AÑ&Ô&Ð&Ø×Ò�˜T !œW™œ qÑ)Ô)Ð)Ø×Ò�˜T $œZ™œ¨!Ñ,Ô,Ð,Ø×Ò�˜T $œZ™œ¨!Ñ,Ô,Ð,Ð,Ð,rN   c                 ó   — ddddœ}dD ]t}t          ||¦  «        }|                      t          |¦  «        d¦  «         |                     ¦   «         D ]*}|                      |                     ¦   «         |¦  «         Œ+Œud S )Nr‹   r–   rÏ   )rÑ   rH  ÚCrP   r6   )r1   r@   rA   ÚvaluesrT   )rH   r  rT   r�   rÖ   s        rL   Útest_endiannesszTestsHuffman.test_endiannessÌ  s’   € Ø˜a aÐ(Ð(ˆØ%ð 	5ð 	5ˆFÝ  fÑ-Ô-ˆDØ×Ò�S ™YœY¨Ñ*Ô*Ð*Ø—[’[‘]”]ð 5ð 5�Ø× Ò  §¢¡¤¨VÑ4Ô4Ð4Ð4ð5ð	5ð 	5rN   c                 óX  — |                       t          t          dg¦  «         |                       t          t          d¦  «         |                       t          t          d ¦  «         |                       t          t          dddœ¦  «         |                       t          t          i ¦  «         d S )N)rJ   r>   rý   rJ   r>   )rÑ   rH  )r^   r_   r1   r`   rt   s    rL   Útest_wrong_argzTestsHuffman.test_wrong_argÔ  sŠ   € Ø×Ò�)¥\°H°:Ñ>Ô>Ð>Ø×Ò�)¥\°3Ñ7Ô7Ð7Ø×Ò�)¥\°4Ñ8Ô8Ð8à×Ò�)¥\¸À1Ð3EÐ3EÑFÔFÐFà×Ò�*¥l°BÑ7Ô7Ð7Ð7Ð7rN   c                 ój  — ddi}t          |¦  «        }|                      |dt          d¦  «        i¦  «         t          d¦  «        D ]ê}|dgz  }t          ¦   «         }|                     ||¦  «         |                      |                     ¦   «         |dz  ¦  «         |                      |                     |¦  «        |¦  «         |                     d¦  «         |                      t          |j        |¦  «         |                      t          t          |                     |¦  «        ¦  «         Œëd S )NrJ   r>   r
  rÓ   )r1   r@   r   r?   ÚencoderÜ   rÛ  rB  r^   r`   r‹  Ú
iterdecode)rH   r<  r�   rI   r/  rJ   s         rL   Útest_one_symbolzTestsHuffman.test_one_symbolÝ  s  € Ø�AˆhˆÝ˜CÑ Ô ˆØ×Ò˜ ¥X¨c¡]¤]Ð3Ñ4Ô4Ð4Ý�q‘”ð 	Dð 	DˆAØ�s�e‘)ˆCÝ‘
”
ˆAØ�HŠH�T˜3ÑÔÐØ×Ò˜QŸVšV™XœX q¨3¡wÑ/Ô/Ð/Ø×Ò˜QŸXšX d™^œ^¨SÑ1Ô1Ð1Ø�HŠH�Q‰KŒKˆKØ×Ò�j¨!¬(°DÑ9Ô9Ð9Ø×Ò�j­$°·²¸TÑ0BÔ0BÑCÔCÐCÐCð	Dð 	DrN   c                 ó<  — t          |¦  «        }t          |¦  «        }|                      |                     ¦   «         |¦  «         |                      |                     ¦   «         d|z  dz
  ¦  «         |                      |                     ¦   «         ¦  «         d S rÛ  )rA   r   r@   ÚtodictÚnodesrF   Úcomplete)rH   r�   rI   Útrees       rL   Ú
check_treezTestsHuffman.check_treeë  s~   € Ý�‰IŒIˆÝ˜$ÑÔˆØ×Ò˜Ÿš™œ¨Ñ-Ô-Ð-à×Ò˜Ÿš™œ q¨1¡u¨q¡yÑ1Ô1Ð1à�Š˜Ÿš™œÑ(Ô(Ð(Ð(Ð(rN   c                 óX  ‡— dŠi }t          d‰z  ¦  «        D ]}d||<   Œt          |¦  «        }|                      t          |¦  «        d‰z  ¦  «         |                      t          ˆfd„|                     ¦   «         D ¦   «         ¦  «        ¦  «         |                      |¦  «         d S )NrÌ   r–   r>   c              3   ó>   •K  — | ]}t          |¦  «        ‰k    V — Œd S r|   ©rA   ©rä   rÖ   rI   s     €rL   r“  z-TestsHuffman.test_balanced.<locals>.<genexpr>û  ó-   øè è € Ð?Ð?¨A�C ™FœF ašKÐ?Ð?Ð?Ð?Ð?Ð?rN   )r?   r1   r@   rA   rF   rG   r  r$  )rH   r  rÞ   r�   rI   s       @rL   Útest_balancedzTestsHuffman.test_balancedô  s­   ø€ ØˆØˆÝ�q˜A‘v‘”ð 	ð 	ˆAØˆD�‰GˆGÝ˜DÑ!Ô!ˆØ×Ò�˜T™œ A¨¡FÑ+Ô+Ð+Ø�Š�Ð?Ð?Ð?Ð?°·²±´Ð?Ñ?Ô?Ñ?Ô?Ñ@Ô@Ð@Ø�Š˜ÑÔÐÐÐrN   c                 ó\  — d}i }t          |¦  «        D ]
}d|z  ||<   Œt          |¦  «        }|                      t          |¦  «        |¦  «         t          |¦  «        D ]6}|                      t          ||         ¦  «        ||dk    rdn|z
  ¦  «         Œ7|                      |¦  «         d S )Né   r–   r>   )r?   r1   r@   rA   r$  )rH   r÷   r  rÞ   r�   s        rL   Útest_unbalancedzTestsHuffman.test_unbalancedþ  s¼   € ØˆØˆÝ�q‘”ð 	ð 	ˆAØ˜1‘fˆD�‰GˆGÝ˜DÑ!Ô!ˆØ×Ò�˜T™œ AÑ&Ô&Ð&Ý�q‘”ð 	Eð 	EˆAØ×Ò�S  a¤™\œ\¨1°Q¸!²V°V°°ÀÑ+CÑDÔDÐDÐDØ�Š˜ÑÔÐÐÐrN   c                 ó,  — d}t          t          |¦  «        ¦  «        }t          ¦   «         }|                     ||¦  «         |                      d                     |                     |¦  «        ¦  «        |¦  «         |                      |¦  «         d S )Nz,the quick brown fox jumps over the lazy dog.rZ   )r1   r   r   r  r@   r¬   rÛ  r$  )rH   Úmessager�   rJ   s       rL   Útest_counterzTestsHuffman.test_counter	  s}   € Ø@ˆÝ�G GÑ,Ô,Ñ-Ô-ˆÝ‰JŒJˆØ	�Š��wÑÔÐØ×Ò˜Ÿš §¢¨$¡¤Ñ0Ô0°'Ñ:Ô:Ð:Ø�Š˜ÑÔÐÐÐrN   c                 ó4  — d„ t          d¦  «        D ¦   «         }t          t          |¦  «        ¦  «        }t          ¦   «         }|                     ||¦  «         |                      |                     |¦  «        |¦  «         |                      |¦  «         d S )Nc                 ó,   — g | ]}t          d ¦  «        ‘ŒS )r=   râ   r’  s     rL   ræ   z1TestsHuffman.test_random_list.<locals>.<listcomp>  s   € Ð4Ð4Ð4 A•˜3‘”Ð4Ð4Ð4rN   r©  )r?   r1   r   r   r  r@   rÛ  r$  )rH   Úplainr�   rJ   s       rL   Útest_random_listzTestsHuffman.test_random_list  sƒ   € Ø4Ð4­¨s©¬Ð4Ñ4Ô4ˆÝ�G E™NœNÑ+Ô+ˆÝ‰JŒJˆØ	�Š��uÑÔÐØ×Ò˜Ÿš $™œ¨Ñ/Ô/Ð/Ø�Š˜ÑÔÐÐÐrN   c                 óª   — dddt          dd¦  «        fD ]=}t          d„ t          |¦  «        D ¦   «         ¦  «        }|                      |¦  «         Œ>d S )Nr–   r6   rÏ   rk   rˆ   c                 ó,   — i | ]}|t          ¦   «         “ŒS rg   ©r
   ©rä   rÞ   s     rL   ú
<dictcomp>z1TestsHuffman.test_random_freq.<locals>.<dictcomp>  s   € Ð ?Ð ?Ð ?° ¥F¡H¤HÐ ?Ð ?Ð ?rN   )r	   r1   r?   r$  )rH   rI   r�   s      rL   Útest_random_freqzTestsHuffman.test_random_freq  se   € Ø�A�q�' " cÑ*Ô*Ð*ð 	"ð 	"ˆAåÐ ?Ð ?µe¸A±h´hÐ ?Ñ ?Ô ?Ñ@Ô@ˆDØ�OŠO˜DÑ!Ô!Ð!Ð!ð	"ð 	"rN   N)rd   re   rf   r¾   r  r  r  r$  r*  r-  r0  r4  r:  rg   rN   rL   r  r  Â  s­   € € € € € ð-ð -ð -ð5ð 5ð 5ð8ð 8ð 8ðDð Dð Dð)ð )ð )ðð ð ð	ð 	ð 	ðð ð ðð ð ð"ð "ð "ð "ð "rN   r  c                   ó†   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestsCanonicalHuffmanc           	      ó  — t          d¦  «        }t          t          |¦  «        ¦  «        \  }}}|                      |t          ¦  «         |                      |t
          ¦  «         |                      |t
          ¦  «         t          ¦   «         }|                     ||¦  «         |                      t          | 	                    |¦  «        ¦  «        |¦  «         |                      t          t          |||¦  «        ¦  «        |¦  «         d S ©Ns,   the quick brown fox jumps over the lazy dog.)r;  r2   r   rE   Údictr‹  r   r  r@   r  r3   )rH   r3  ÚchcrD   ÚsymbolrJ   s         rL   rm   z TestsCanonicalHuffman.test_basic#  sä   € ÝÐIÑJÔJˆÝ.­w°u©~¬~Ñ>Ô>ÑˆˆU�FØ×Ò˜c¥4Ñ(Ô(Ð(Ø×Ò˜e¥TÑ*Ô*Ð*Ø×Ò˜f¥dÑ+Ô+Ð+Ý‰JŒJˆØ	�Š��eÑÔÐØ×Ò� 1§<¢<°Ñ#4Ô#4Ñ5Ô5°uÑ=Ô=Ð=Ø×Ò�Õ#3°A°u¸fÑ#EÔ#EÑFÔFÈÑNÔNÐNÐNÐNrN   c                 óF  — |                       t          t          g ¦  «         |                       t          t          i ¦  «         |                       t          t          ¦  «         t	          t          d¦  «        ¦  «        }|                       t          t          |d¦  «         d S )NÚaabcrJ   )r^   r_   r2   r`   r1   r   )rH   r<  s     rL   Útest_canonical_huffman_errorsz3TestsCanonicalHuffman.test_canonical_huffman_errors.  s   € Ø×Ò�)Õ%6¸Ñ;Ô;Ð;à×Ò�*Õ&7¸Ñ<Ô<Ð<Ø×Ò�)Õ%6Ñ7Ô7Ð7Ý�7 6™?œ?Ñ+Ô+ˆØ×Ò�)Õ%6¸¸SÑAÔAÐAÐAÐArN   c           
      ó˜  — ddi}t          |¦  «        \  }}}|                      |dt          d¦  «        i¦  «         |                      |ddg¦  «         |                      |dg¦  «         t          d¦  «        D ]Î}|dgz  }t          ¦   «         }|                     ||¦  «         |                      |                     ¦   «         |dz  ¦  «         |                      t          t          |||¦  «        ¦  «        |¦  «         |                     d¦  «         |  	                    t          t          t          |||¦  «        ¦  «         ŒÏd S )NrJ   r>   r
  r   rÓ   )r2   r@   r   r?   r  rÜ   r‹  r3   rB  r^   r`   )rH   r<  r@  rD   rA  rI   r/  rJ   s           rL   r  z%TestsCanonicalHuffman.test_one_symbol6  sM  € Ø�AˆhˆÝ.¨sÑ3Ô3ÑˆˆU�FØ×Ò˜˜s¥H¨S¡M¤MÐ2Ñ3Ô3Ð3Ø×Ò˜  A Ñ'Ô'Ð'Ø×Ò˜ # Ñ'Ô'Ð'Ý�q‘”ð 	Bð 	BˆAØ�s�e‘)ˆCÝ‘
”
ˆAØ�HŠH�S˜#ÑÔÐØ×Ò˜QŸVšV™XœX q¨3¡wÑ/Ô/Ð/Ø×Ò�TÕ"2°1°e¸VÑ"DÔ"DÑEÔEÀsÑKÔKÐKØ�HŠH�Q‰KŒKˆKØ×Ò�j­$Ý.¨q°%¸Ñ@Ô@ñBô Bð Bð Bð	Bð 	BrN   c                 óÔ  — t          d¦  «        }dg}|                      t          t          dddg|¦  «         |                      t          t          |ddh|¦  «         |                      t          t          |ddg|¦  «         |                      t          t          |ddg|¦  «         |                      t
          t          |ddg|¦  «         |                      t
          t          |d	dgz  |¦  «         |                      t          t          |ddgd
¦  «         g d¢}|                      t
          dt          |g d¢|¦  «         |                      t
          dt          |g d¢|¦  «         d S )Nrh  rJ   rQ  r   r>   r[   l             r\   rì  rù  )rJ   rK   r½   Údz#sum(count) = 3, but len(symbol) = 4)r   r>   r–   z3count[2] cannot be negative or larger than 4, got 5)r   r–   rÏ   )r   r^   r_   r3   r=  r`   r  )rH   rJ   r‘   rA  s       rL   Útest_canonical_decode_errorsz2TestsCanonicalHuffman.test_canonical_decode_errorsF  sr  € Ý�VÑÔˆØˆEˆà×Ò�)Õ%5°t¸aÀ¸VÀQÑGÔGÐGà×Ò�)Õ%5°q¸1¸a¸&À!ÑDÔDÐDà×Ò�)Õ%5°q¸1¸c¸(ÀAÑFÔFÐFà×Ò�-Õ)9¸1¸qÀ'¸lÈAÑNÔNÐNà×Ò�*Õ&6¸¸A¸r¸7ÀAÑFÔFÐFà×Ò�*Õ&6¸¸2ÀÀ¹8ÀQÑGÔGÐGà×Ò�)Õ%5°q¸1¸a¸&À"ÑEÔEÐEà%Ð%Ð%ˆà× Ò ¥Ø!FÝ!1°1°i°i°iÀñ	Iô 	Ið 	Ið 	× Ò ¥ØMÝ(¨!¨Y¨Y¨Y¸ñ	@ô 	@ð 	@ð 	@ð 	@rN   c                 óF  — g d¢}ddddgddig}t          d¦  «        }|                      t          t          |||¦  «        ¦  «        |¦  «         |                      t          t          |d|¦  «        ¦  «        |¦  «         |                      t          t          d	|z  ||¦  «        ¦  «        d	|z  ¦  «         g d
¢}|                      t          t          |||¦  «        ¦  «        |¦  «         |                      t          t          |g d¢|¦  «        ¦  «        |¦  «         |                      t          t          ||ddg|¦  «        ¦  «        |¦  «         g d¢}|                      t          t          |||¦  «        ¦  «        |¦  «         |                      t          t          ||t	          |¦  «        ¦  «        ¦  «        |¦  «         |                      t          t          ||t          |¦  «        ¦  «        ¦  «        |¦  «         t          j        d         dk    r?|                      t          t          ||t          |¦  «        ¦  «        ¦  «        |¦  «         |                      t          t          ||t          |¦  «        ¦  «        ¦  «        |¦  «         d S )N)r   r   rÓ   rÑ   é*   y333333ó?š™™™™™Ày              @rH  rÌ   r  rÒ   )r   r   rÓ   r   r   r   r   r   )iÑÿÿÿr   rÓ   r   rÓ   )rŠ  éB   éC   éb   r6   )
r   r@   r‹  r3   r;  Útupler¼  r½  r:  r0  )rH   r<  r‘   rJ   rD   s        rL   Útest_canonical_decode_simplez2TestsCanonicalHuffman.test_canonical_decode_simpleb  sd  € àˆiˆiˆØ�"�x �n s¨A hÐ/ˆÝ�]Ñ#Ô#ˆà×Ò�Õ.¨q°#°qÑ9Ô9Ñ:Ô:¸AÑ>Ô>Ð>à×Ò�Õ.¨q°)¸QÑ?Ô?Ñ@Ô@À!ÑDÔDÐDØ×Ò�Õ.¨q°1©u°c¸1Ñ=Ô=Ñ>Ô>ÀÀAÁÑFÔFÐFà(Ð(Ð(ˆØ×Ò�Õ.¨q°%¸Ñ;Ô;Ñ<Ô<¸aÑ@Ô@Ð@à×Ò�Õ.¨q°+°+°+¸qÑAÔAÑBÔBÀAÑFÔFÐFà×Ò�Õ.¨q°1°a¸°)¸QÑ?Ô?Ñ@Ô@À!ÑDÔDÐDð ÐÐˆØ×Ò�Õ.¨q°#°qÑ9Ô9Ñ:Ô:¸AÑ>Ô>Ð>Ø×Ò�Õ.¨q°#µyÀ±|´|ÑDÔDÑEÔEÀqÑIÔIÐIØ×Ò�Õ.¨q°#µu¸Q±x´xÑ@Ô@ÑAÔAÀ1ÑEÔEÐEÝÔ˜AÔ !Ò#Ð#Ø×Ò�TÕ"2°1°c½5À¹8¼8Ñ"DÔ"DÑEÔEÀqÑIÔIÐIð 	×Ò�Õ.¨q°#µt¸A±w´wÑ?Ô?Ñ@Ô@À!ÑDÔDÐDÐDÐDrN   c           
      ó’  — t          ¦   «         }|                      t          t          |g g ¦  «        ¦  «        g ¦  «         |                     d¦  «         |                      t          dt          t          |g g ¦  «        ¦  «         t          d¦  «        }|                      t          dt          t          |g g ¦  «        ¦  «         d S )Nr   úreached end of bitarrayÚ0000000000000000000000000000000úran out of codes)r   r@   r‹  r3   rB  r  r`   r‚   s     rL   Útest_canonical_decode_emptyz1TestsCanonicalHuffman.test_canonical_decode_empty„  sÂ   € Ý‰JŒJˆà×Ò�Õ.¨q°"°bÑ9Ô9Ñ:Ô:¸BÑ?Ô?Ð?Ø	�Š�‰ŒˆØ× Ò ¥Ð-FÝ!%Õ'7¸¸2¸rÑ'BÔ'Bñ	Dô 	Dð 	Då�XÑÔˆØ× Ò ¥Ð-?Ý!%Õ'7¸¸2¸rÑ'BÔ'Bñ	Dô 	Dð 	Dð 	Dð 	DrN   c           	      ó  — dg}ddg}t          d¦  «        }|                      t          t          |||¦  «        ¦  «        d|z  ¦  «         |                     d¦  «         |                     t          d¦  «        ¦  «         t          |||¦  «        }|                      t          dt          |¦  «         |                     t          d¦  «        ¦  «         t          |||¦  «        }|                      t          d	t          |¦  «         d S )
NrÑ   r   r>   rU   r6   Ú
0000000000rQ  Ú00000000000000000000rS  )r   r@   r‹  r3   rB  r™  r  r`   )rH   ÚsymbolsrD   rJ   Úiterators        rL   Ú test_canonical_decode_one_symbolz6TestsCanonicalHuffman.test_canonical_decode_one_symbol�  s  € Ø�%ˆØ�A�ˆÝ�U‰OŒOˆØ×Ò�Õ.¨q°%¸ÑAÔAÑBÔBØ˜W™ñ	&ô 	&ð 	&à	�Š�‰ŒˆØ	�Š•˜(Ñ#Ô#Ñ$Ô$Ð$Ý# A u¨gÑ6Ô6ˆØ× Ò ¥Ð-FÝ!% xñ	1ô 	1ð 	1ð 	
�Š•˜(Ñ#Ô#Ñ$Ô$Ð$Ý# A u¨gÑ6Ô6ˆØ× Ò ¥Ð-?Ý!% xñ	1ô 	1ð 	1ð 	1ð 	1rN   c           	      ó  — t          t          d¦  «        5 }t          |                     ¦   «         ¦  «        }d d d ¦  «         n# 1 swxY w Y   |                      t          |¦  «        dk    ¦  «         t          t          |¦  «        ¦  «        \  }}}t          ¦   «         }| 	                    ||¦  «         |  
                    t          t          |||¦  «        ¦  «        |¦  «         |                      |||¦  «         d S )NÚrbr«  )r­   Ú__file__r;  r®   rF   rA   r2   r   r   r  r@   r3   Ú
check_code)rH   ra   r/  ÚcodedictrD   rA  rJ   s          rL   Útest_canonical_decode_largez1TestsCanonicalHuffman.test_canonical_decode_large   s  € Ý•(˜DÑ!Ô!ð 	& QÝ˜AŸFšF™HœHÑ%Ô%ˆCð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&à�Š�˜C™œ 5Ò(Ñ)Ô)Ð)Ý"3µG¸C±L´LÑ"AÔ"AÑˆ�%˜Ý‰JŒJˆØ	�Š�˜3ÑÔÐØ×Ò�Õ#3°A°u¸fÑ#EÔ#EÑFÔFÈÑLÔLÐLØ�Š˜ %¨Ñ0Ô0Ð0Ð0Ð0s   –"AÁAÁAc                 óH  ‡‡— t          d¦  «        Št          t          ‰¦  «        ¦  «        \  }}}|                      |||¦  «         t	          ¦   «         }|                     |d‰z  ¦  «         t          |||¦  «        Šˆˆfd„}|                       |¦   «         ‰¦  «         t          d¦  «        || 	                    t          d¦  «        ¦  «        <   |                       |¦   «         t          d¦  «        ¦  «         |d d …= |  
                    t          |¦  «         d S )Ns   Hello World!r‹   c                  ón   •— t          ˆ fd„t          t          ‰¦  «        ¦  «        D ¦   «         ¦  «        S )Nc              3   ó6   •K  — | ]}t          ‰¦  «        V — Œd S r|   )r1  )rä   rå   Úits     €rL   r“  zdTestsCanonicalHuffman.test_canonical_decode_symbol_change.<locals>.decode_one_msg.<locals>.<genexpr>³  s)   øè è € Ð?Ð?¨!�T "™XœXÐ?Ð?Ð?Ð?Ð?Ð?rN   )r;  r?   rA   )rd  r/  s   €€rL   Údecode_one_msgzQTestsCanonicalHuffman.test_canonical_decode_symbol_change.<locals>.decode_one_msg²  s2   ø€ ÝÐ?Ð?Ð?Ð?­uµS¸±X´X©¬Ð?Ñ?Ô?Ñ?Ô?Ð?rN   ÚkÚls   Hekko Workd!)r;  r2   r   r^  r   r  r3   r@   rü  rö   r^   Ú
IndexError)rH   r_  rD   rA  rJ   re  rd  r/  s         @@rL   Ú#test_canonical_decode_symbol_changez9TestsCanonicalHuffman.test_canonical_decode_symbol_changeª  s&  øø€ Ý˜Ñ(Ô(ˆÝ"3µG¸C±L´LÑ"AÔ"AÑˆ�%˜Ø�Š˜ %¨Ñ0Ô0Ð0Ý‰JŒJˆØ	�Š�˜2 ™8Ñ$Ô$Ð$å˜a ¨Ñ/Ô/ˆð	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	×Ò˜˜Ñ)Ô)¨3Ñ/Ô/Ð/Ý),¨S©¬ˆˆv�|Š|�C ™HœHÑ%Ô%Ñ&Ø×Ò˜˜Ñ)Ô)­9°_Ñ+EÔ+EÑFÔFÐFØ�1�1�1ˆIØ×Ò�* nÑ5Ô5Ð5Ð5Ð5rN   c                 óî   — t          t          |¦  «        dz
  ¦  «        D ]T}|||                  }|||dz                     }|                      t          |¦  «        t          |¦  «        k     ¦  «         ŒUd S rÛ   )r?   rA   rF   r+   )rH   r@  rA  rÞ   rJ   rK   s         rL   Úensure_sortedz#TestsCanonicalHuffman.ensure_sorted»  sr   € å•s˜6‘{”{ Q‘Ñ'Ô'ð 	3ð 	3ˆAØ�F˜1”I”ˆAØ�F˜1˜q™5”MÔ"ˆAØ�OŠO�F 1™IœI­¨q©	¬	Ò1Ñ2Ô2Ð2Ð2ð	3ð 	3rN   c                 óŽ  — d}t          |¦  «        D ]²\  }}t          |||z   dz
  ¦  «        D ]‘}|||                  }|||dz                     }	|                      t          |¦  «        t          |	¦  «        cxk    o|k    nc ¦  «         |                      t          |¦  «        dz   t          |	¦  «        ¦  «         Œ’||z  }Œ³d S r  )r  r?   rF   rA   r@   r+   )
rH   r@  rD   rA  rš  r`  r<  rÞ   rJ   rK   s
             rL   Úensure_consecutivez(TestsCanonicalHuffman.ensure_consecutiveÂ  sÜ   € ØˆÝ# EÑ*Ô*ð 	ð 	‰JˆE�3Ý˜5 %¨#¡+°¡/Ñ2Ô2ð ;ð ;�ð ˜˜qœ	”N�Ø˜˜q 1™uœÔ&�Ø—’¥ A¡¤­#¨a©&¬&Ð 9Ð 9Ò 9Ð 9°EÒ 9Ð 9Ð 9Ð 9Ñ:Ô:Ð:Ø× Ò ¥¨¡¤¨Q¡µ°q±	´	Ñ:Ô:Ð:Ð:Ø�S‰LˆEˆEð	ð 	rN   c                 ól  — t          d„ |                     ¦   «         D ¦   «         ¦  «        }|dz   dgz  }|                     ¦   «         D ]G}|                      |                     ¦   «         d¦  «         |t	          |¦  «        xx         dz  cc<   ŒH|                      |t          |¦  «        ¦  «         d S )Nc              3   ó4   K  — | ]}t          |¦  «        V — Œd S r|   r'  r•  s     rL   r“  z5TestsCanonicalHuffman.ensure_count.<locals>.<genexpr>Ð  s(   è è € Ð3Ð3 •c˜!‘f”fÐ3Ð3Ð3Ð3Ð3Ð3rN   r>   r   rQ   )rê   r  r@   rT   rA   r‹  )rH   r@  rD   ÚmaxbitsÚmy_countrJ   s         rL   Úensure_countz"TestsCanonicalHuffman.ensure_countÎ  s²   € åÐ3Ð3 c§j¢j¡l¤lÐ3Ñ3Ô3Ñ3Ô3ˆØ˜a‘K A 3Ñ&ˆØ—’‘”ð 	"ð 	"ˆAØ×Ò˜QŸXšX™ZœZ¨Ñ/Ô/Ð/Ø•S˜‘V”VÐÐÔ Ñ!ÐÐÑÐØ×Ò˜¥4¨¡;¤;Ñ/Ô/Ð/Ð/Ð/rN   c                 ó®   ‡‡— t          ‰¦  «        Št          ˆˆfd„t          d‰¦  «        D ¦   «         ¦  «        }|                      |d‰z  ¦  «         d S )Nc              3   ó4   •K  — | ]}‰|         ‰|z
  z  V — Œd S r|   rg   )rä   rÞ   rD   rp  s     €€rL   r“  z8TestsCanonicalHuffman.ensure_complete.<locals>.<genexpr>Ú  s0   øè è € ÐEÐE¨a��a”˜W q™[Ñ)ÐEÐEÐEÐEÐEÐErN   r>   )rA   ru  r?   r@   )rH   rD   rb   rp  s    ` @rL   Úensure_completez%TestsCanonicalHuffman.ensure_complete×  s^   øø€ å�e‘*”*ˆÝÐEÐEÐEÐEÐEµ5¸¸GÑ3DÔ3DÐEÑEÔEÑEÔEˆØ×Ò˜˜A ™LÑ)Ô)Ð)Ð)Ð)rN   c                 ór   — t          |¦  «        }|                      |                     ¦   «         ¦  «         d S r|   )r   rF   r"  )rH   r@  Údts      rL   Úensure_complete_2z'TestsCanonicalHuffman.ensure_complete_2Ý  s-   € å˜‰_Œ_ˆØ�Š˜Ÿš™œÑ&Ô&Ð&Ð&Ð&rN   c                 óD  ‡— ˆfd„t          d¦  «        D ¦   «         }t          ¦   «         }|                     ||¦  «         t          ||‰¦  «        }~~‹|                      t          |¦  «        j        d¦  «         |                      t          |¦  «        |¦  «         d S )Nc                 ó.   •— g | ]}t          ‰¦  «        ‘ŒS rg   )r   )rä   rå   rA  s     €rL   ræ   z;TestsCanonicalHuffman.ensure_round_trip.<locals>.<listcomp>ä  s   ø€ Ð1Ð1Ð1 !�v�f‰~Œ~Ð1Ð1Ð1rN   r‹   Úcanonical_decodeiter)r?   r   r  r3   r@   r~   rd   r‹  )rH   r@  rD   rA  r/  rJ   rd  s      `   rL   Úensure_round_tripz'TestsCanonicalHuffman.ensure_round_tripâ  s™   ø€ à1Ð1Ð1Ð1¥u¨R¡y¤yÐ1Ñ1Ô1ˆÝ‰JŒJˆØ	�Š��cÑÔÐÝ˜a ¨Ñ/Ô/ˆàˆu�fØ×Ò�˜b™œÔ*Ð,BÑCÔCÐCØ×Ò�˜b™œ 3Ñ'Ô'Ð'Ð'Ð'rN   c                 óô  — |                       t          |¦  «        t          |¦  «        cxk    ot          |¦  «        k    nc ¦  «         |                      |d         d¦  «         |                       t	          |¦  «        t	          |¦  «        k    ¦  «         |                       ||d                                       ¦   «         ¦  «         |                      ||d                  d         ¦  «         |                      ||¦  «         |                      |||¦  «         |  	                    ||¦  «         |  
                    |¦  «         |                      |¦  «         |                      |||¦  «         d S )Nr   r\   )rF   rA   ru  r@   rR  rG   rB   rk  rm  rr  ru  rx  r|  )rH   r@  rD   rA  s       rL   r^  z TestsCanonicalHuffman.check_codeí  sP  € Ø�Š�˜C™œ¥C¨¡K¤KÐ=Ð=Ò=Ð=µ3°u±:´:Ò=Ð=Ð=Ð=Ñ>Ô>Ð>Ø×Ò˜˜qœ 1Ñ%Ô%Ð%Ø�Š�˜C™œ¥C¨¡K¤KÒ/Ñ0Ô0Ð0à�Š˜˜F 2œJœ×+Ò+Ñ-Ô-Ñ.Ô.Ð.à×Ò˜˜V AœYœ¨Ô*Ñ+Ô+Ð+à×Ò˜3 Ñ'Ô'Ð'Ø×Ò  U¨FÑ3Ô3Ð3Ø×Ò˜#˜uÑ%Ô%Ð%Ø×Ò˜UÑ#Ô#Ð#Ø×Ò˜sÑ#Ô#Ð#Ø×Ò˜s E¨6Ñ2Ô2Ð2Ð2Ð2rN   c                 óˆ  — t          d¦  «        }t          |¦  «        }t          |¦  «        \  }}}|                      |||¦  «         |                      |t	          |¦  «        t	          |¦  «        ¦  «         |                      |t          |¦  «        |¦  «         |                      ||t          |¦  «        ¦  «         d S r>  )r;  r   r2   r^  rN  )rH   r3  r<  r�   rD   rA  s         rL   Útest_simple_counterz)TestsCanonicalHuffman.test_simple_counterý  s©   € ÝÐIÑJÔJˆÝ�e‰nŒnˆÝ/°Ñ4Ô4Ñˆˆe�VØ�Š˜˜e VÑ,Ô,Ð,Ø�Š˜�e E™lœl­E°&©M¬MÑ:Ô:Ð:Ø�Š˜�i¨Ñ.Ô.°Ñ7Ô7Ð7Ø�Š˜˜e¥Y¨vÑ%6Ô%6Ñ7Ô7Ð7Ð7Ð7rN   c                 ód  ‡— dŠi }t          d‰z  ¦  «        D ]}d||<   Œt          |¦  «        \  }}}|                      t          |¦  «        d‰z  ¦  «         |                      t          ˆfd„|                     ¦   «         D ¦   «         ¦  «        ¦  «         |                      |||¦  «         d S )NrÒ   r–   r>   c              3   ó>   •K  — | ]}t          |¦  «        ‰k    V — Œd S r|   r'  r(  s     €rL   r“  z6TestsCanonicalHuffman.test_balanced.<locals>.<genexpr>	  r)  rN   )r?   r2   r@   rA   rF   rG   r  r^  )rH   r  rÞ   r�   rD   ÚsymrI   s         @rL   r*  z#TestsCanonicalHuffman.test_balanced	  s¸   ø€ ØˆØˆÝ�q˜A‘v‘”ð 	ð 	ˆAØˆD�‰GˆGÝ,¨TÑ2Ô2Ñˆˆe�SØ×Ò�˜T™œ A¨¡FÑ+Ô+Ð+Ø�Š�Ð?Ð?Ð?Ð?°·²±´Ð?Ñ?Ô?Ñ?Ô?Ñ@Ô@Ð@Ø�Š˜˜e SÑ)Ô)Ð)Ð)Ð)rN   c                 ól  — d}i }t          |¦  «        D ]
}d|z  ||<   Œt          |¦  «        d         }|                      t          |¦  «        |¦  «         t          |¦  «        D ]6}|                      t          ||         ¦  «        ||dk    rdn|z
  ¦  «         Œ7 | j        t          |¦  «        Ž  d S )Nr÷  r–   r   r>   )r?   r2   r@   rA   r^  )rH   rI   r  rÞ   r�   s        rL   r-  z%TestsCanonicalHuffman.test_unbalanced	  sÇ   € ØˆØˆÝ�q‘”ð 	ð 	ˆAØ˜1‘fˆD�‰GˆGÝ  Ñ&Ô& qÔ)ˆØ×Ò�˜T™œ AÑ&Ô&Ð&Ý�q‘”ð 	Eð 	EˆAØ×Ò�S  a¤™\œ\¨1°Q¸!²V°V°°ÀÑ+CÑDÔDÐDÐDØˆŒÕ*¨4Ñ0Ô0Ð1Ð1Ð1Ð1rN   c                 ó”   — dddt          dd¦  «        fD ]2}d„ t          |¦  «        D ¦   «         } | j        t          |¦  «        Ž  Œ3d S )Nr–   r6   rÏ   rk   rˆ   c                 ó,   — i | ]}|t          ¦   «         “ŒS rg   r7  r8  s     rL   r9  z:TestsCanonicalHuffman.test_random_freq.<locals>.<dictcomp>	  s   € Ð2Ð2Ð2 A�A•v‘x”xÐ2Ð2Ð2rN   )r	   r?   r^  r2   )rH   rI   r  s      rL   r:  z&TestsCanonicalHuffman.test_random_freq	  sb   € Ø�A�q�' " cÑ*Ô*Ð*ð 	6ð 	6ˆAØ2Ð2­¨q©¬Ð2Ñ2Ô2ˆDØˆDŒOÕ.¨tÑ4Ô4Ð5Ð5Ð5ð	6ð 	6rN   N)rd   re   rf   rm   rD  r  rH  rO  rT  rZ  r`  ri  rk  rm  rr  ru  rx  r|  r^  r  r*  r-  r:  rg   rN   rL   r<  r<  !  sS  € € € € € ð	Oð 	Oð 	OðBð Bð BðBð Bð Bð @ð @ð @ð8 Eð  Eð  EðD	Dð 	Dð 	Dð1ð 1ð 1ð"1ð 1ð 1ð6ð 6ð 6ð"3ð 3ð 3ð
ð 
ð 
ð0ð 0ð 0ð*ð *ð *ð'ð 'ð 'ð
	(ð 	(ð 	(ð3ð 3ð 3ð 8ð 8ð 8ð*ð *ð *ð	2ð 	2ð 	2ð6ð 6ð 6ð 6ð 6rN   r<  Ú__main__)^Ú__doc__Ú
__future__r   rª   r¼  r  rØ  r¯   r¨   Úunittestr   Ústringr   r
   r   r   r   r	   Úcollectionsr   r   r   r   r   r   Úbitarray.test_bitarrayr   r   r   r   Úbitarray.utilr   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   Úbitarray._utilr4   r5   r½  Úior7   r8   ÚTestCaser:   ri   rv   r¸   rÊ   rú   r  r6  rM  r_  ro  rw  r‡  rŸ  rß  r"  rp  r®  râ  rÿ  r  r<  rd   Úmainrg   rN   rL   ú<module>r’     sˆ  ððð ð 'Ð &Ð &Ð &Ð &Ð &à 	€	€	€	Ø 
€
€
€
Ø €€€Ø €€€Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ Ð Ð Ð Ð Ð ð+ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +ð +à ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 	ð 1Ø0Ð0Ð0Ð0Ð0Ð0Ð0Ð0àÔ�AÔ˜!ÒÐØÐÐÐÐÐÐà&Ð&Ð&Ð&Ð&Ð&ð/7ð /7ð /7ð /7ð /7�XÔ&ñ /7ô /7ð /7ðf$9ð $9ð $9ð $9ð $9�8Ô$ñ $9ô $9ð $9ðPC"ð C"ð C"ð C"ð C"�(Ô#ñ C"ô C"ð C"ðN)$ð )$ð )$ð )$ð )$�hÔ'¨ñ )$ô )$ð )$ðZd4ð d4ð d4ð d4ð d4�(Ô# Tñ d4ô d4ð d4ðP>(ð >(ð >(ð >(ð >(�Ô" Dñ >(ô >(ð >(ðDS6ð S6ð S6ð S6ð S6�8Ô$ dñ S6ô S6ð S6ðnQ2ð Q2ð Q2ð Q2ð Q2˜Ô)¨4ñ Q2ô Q2ð Q2ðj/2ð /2ð /2ð /2ð /2�hÔ'¨ñ /2ô /2ð /2ðf-#ð -#ð -#ð -#ð -#�(Ô# Tñ -#ô -#ð -#ðb!*ð !*ð !*ð !*ð !*˜Ô*¨Dñ !*ô !*ð !*ðJ!#ð !#ð !#ð !#ð !#�(Ô# Tñ !#ô !#ð !#ðJ8#ð 8#ð 8#ð 8#ð 8#�XÔ&¨ñ 8#ô 8#ð 8#ðxb.ð b.ð b.ð b.ð b.�8Ô$ dñ b.ô b.ð b.ðLbFð bFð bFð bFð bF�Ô! 4ñ bFô bFð bFðL_?ð _?ð _?ð _?ð _?ˆxÔ  $ñ _?ô _?ð _?ðF	Nð Nð Nð Nð NˆxÔ  $ñ Nô Nð NðdAAð AAð AAð AAð AA˜(Ô+¨Tñ AAô AAð AAðJ]9ð ]9ð ]9ð ]9ð ]9�Ô" Dñ ]9ô ]9ð ]9ðB^ð ^ð ^ð ^ð ^˜Ô*¨Dñ ^ô ^ð ^ðD["ð ["ð ["ð ["ð ["�8Ô$ñ ["ô ["ð ["ð~}6ð }6ð }6ð }6ð }6˜HÔ-¨tñ }6ô }6ð }6ðB ˆzÒÐØ€H„M�O„O€O€O€Oð ÐrN   