U
    ZÊ¹jŒ&  ã                   @   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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s€t‚t dƒdks�t‚t dƒdks t‚t dƒdks°t‚t dƒdksÀt‚t dƒdksÐt‚ttdd„ ƒ t d¡ t dƒdksøt‚ttdd„ ƒ d S )Né   é   é   é   é   é   é9   é  é(  i�  é/  iÓ  é¸  i9k  é   iÙ—  éˆ#  iqp é¿a  imb i€–˜ i¡Í±
iÿàõis�zyc                   S   s   t dƒS ©Nr   ©r   © r&   r&   ú`/var/www/html/bwave/python/venv/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 ©Néÿÿÿÿr%   r&   r&   r&   r'   r(      r)   )r   ÚAssertionErrorr   Ú
ValueErrorr   Úextendr&   r&   r&   r'   Ú
test_prime   s"    
r/   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s€t‚t dƒdks�t‚t dƒdks t‚t dƒdks°t‚t dƒdksÀt‚t dƒdksÐt‚t dƒdksàt‚t dƒdksðt‚t d¡ t dƒdk�st‚d S )Nr+   r   r   r   r   r   r   r   é   r   é>   r   éf   r    i®  r!   i4  r"   ih  r#   iË
  é áõi¯éW éeöiŒnÓ ì   Ûj iÜíéÐ  i/  )r   r,   r   r.   r&   r&   r&   r'   Útest__primepi    s"    
r7   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s„t‚tdƒdks”t‚tdƒdks¤t‚tdƒdks´t‚tdƒdksÄt‚tdƒdksÔt‚|  d¡ tdƒdksît‚tdƒdksþt‚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#   i¸m  i¥  iü  i
  i¶  c                   S   s   t dƒS r$   )r   r&   r&   r&   r'   r(   F   r)   z test_composite.<locals>.<lambda>)Úsympy.ntheory.generater   Ú_resetr   r,   r.   r   r-   r8   r&   r&   r'   Útest_composite4   s$    
rB   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s€t‚t dƒdks�t‚t dƒdks t‚t dƒdks°t‚t dƒdksÀt‚t dƒdksÐt‚t dƒdksàt‚t d¡ t dƒdksút‚d S )Nr   r   r   r   r   r   é(   r   éé   r   iÈ  r    i	
  r!   iË  r"   i  r#   ióV  r3   iP÷�r4   iØ‡Gr5   l   Ø>Že i	  i¸  )r   r,   r   r.   r&   r&   r&   r'   Útest_compositepiI   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s„t‚tdƒdks”t‚tdƒdks¤t‚|  d¡ | jd dksÀt‚| jd dk sÒt‚d| ksÞt‚tdƒdksît‚tdd ƒdd d k�st‚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%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIg>}tt	|ƒd ƒD ]r}tdt	|ƒ| ƒD ]X}t|| |ƒ|||  k�sÖt‚d|k �r²t|| dJ |ƒ||| dJ  k�s²t‚�q²�qœt
tdKdL„ ƒ t
tdMdL„ ƒ tdƒd$k�s>t‚tdd ƒdd d k�s\t‚t
tdNdL„ ƒ t
tdOdL„ ƒ dPD �]}t|dQ�}t|jd dJ |jd dJ d dƒD ]`}t|dJ |jd dJ d ƒD ]<}t| ||¡ƒ}|t||ƒt||ƒ… }	||	k�sÐt‚�qÐ�q°t|jd |d dJ dƒD ]^}
t|dQ�}| |
¡ t|jƒ|d t||
ƒ… k�sft‚| |d ¡ t|jƒ|k�s,t‚�q,�q|t|  ddJ¡ƒg k�sªt‚t|  dd¡ƒddgk�sÈt‚| jdRdS� t|  dd	¡ƒddddd
gk�søt‚t|  d	¡ƒddddd
gk�st‚t|  dT¡ƒddddgk�s:t‚t|  dU¡ƒg k�sRt‚t|  d¡ƒddddd
d	dddg	k�s|t‚t|  dV¡ƒddddd
d	dddddgk�sªt‚t|  ddW¡ƒdXddYdXdYdXddXddYg
k�sØt‚| jdRdZ� t|  dd	¡ƒdddXddYdXdYdXddXg
k�st‚t|  d[d\¡ƒd]d^„ td[d\ƒD ƒk�s<t‚t|  ddJ¡ƒg k�sVt‚t|  dJd¡ƒdJgk�srt‚t|  ddW¡ƒddJddddJddddJg
k�s t‚| jdRd_� t|  dd	¡ƒddddJddddJddg
k�sÚt‚t|  d`da¡ƒdbd^„ td`daƒD ƒk�st‚t|  ddJ¡ƒg k�st‚t|  dJd¡ƒdJgk�s:t‚ttddJƒƒg k�sRt‚ttddƒƒdddgk�spt‚ttddƒƒddddgk�s�t‚ttd`daƒƒdcdddedfdgdhdidjgk�s¸t‚tƒ }tdkdldmƒD ]N}tddndoƒD ]:}t| ||| ¡ƒ}tt||| ƒƒ}	||	k�sÚt‚�qÚ�qÊtƒ }| jdRdS� |  d	¡ tdpƒD ]D}t|dpƒD ]2}t| ||¡ƒ}tt||ƒƒ}	||	k�sLt‚�qL�q>|  d\¡ dqD ].\}}tt||ƒƒt| ||¡ƒk�s’t‚�q’| jdRdS� |  dr¡ t	| jƒt	t| jƒƒk�söt‚tƒ }|d dk�st‚tddƒdk�s"t‚t
tdsdL„ ƒ t
tdtdL„ ƒ tdJdgƒduk�sTt‚dvdL„ }tt|dXƒƒdwk�stt‚tt|dXdRdx�ƒdXddydddzd{d|d}dddzd{gk�sªt‚tt|dXdd~�ƒdk�sÆt‚tt|dXddRd€�ƒdXddyddgk�sît‚|  d�¡ td‚ƒdƒk�	s
t‚td„ƒd…k�	st‚t
td†dL„ ƒ t
td‡dL„ ƒ d S )ˆNr   r8   éüÿÿÿr   r   r   é   é   é   r   é   é   r<   é	   r+   é   r   éZ   éa   r;   rC   éy   é   é%   r=   é+   é/   é5   é;   é=   éC   éG   éI   éO   éS   éY   ée   ég   ék   ém   éq   é   éƒ   é‰   é‹   é•   é—   é�   é£   é§   é­   é³   éµ   é¿   éÁ   éÅ   éÇ   éÓ   éß   éã   éå   rD   éï   éñ   éû   i  i  r   i  i  i  i  i%  r   c                   S   s
   t ddƒS )Nr   r   ©r
   r&   r&   r&   r'   r(   }   r)   ztest_generate.<locals>.<lambda>c                   S   s
   t ddƒS )Nr   r+   rz   r&   r&   r&   r'   r(   ~   r)   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)   )r   r;   r   i@B )Úsieve_intervalTr%   é   éþÿÿÿé"   é   r9   r:   ©r   i„  éè  c                 S   s   g | ]}t |ƒ‘qS r&   r�   ©Ú.0Úxr&   r&   r'   Ú
<listcomp>Ÿ   s     z!test_generate.<locals>.<listcomp>©r   i  iL  c                 S   s   g | ]}t |ƒ‘qS r&   r‡   rƒ   r&   r&   r'   r†   ¦   s     i  i%  i'  i-  i?  iC  iE  iI  é   i.	  ix  iè  is  éÈ   ))i…  iO  )i&  iJ )r6   i1u  )i¥† iQi )iûM iÈU i † 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)   )r:   r   )Úvaluesé#   é   é   é,   é2   )Únmax)r   N)r’   rŒ   r    i˜  i™  ir  io  c                   S   s   t dƒS ©Nr   ©r   r&   r&   r&   r'   r(   Ý   r)   c                   S   s   t dƒS )NrF   r”   r&   r&   r&   r'   r(   Þ   r)   )r@   r   rA   r
   r,   r   Zextend_to_noZ_listÚrangeÚlenr   r-   r   ÚlistZ_primeranger   r   r.   r   ZtotientrangeZmobiusrangeÚsetr   Únextr   )r   Z	primelistr‹   Újr|   ÚsÚheadÚtailÚAÚBÚkÚaÚbÚfuncr&   r&   r'   Útest_generate\   sL   
                                             ú 
0

( 

"$" *...*..*      ÿ

(
ÿ
ÿ

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 rân nt|ƒs¬t‚q¬q¤d S )Nr;   r   r   éýÿÿÿr   r   c                   S   s
   t ddƒS )Niôÿÿÿr~   ©r	   r&   r&   r&   r'   r(   ç   r)   z test_randprime.<locals>.<lambda>c                   S   s
   t ddƒS )Niöÿÿÿr   r¦   r&   r&   r&   r'   r(   è   r)   c                   S   s
   t ddƒS )Nr<   é   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)   )éd   i,  iô  i�Ð )r	   r,   r   r-   r   )r¡   r¢   Ú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nthr:   r9   )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   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&   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s„t‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ d S )Nr   r   r;   c                 S   s   g | ]}t | ‘qS r&   r8   rƒ   r&   r&   r'   r†     s     z$test_sieve_slice.<locals>.<listcomp>r   c                 S   s   g | ]}t | ‘qS r&   r8   rƒ   r&   r&   r'   r†     s     r   r   rG   c                   S   s   t d d… S )Nr   r8   r&   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•   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 )NrG   r   r   )r   Úappendr—   r,   )rŒ   Ú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´   c               	   C   s2   ddl m}  | ƒ � tdƒdks$t‚W 5 Q R X d S )Nr   ©Úwarns_deprecated_sympy)Úsympy.testing.pytestr¶   r   r,   rµ   r&   r&   r'   Ú*test_deprecated_ntheory_symbolic_functions  s    r¸   N)%r   r   Z%sympy.functions.combinatorial.numbersr   r   r@   r   r   Zsympy.ntheoryr   r	   r
   r   r   r   r   r   r   r   r   r   Zsympy.ntheory.primetestr   r·   r   r/   r7   rB   rE   r¤   rª   r«   r­   r¯   r²   r´   r¸   r&   r&   r&   r'   Ú<module>   s&   0 		