+
    '(j                         R t ^ RIt^ RIHt ^ RI5 ^ RIHt ^ RIHtH	t	H
t
HtHtHtHt  ! R R]P                  4      t/ 3R lt]R	8X  d   R
 t]P(                  ! RR7       R# R# )zSelf-test for Math.NumbersN)list_test_cases)*)Integer)PROBABLY_PRIME	COMPOSITEmiller_rabin_test
lucas_testtest_probable_primegenerate_probable_primegenerate_probable_safe_primec                      a  ] tR t^4t o ^^^^^^^^^^^^,          ^,
          R3t^ ^^^^	^
^^^^^^^^R^^C,          ^,
          ,          R3tR tR tR tR t	R t
R tR	tV tR
# )TestPrimalitylE   q)8(WRv#%a9AMo-*7wg;02wQX@CkEf
<_fufqsQ$c;Q|n ?|TA)ynE'd.(6W-+O`'2_6$_ot`G<
8P l   I1t#c                
   V P                    F#  pV P                  \        V^4      \        4       K%  	  V P                   F#  pV P                  \        V^4      \
        4       K%  	  V P                  \        \        R^4       R# )   N)primesassertEqualr   r   
compositesr   assertRaises
ValueError)selfprime	composites   &  X/home/ubuntu/cf-venv/lib/python3.14/site-packages/Crypto/SelfTest/Math/test_Primality.pytest_miller_rabinTestPrimality.test_miller_rabin9   sc    [[E.ua8.I !I.y!<iH )*&7Q?    c                   V P                    F$  p\        V4      pV P                  V\        4       K&  	  V P                   F$  p\        V4      pV P                  V\
        4       K&  	  V P                  \        \        R4       R# )   Nr   )r   r   r   r   r   r   r   r   )r   r   resr   s   &   r   
test_lucasTestPrimality.test_lucas@   sh    [[EU#CS.1 ! IY'CS), ) 	*j"5r   c                @   R RR^R,          ^,
          3pV F"  pV P                  \        V4      \        4       K$  	  RpV F"  pV P                  \        V4      \        4       K$  	  ^ RIHp VR,           F$  p\        V4      pV P                  V\        4       K&  	  R# )l	    l   W3>Lk{T@l   q4}2zn1dY/`93yi	  )
sieve_base:Nd   NN)l   vK
+.QF:yUc,$tcq l   !3eYlmkE	r?-_Ve+l   t#gXvnG;.%yfu&1#93Y2:k )r   r	   r   r   Crypto.Util.numberr#   )r   r   p
not_primesnpr#   r   s   &      r   test_is_primeTestPrimality.test_is_primeI   s    9)Ls(Q,  A03^D 

 B04i@  	2D!!A%a(CS.1 "r   c                ^    \        R R7      pV P                  VP                  4       R 4       R# )i   
exact_bitsN)r
   r   size_in_bitsr   r&   s   & r   test_generate_prime_bit_size*TestPrimality.test_generate_prime_bit_size^   s#    #s3)3/r   c                |    R  p\        ^4       F)  p\        ^VR7      pV P                  V^
,          ^4       K+  	  R# )c                     V ^
,          ^8H  # )
    )numbers   &r   ending_with_oneATestPrimality.test_generate_prime_filter.<locals>.ending_with_onec   s    B;!##r   )r-   prime_filterN)ranger
   r   )r   r7   xqs   &   r   test_generate_prime_filter(TestPrimality.test_generate_prime_filterb   s:    	$ rA'3!02AQVQ' r   c                ^    \        ^R7      pV P                  VP                  4       ^4       R# )   r,   N)r   r   r.   r/   s   & r   test_generate_safe_prime&TestPrimality.test_generate_safe_primek   s#    (C8)3/r   r5   Ni )__name__
__module____qualname____firstlineno__r   r   r   r    r)   r0   r=   rA   __static_attributes____classdictcell__)__classdict__s   @r   r   r   4   s     Aq!RRRC  <q  rFQ1aRRRRRSUWRWXYRYGZ\ikJ@62*0(0 0r   r   c                 6    . pV\        \        4      ,          pV# N)r   r   )configtestss   & r   	get_testsrN   o   s    E	_]++ELr   __main__c                  >    \         P                  ! \        4       4      # rK   )unittest	TestSuiterN   r5   r   r   <lambda>rS   u   s    H&&y{3r   suite)defaultTest)__doc__rQ   Crypto.SelfTest.st_commonr   Crypto.Util.py3compatCrypto.Math.Numbersr   Crypto.Math.Primalityr   r   r   r   r	   r
   r   TestCaser   rN   rC   rT   mainr5   r   r   <module>r]      sc   D !  5 # '
 
 
90H%% 90v  
 z3EMMg& r   