o
    5ÎhN  ã                   @   sb   d Z ddlZddlZddlmZ G dd„ dejƒZi fdd„Zedkr/d	d
„ Z	ej
dd dS dS )z'Self-test suite for Crypto.Random.new()é    N)Úbc                   @   s   e Zd Zdd„ ZdS )Ú
SimpleTestc                 C   sn  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	dƒ}| |¡}| |¡}|  ||¡ |  ||v d¡ |  ||v d¡ t	dƒD ]}
|  | d¡dv d¡ qˆ|  | g d¢¡dv d¡ tjd dkr¿|  | ttdƒƒ¡ttdƒƒv d¡ |  d| dg¡¡ |  t|jg ¡ |  t|jd¡ 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rqt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	dƒd¡}|  |d t	dƒv d¡ tjd dkr-| 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é€   é   é
   Té   Ú1Ú2i'  )r   r
   é   r   Ú123iô  Ú12Ú11)r   r
   é   N)ÚCryptor   ÚnewÚreadÚassertNotEqualÚget_random_bytesÚCrypto.Randomr   ÚgetrandbitsÚrangeÚ	randrangeÚassertEqualÚassertRaisesÚ
ValueErrorÚ	TypeErrorÚrandintÚchoiceÚsysÚversion_infoÚ	bytearrayr   Ú
IndexErrorÚlistÚshuffleÚlenÚsample)Úselfr   ÚrandobjÚxÚyÚzr   ÚstartÚstopÚstepÚiÚseq© r3   úv/var/www/html/construction_image-detection-poc/venv/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__r!   r=   ÚCrypto.Util.py3compatr   ÚTestCaser   r;   r6   r@   Úmainr3   r3   r3   r4   Ú<module>   s    þ