U
    -e                     @   s  d dl mZmZmZmZ d dlmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZmZmZmZmZ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	lm Z  d
d Z!dd Z"dd Z#dd Z$dd Z%dd Z&dd Z'dd Z(dd Z)dd Z*dd Z+d S )!    )IRationalnanzoo)S)Symbol)sieveSieve)limit)isprimetotientmobius	randprime	nextprime	prevprime
primerangeprimepiprime	primorial	compositecompositepireduced_totient)cycle_length)mr)raisesc                   C   s
  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t ddksptt ddkstt ddkstt ddkstt ddkstt ddkstt ddkstttdd  td t ddkstttdd  d S )N                  9   i  (  i  /  i    i9k     iٗ  #  iqp a  imb i iͱ
iiszyc                   S   s   t dS Nr   r    r*   r*   b/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/ntheory/tests/test_generate.py<lambda>       ztest_prime.<locals>.<lambda>i  i
  c                   S   s   t dS )Nr)   r*   r*   r*   r+   r,      r-   )r   AssertionErrorr   
ValueErrorr   extendr*   r*   r*   r+   
test_prime   s"    
r2   c                  C   s  t ddkstt ddks tt ddks0tt tdddksFtt ddksVtt ddksftt d	dksvtt d
dkstt ddkstt ddkstt ddkstt ddkstt ddkstt ddkstt ddkstt ddkstt ddksttd t ddks6ttd } t | | ddksXttd!d"d#}t ||ddks~tt tjtjkstt tj	dkstt
t | | d$d%kstttd&d'  ttd(d'  ttd)d'  ttd*d'  d S )+Nr.   r   r   r      g      @r   r   r   r!      r"   >   r#   f   r$   i  r%   i4  r&   ih  r'   i
   iW ein    j ii  i/  nrT)reald      c                   S   s   t tS Nr   r   r*   r*   r*   r+   r,   A   r-   ztest_primepi.<locals>.<lambda>c                   S   s   t dt S Nr   r@   r*   r*   r*   r+   r,   B   r-   c                   S   s   t tS r?   )r   r   r*   r*   r*   r+   r,   C   r-   c                   S   s   t tS r?   )r   r   r*   r*   r*   r+   r,   D   r-   )r   r/   r   r   r1   r   subsr   InfinityNegativeInfinityr
   r   r0   )r:   r;   r*   r*   r+   test_primepi!   s<    
rE   c                  C   s  ddl m}  |   tddks$ttddks4ttddksDttd	d
ksTttddksdttddkstttddksttddksttddksttddksttddksttddkst| d tddksttddkstttdd   d S )!Nr   r   r      r      r   
   r      )   :   r!   P   r"   ir  r#   i  r$   i  r%   i  r&   i(  r'   im  i  i  i
  i  c                   S   s   t dS r(   )r   r*   r*   r*   r+   r,   Y   r-   z test_composite.<locals>.<lambda>)sympy.ntheory.generater   _resetr   r/   r1   r   r0   rF   r*   r*   r+   test_compositeG   s$    
rP   c                   C   s   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t d
dksptt ddkstt ddkstt ddkstt ddkstt ddkstt ddkstt ddksttd t ddkstd S )Nr   r   r   r   r   r!   (   r"      r#   i  r$   i	
  r%   i  r&   i  r'   iV  r7   iPr8   i؇Gr9   l   >e i	  i  )r   r/   r   r1   r*   r*   r*   r+   test_compositepi\   s     
rS   c                  C   s  ddl m}  |   tddks$ttddks4ttddksDttdd	ksTttddksdttddkstttd	d
ksttddksttddkst| d | jd dkst| jd dk std| ksttddksttdd dd d ksttddksttdd dd d ks<tt| 	ddg ksVtt| 	ddddgkstt| jdd t| 	dd	ddddd
gkstt| 	d	ddddd
gkstt| 	dddddgkstt| 	dg kstt| 	dddddd
d	dddg	ks(tt| 	dddddd
d	dddddgksVtt| 
ddd dd!d d!d dd dd!g
kst| jdd" t| 
dd	ddd dd!d d!d dd g
kstt| 
d#d$d%d& td#d$D kstt| 
ddg kstt| 
dddgkstt| ddddddddddddg
ksLt| jdd' t| dd	ddddddddddg
kstt| d(d)d*d& td(d)D kstt| ddg kstt| dddgksttt	ddg ksttt	dddddgksttt	ddddddgks<ttt	d(d)d+d,d-d.d/d0d1d2gksdtt }td3d4d5D ]N}tdd6d7D ]:}t|	||| }tt	||| }||kstqqvt }|d dksttdddkstttd8d9  ttd:d9  ttd;d9  tddgd<ks2td=d9 }tt|d d>ksRttt|d dd?dd@dddAdBdCdDdddAdBgksttt|d ddEdFksttt|d dddGdd@dddAgkst| dH tdIdJksttdKdLkstttdMd9  ttdNd9  d S )ONr   rF   r   r   r   r3         r         rJ   	   r.      r    Z   a   rI   rQ   y   Y   r   Tr)         "      rG   rH   r   i    c                 S   s   g | ]}t |qS r*   rd   .0xr*   r*   r+   
<listcomp>   s     z!test_generate.<locals>.<listcomp>r   i  iL  c                 S   s   g | ]}t |qS r*   rj   rf   r*   r*   r+   ri      s     i  i%  i'  i-  i?  iC  iE  iI     i.	  ix  i  is  c                   S   s   t dS r(   rd   r*   r*   r*   r+   r,      r-   ztest_generate.<locals>.<lambda>c                   S   s   t dS r(   )r   r*   r*   r*   r+   r,      r-   c                   S   s   t dS r(   )r   r*   r*   r*   r+   r,      r-   Fc                 S   s   | d d d S )Nr   r   3   r*   )ir*   r*   r+   r,      r-   )rH   r   )values#         ,   2   )nmax)r   N)rt   rn   r$   i  i  ir  io  c                   S   s   t dS rA   r   r*   r*   r*   r+   r,      r-   c                   S   s   t dS )NrT   ru   r*   r*   r*   r+   r,      r-   )rN   r   rO   r   r/   r   Zextend_to_noZ_listlistr   ZtotientrangerangeZmobiusranger	   r   r0   r   nextr   r1   )r   srm   jABfuncr*   r*   r+   test_generateo   s    
$" *...*..*      


r~   c                  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tdd  ttd	d  ttd
d  ttdd  ttdd  dD ]D} dD ]:}t | | | }| |  kr| | k rn nt|stqqd S )NrI   r   r   r   r   c                   S   s
   t ddS )Nir`   r   r*   r*   r*   r+   r,      r-   z test_randprime.<locals>.<lambda>c                   S   s
   t ddS )Nir   r   r*   r*   r*   r+   r,      r-   c                   S   s
   t ddS )NrJ      r   r*   r*   r*   r+   r,      r-   c                   S   s
   t ddS )Nr   r   r   r*   r*   r*   r+   r,      r-   c                   S   s
   t ddS )Nr   r   r   r*   r*   r*   r+   r,      r-   )r=   i,  i  i )r   r/   r   r0   r   )abpr*   r*   r+   test_randprime   s    r   c                   C   s`   t ddkstt ddddks$tt ddks4tt ddddksHtt ddddks\td S )Nr   r   r   )ZnthrH   rG   )r   r/   r*   r*   r*   r+   test_primorial   s
    r   c                   C   sF   dt kstdt kstdt ks$tdd t ks4tttdd  d S )Nr   g @r   re   c                   S   s
   t dS rA   )r   searchr*   r*   r*   r+   r,      r-   ztest_search.<locals>.<lambda>)r   r/   r   r0   r*   r*   r*   r+   test_search   s
    r   c                   C   s   t d dksttt dd dd tddD ks8ttt ddd dd tdddD ksdttt dd dd	dd
gkstttdd  ttdd  ttdd  d S )Nr   r   rI   c                 S   s   g | ]}t | qS r*   rF   rf   r*   r*   r+   ri      s     z$test_sieve_slice.<locals>.<listcomp>r   c                 S   s   g | ]}t | qS r*   rF   rf   r*   r*   r+   ri      s     r   r   r3   c                   S   s   t d d S )Nr   rF   r*   r*   r*   r+   r,      r-   z"test_sieve_slice.<locals>.<lambda>c                   S   s   t d S r(   rF   r*   r*   r*   r+   r,      r-   c                   S   s   t dd S )Nr   r   rF   r*   r*   r*   r+   r,      r-   )r   r/   rv   rw   r   
IndexErrorr*   r*   r*   r+   test_sieve_slice   s    (, r   c                  C   s@   g } t D ]}|dkr q$| | q| tt dd ks<td S )Nr3   r   r   )r   appendrv   r/   )rn   valuer*   r*   r+   test_sieve_iter   s    r   c                   C   s$   dt tkstdt tks td S )Nr   r   )reprr   r/   r*   r*   r*   r+   test_sieve_repr   s    r   N),Zsympy.core.numbersr   r   r   r   Zsympy.core.singletonr   Zsympy.core.symbolr   rN   r   r	   Zsympy.series.limitsr
   Zsympy.ntheoryr   r   r   r   r   r   r   r   r   r   r   r   r   r   Zsympy.ntheory.primetestr   Zsympy.testing.pytestr   r2   rE   rP   rS   r~   r   r   r   r   r   r   r*   r*   r*   r+   <module>   s&   <&V		