o
    FZh                     @   s   d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	 d dl
mZ d dlmZmZmZ d dlmZ dd	 Zd
d Zdd ZdS )    )Permutation)PermutationGroup)homomorphismgroup_isomorphismis_isomorphic)
free_group)FpGroup)AlternatingGroupDihedralGroupCyclicGroup)raisesc               	   C   s^  t d\} }}t| |d |d || d g}tdddd}tdddd}td}t||||g||g}|||d  |d  ||d  |d  ksNJ | sTJ ||tddddtddddkskJ t|td|j}| szJ |	 
 |
 ksJ t d\}}	t||	d	 g}ttddddtddg}
t||
|	gtddddg}| 
 dksJ ||tddddtddddksJ t|td|j|g}||d |	d ksJ t| ||g|	g}||d
 |d  |d  jsJ t| || |d  |d  g}t| || j|j}||d |d  |d  ||d  ks5J td	}tdddddddd}t|}
t|
||g|g}| sXJ | r_J ||d |d ksmJ t| |
| jd g|
j}||}|j| ksJ |j|ksJ ||| |ksJ td}t|||j|j}| sJ d S )Na, b      r         e            )r   r   r   r	   r   Zis_isomorphisminvert
generatorsZ
is_trivialZkernelorderr   imageZis_identityr
   Zis_injectiveZcomposedomainZcodomain)FabGcdATEr   PDpZT2ZD3 r*   [/var/www/auris/lib/python3.10/site-packages/sympy/combinatorics/tests/test_homomorphisms.pytest_homomorphism	   sP    0..$ 0
r,   c               	   C   s(  t d\} }}t d\}}}t| |d |d g}t| |d |d g}t||s+J t| |d |d || d g}t d\} }}t| |d |d || d g}t||\}}	|s]J |	|d |d  |d |d  ksqJ t d\} }}t| |d |d || d g}td}t||\}}	|sJ |	|| |d  |d  |d  tdddksJ |	|| | |d  |d  tdddksJ td}
tdd	dddd
dd}t|}t|
|rJ td
}td}t||rJ t| ||d
 g}td
}|	 |	 ks
J t||sJ d S )Nr   zc, dr   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!   Hcheckr%   r(   r)   r'   r$   Br*   r*   r+   test_isomorphismsA   s:     ( 40r0   c                     s<   t ddddt dd} t| g tt fdd d S )Nr   r   r   r   c                      s   t   ggS )N)r   r*   r!   r   r*   r+   <lambda>r   s    z)test_check_homomorphism.<locals>.<lambda>)r   r   r   
ValueError)r    r*   r1   r+   test_check_homomorphismn   s   
r4   N)Zsympy.combinatoricsr   Zsympy.combinatorics.perm_groupsr   Z!sympy.combinatorics.homomorphismsr   r   r   Zsympy.combinatorics.free_groupsr   Zsympy.combinatorics.fp_groupsr   Z sympy.combinatorics.named_groupsr	   r
   r   Zsympy.testing.pytestr   r,   r0   r4   r*   r*   r*   r+   <module>   s    8-