o
    jgT                     @   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   a/var/www/html/zoom/venv/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facesverticesedgessizesetr   copycornersranger   print
array_formaddtupler   r   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-   r0   cyclic_formresetzipr   squarer   r   r	   )	r   r-   r'   r   r;   r4   r*   r5   r6   r   r   r   test_polyhedron   sT   

rF   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   rG   rH   rI   rJ   rK   r   r   r   r	   sortedmapr
   )r   rG   rH   rI   rJ   rK   tetrahedron2cube2octahedron2dodecahedron2icosahedron2tetrahedron_faces2cube_faces2octahedron_faces2dodecahedron_faces2icosahedron_faces2r   r   r   test_pgroupsX   s     rY   N)sympy.core.symbolr   sympy.sets.setsr   rL   r   r   r   rE   r   r   r	   r
    sympy.combinatorics.permutationsr   sympy.combinatorics.perm_groupsr   sympy.testing.pytestr   rmulrF   rY   r   r   r   r   <module>   s    $K