
    ¿igb!                         d Z ddlZddlZddlT ddlmZ ddlmZ ddlm	Z	  G d de
          Z G d	 d
ej                  Z G d dej                  Zi fdZedk    rd Z ej        d           dS dS )z/Self-tests for (some of) Cryptodome.Util.number    N)*)list_test_cases)number)long_to_bytesc                       e Zd ZdZdS )MyErrorzDummy exception used for testsN)__name__
__module____qualname____doc__     `/var/www/html/afkarena/venv/lib/python3.11/site-packages/Cryptodome/SelfTest/Util/test_number.pyr   r   %   s        ((((r   r   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )	MiscTestsc                 	   |                      t          t          j        dd           |                      t          t          j        dd           |                      t          t          j        dd           |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        d	d                     |                     dt          j        d
d                     |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        dd                     |                     dt          j        d	d                     |                     dt          j        d
d                     |                     dt          j        dd                     |                     dt          j        dd                     dS )zUtil.number.ceil_div1   r                        	   N)assertRaises	TypeErrorr   ceil_divZeroDivisionErrorassertEqualselfs    r   test_ceil_divzMiscTests.test_ceil_div-   s   )V_c1===+V_aCCC+V_b!DDD 	FOAq11222FOAq11222FOAq11222FOAq11222 	FOAq11222FOAq11222FOAq11222FOAq11222FOAq11222FOAq11222 	FOAq11222FOAq11222FOAq11222FOAq11222FOAq11222FOAq11222FOAq11222FOAq11222 	FOAq11222FOAq11222FOAq11222FOAq11222FOAq11222FOAq11222FOAq11222FOAq11222FOAq11222FOAq1122222r   c                    |                      t          t          j        d           |                      t          t          j        d           |                      t          t          j        d           d}t	          d          D ]S}t          j        |          }|                     |d|dz
  z  k    d           |                     |d|z  k     d           Td}t          j        |          }|                     |dz  d           |                     |d|dz
  z  k    d           |                     |d|z  k     d           dS )	zUtil.number.getPrimeir   r   r   d      r   N)r   
ValueErrorr   getPrimeranger"   assertNotEqual)r$   bitsixs       r   test_getPrimezMiscTests.test_getPrimeW   s2   *fot<<<*foq999*foq999s 	1 	1A%%AQ1q=11555Q!t)_a0000OD!!AE1%%%qD1H}-q111a4i!,,,,,r   c                    |                      t          t          j        d           |                      t          t          j        d           d}t          j        |          }|                     |dz  d           |                     |d|dz
  z  dz
  k    d           |                     |d|z  k     d           d}t          j        ||          }|                     t          j        |dz
  |          d           |                     |dz  d           |                     |d|dz
  z  dz
  k    d           |                     |d|z  k     d           d}t          j        ||          }|                     t          j        |dz
  dz	  |          d           |                     |dz  d           |                     |d|dz
  z  dz
  k    d           |                     |d|z  k     d           d	S )
zUtil.number.getStrongPrime   i  r(   r   r   r   i  i  N)r   r)   r   getStrongPrimer,   r"   GCD)r$   r-   r/   es       r   test_getStrongPrimezMiscTests.test_getStrongPrimei   s   *f&;SAAA*f&;SAAA!$''AE1%%%a46k1_,a000a4i!,,,!$**AaC++Q///AE1%%%a46k1_,a000a4i!,,,!$**QqS1Ha00!444AE1%%%a46k1_,a000a4i!,,,,,r   c                    |                      t          j        d          d           |                      t          j        d          d           |                      t          j        d          d           |                      t          j        d          d           |                      t          j        d          d           |                      t          j        d          d           |                      t          j        dd	z  dz
            d           |                      t          j        dd	z  dz
             d           d
D ]7}|                      t          j        t          |                    d           8dS )zUtil.number.isPrimeFr   r   Tr   r   i  )i i idl   u^ l   +%!al   Mnz]l   g4+ l   I>6l   S{AKWl   b\\QN l   zIlv3 l   _VB;.( N)r"   r   isPrimeint)r$   	composites     r   test_isPrimezMiscTests.test_isPrime   s_   ++U333++U333**E222**D111**D111**E2224	22D999!T'!)55u===L 	D 	DI
 V^C	NN;;UCCCC	D 	Dr   c                    |                      t          j        d          d           |                      t          j        d          d           |                      t          j        d          d           |                      t          j        d          d           |                      t          j        d          d           |                     t          t          j        d	           d S )
Nr   r      r   i@    lE   )8^n, n:zb|DELU"N79Y Sh"*f8<>ktk26"z BT6	V RNcc\]]rX"Sw~o 8I(jO32
 i   r   )r"   r   sizer   r)   r#   s    r   	test_sizezMiscTests.test_size   s    Q***Q***T**1---X..s333  &h  i  i  ko  	p  	p  	p*fk266666r   N)r	   r
   r   r%   r0   r6   r=   rB   r   r   r   r   r   +   sc        (3 (3 (3T- - -$- - -,D D D&7 7 7 7 7r   r   c                        e Zd Zd Zd Zd ZdS )	LongTestsc                    |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d          d           |                      t          d	          d
           |                      t          d          d           d S )Nr       r      r2       l       s       l   w*M	 s   "3DUfwl   LUs	   "3DUfwr"   r   r#   s    r   test1zLongTests.test1   s    q))7333q))7333u--{;;;|446MNNN|446MNNN'9::<_```';<<>efffffr   c                    |                      t          dd          d           |                      t          dd          d           |                      t          dd          d           |                      t          dd          d	           |                      t          d
d          d           |                      t          dd          d           |                      t          dd          d           |                      t          dd          d           |                      t          dd          d           |                      t          dd          d           d S )Nr   r   rF   r   s     r   s     i  s   i   s      r2   rH   l      r   s       r   s         
   s
              s            rI   r#   s    r   test2zLongTests.test2   sM   q!,,g666q!,,k:::q!,,o>>>ua00+>>>ua002EFFFua00+>>>|Q779TUUU|Q779\]]]|R88:efff|R88:ijjjjjr   c                 H    |                      t          t          d           d S )Nr   )r   r)   r   r#   s    r   	test_err1zLongTests.test_err1   s     *mR88888r   N)r	   r
   r   rJ   rN   rP   r   r   r   rD   rD      sG        g g g
k 
k 
k9 9 9 9 9r   rD   c                 f    g }|t          t                    z  }|t          t                    z  }|S N)r   r   rD   )configtestss     r   	get_testsrU      s0    E	_Y'''E	_Y'''ELr   __main__c                  B    t          j        t                                S rR   )unittest	TestSuiterU   r   r   r   <lambda>rZ      s    H&y{{33 r   suite)defaultTest)r   mathrX   Cryptodome.Util.py3compatCryptodome.SelfTest.st_commonr   Cryptodome.Utilr   Cryptodome.Util.numberr   	Exceptionr   TestCaser   rD   rU   r	   r[   mainr   r   r   <module>re      s?  2 6 5   ' ' ' ' 9 9 9 9 9 9 " " " " " " 0 0 0 0 0 0) ) ) ) )i ) ) )m7 m7 m7 m7 m7! m7 m7 m7`9 9 9 9 9! 9 9 96      z33EHMg&&&&&& r   