
    9iN                         S r SSKrSSKrSSKJr   " S S\R
                  5      r0 4S jr\S:X  a  S r	\R                  " S	S
9  gg)z'Self-test suite for Crypto.Random.new()    N)bc                       \ rS rSrS rSrg)
SimpleTest   c           	         SSK Jn  UR                  5       nUR                  S5      nUR                  S5      nU R	                  X45        UR                  S5      nU R	                  X55        U R	                  XE5        SSKJn  UR                  S5      nUR                  S5      nU R	                  X45        X4:  a  UnUnOUnUn[        SS5       H  n	UR                  XxU	5      nUR                  XxU	5      nU R	                  X45        U R                  Xss=:*  =(       a    U:  Os  S5        U R                  Xts=:*  =(       a    U:  Os  S5        U R                  X7-
  U	-  S5        U R                  XG-
  U	-  S5        M     [        S5       H%  n
U R                  UR                  SS	5      S5        M'     U R                  [        UR                  Xw5        U R                  [        UR                  XW	5        U R                  [        UR                  XxX5        U R                  [        UR                  XxS
5        U R                  [        UR                  S
X5        U R                  [        UR                  SSU	5        U R                  [        UR                  XxS5        UR                  Xx5      nUR                  Xx5      nU R	                  X45        U R                  Xss=:*  =(       a    U:*  Os  S5        U R                  Xts=:*  =(       a    U:*  Os  S5        [        S5       H%  n
U R                  UR                  SS5      S5        M'     U R                  [        UR                  X5        U R                  [        UR                  XxU	5        U R                  [        UR                  S
U5        U R                  [        UR                  SS5        [        S5      nUR!                  U5      nUR!                  U5      nU R	                  X45        U R                  X;;   S5        U R                  XK;   S5        [        S5       H'  n
U R                  UR!                  S5      S;   S5        M)     U R                  UR!                  / SQ5      S;   S5        ["        R$                  S   S:X  aH  U R                  UR!                  ['        [)        S5      5      5      ['        [)        S5      5      ;   S5        U R                  SUR!                  S/5      5        U R                  [*        UR                   / 5        U R                  [        UR                   S5        [        S5      n[-        U5      n[-        U5      nUR/                  U5        UR/                  U5        U R	                  X45        U R                  [1        U5      [1        U5      5        U R                  [1        U5      [1        U5      5        [        [1        U5      5       H_  n
U R                  X:   U;   S5        U R                  XJ   U;   S5        U R                  X   U;   S5        U R                  X   U;   S5        Ma     S/nUR/                  U5        U R                  US/5        ["        R$                  S   S:X  am  ['        [)        S5      5      nUR/                  U5        U R                  [)        S
5      U;   S5        U R                  [        UR.                  [)        S5      5        U R                  [        UR.                  S5        U R                  [        UR.                  S5        U R                  [        UR.                  S5        UR3                  US5      nUR3                  US5      nU R	                  X45        [        S5       H1  n
U R                  X:   U;   S5        U R                  XJ   U;   S5        M3     UR3                  S/S5      nU R                  US/5        UR3                  SS5      nU R                  US   S;   S5        UR3                  SS5      nU R                  US   S;   S5        UR3                  [        S5      S5      nU R                  US   [        S5      ;   S5        ["        R$                  S   S:X  a  UR3                  [)        S5      S5      nU R                  US   [)        S5      ;   S5        UR3                  ['        [)        S5      5      S5      nU R                  US   ['        [)        S5      5      ;   S5        U R                  [        UR2                  S5        g)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seqs               b/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/Crypto/SelfTest/Random/test_random.pyrunTestSimpleTest.runTest    s    	"**,LLLLA!##B'A!A! 	)t$t$A!3EDED!BKD  D1A  D1A%U..$.5U..$.5ai4/3ai4/3   rAV--a2A6 *f&6&6E*f&6&6TJ)V%5%5uDO)V%5%5uCH)V%5%5sDG)V%5%5q#tD*f&6&6QGNN5&NN5&A!++t+T2++t+T2rAV^^Aa0!4 *fnndB)V^^U$G)V^^S$?)V^^Q<ElMM#MM#A!4(4(rAV]]73w>E w/7:DAA!#V]]9QuX+>?9QuXCVVX\]FMM1#./*fmmR8)V]]A6 CjIIqqA!S3q6*S3q6*s3xAADCK.ADCK.CFaK.CFaK.	 !
 CqQC A!#!D'"ANN1QsVq[$/i4A)V^^Q7)V^^T:)V^^U; MM#r"MM#r"A!rAADCK.ADCK.  MM1#q!QC MM'1%1$/MM%#1-MM%(A&1q)40A!#MM!E(A.  15!148MM)AeH"5q9  11U8)<!<dC)V]]A6     N)__name__
__module____qualname____firstlineno__r8   __static_attributes__r;   r:   r7   r   r      s    ~7r:   r   c                     [        5       /$ N)r   )configs    r7   	get_testsrD      s    L>r:   __main__c                  >    [         R                  " [        5       5      $ rB   )unittest	TestSuiterD   r;   r:   r7   <lambda>rI      s    H&&y{3r:   suite)defaultTest)__doc__r%   rG   Crypto.Util.py3compatr   TestCaser   rD   r<   rJ   mainr;   r:   r7   <module>rP      sR   2 . 
  #7"" 7B   z3EMMg& r:   