
    gT                         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 Zd Zd	S )
    )symbols)	FiniteSet)
Polyhedrontetrahedroncube
octahedrondodecahedronicosahedron
cube_facesPermutation)PermutationGroup)raisesc                    	 t          t          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    sJ t          d          D ]%}	
                    	j        |         d
z             &	j        |k    sJ t          dd          D ]%}	
                    	j        |         d
z             &	j        |k    sJ 	
                    d           t          t          	fd           	j        |k    sJ 	j        g dk    sJ 	j        g dg dgk    sJ 	                                 	j        |k    sJ d }t!          t"          t$          t&          t(          t*          fdd d!          D ]\  }}}} |||||           d S )"Nc                  \    t          t          d          t          dg          g          S )Nabr   )pgroup)r   listr        e/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/combinatorics/tests/test_polyhedron.py<lambda>z!test_polyhedron.<locals>.<lambda>   s-    z$t**QC  ! #  #  # 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   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                  L                          t          ddg                    S )Nr   r   )rotater   )r   s   r   r   z!test_polyhedron.<locals>.<lambda>0   s    t{{;1v+>+>?? r   )r   r   r   r   r   r   r   r   )r   r   r   r   c                   
 t          | j                  t          | j                  z   t          | j                  z
  dk    sJ | j        |k    sJ t                      }| j        D ]}|                                 }|j        }t          |          D ]$}|
                    |           |j        |k    r n%t          d|j                   t          |          D ]x}|
                    |           |                    t          |j                             |j        

fd|j        D             }	| j        t          
|	          j        k    sJ yt          |          |k    sJ t!          d |D                       j        sJ d S )Nr   zerror in permutationc                 ,    g | ]}fd |D             S )c                      g | ]
}|         S r   r   ).0ics     r   
<listcomp>z=test_polyhedron.<locals>.check.<locals>.<listcomp>.<listcomp>K   s    &&&qad&&&r   r   )r%   fr'   s     r   r(   z2test_polyhedron.<locals>.check.<locals>.<listcomp>K   s.    8881&&&&A&&&888r   c                 ,    g | ]}t          |          S r   r   )r%   gs     r   r(   z2test_polyhedron.<locals>.check.<locals>.<listcomp>N   s     = = =AQ = = =r   )lenfacesverticesedgessizesetr   copycornersranger!   print
array_formaddtupler   r   is_group)hr0   rpttargetgotpPhitr&   r)   r'   s             @r   checkztest_polyhedron.<locals>.check7   s   17||c!*oo-AG<AAAAv~~~~ee 	9 	9AA)C3ZZ < <9##E $ ,al;;;3ZZ 9 9ai(()))I8888888w*Q"2"2"8888889 3xx6!!!! = = = = =>>GGGGGGr   )r      r         )r   r   r   r   r   )rD      rE   <   rF   )r   
ValueErrorr   r8   r   r   r   r/   r   r4   r!   r   r3   r6   cyclic_formresetzipr   squarer   r	   r
   )
r   r3   r-   r&   rA   r:   r0   r;   r<   r   s
            @r   test_polyhedronrL      s   
: # # $ $ $<<<677<<<677<<<677999iii!qc:;;999iii!qc:;;999iii!qc:;;999iii!qc:;;Aq6Aq6Aq6Aq6:;;Aq6Aq6Aq6Aq6:;;Aq6Aq6Aq6Aq6:;;Aq6Aq6Aq6Aq6:;;Aq6Aq6Aq6Aq6:;;Aq6Aq6Aq6Aq6:;;222335F GENN##GEguf--D: %8 9 9 9 9 9 1XX ' 'DKNA%&&&&<7""""1a[[ ' 'DKNA%&&&&<7""""KKNNN
:????@@@<7""""?6666666lll;;;;;JJLLL<7""""H H H2 !$	fj,D 	!" !" $ $4f
 	asF####$ $r   c            
      z   ddl m} m}m}m}m} ddl m}  |            \
  }}}}	}
}}}}}t          |k    sJ | |k    sJ t          |k    sJ t          |	k    sJ t          |
k    sJ t          t          t          |                    t          t          t          |                    k    sJ t          t                    t          |          k    sJ t          |          t          |          k    sJ t          |          t          |          k    sJ t          |          t          |          k    sJ d S )Nr   )r   tetrahedron_facesoctahedron_facesdodecahedron_facesicosahedron_faces)_pgroup_calcs)sympy.combinatorics.polyhedronr   rN   rO   rP   rQ   rR   r   r   r	   r
   sortedmapr   )r   rN   rO   rP   rQ   rR   tetrahedron2cube2octahedron2dodecahedron2icosahedron2tetrahedron_faces2cube_faces2octahedron_faces2dodecahedron_faces2icosahedron_faces2s                   r   test_pgroupsr`   X   s   E E E E E E E E E E E E E E<<<<<< 1>.\5+}l&7,,&&&&5====$$$$=((((,&&&&#f/0011VCHZ<[<[5\5\\\\\*!4!44444"##v.?'@'@@@@@$%%0C)D)DDDDD#$$/A(B(BBBBBBBr   N)sympy.core.symbolr   sympy.sets.setsr   rS   r   r   r   rK   r   r	   r
   r    sympy.combinatorics.permutationsr   sympy.combinatorics.perm_groupsr   sympy.testing.pytestr   rmulrL   r`   r   r   r   <module>rg      s    % % % % % % % % % % % %                  9 8 8 8 8 8 < < < < < < ' ' ' ' ' 'H$ H$ H$VC C C C Cr   