o
    FZŽ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g d
¢Zdd„ Zdd„ Zdd„ ZdS )é    )Úis_nilpotent_numberÚis_abelian_numberÚis_cyclic_numberÚ_holder_formulaÚgroups_count)Ú	factorint)Úprime)Úraises)Ú	randprimec                  C   sh   t dƒdksJ ‚t tddƒd ƒdksJ ‚ttdd„ ƒ g d	¢} tdd
ƒD ]}t |ƒ|| v ks1J ‚q%d S )Né   Fé   é   é   Tc                   S   ó   t dƒS ©Néûÿÿÿ)r   © r   r   ú[/var/www/auris/lib/python3.10/site-packages/sympy/combinatorics/tests/test_group_numbers.pyÚ<lambda>   ó    z*test_is_nilpotent_number.<locals>.<lambda>)1r   é   é   é   é   é   é   é	   é   é   é   é   é   é   é   é   é   é   é   é    é!   é#   é%   é)   é+   é-   é/   é1   é3   é5   é;   é=   é@   éA   éC   éE   éG   éI   éM   éO   éQ   éS   éU   éW   éY   é[   é_   éa   éc   éd   )r   r
   r	   Ú
ValueErrorÚrange)ZA056867Únr   r   r   Útest_is_nilpotent_number	   s   ÿrJ   c                  C   sž   t dƒdksJ ‚t tddƒd ƒdksJ ‚t tddƒƒdks J ‚t dƒd	ks(J ‚t d
ƒd	ks0J ‚ttdd„ ƒ g d¢} tddƒD ]}t |ƒ|| v ksLJ ‚q@d S )Nr   Tr   éÐ  r   éè  é † é<   Fé   c                   S   r   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-   r.   r/   r0   r1   r2   r3   r4   r6   r7   r8   r9   r:   r;   r<   r>   r?   r@   rA   rB   rC   rD   rE   rF   )r   r
   r	   rG   rH   )ZA051532rI   r   r   r   Útest_is_abelian_number   s   ÿrP   )%r   r   r   r   r   r   r   r   r!   r"   r#   r&   r'   r)   r*   r+   r,   r-   r/   r1   r2   r3   r4   r6   r7   r8   r9   r:   r;   r<   r>   r?   r@   rA   rB   rC   rD   c                  C   s†   t dƒdksJ ‚t tddƒd ƒdksJ ‚t tddƒƒdks J ‚t d	ƒdks(J ‚ttd
d„ ƒ tddƒD ]} t | ƒ| tv ks@J ‚q4d S )Nr   Tr   rK   r   FrL   rM   r   c                   S   r   r   )r   r   r   r   r   r   1   r   z'test_is_cyclic_number.<locals>.<lambda>rF   )r   r
   r	   rG   rH   ÚA003277©rI   r   r   r   Útest_is_cyclic_number,   s   ÿrS   c                  C   sf   t ddhƒdks
J ‚t ddhƒdksJ ‚tD ]} t tt| ƒ ¡ ƒƒdks&J ‚qt h d£ƒdks1J ‚d S )Nr   r   r   r   r   >   r   r   r   r   r   )r   rQ   Úsetr   ÚkeysrR   r   r   r   Útest_holder_formula7   s
   rV   c               	   C   sÈ  g d¢} t dt| ƒƒD ]}zt|ƒ| | ksJ ‚W q ty"   Y qw g d¢}t dt|ƒƒD ]}td| ƒ|| ks<J ‚q.g d¢}t dt|ƒƒD ]}td| ƒ|| ksVJ ‚qHg d¢}t dt|ƒƒD ]}td| ƒ|| kspJ ‚qbg d	¢}t dt|ƒƒD ]}td
| ƒ|| ksŠJ ‚q|g d¢}t t|ƒƒD ]}tt|d ƒd ƒ|| ks§J ‚q•g d¢}	t t|	ƒƒD ]}tt|d ƒd ƒ|	| ksÄJ ‚q²g d¢}
t t|
ƒƒD ]}tt|d ƒd
 ƒ|
| ksáJ ‚qÏd 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   r1   r   r   r   rW   r   r   r   rW   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   rX   r   rY   r   r   r   r   r   r   r   r   r   é
   r   r   r   r   )r   r   r   r   rW   r1   rZ   é	  iÛ  i!  l   yLZ. r   )
r   r   r   r   r   r7   éø  é^$  imM l   ¥NÙC r   )r   r   r   r   r   r;   é¬  éù…  r   )r   r   r   r   r   r>   é\  éû¹ r   )r1   r7   r;   r>   r@   rD   ée   ék   éo   é}   éƒ   é‘   é•   é›   éŸ   é­   é·   éÁ   éË   éÏ   éÙ   )rZ   r^   r`   rb   i¨  iÄ  i˜  iØ  i<  iä  i¼  i|  i˜  ið  i”"  iœ*  iP3  rX   )r]   r_   ra   rc   it i=l i£T i…# isÉci‚?i³ÑÞ)rH   Úlenr   rG   r   )ZA000001rI   ZA000679ÚeZA090091ZA090130ZA090140ZA232105ÚiZA232106ZA232107r   r   r   Útest_groups_countB   s:   ÿ"""ÿrv   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   rv   r   r   r   r   Ú<module>   s    