o
    jg&                     @   s   d dl m Z mZ d dlmZmZ 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mZmZ d dlmZ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d Z$d S )!    )bisectbisect_left)mobiustotient)sieveSieve)
isprime	randprime	nextprime	prevprime
primerangeprimepiprime	primorial	compositecompositepi)cycle_length_primepi)mr)raisesc                   C   s
  t ddksJ t ddksJ t ddksJ t ddks J t ddks(J t d	d
ks0J t ddks8J t ddks@J t ddksHJ t ddksPJ t ddksXJ t ddks`J t ddkshJ ttdd  td t ddks|J ttdd  d S )N                  9     (  i  /  i    i9k     iٗ  #  iqp a  imb i iͱ
iiszyc                   S      t dS Nr   r    r'   r'   Y/var/www/html/zoom/venv/lib/python3.10/site-packages/sympy/ntheory/tests/test_generate.py<lambda>       ztest_prime.<locals>.<lambda>i  i
  c                   S   r$   Nr&   r'   r'   r'   r(   r)      r*   )r   r   
ValueErrorr   extendr'   r'   r'   r(   
test_prime   s"   
r/   c                   C   s  t ddksJ t ddksJ t ddksJ t ddks J t ddks(J t dd	ks0J t d
dks8J t ddks@J t ddksHJ t ddksPJ t ddksXJ t ddks`J t ddkshJ t ddkspJ t ddksxJ td t ddksJ d S )Nr,   r   r   r   r   r   r   r      r   >   r   f   r    i  r!   i4  r"   ih  r#   i
   iW ein    j i  i/  )r   r   r.   r'   r'   r'   r(   test__primepi    s"   
r7   c                  C   s  ddl m}  |   tddksJ tddksJ tddks"J td	d
ks*J tddks2J tddks:J tddksBJ tddksJJ tddksRJ tddksZJ tddksbJ tddksjJ | d tddkswJ tddksJ 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   r$   r%   )r   r'   r'   r'   r(   r)   F   r*   z test_composite.<locals>.<lambda>)sympy.ntheory.generater   _resetr   r.   r   r-   r8   r'   r'   r(   test_composite4   s$   
rB   c                   C   s   t ddksJ t ddksJ t ddksJ t ddks J t ddks(J t dd	ks0J t d
dks8J t ddks@J t ddksHJ t ddksPJ t ddksXJ t ddks`J t ddkshJ t ddkspJ td t ddks}J d S )Nr   r   r   r   r   r   (   r      r   i  r    i	
  r!   i  r"   i  r#   iV  r3   iPr4   i؇Gr5   l   >e i	  i  )r   r   r.   r'   r'   r'   r(   test_compositepiI   s    
rE   c                  C   s  ddl m}  |   tddksJ tddksJ tddks"J tdd	ks*J tddks2J tddks:J td	d
ksBJ tddksJJ tddksRJ | d | jd dks`J | jd dk siJ d| v soJ tddkswJ tdd dd d ksJ g d}tt|d D ]4}tdt|| D ](}t|| ||||  ksJ d|k rt|| d |||| d  ksJ qqt	t
dd  t	t
dd  tddksJ tdd dd d ksJ t	t
dd  t	t
dd  dD ]}t|d }t|jd d |jd d d dD ]0}t|d |jd d d D ]}t|||}|t||t|| }	||	ks@J q#qt|jd |d d dD ]/}
t|d }||
 t|j|d t||
 ksnJ ||d  t|j|ksJ qQqt| ddg ksJ t| ddddgksJ | 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sJ t| d)g d*ksJ t| dd+g d,ksJ | jd!d- t| dd	g d.ksJ t| d/d0d1d2 td/d0D ks0J t| ddg ks=J t| dddgksKJ t| dd+g d3ksZJ | jd!d4 t| dd	g d5ksoJ t| d6d7d8d2 td6d7D ksJ t| ddg ksJ t| dddgksJ ttddg ksJ ttddg d9ksJ ttddg d%ksJ ttd6d7g d:ksJ t }td;d<d=D ]'}tdd>d?D ]}t|||| }tt||| }	||	ksJ qqt }| jd!d" | d	 td@D ]"}t|d@D ]}t|||}tt||}	||	ks7J qq| d0 dAD ]\}}tt||t|||ksXJ qB| jd!d" | dB t| jtt| jkstJ t }|d d'ksJ tdddksJ t	t
dCd  t	t
dDd  tddgdEu sJ dFd }tt|dGdHksJ tt|dGd!dIg dJksJ tt|dGddKdLksJ tt|dGdd!dMg dNksJ | dO tdPdQksJ tdRdSksJ t	t
dTd  t	t
dUd  d S )VNr   r8   r   r   r            r         r<   	   r,      r   Z   a   r;   rC   y   )>r   r   r   rG   r   rI   rK   rJ   rM      r   %   r=   +   /   5   ;   =   C   G   I   O   S   Y   rO   e   g   k   m   q                                                               rD            i  i  r   i  i  i  i  i%  r   c                   S   
   t ddS )Nr   r   r
   r'   r'   r'   r(   r)   }      
 ztest_generate.<locals>.<lambda>c                   S   rz   )Nr   r,   r{   r'   r'   r'   r(   r)   ~   r|   r]   c                   S   r$   r%   r   r'   r'   r'   r(   r)      r*   c                   S   r$   r+   r}   r'   r'   r'   r(   r)      r*   )r   r;   r   i@B )sieve_intervalTr&   )r   r   r   rG   r      r   r   r   rG   rQ   )	r   r   r   rG   r   rI   rK   rJ   rM   "   )r   r   r   rG   r   rI   rK   rJ   rM   rQ   r      )
r9   r   r:   r9   r:   r9   r;   r9   rH   r:   r   )
r   r   r9   r   r:   r9   r:   r9   r;   r9   i    c                 S      g | ]}t |qS r'   r   .0xr'   r'   r(   
<listcomp>       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   r   r'   r   r   r'   r'   r(   r      r   )r   r   r   )i  i%  i'  i-  i?  iC  iE  iI     i.	  ix  i  is     ))i  iO  )i&  iJ )r6   i1u  )i iQi )iM iU i c                   S   r$   r%   r   r'   r'   r'   r(   r)      r*   c                   S   r$   r%   r   r'   r'   r'   r(   r)      r*   Fc                 S   s   | d d d S )Nr   r   3   r'   )ir'   r'   r(   r)      s    r9   )r:   r   )values)r9   rK   #   r   r         ,   2   r   r   r   r   )nmax)r   N)r   r   )r9   rK   r   r   r   r    i  i  ir  io  c                   S   r$   Nr   r   r'   r'   r'   r(   r)      r*   c                   S   r$   )NrF   r   r'   r'   r'   r(   r)      r*   )r@   r   rA   r
   r   extend_to_no_listrangelenr   r-   r   list_primeranger   r   r.   r   totientrangemobiusrangesetr   nextr   )r   	primelistr   jr~   sheadtailABkabfuncr'   r'   r(   test_generate\   s   
&
( 

"**

(



r   c                  C   s   t ddd u s	J t ddd u sJ t dddksJ t dddks$J t dddks-J ttdd  ttd	d  ttd
d  ttdd  ttdd  dD ]#} dD ]}t | | | }| |  krk| | k rrn J t|stJ qVqRd S )Nr;   r   r   r   r   c                   S   rz   )Nir   r	   r'   r'   r'   r(   r)      r|   z test_randprime.<locals>.<lambda>c                   S   rz   )Nir   r   r'   r'   r'   r(   r)      r|   c                   S   rz   )Nr<      r   r'   r'   r'   r(   r)      r|   c                   S   rz   )Nr   r   r   r'   r'   r'   r(   r)      r|   c                   S   rz   )Nr   r   r   r'   r'   r'   r(   r)      r|   )d   i,  i  i )r	   r   r-   r   )r   r   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sJ t ddddks$J t ddddks.J d S )Nr   r   r   )nthr:   r9   r   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sJ ttdd  d S )Nr   g @r   r   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sJ tt ddd dd tdddD ks2J tt dd g d	ks@J ttd
d  ttdd  ttdd  d S )Nr   r   r;   c                 S      g | ]}t | qS r'   r8   r   r'   r'   r(   r     r   z$test_sieve_slice.<locals>.<listcomp>r   c                 S   r   r'   r8   r   r'   r'   r(   r     r   r   r   c                   S   s   t d d S )Nr   r8   r'   r'   r'   r(   r)         z"test_sieve_slice.<locals>.<lambda>c                   S   s   t d S r%   r8   r'   r'   r'   r(   r)     r*   c                   S   s   t dd S )Nr   r   r8   r'   r'   r'   r(   r)   	  r   )r   r   r   r   
IndexErrorr'   r'   r'   r(   test_sieve_slice  s   (,r   c                  C   s@   g } t D ]}|dkr n| | q| tt dd ksJ d S )NrG   r   r   )r   appendr   )r   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   c                  C   sH   ddl m}  |   tddksJ W d    d S 1 sw   Y  d S )Nr   warns_deprecated_sympy)sympy.testing.pytestr   r   r   r'   r'   r(   *test_deprecated_ntheory_symbolic_functions  s   "r   N)%r   r   %sympy.functions.combinatorial.numbersr   r   r@   r   r   sympy.ntheoryr   r	   r
   r   r   r   r   r   r   r   r   r   sympy.ntheory.primetestr   r   r   r/   r7   rB   rE   r   r   r   r   r   r   r   r   r'   r'   r'   r(   <module>   s(    0 		