o
    FZhT                     @   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sJ  
d t t fdd  j|ksJ  jg dksJ  jg dg dgks-J     j|ks9J dd  }ttttttfd!d"d#D ]\}}}}||||| qId S )$Nc                   S   s   t tdtdggdS )Nabr   )pgroup)r   listr    r   r   X/var/www/auris/lib/python3.10/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   s    )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sJ t }| jD ]N}|  }|j}t	|D ]}|
| |j|kr; nq-td|j t	|D ]'}|
| |t|j |j  fdd|jD }	| jt |	jksmJ qFq t ||kswJ tdd |D jsJ 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       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   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   sT   

rC   c               
   C   s   ddl m} m}m}m}m} ddl m} | \
}}}}	}
}}}}}t|ks'J | |ks-J t|ks3J t	|	ks9J t
|
ks?J ttt|ttt|ksOJ ttt|ksYJ t|t|kscJ t|t|ksmJ t|t|kswJ 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