U
    -e                     @   s   d dl mZmZ d dlmZmZmZmZmZm	Z	m
Z
mZ d dlmZ d dlmZ dd Zdd Zed	d
 Zdd Zdd Zdd ZdS )    )Sievesieve)mris_lucas_prp	is_squareis_strong_lucas_prpis_extra_strong_lucas_prpisprimeis_euler_pseudoprimeis_gaussian_prime)slow)Ic                   C   s<  t dddkstt dddks$tt dddks6tt dd	dksHtt d
ddksZtt dddksltt dddks~tt dddkstt dddkstt dddkstt dddkstt dddkstt dddkstt dddkstt dddkstt dddks$tt d d!dks8td S )"N	      TU     Fy                     7   o   s   r   1   u   U   T   W   X      '   M   i&     i"     i   i'     )r
   AssertionError r*   r*   c/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/ntheory/tests/test_primetest.pytest_euler_pseudoprimes	   s"    r,   c                   C   sd   t ddkstt ddks tt ddks0tt ddks@tt ddksPtt ddks`td S )	Nr   F  T}*  r         )r   r)   r*   r*   r*   r+   test_is_extra_strong_lucas_prp   s    r1   c               :   C   s  dd t ddD } t| dks$tdd | D ddd	d
ddddddddddddgksZtdd | D ddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.gkstd/d | D d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d	d
d?d@dAdBdddCdDdEdFdGdHdIdJdKdLdMdNdOd&dPdQdRdSdTdUdVdWdXdYdZd[g1ksttd\d] | D r0td^d | D d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddg9kstdd | D dddedhdmdpdrdtduddddgkstdd | D dddedhddddd|dddgkstd S )Nc                 S   s    g | ]}|d  rt |s|qS r   )r	   .0nr*   r*   r+   
<listcomp>&   s     ztest_prps.<locals>.<listcomp>r   順 inyc                 S   s   g | ]}t |d gr|qS r2   r   r3   r*   r*   r+   r6   *   s      i  i  i  iI  i   i=  ir  i/  i  i  i  i# i: iM i%Y ib c                 S   s   g | ]}t |d gr|qS )r   r8   r3   r*   r*   r+   r6   -   s      r   i  ic  i  i   i"  iY)  is0  i@  i!I  iK  i[  i{  i  i]  i  i  ia# i4 iQB iiW iY i} c                 S   s   g | ]}t |d gr|qS )E  r8   r3   r*   r*   r+   r6   1   s      r         r   A   Q   r9   r   iW  i  iu  i  ie  i  i  iM  i  iu  i3  iq2  i:  i>  i1N  iV  iZ  iI`  iaa  ia|  i+  ig  iͨ  i  iy  ie  i  iY  i  i  i  i i i+ iI2 iwO c                 s   s   | ]}t |d gV  qdS )l   j_| Nr8   r3   r*   r*   r+   	<genexpr>8   s     ztest_prps.<locals>.<genexpr>c                 S   s   g | ]}t |r|qS r*   )r   r3   r*   r*   r+   r6   9   s      iC  iy  i  i%  i  iS  i  io#  i#  r.   i,  i-  i_6  i9  i>  iS?  iG  iJ  icJ  iW  io[  i_  iob  ie  ie  ij  i  i  i  i  i#  i	  iu  iC  i  i  i  i  i  i  i  i  i  i i i  iE% i- i6 i7 i'D iI i/P i` iq iz i| c                 S   s   g | ]}t |r|qS r*   )r   r3   r*   r*   r+   r6   A   s      c                 S   s   g | ]}t |r|qS r*   )r   r3   r*   r*   r+   r6   D   s      r-   i  iCm  is  ix  i{  )rangesumr)   any)Zoddcompositesr*   r*   r+   	test_prps$   sr                 
                    
                                                                                                                 rB   c                  C   s  t  } | d t| dd}tdD ]}||kt|ks(tq(tdsNttdsZttdsfttdsrttds~ttd	sttd
sttdsttdstttdsttdsttdd d sttdd d sttdd d rttdrttdr$ttdr2ttdr@ttdrNttdr\ttdrjttdrxtttdrtttdrttd tdsttdrttd rtd S )!Nr7   r   i iͱ
l   {! l   \)l   yW-	l   GPFQw8 l   XFqb l   Ii|	3mV&> l   :_sh1S3b l	   #:gWj#0[ z
531137992816767098689588206552468627329593117727031923199444138200403559860852242739162502265229285668889329486246501015346579337652707239409519978766587351943831270835393219031728127l    Y   r   i_  iY  l   ;n>l   pl   He%Z	 l   y5D( l   --	l   q.;m l   7y_@I7 l   k$9H"YaR  
8038374574536394912570796143419421081388376882875581458374889175222974273765333652186502336163960045457915042023603208766569966760987284043965408232928738791850869166857328267761771029389697739470167082304286871099974399765441448453411558724506334092790222752962294149842306881685404326457534018329786111298960644845216191652872597534901a  
2887148238050771212671429597130393991977609459279722700926516024197432303799152733116328983144639225941977803110929349655578418949441740933805615113979999421542416933972905423711002751042080134966731755152859226962916775325475044445856101949404200039904432116776619949629539250452698719329070373564032273701278453899126120309244841494728976885406024976768122077071687938121709811322297802059565867i  i  is  g       @)	r   extendsetZ
primeranger?   r	   r)   intr   )sZpsr5   r*   r*   r+   test_isprimeJ   sB    

rH   c                   C   sd   dd t dD dddddgks$ttd	r0ttd
r<ttdrHttdrTttdr`td S )Nc                 S   s   g | ]}t |r|qS r*   )r   )r4   ir*   r*   r+   r6      s      z"test_is_square.<locals>.<listcomp>r:   r   r   r   r   r/   iK i <Y.l    @7Zkl   ,3;, i ^ )r?   r)   r   r*   r*   r*   r+   test_is_square   s    $rJ   c                   C   sH   t dt stt dstt ddt  s0tt ddt  rDtd S )N   r   r   )r   r   r)   r*   r*   r*   r+   test_is_gaussianprime   s    rL   N)Zsympy.ntheory.generater   r   Zsympy.ntheory.primetestr   r   r   r   r   r	   r
   r   Zsympy.testing.pytestr   Zsympy.core.numbersr   r,   r1   rB   rH   rJ   rL   r*   r*   r*   r+   <module>   s   (
%G
