
    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y	)
    )symbols)	FiniteSet)
Polyhedrontetrahedroncube
octahedrondodecahedronicosahedron
cube_faces)Permutation)PermutationGroup)raisesc                  P  	 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                  	j                  |   d
z         % 	j                  |k(  sJ t        dd      D ]#  }	j                  	j                  |   d
z         % 	j                  |k(  sJ 	j                  d       t        t        	fd       	j                  |k7  sJ 	j                  g dk(  sJ 	j                  g dg dgk(  sJ 	j                          	j                  |k(  sJ d }t!        t"        t$        t&        t(        t*        fdd d!      D ]  \  }}}} |||||        y )"Nc                  D    t        t        d      t        dg      g      S )Nabr   )pgroup)r   listr        ^/var/www/openai/venv/lib/python3.12/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                  <     j                  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                         }|j                  }t        |      D ]$  }|j                  |       |j                  |k(  s$ n t        d|j                         t        |      D ]  }|j                  |       |j                  t        |j                               |j                  }	|j                  D 
cg c]  }
|
D cg c]  }|	|   	 c} c}}
}
| j                  t        |	|
      j                  k(  rJ   t        |      |k(  sJ t!        |D cg c]  }t#        |       c}      j$                  sJ y c c}w c c}}
w c c}w )Nr   zerror in permutation)lenfacesverticesedgessizesetr   copycornersranger    print
array_formaddtupler   r   r   is_group)hr&   rpttargetgotpPhiticfgs               r   checkztest_polyhedron.<locals>.check7   sm   177|c!**o-AGG<AAAvv~~eAA))C3Z99#  
 ,all;3Zaii()II0181A&AqadA&8ww*Q"2"8"8888     3x6!!! =AQ =>GGGG '8 !>s   4	G 
=F;	G 
G;G 
)r      r         )r   r   r   r   r   )r>      r?   <   r@   )r   
ValueErrorr   r.   r   r   r   r%   r   r*   r    r   r)   r,   cyclic_formresetzipr   squarer   r	   r
   )
r   r)   r#   r7   r;   r0   r&   r1   r2   r   s
            @r   test_polyhedronrF      s   
: # $<67<67<679i!qc:;9i!qc:;9i!qc:;9i!qc:;Aq6Aq6Aq6Aq6:;Aq6Aq6Aq6Aq6:;Aq6Aq6Aq6Aq6:;Aq6Aq6Aq6Aq6:;Aq6Aq6Aq6Aq6:;Aq6Aq6Aq6Aq6:;235F GEN#GEguf-D:: %8 9 9 9 9 1XDKKNA%&  <<7"""1a[DKKNA%&  <<7"""KKN
:?@<<7"""??6666l;;;;JJL<<7"""H2 !$	fj,D 	!"4f
 	asF#!"r   c            
         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 y )Nr   )r   tetrahedron_facesoctahedron_facesdodecahedron_facesicosahedron_faces)_pgroup_calcs)sympy.combinatorics.polyhedronr   rH   rI   rJ   rK   rL   r   r   r	   r
   sortedmapr   )r   rH   rI   rJ   rK   rL   tetrahedron2cube2octahedron2dodecahedron2icosahedron2tetrahedron_faces2cube_faces2octahedron_faces2dodecahedron_faces2icosahedron_faces2s                   r   test_pgroupsrZ   X   s   E E< 1>.\5+}l&7,,&&&5==$$$=(((,&&&#f/01VCHZ<[5\\\\*!4444"#v.?'@@@@$%0C)DDDD#$/A(BBBBr   N)sympy.core.symbolr   sympy.sets.setsr   rM   r   r   r   rE   r   r	   r
   r    sympy.combinatorics.permutationsr   sympy.combinatorics.perm_groupsr   sympy.testing.pytestr   rmulrF   rZ   r   r   r   <module>ra      s=    % %   9 < 'H$VCr   