U
    -eT                     @   sz   d dl mZ d dlmZ d dlmZmZ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 ejZdd Zd	d
 ZdS )    )symbols)	FiniteSet)
Polyhedrontetrahedroncube
octahedrondodecahedronicosahedron
cube_facesPermutation)PermutationGroup)raisesc            	         s  t tdd  tddddgddd	d
ggtddddgddd	d
ggtd
dddgd	dddggtdd	dgdd
dgdgdggtdd
dgdddgd	gdggtd	ddgddd
gdgdggtdddgd	ddgd
gdggtd	dgddgd
dgddggtd
dgddgddgdd	ggtddgddgdd	gd
dggtd	d
gddgddgddggtd	dgddgddgdd
ggtddgd
dgdd	gddggtdddd
d	dddgg} ttd}t}t|||   jtd kst	t
d
D ]}  j| d  qڈ j|kst	t
d
dD ]}  j| d  q j|ks<t	 d t t fdd  j|ksht	 jddd	dd
dddgkst	 jddddgdd	d
dggkst	    j|kst	dd }ttttttfdddD ]\}}}}||||| qd S )Nc                   S   s   t tdtdggdS )Nabr   )pgroup)r   listr    r   r   j/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/combinatorics/tests/test_polyhedron.py<lambda>   s   
z!test_polyhedron.<locals>.<lambda>r                        zA:H))r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   c                      s     tddgS )Nr   r   )rotater   r   r   r   r   r   0       c           
         s  t | jt | j t | j dks&t| j|ks4tt }| jD ]}|  }|j	}t
|D ]}|| |j	|krZ qqZtd|j t
|D ]N}|| |t|j	 |j	  fdd|jD }	| jt |	jkstqq@t ||ksttdd |D jstd S )Nr   zerror in permutationc                    s   g | ]} fd d|D qS )c                    s   g | ]} | qS r   r   ).0icr   r   
<listcomp>K   s     z=test_polyhedron.<locals>.check.<locals>.<listcomp>.<listcomp>r   )r   fr!   r   r   r#   K   s     z2test_polyhedron.<locals>.check.<locals>.<listcomp>c                 S   s   g | ]}t |qS r   r   )r   gr   r   r   r#   N   s     )lenfacesZverticesedgesAssertionErrorsizesetr   copycornersranger   print
array_formaddtupler   r   Zis_group)
hr*   rpttargetgotpPhitr    r$   r   r!   r   check7   s&    &



ztest_polyhedron.<locals>.check)r      r         )r   r   r   r   r   )r=      r>   <   r?   )r   
ValueErrorr   r2   r   r
   r   r(   r   r)   r.   r   r   r-   r0   Zcyclic_formresetzipr   squarer   r   r	   )	r   r-   r'   r    r:   r3   r*   r4   r5   r   r   r   test_polyhedron   sR    
 $rD   c               
   C   s   ddl m} m}m}m}m} ddl m} | \
}}}}	}
}}}}}t|ksNt| |ksZtt	|ksftt
|	ksrtt|
ks~tttt|ttt|kstttt|kstt|t|kstt|t|kstt|t|kstd S )Nr   )r   tetrahedron_facesoctahedron_facesdodecahedron_facesicosahedron_faces)_pgroup_calcs)sympy.combinatorics.polyhedronr   rE   rF   rG   rH   rI   r   r)   r   r   r	   sortedmapr
   )r   rE   rF   rG   rH   rI   Ztetrahedron2Zcube2Zoctahedron2Zdodecahedron2Zicosahedron2Ztetrahedron_faces2Zcube_faces2Zoctahedron_faces2Zdodecahedron_faces2Zicosahedron_faces2r   r   r   test_pgroupsX   s&        rM   N)Zsympy.core.symbolr   Zsympy.sets.setsr   rJ   r   r   r   rC   r   r   r	   r
   Z sympy.combinatorics.permutationsr   Zsympy.combinatorics.perm_groupsr   Zsympy.testing.pytestr   ZrmulrD   rM   r   r   r   r   <module>   s   $K