
    Qit                        d dl mZ d dlZd dl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 d dlmZ ed             Zdd
Zd Zd Zd Zd ZdS )    )annotationsN)_randint)qs	qs_factor)SievePolynomial_generate_factor_base_generate_polynomial_gen_sieve_array_check_smoothness_trial_division_stage_find_factor)slowc                     t          ddd          ddhk    sJ t          ddd          dd	hk    sJ t          d
dd          ddhk    sJ t          ddd          ddhk    sJ d S )N   M0)	 d   '  iˆ iц l   spO9V{  l   8,2l   7l   wIPR3:z2X  l   RFBp l   w+ l   gJ/
Q9u(iP  l   8(WCl   +-A]Lr        s/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/sympy/ntheory/tests/test_qs.py	test_qs_1r      s    k3&&66*:::::)477	() ) ) )-tU;;	/*+ + + ++T599	() ) ) ) ) )r   returnNonec            
        d} d}t          dd|           }|                    d          |                    d          dz  | z
  cxk    rdk    sn J |                    d          |                    d          dz  | z
  cxk    rdk    sn J t          d	|           \  }}|d
k    sJ fdt	          d          D             g dk    sJ fdt	          d          D             g dk    sJ fdt	          d          D             g dk    sJ t          | |||t          d                    }t          |          }|j        dk    sJ |j	        dk    sJ fdt	          d          D             g dk    sJ fdt	          d          D             g dk    sJ fdt	          d          D             ddgddgddgddgddggk    sJ t          |          }|j        dk    sJ |j	        dk    sJ t          |          }|dd         g dk    sJ t          d          d k    sJ t          d!          d"k    sJ i }	t          | ||||	d#$          \  }
|	d%d&d'd(d)k    sJ fd*t	          d          D             g d+k    sJ fd,t	          d          D             g d-k    sJ d         d         d.k    sJ |
t                      k    sJ d S )/Nr   2   
   P      l+O/)	    l0)	 r   R   c                *    g | ]}|         j         S r   )prime.0ifactor_bases     r   
<listcomp>ztest_qs_2.<locals>.<listcomp>         444QKN 444r      )r                         +   ;   =   C   G   I   O   c                *    g | ]}|         j         S r   )tmem_pr%   s     r   r)   ztest_qs_2.<locals>.<listcomp>"   s     555aKN!555r   )   r<   r,   r!   r,      r=      r<               rA   r+   c                *    g | ]}|         j         S r   )log_pr%   s     r   r)   ztest_qs_2.<locals>.<listcomp>$   s     333QKN 333r   )  ie  i  i	  iU  r   i3J i/j
 c                *    g | ]}|         j         S r   )soln1r%   s     r   r)   ztest_qs_2.<locals>.<listcomp>,   r*   r   )r   r   r,   r-      r      r0   	   r3         ?   r1   r0   c                *    g | ]}|         j         S r   )soln2r%   s     r   r)   ztest_qs_2.<locals>.<listcomp>.   r*   r   )r   r<   r<   r,      r?   r+   r=   r+   r<   8   7   r5   :   r?   c                *    g | ]}|         j         S r   )b_ainvr%   s     r   r)   ztest_qs_2.<locals>.<listcomp>0   s     444aKN!444r   r,   rJ   rH   i= )i   i#5  i+  i  rE   i%  )l         r!   i5 )i R  r<   i d  )
ERROR_TERM)i  l{Y*)	 l            )i  l#))	 i5  )i  lw()	 l   %              @)i&  l0')	 l             )i!  iU iy i  c                ,    g | ]}|         d          S )r   r   r&   r'   smooth_relations     r   r)   ztest_qs_2.<locals>.<listcomp>H   #    444aOAq!444r   )ii> is i i  c                ,    g | ]}|         d          S )r<   r   rX   s     r   r)   ztest_qs_2.<locals>.<listcomp>J   rZ   r   )lY.)	 l   -\#l   [x l   %2 i1Etl
                    )r   eval_veval_ur   ranger	   r   nextabr
   r   r   set)nM
sieve_polyidx_1000idx_5000itgg_1sieve_arraypartial_relationsproper_factorr(   rY   s              @@r   	test_qs_2rn      sS   A
A R++JR  J$5$5b$9$91$<q$@PPPPLPPPPPPQ:#4#4Q#7#7#:Q#>NNNN,NNNNNN&;D!&D&D#Hhr>>>>4444%))444AAAB B B B5555599555<<<= = = =3333%((333%%%& & & & 
	1k8Xx{{
< 
<BRA3'>>>>3&====4444%))444===> > > >4444%))444>>>? ? ? ?4444588444
Q!Q!Q!Q"b23 3 3 3 r((C5G5F????"1k22Kqs=======T;//3IIIIIV[11Z????46%:	1k;
4E& & &"O] :+I=	! !     5444588444 9- 9- 9- - - - -4444588444 9J 9J 9J J J J J1a $PPPPPCEE!!!!!!r   c                 Z    d} g d}t          t          | |d                    dk    sJ d S )Ni  ))iu% i}  rI   )iXTi> r   )i i 1  r   )   iO  r   )i$iK  r          )r_   r   )Nsmooth_relationss     r   	test_qs_3ru   P   sG    A   Q 0!4455;;;;;;r   c                 R    d} t          | dd          D ]}| |z  dk    sJ | |z  } d S )Nl   q`T<o r   r   r   r   )rs   factors     r   	test_qs_4rx   \   sH    +AQd##  6zQ	f r   c                     t          ddd          dddk    sJ d} t          | dd          }t          |          dk    sJ t          j        d |                                D                       | k    sJ d S )Nisr   r   r<   )i  i l   kn.='w!& c              3  &   K   | ]\  }}||z  V  d S )Nr   )r&   pes      r   	<genexpr>z!test_qs_factor.<locals>.<genexpr>h   s*      66daQT666666r   )r   lenmathproditems)rc   factorss     r   test_qs_factorr   c   s    ]D%001a4H4HHHHH&A4''Gw<<!966gmmoo66666!;;;;;;r   c                 0    d} t          | dd          J d S )Nl   ivT@ i  i N  r   )rs   s    r   test_issue_27616r   k   s%    Aau)))))r   )r   r   )
__future__r   r   sympy.core.randomr   sympy.ntheoryr   r   sympy.ntheory.qsr   r   r	   r
   r   r   r   sympy.testing.pytestr   r   rn   ru   rx   r   r   r   r   r   <module>r      s@   " " " " " "  & & & & & & ' ' ' ' ' ' ' 'M M M M M M M M M M M M M M M M M M & % % % % % ) ) )6" 6" 6" 6"r	< 	< 	<  < < <* * * * *r   