
    iF!                         S r SSKrSSKrSSK7  SSKJr  SSKJr  SSKJ	r	   " S S\
5      r " S	 S
\R                  5      r " S S\R                  5      r0 4S jr\S:X  a  S r\R$                  " SS9  gg)z+Self-tests for (some of) Crypto.Util.number    N)*)list_test_cases)number)long_to_bytesc                       \ rS rSrSrSrg)MyError%   zDummy exception used for tests N)__name__
__module____qualname____firstlineno____doc____static_attributes__r
       [/var/www/html/trading/venv/lib/python3.13/site-packages/Crypto/SelfTest/Util/test_number.pyr   r   %   s    (r   r   c                   2    \ rS rSrS rS rS rS rS rSr	g)		MiscTests+   c                 p	   U R                  [        [        R                  SS5        U R                  [        [        R                  SS5        U R                  [        [        R                  SS5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " S	S5      5        U R                  S[        R                  " S
S5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " S	S5      5        U R                  S[        R                  " S
S5      5        U R                  S[        R                  " SS5      5        U R                  S[        R                  " SS5      5        g)zUtil.number.ceil_div1   r                        	   N)assertRaises	TypeErrorr   ceil_divZeroDivisionErrorassertEqualselfs    r   test_ceil_div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                 \   U R                  [        [        R                  S5        U R                  [        [        R                  S5        U R                  [        [        R                  S5        Sn[	        S5       HL  n[        R                  " U5      nU R                  USUS-
  -  :  S5        U R                  USU-  :  S5        MN     Sn[        R                  " U5      nU R                  US-  S5        U R                  USUS-
  -  :  S5        U R                  USU-  :  S5        g)	zUtil.number.getPrimeir   r   r   d      r   N)r"   
ValueErrorr   getPrimeranger&   assertNotEqual)r(   bitsixs       r   test_getPrimeMiscTests.test_getPrimeW   s    *foot<*fooq9*fooq9sA%AQ1q=115Q!t)_a0 
 OOD!AE1%qD1H}-q1a4i!,r   c                    U R                  [        [        R                  S5        U R                  [        [        R                  S5        Sn[        R                  " U5      nU R	                  US-  S5        U R                  USUS-
  -  S-
  :  S5        U R                  USU-  :  S5        Sn[        R                  " X5      nU R                  [        R                  " US-
  U5      S5        U R	                  US-  S5        U R                  USUS-
  -  S-
  :  S5        U R                  USU-  :  S5        Sn[        R                  " X5      nU R                  [        R                  " US-
  S-	  U5      S5        U R	                  US-  S5        U R                  USUS-
  -  S-
  :  S5        U R                  USU-  :  S5        g	)
zUtil.number.getStrongPrime   i  r-   r   r   r   i  i  N)r"   r.   r   getStrongPrimer1   r&   GCD)r(   r2   r4   es       r   test_getStrongPrime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                    U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        U R                  [        R                  " SS	-  S-
  5      S5        U R                  [        R                  " SS	-  S-
  * 5      S5        S
 H2  nU R                  [        R                  " [        U5      5      S5        M4     g)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_isPrimeMiscTests.test_isPrime   s	   +U3+U3*E2*D1*D1*E24	2D9!T'!)5u=LI
 V^^C	N;UCLr   c                    U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        U R                  [        R                  " S5      S5        U R                  [        [        R                  S	5        g )
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_sizeMiscTests.test_size   s    Q*Q*T*1-X.s3  &h  i  ko  	p*fkk26r   r
   N)
r   r   r   r   r)   r5   r<   rD   rJ   r   r
   r   r   r   r   +   s    (3T-$-,D&7r   r   c                   &    \ rS rSrS rS rS rSrg)	LongTests   c                 ~   U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S	5      S
5        U R                  [        S5      S5        g )Nr       r      r8       l       s       l   w*M	 s   "3DUfwl   LUs	   "3DUfwr&   r   r'   s    r   test1LongTests.test1   s    q)73q)73u-{;|46MN|46MN'9:<_`';<>efr   c                 4   U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S	5        U R                  [        S
S5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        g )Nr   r   rP   r   s     r   s     i  s   i   s      r8   rR   l      r   s       r    s         
   s
              s            rS   r'   s    r   test2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                 :    U R                  [        [        S5        g )Nr   )r"   r.   r   r'   s    r   	test_err1LongTests.test_err1   s    *mR8r   r
   N)r   r   r   r   rT   rY   r\   r   r
   r   r   rM   rM      s    g
k9r   rM   c                 R    / nU[        [        5      -  nU[        [        5      -  nU$ N)r   r   rM   )configtestss     r   	get_testsrb      s*    E	_Y''E	_Y''ELr   __main__c                  >    [         R                  " [        5       5      $ r_   )unittest	TestSuiterb   r
   r   r   <lambda>rg      s    H&&y{3r   suite)defaultTest)r   mathre   Crypto.Util.py3compatCrypto.SelfTest.st_commonr   Crypto.Utilr   Crypto.Util.numberr   	Exceptionr   TestCaser   rM   rb   r   rh   mainr
   r   r   <module>rr      sy   2 2   # 5  ,)i )m7!! m7`9!! 96   z3EMMg& r   