a
    khT                     @   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g dg dgtg dg dgtg dg dgtg d	g d
dgdggtg dg ddgdggtg dg ddgdggtg dg d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g dg} ttd}t}t|||   jtd ksJ t	dD ]} 
 j| d  q j|ksJ t	ddD ]} 
 j| d  q܈ j|ksJ  
d t t fdd  j|ks4J  jg dksHJ  jg dg dgksdJ     j|ks|J 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   W/var/www/auris/lib/python3.9/site-packages/sympy/combinatorics/tests/test_polyhedron.py<lambda>   s   
z!test_polyhedron.<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   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   r   r   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       )r   r   r   r   r   r   r   r   )r   r   r   r   c           
         s  t | jt | j t | j dks&J | j|ks4J 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sJ qq@t ||ksJ tdd |D jsJ 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   r   z=test_polyhedron.<locals>.check.<locals>.<listcomp>.<listcomp>r   )r   fr!   r   r   r#   K   r   z2test_polyhedron.<locals>.check.<locals>.<listcomp>c                 S   s   g | ]}t |qS r   r   )r   gr   r   r   r#   N   r   )lenfacesZverticesedges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   r1   r   r
   r   r(   r   r-   r   r   r,   r/   Zcyclic_formresetzipr   squarer   r   r	   )	r   r,   r'   r    r9   r2   r)   r3   r4   r   r   r   test_polyhedron   sR    

rC   c               
   C   s   ddl m} m}m}m}m} ddl m} | \
}}}}	}
}}}}}t|ksNJ | |ksZJ t|ksfJ t	|	ksrJ t
|
ks~J ttt|ttt|ksJ ttt|ksJ t|t|ksJ t|t|ksJ t|t|ksJ d S )Nr   )r   tetrahedron_facesoctahedron_facesdodecahedron_facesicosahedron_faces)_pgroup_calcs)sympy.combinatorics.polyhedronr   rD   rE   rF   rG   rH   r   r   r   r	   sortedmapr
   )r   rD   rE   rF   rG   rH   Ztetrahedron2Zcube2Zoctahedron2Zdodecahedron2Zicosahedron2Ztetrahedron_faces2Zcube_faces2Zoctahedron_faces2Zdodecahedron_faces2Zicosahedron_faces2r   r   r   test_pgroupsX   s      rL   N)Zsympy.core.symbolr   Zsympy.sets.setsr   rI   r   r   r   rB   r   r   r	   r
   Z sympy.combinatorics.permutationsr   Zsympy.combinatorics.perm_groupsr   Zsympy.testing.pytestr   ZrmulrC   rL   r   r   r   r   <module>   s   $K