o
    ^¨ÊhÙ  ã                   @   s†   d Z dZddlZddlZejd dkrejd dkrddlT ddlT G dd„ dejƒZi fd	d
„Z	e
dkrAdd„ Zejdd� dS dS )z'Self-test suite for Crypto.Random.new()z$Id$é    Né   é   )Ú*c                   @   s   e Zd Zdd„ ZdS )Ú
SimpleTestc                 C   sz  ddl m} | ¡ }| d¡}| d¡}|  ||¡ | d¡}|  ||¡ |  ||¡ ddlm} | d¡}| d¡}|  ||¡ ||krJ|}|}n|}|}t	ddƒD ]J}	| 
|||	¡}| 
|||	¡}|  ||¡ |  ||  kot|k n  d¡ |  ||  ko„|k n  d¡ |  || |	 d¡ |  || |	 d¡ qSt	dƒD ]}
|  | 
dd	¡d¡ q¢|  t|j
||¡ |  t|j
|||	¡ |  t|j
|||	|	¡ |  t|j
||d
¡ |  t|j
d
||	¡ |  t|j
dd|	¡ |  t|j
||d¡ | ||¡}| ||¡}|  ||¡ |  ||  k�o|kn  d¡ |  ||  k�o$|kn  d¡ t	dƒD ]}
|  | dd¡d¡ �q-|  t|j||¡ |  t|j|||	¡ |  t|jd
|¡ |  t|jdd¡ tt	dƒƒ}| |¡}| |¡}|  ||¡ |  ||v d¡ |  ||v d¡ t	dƒD ]}
|  | d¡dv d¡ �qŠ|  | g d¢¡dv d¡ tjd du �rÁ|  | ttdƒƒ¡ttdƒƒv d¡ |  d| dg¡¡ |  t|jg ¡ |  t|jd¡ tt	dƒƒ}t|ƒ}t|ƒ}| |¡ | |¡ |  ||¡ |  t|ƒt|ƒ¡ |  t|ƒt|ƒ¡ t	t|ƒƒD ]+}
|  ||
 |v d¡ |  ||
 |v d¡ |  ||
 |v d¡ |  ||
 |v d¡ �qdg}| |¡ |  |dg¡ tjd dk�ruttdƒƒ}| |¡ |  td
ƒ|v d¡ |  t|jtdƒ¡ |  t|jd¡ |  t|jd
¡ |  t|jd¡ | |d¡}| |d¡}|  ||¡ t	dƒD ]}
|  ||
 |v d¡ |  ||
 |v d¡ �q£| dgd¡}|  |dg¡ | dd¡}|  |d dv d¡ | dd¡}|  |d dv d¡ | tt	dƒƒd¡}|  |d t	dƒv d¡ tjd dk�r3| tdƒd¡}|  |d tdƒv d¡ | ttdƒƒd¡}|  |d ttdƒƒv d¡ |  t|jd¡ dS )zCrypto.Random.new()r   )ÚRandomé   )Úrandomé€   r   é
   Tr   Ú1Ú2i'  )r   r   é   r   Ú123iô  Ú12)r   r   é   N)ÚCryptor   ÚnewÚreadÚassertNotEqualÚget_random_bytesÚCrypto.Randomr   ÚgetrandbitsÚrangeÚ	randrangeÚassertEqualÚassertRaisesÚ
ValueErrorÚ	TypeErrorÚrandintÚlistÚchoiceÚsysÚversion_infoÚ	bytearrayÚbÚ
IndexErrorÚshuffleÚlenÚsample)Úselfr   ÚrandobjÚxÚyÚzr   ÚstartÚstopÚstepÚiÚseq© r3   úT/var/www/html/env/lib/python3.10/site-packages/Crypto/SelfTest/Random/test_random.pyÚrunTest$   sÎ   




  ""

&



zSimpleTest.runTestN)Ú__name__Ú
__module__Ú__qualname__r5   r3   r3   r3   r4   r   #   s    r   c                 C   s   t ƒ gS ©N)r   )Úconfigr3   r3   r4   Ú	get_tests¤   s   r;   Ú__main__c                   C   s   t  tƒ ¡S r9   )ÚunittestÚ	TestSuiter;   r3   r3   r3   r4   Ú<lambda>¨   s    r?   Úsuite)ÚdefaultTest)Ú__doc__Ú__revision__r=   r!   r"   ÚCrypto.Util.py21compatÚCrypto.Util.py3compatÚTestCaser   r;   r6   r@   Úmainr3   r3   r3   r4   Ú<module>   s    þ