
    Qi5                     x    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 Zd Zg dZd	 Zd
 Zd ZdS )    )is_nilpotent_numberis_abelian_numberis_cyclic_number_holder_formulagroups_count)	factorint)prime)raises)	randprimec                     t          d          dk    sJ t          t          dd          dz            dk    sJ t          t          d            g d} t	          dd	          D ]}t          |          || v k    sJ d S )
N   F         Tc                       t          d          S N)r        /var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/sympy/combinatorics/tests/test_group_numbers.py<lambda>z*test_is_nilpotent_number.<locals>.<lambda>   s    2266 r   )1r                     	                                        !   #   %   )   +   -   /   1   3   5   ;   =   @   A   C   E   G   I   M   O   Q   S   U   W   Y   [   _   a   c   d   )r   r   r
   
ValueErrorrange)A056867ns     r   test_is_nilpotent_numberrM   	   s    r""e++++yB//344<<<<
:66777; ; ;G 1c]] 8 8"1%%!w,777778 8r   c                     t          d          dk    sJ t          t          dd          dz            dk    sJ t          t          dd                    dk    sJ t          d          d	k    sJ t          d
          d	k    sJ t          t          d            g d} t	          dd          D ]}t          |          || v k    sJ d S )Nr   Tr     r     順 <   F   c                       t          d          S r   )r   r   r   r   r   z(test_is_abelian_number.<locals>.<lambda>   s    044 r   )+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   r4   r5   r6   r8   r9   r:   r;   r<   r=   r>   r@   rA   rB   rC   rD   rE   rF   rG   rH   )r   r   r
   rI   rJ   )A051532rL   s     r   test_is_abelian_numberrV      s    Q4''''Yq$//233t;;;;YtV4455====R  E))))R  E))))
:44555# # #G 1c]] 6 6 ##W555556 6r   )%r   r   r   r   r   r   r    r!   r#   r$   r%   r(   r)   r+   r,   r-   r.   r/   r1   r3   r4   r5   r6   r8   r9   r:   r;   r<   r=   r>   r@   rA   rB   rC   rD   rE   rF   c                  v   t          d          dk    sJ t          t          dd          dz            dk    sJ t          t          dd                    dk    sJ t          d	          dk    sJ t          t          d
            t	          dd          D ]} t          |           | t
          v k    sJ d S )Nr!   Tr   rO   r   FrP   rQ   r   c                       t          d          S r   )r   r   r   r   r   z'test_is_cyclic_number.<locals>.<lambda>1   s    /33 r   rH   )r   r   r
   rI   rJ   A003277rL   s    r   test_is_cyclic_numberr[   ,   s    B4''''Ia..122e;;;;IdF3344<<<<A%''''
:334441c]] 5 5""qG|444445 5r   c                  &   t          ddh          dk    sJ t          ddh          dk    sJ t          D ]C} t          t          t          |                                                               dk    sJ Dt          h d          dk    sJ d S )Nr   r   r   r   r   >   r   r   r   r   r   )r   rY   setr   keysrZ   s    r   test_holder_formular_   7   s    Aq6""a''''Ar7##q(((( > >s9Q<<#4#4#6#67788A=====<<<((B......r   c                     g d} t          dt          |                     D ].}	 t          |          | |         k    sJ # t          $ r Y +w xY wg d}t          dt          |                    D ] }t          d|z            ||         k    sJ !g d}t          dt          |                    D ] }t          d|z            ||         k    sJ !g d}t          dt          |                    D ] }t          d|z            ||         k    sJ !g d	}t          dt          |                    D ] }t          d
|z            ||         k    sJ !g d}t          t          |                    D ]0}t          t	          |dz             dz            ||         k    sJ 1g d}	t          t          |	                    D ]0}t          t	          |dz             dz            |	|         k    sJ 1g d}
t          t          |
                    D ]0}t          t	          |dz             d
z            |
|         k    sJ 1d S )N)^r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      r   r   r   r   r   r   r   r!   r   r   r   r   r   r   r   r3   r   r   r   ra   r   r   r   ra   r      r   r   r   r   r   4   r   r   r   r   r   r!   r   r    r   r   r   r    r   r   r     r   r   r   r   r   r   r   2   r   r   r   r   r   rb   r   rc   r!   r   r   r!   r   r   r   r   r   
   r   r   r   r   )r   r   r   r   ra   r3   rd   	  i  i! l   yLZ. r   )
r   r   r   r   r!   r9     ^$  imM l   NC r   )r   r   r   r   r!   r=       r   )r   r   r   r   r!   r@   \   r   )r3   r9   r=   r@   rB   rF   e   k   o   }                                    )rd   rh   rj   rl   i  i  i  i  i<  i  i  i|  i  i  i"  i*  iP3  rb   )rg   ri   rk   rm   it i=l iT i# isci?i)rJ   lenr   rI   r	   )A000001rL   A000679eA090091A090130A090140A232105iA232106A232107s              r   test_groups_countr   B   s     G 1c'll##  	??gaj00000 	 	 	D	 LKKG1c'll## 0 0AqD!!WQZ/////BBBG1c'll## 0 0AqD!!WQZ/////...G1c'll## 0 0AqD!!WQZ////////G1c'll## 0 0AqD!!WQZ/////A A AG3w<<   9 9E!A#JJM**gaj88888A A AG3w<<   9 9E!A#JJM**gaj88888? ? ?G3w<<   9 9E!A#JJM**gaj888889 9s   A
AAN)!sympy.combinatorics.group_numbersr   r   r   r   r   sympy.ntheory.factor_r   sympy.ntheory.generater	   sympy.testing.pytestr
   sympyr   rM   rV   rY   r[   r_   r   r   r   r   <module>r      s  H H H H H H H H H H H H H H + + + + + + ( ( ( ( ( ( ' ' ' ' ' '      
8 
8 
86 6 6   5 5 5/ / /,9 ,9 ,9 ,9 ,9r   