U
    L?h5                  %   @   s   d dl 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lmZ dd Zdd	 Z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-d.g%Zd/d0 Zd1d2 Zd3d4 Zd5S )6    )is_nilpotent_numberis_abelian_numberis_cyclic_number_holder_formulagroups_count)	factorint)prime)raises)	randprimec               1   C   s   t ddkstt tddd dks*tt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)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8g1} tdd9D ]}t ||| kkstqd S ):N   F         Tc                   S   s   t dS N)r    r   r   ^/var/www/html/venv/lib/python3.8/site-packages/sympy/combinatorics/tests/test_group_numbers.py<lambda>       z*test_is_nilpotent_number.<locals>.<lambda>                  	                                        !   #   %   )   +   -   /   1   3   5   ;   =   @   A   C   E   G   I   M   O   Q   S   U   W   Y   [   _   a   c   d   )r   AssertionErrorr
   r	   
ValueErrorrange)ZA056867nr   r   r   test_is_nilpotent_number	   sT                                    rJ   c               +   C   s   t ddkstt tddd dks*tt tdddks@tt dd	ksPtt d
d	ks`tt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+d,d-d.d/d0d1d2d3d4g+} tdd5D ]}t ||| kkstqd S )6Nr   Tr     r     順 <   F   c                   S   s   t dS r   )r   r   r   r   r   r      r   z(test_is_abelian_number.<locals>.<lambda>r   r   r   r   r   r   r   r    r!   r"   r#   r%   r&   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r5   r6   r7   r8   r9   r:   r;   r=   r>   r?   r@   rA   rB   rC   rD   rE   )r   rF   r
   r	   rG   rH   )ZA051532rI   r   r   r   test_is_abelian_number   sN                              rP   r   r   r   r   r   r   r   r   r    r!   r"   r%   r&   r(   r)   r*   r+   r,   r.   r0   r1   r2   r3   r5   r6   r7   r8   r9   r:   r;   r=   r>   r?   r@   rA   rB   rC   c                  C   s   t ddkstt tddd dks*tt tdddks@tt d	dksPtttd
d  tddD ]} t | | tkkshtqhd S )Nr   Tr   rK   r   FrL   rM   r   c                   S   s   t dS r   )r   r   r   r   r   r   1   r   z'test_is_cyclic_number.<locals>.<lambda>rE   )r   rF   r
   r	   rG   rH   A003277rI   r   r   r   test_is_cyclic_number,   s    rS   c                  C   sj   t ddhdkstt ddhdks(ttD ] } t tt|  dks,tq,t ddddhdksftd S )Nr   r   r   r   r   r   r   )r   rF   rQ   setr   keysrR   r   r   r   test_holder_formula7   s
    rV   c               ^   C   s0  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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ddddddd	dd
dddddddddddddg^} t dt| D ]2}zt|| | kstW q tk
r   Y qX qdddddddddddg}t dt|D ] }td| || ks*tq*ddddddddddg
}t dt|D ] }td| || ksrtqrddddddddg}t dt|D ] }td| || kstqddddddddg}t dt|D ] }td | || kstqddddd!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1g}t t|D ](}tt|d d || ksVtqVddddd2d3d4d5d6d7d8d9d:d;d<d=d>g}	t t|	D ](}tt|d d	 |	| kstqddddd?d@dAdBdCdDdEg}
t t|
D ](}tt|d d  |
| kstqd S )FNr   r   r   r      r   r   r0      4   r   i  2   r   r   
   i	  i  i! l   yLZ. r6   i  i^$  imM l   NC r:   i  i  r=   i\  i r   r?   rC   e   k   o   }                                    i  i  i  i  i<  i  i  i|  i  i  i"  i*  iP3  it i=l iT i# isci?i)rH   lenr   rF   rG   r   )ZA000001rI   ZA000679eZA090091ZA090130ZA090140ZA232105iZA232106ZA232107r   r   r   test_groups_countB   s                                                                                     &       &    rn   N)Z!sympy.combinatorics.group_numbersr   r   r   r   r   Zsympy.ntheory.factor_r   Zsympy.ntheory.generater   Zsympy.testing.pytestr	   Zsympyr
   rJ   rP   rQ   rS   rV   rn   r   r   r   r   <module>   sH                         