
    ,hF!                         d Z ddlZddlZddl 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       yy)z+Self-tests for (some of) Crypto.Util.number    N)*)list_test_cases)number)long_to_bytesc                       e Zd ZdZy)MyErrorzDummy exception used for testsN)__name__
__module____qualname____doc__     b/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/Crypto/SelfTest/Util/test_number.pyr   r   %   s    (r   r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)	MiscTestsc                 8	   | j                  t        t        j                  dd       | j                  t        t        j                  dd       | j                  t        t        j                  dd       | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  d	d             | j                  dt        j                  d
d             | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  dd             | j                  dt        j                  d	d             | j                  dt        j                  d
d             | j                  dt        j                  dd             | j                  dt        j                  dd             y)zUtil.number.ceil_div1   r                        	   N)assertRaises	TypeErrorr   ceil_divZeroDivisionErrorassertEqualselfs    r   test_ceil_divzMiscTests.test_ceil_div-   sH   )V__c1=+V__aC+V__b!D 	FOOAq12FOOAq12FOOAq12FOOAq12 	FOOAq12FOOAq12FOOAq12FOOAq12FOOAq12FOOAq12 	FOOAq12FOOAq12FOOAq12FOOAq12FOOAq12FOOAq12FOOAq12FOOAq12 	FOOAq12FOOAq12FOOAq12FOOAq12FOOAq12FOOAq12FOOAq12FOOAq12FOOAq12FOOAq12r   c                 T   | j                  t        t        j                  d       | j                  t        t        j                  d       | j                  t        t        j                  d       d}t	        d      D ]J  }t        j                  |      }| j                  |d|dz
  z  k\  d       | j                  |d|z  k  d       L d}t        j                  |      }| j                  |dz  d       | j                  |d|dz
  z  k\  d       | j                  |d|z  k  d       y)	zUtil.number.getPrimeir   r   r   d      r   N)r   
ValueErrorr   getPrimeranger"   assertNotEqual)r$   bitsixs       r   test_getPrimezMiscTests.test_getPrimeW   s    *foot<*fooq9*fooq9s 	1A%AQ1q=115Q!t)_a0	1
 OOD!AE1%qD1H}-q1a4i!,r   c                    | j                  t        t        j                  d       | j                  t        t        j                  d       d}t        j                  |      }| j	                  |dz  d       | j                  |d|dz
  z  dz
  kD  d       | j                  |d|z  k  d       d}t        j                  ||      }| j                  t        j                  |dz
  |      d       | j	                  |dz  d       | j                  |d|dz
  z  dz
  kD  d       | j                  |d|z  k  d       d}t        j                  ||      }| j                  t        j                  |dz
  dz	  |      d       | j	                  |dz  d       | j                  |d|dz
  z  dz
  kD  d       | j                  |d|z  k  d       y	)
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*f&;&;SA!!$'AE1%a46k1_,a0a4i!,!!$*AaC+Q/AE1%a46k1_,a0a4i!,!!$*QqS1Ha0!4AE1%a46k1_,a0a4i!,r   c                    | j                  t        j                  d      d       | j                  t        j                  d      d       | j                  t        j                  d      d       | j                  t        j                  d      d       | j                  t        j                  d      d       | j                  t        j                  d      d       | j                  t        j                  dd	z  dz
        d       | j                  t        j                  dd	z  dz
         d       d
D ]0  }| j                  t        j                  t        |            d       2 y)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+U3*E2*D1*D1*E24	2D9!T'!)5u=L 	DI
 V^^C	N;UC	Dr   c                    | j                  t        j                  d      d       | j                  t        j                  d      d       | j                  t        j                  d      d       | j                  t        j                  d      d       | j                  t        j                  d      d       | j                  t        t        j                  d	       y )
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  &h  i  ko  	p*fkk26r   N)r	   r
   r   r%   r0   r6   r=   rB   r   r   r   r   r   +   s    (3T-$-,D&7r   r   c                       e Zd Zd Zd Zd Zy)	LongTestsc                 ~   | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d	      d
       | j                  t        d      d       y )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q)73u-{;|46MN|46MN'9:<_`';<>efr   c                 4   | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d	       | j                  t        d
d      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       y )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   s    q!,g6q!,k:q!,o>ua0+>ua02EFua0+>|Q79TU|Q79\]|R8:ef|R8:ijr   c                 :    | j                  t        t        d       y )Nr   )r   r)   r   r#   s    r   	test_err1zLongTests.test_err1   s    *mR8r   N)r	   r
   r   rJ   rN   rP   r   r   r   rD   rD      s    g
k9r   rD   c                 R    g }|t        t              z  }|t        t              z  }|S N)r   r   rD   )configtestss     r   	get_testsrU      s*    E	_Y''E	_Y''ELr   __main__c                  <    t        j                  t                     S rR   )unittest	TestSuiterU   r   r   r   <lambda>rZ      s    H&&y{3 r   suite)defaultTest)r   mathrX   Crypto.Util.py3compatCrypto.SelfTest.st_commonr   Crypto.Utilr   Crypto.Util.numberr   	Exceptionr   TestCaser   rD   rU   r	   r[   mainr   r   r   <module>re      s{   2 2   # 5  ,)i )m7!! m7`9!! 96   z3EHMMg& r   