a
    {d                     @   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J t ddks J t ddks0J t ddks@J t ddksPJ t d	d
ks`J t ddkspJ t ddksJ t ddksJ t ddksJ t ddksJ t ddksJ t ddksJ ttdd  td t ddksJ 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*   j/var/www/html/stable-diffusion-webui/venv/lib/python3.9/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   r   
ValueErrorr   extendr*   r*   r*   r+   
test_prime   s"    
r1   c                  C   s  t ddksJ t ddks J t ddks0J t tdddksFJ t ddksVJ t ddksfJ t d	dksvJ t d
dksJ t ddksJ t ddksJ t ddksJ t ddksJ t ddksJ t ddksJ t ddksJ t ddksJ t ddksJ td t ddks6J td } t | | ddksXJ td!d"d#}t ||ddks~J t tjtju sJ t tjdksJ t	t | | d$d%ksJ 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   r0   r   subsr   InfinityNegativeInfinityr
   r   r/   )r9   r:   r*   r*   r+   test_primepi!   s<    
rD   c                  C   s  ddl m}  |   tddks$J tddks4J tddksDJ td	d
ksTJ tddksdJ tddkstJ tddksJ tddksJ tddksJ tddksJ tddksJ tddksJ | d tddksJ tddksJ 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   r0   r   r/   rE   r*   r*   r+   test_compositeG   s$    
rO   c                   C   s   t ddksJ t ddks J t ddks0J t ddks@J t ddksPJ t dd	ks`J t d
dkspJ t ddksJ t ddksJ t ddksJ t ddksJ t ddksJ t ddksJ t ddksJ td t ddksJ d S )Nr   r   r   r   r   r!   (   r"      r#   i  r$   i	
  r%   i  r&   i  r'   iV  r6   iPr7   i؇Gr8   l   >e i	  i  )r   r   r0   r*   r*   r*   r+   test_compositepi\   s     
rR   c                  C   s|  ddl m}  |   tddks$J tddks4J tddksDJ tdd	ksTJ tddksdJ tddkstJ td	d
ksJ tddksJ tddksJ | d | jd dksJ | jd dk sJ d| v sJ tddksJ tdd dd d ksJ tddksJ tdd dd d ks<J t| ddg ksVJ t| ddddgkstJ | jdd t| dd	g dksJ t| d	g dksJ t| dg dksJ t| dg ksJ t| dg d ks
J t| d!g d"ks&J t| 	dd#g d$ksDJ | jdd% t| 	dd	g d&ksnJ t| 	d'd(d)d* t
d'd(D ksJ t| 	ddg ksJ t| 	dddgksJ t| dd#g d+ksJ | jdd, t| dd	g d-ksJ t| d.d/d0d* t
d.d/D ks@J t| ddg ksZJ t| dddgksvJ ttddg ksJ ttddg d1ksJ ttddg dksJ ttd.d/g d2ksJ t }t
d3d4d5D ]N}t
dd6d7D ]:}t|||| }tt||| }||ksJ qqt }|d dks\J tdddkspJ ttd8d9  ttd:d9  ttd;d9  tddgd<u sJ d=d9 }tt|d>d?ksJ tt|d>dd@g dAksJ tt|d>ddBdCksJ tt|d>dddDg dEks.J | dF tdGdHksJJ tdIdJks\J ttdKd9  ttdLd9  d S )MNr   rE   r   r   r   r2         r         rI   	   r.      r    Z   a   rH   rP   y   Y   r   Tr)   )r   r   r   r2   r      r   r   r   r2      )	r   r   r   r2   r   rU   rW   rV   rY   "   )r   r   r   r2   r   rU   rW   rV   rY   ra   r       )
rF   r   rG   rF   rG   rF   rH   rF   rT   rG   r   )
r   r   rF   r   rG   rF   rG   rF   rH   rF   i    c                 S   s   g | ]}t |qS r*   rd   .0xr*   r*   r+   
<listcomp>   r-   z!test_generate.<locals>.<listcomp>)
r.   r   r.   r   r   r   r.   r   r.   r   r   )
r.   r   r.   r   r.   r   r   r   r.   r   i  iL  c                 S   s   g | ]}t |qS r*   rj   rf   r*   r*   r+   ri      r-   )r   r   r   )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-   rF   )rG   r   )values)rW   #   r   r         ,   2   r   r   rq   rr   )nmax)r   N)ru   ro   )rW   rp   r   r   rq   r$   i  i  ir  io  c                   S   s   t dS r@   r   r*   r*   r*   r+   r,      r-   c                   S   s   t dS )NrS   rv   r*   r*   r*   r+   r,      r-   )rM   r   rN   r   r   Zextend_to_noZ_listlistr   ZtotientrangerangeZmobiusranger	   r   r/   r   nextr   r0   )r   srn   jABfuncr*   r*   r+   test_generateo   s    
**


r   c                  C   s   t ddd u sJ t ddd u s$J t dddks6J t dddksHJ t dddksZJ 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|sJ qqd S )NrH   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 )NrI      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/   r   )abpr*   r*   r+   test_randprime   s    r   c                   C   s`   t ddksJ t ddddks$J t ddks4J t ddddksHJ t ddddks\J d S )Nr   r   r   )ZnthrG   rF   rl   r*   r*   r*   r+   test_primorial   s
    r   c                   C   sF   dt v sJ dt vsJ dt vs$J dd t vs4J ttdd  d S )Nr   g @r   re   c                   S   s
   t dS r@   )r   searchr*   r*   r*   r+   r,      r-   ztest_search.<locals>.<lambda>)r   r   r/   r*   r*   r*   r+   test_search   s
    r   c                   C   s   t d dksJ tt dd dd tddD ks8J tt ddd dd tdddD ksdJ tt dd g d	ksJ ttd
d  ttdd  ttdd  d S )Nr   r   rH   c                 S   s   g | ]}t | qS r*   rE   rf   r*   r*   r+   ri      r-   z$test_sieve_slice.<locals>.<listcomp>r   c                 S   s   g | ]}t | qS r*   rE   rf   r*   r*   r+   ri      r-   r   r_   c                   S   s   t d d S )Nr   rE   r*   r*   r*   r+   r,      r-   z"test_sieve_slice.<locals>.<lambda>c                   S   s   t d S r(   rE   r*   r*   r*   r+   r,      r-   c                   S   s   t dd S )Nr   r   rE   r*   r*   r*   r+   r,      r-   )r   rw   rx   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<J d S )Nr2   r   r   )r   appendrw   )ro   valuer*   r*   r+   test_sieve_iter   s    r   c                   C   s$   dt tv sJ dt tv s J d S )Nr   r   )reprr   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   rM   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   r1   rD   rO   rR   r   r   r   r   r   r   r   r*   r*   r*   r+   <module>   s&   <&V		