
    g                         d dl mZmZ d dlmZ d dlmZ d dlmZ  ed      \  Z	Z
ZZd Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!y)    )
free_group	FreeGroup)Symbol)raises)oox, y, zc                  6   t        t        d      \  } }}t        t        d      j                        dk(  sJ t        t        |       j                        dk(  sJ t        t        d            dk(  sJ t        t        | ||f      j                        dk(  sJ y )Nxyzr         xyz)mapr   lenr   
generatorsr   s      _/var/www/openai/venv/lib/python3.12/site-packages/sympy/combinatorics/tests/test_free_groups.pytest_FreeGroup__init__r   	   s    &% GAq!y#../1444y|&&'1,,,y)*a///y!Q#../1444    c                     t        d      \  } }}}t        j                  t        t        t
        fk(  sJ t        t
        dz  z  t        v sJ t        t        v sJ t        t
        dz  z  t        v sJ t        t
        z  dz  t        v sJ |t        vsJ |dz  t        vsJ t        t              dk(  sJ t        t              dk(  sJ t        | k(  rJ t        j                         t        u sJ t        j                  dk(  sJ t        j                         t        j                  hk(  sJ t        d      \  }|j                         d	k(  sJ |j                  d
k(  sJ |j                  |j                  hk(  sJ |j                  dk(  sJ y )Nza, b, c   r   r   z(<free group on the generators (x, y, z)>F r    T)r   Fr   r   r   r   r   strorderr   
is_abeliancenteridentityelements)Gabces        r   test_free_groupr(      sU   I&JAq!Q<<Aq!9$$$QT6Q;;6M6QU7a<<aC!8q==A::a4q==q6Q;;q6????Av:779??<<5   88:!**%%%b>DQ779>><<2::!**%%%<<4r   c                  &    t        t              sJ y N)hashr   r   r   r   test_FreeGroup__hash__r,   )   s    7N7r   c                     t        d      d   t        d      d   k(  sJ t        d      d   t        d      d   u sJ t        d      d   t        d      d   k7  sJ t        d      d   t        d      d   usJ t        d      d   t        d      d   k7  sJ t        d      d   t        d      d   usJ t        d      d   t        d      d   k7  sJ t        d      d   t        d      d   usJ y )Nr   r   za, x, yzx, y)r   r   r   r   test_FreeGroup__eq__r.   -   s   i #z)'<Q'????i #z)'<Q'????i #z)'<Q'????i #:i+@+CCCCfa Jy$9!$<<<<fa 
9(=a(@@@@i #z&'9!'<<<<i #:f+=a+@@@@r   c                      t         dd  t        d      k(  sJ t         dd  t        d      k(  sJ t         dd  t        d      k(  sJ y )Nr   r   r   zy, zr   r   )r   r   r   r   r   test_FreeGroup__getitem__r0   ;   sL    QR5Ii((((QR5If%%%%QR5IcN"""r   c                  B    t        t        t        z  t        z        sJ y r*   )r+   r   r   r   r   r   r   test_FreeGroupElm__hash__r2   A   s    !A;;r   c                      t         t        z  t        dz  z  } | j                         }t         t        z  t        dz  z  }| |k(  sJ | |k7  sJ y )Nr      )r   r   r   copy)fghs      r   test_FreeGroupElm_copyr9   E   sE    	!AqDA	A	!AqDA6M66M6r   c                     t         j                         t         dz  k(  sJ t         t        z  j                         t        dz  t         dz  z  k(  sJ t        t         z  t        dz  z  j                         t        t         dz  z  t        dz  z  k(  sJ t        dz  t         dz  z  j                         t         t        dz  z  k(  sJ y )Nr   r   )r   inverser   r   r   r   test_FreeGroupElm_inverser=   N   s    99;!R%aC==?aeArEk)))aC2I AaeGArEM111qDBJ!Qq"uW,,,r   c                  j    t        t        d        t        t        d        t        t        d        y )Nc                      dt         z  S Nr   r   r   r   r   <lambda>z.test_FreeGroupElm_type_error.<locals>.<lambda>V   s    acr   c                  (    t         dz  t        dz  z   S r@   )r   r   r   r   r   rB   z.test_FreeGroupElm_type_error.<locals>.<lambda>W   s    adQTkr   c                      t         dz  S r@   rA   r   r   r   rB   z.test_FreeGroupElm_type_error.<locals>.<lambda>X   s    acr   )r   	TypeErrorr   r   r   test_FreeGroupElm_type_errorrF   U   s!    
9k"
9)*
9k"r   c                     t         dz  j                         dk(  sJ t        dz  j                         t        u sJ t         dz  t        z  j	                  t               t        dz  t         dz  z  t        z  t         z  k(  sJ t        t         dz  t        dz  z        dk(  sJ t        t         dz  t        dz  z  t        z        dk(  sJ y )Nr   r   r   r   r      )r   r   r   r   
commutatorr   r   r   r   r   test_FreeGroupElm_methodsrJ   [   s    qD<<>QqD<<>RrE!G"aeArEk!mAo555q!tArEz?aq"uQTz!|!!!r   c                     t         dz  t        z  t         dz  z  t        dz  z  t         z  } | j                  t         t         dz        t         dz  t        z  t         dz  z  t        dz  z  t         dz  z  k(  sJ t         dz  t        dz  z  t         dz  z  t        z  }|j                  t         t         dz        t         dz  t        dz  z  t         dz  z  t        z  k(  sJ |j                  t         t              t        dz  k(  sJ |j                  t         t        dz        t        d	z  k(  sJ |j                  t        t         dz        t         d
z  k(  sJ |j                  t         t        t        z        t        t        z  t        z  t        z  t        dz  z  t        dz  z  k(  sJ t        d
z  j                  t        t         dz  t        dz  z        t        t         z  t        z  t         z  t        z  t         z  k(  sJ y )NrH   r   
      r   r   r;      )r   r   eliminate_wordr   )ww3s     r    test_FreeGroupElm_eliminate_wordrT   c   s   	1Qq!tArE!AQ1&!R%'!Q$,q"u*<QT*AAAA	
Aad1b5	BQ1%Aad1b5)::::Q"ad***Q1%A---Q2&!R%///Q!$!Aa1QU(::::rE!!!QU1b5[1QqSU1WQYq[@@@r   c                     t         t        z  j                  t        d      dft        d      dffk(  sJ t         dz  t        z  t        z  t         dz  z  j                  t        d      dft        d      dft        d      dft        d      dffk(  sJ t         dz  t        dz  z  j                  t        d      dft        d      dffk(  sJ y )Nr   r   r   r   r;   r   r   )r   r   
array_formr   r   r   r   r   test_FreeGroupElm_array_formrW   q   s    aCa 06#;2BCCCCqDF1HQUN&&
+q	F3K+fSk1-=sR?PQR R RrE!R%K##b(9F3K;L'MMMMr   c                  *   t         dz  j                  t        d      t        d      t        d      fk(  sJ t         dz  t        dz  z  t         z  j                  t        d      t        d      t        d       t        d       t        d      fk(  sJ y )Nr   r   r   r;   r   )r   letter_formr   r   r   r   r   test_FreeGroupElm_letter_formrZ   x   s~    qD&+vc{F3K!HHHHqDBJqL%%	fSkF3K<&+vc{KL L Lr   c                  l   t         dz  t        dz  z  t         z  j                  t        d      dt        d      dt        d      dfk(  sJ t         dz  t        dz  z  j                  t        d      dt        d      dfk(  sJ t         t        z  j                  t        d      dt        d      dfk(  sJ y )Nr   r;   r   r   r   r   r   )r   r   ext_repr   r   r   r   r   test_FreeGroupElm_ext_repr]   ~   s    qDBJqL!!	ab&+q9: : :rE!R%K  VC["fSk2$FFFFaC==VC[!VC[!<<<<r   c                     t         j                  j                  t        d      dff      } t         dz  | t         z  k(  sJ t         dz  t        z  t         dz  z  dz  t         dz  t        dz  z  t         dz  z  k(  sJ t         dz  dz  t         dz  k(  sJ t         dz  dz  t         k(  sJ t         dz  dz  t
        j                  k(  sJ t        dz  dz  t        dz  k(  sJ t         dz  t         dz  z  t         k(  sJ t         dz  t        dz  z  t        dz  z  t         dz  t        z  k(  sJ t         t         dz  z  t
        j                  k(  sJ t         t         z  t
        j                  k(  sJ t         t         dz  z  t         dz  k(  sJ t         dz  t        z  t         dz  t        dz  z  z  t         dz  t        dz  z  t         dz  z  k(  sJ t         dz  t        z  t        dz  t         dz  z  z  t         dz  t        z  t         dz  z  t        z  k(  sJ t         t         dz  t        z  t        z  t        dz  z  z  t        t        z  t        dz  z  k(  sJ t         dz  t         dz  t        dz  z  t        dz  z  t        z  z  t        dz  t        dz  z  t        z  k(  sJ t
        j                  }t        d	      D ]+  }|t         |z  k(  sJ |dz  t         | z  k(  sJ |t         z  }- y )
Nr   r   r   r;   rN   r   r   rL   rM   )	r   groupdtyper   r   r   r!   r   range)x1r$   ns      r   test_FreeGroupElm__mul__pow__rd      s   	
a(*	+Ba42a4<<qDF1b5L11QT	!R%///qD191rEB;!rEA:###qD2:Ba42:??a419QU?ad1f$$$QU7ajj   Q3!**QT6QU??qDFQT!R%Z AqDAIaeO333qDFQU1a4Z AqDF1b5LN222aeAgai2o!A#ae)+++a4Bq"uQT!!#$2ad
1444	

A2YAqDyy"uA2~~	Q r   c                      t        t        dz  t        z  t        dz  z  t        dz  z  t        z        dk(  sJ t        t        dz        dk(  sJ t        t        dz        dk(  sJ y )NrH   r   rL         r   )r   r   r   r   r   r   test_FreeGroupElm__len__rh      s]    q!tAvad{1b5 "#r)))q"u:q!t9>>r   c                     t         t        z  t        t         z  k(  rJ t         dz  t        dz  k(  sJ t         dz  t        dz  k  sJ t         dz  t        dz  k  rJ t         t        z  t         dz  t        z  k  sJ t         dz  t        dz  z  t        dz  k  sJ t        dz  t        dz  k  rJ t        dz  t         dz  k  rJ t        dz  t        dz  k  sJ t         dz  t        dz  k  sJ t         dz  t         dz  k  sJ t        t        z  t        t        z  kD  rJ t         t         dz  kD  sJ t         dz  t        dz  k\  rJ y )Nr   r   r   rN   rL   r;   r   r   r   r   r   test_FreeGroupElm_comparisonrj      s*   !qs
a41a4<<a4!Q$;;!tad{?Q3Aa<<a419q!t!tae|!tae|b51a4<<a41a4<<a41a4<<sQqSy=q"u99!tq!t||r   c                  n   t         dz  t        z  t         dz  z  t        dz  z  t         z  } | j                         dk(  sJ | j                  d      dk(  sJ | j	                  d      t        d      k(  sJ | j                  dd      t        k(  sJ | j                  dd      t        j                  k(  sJ y )NrH   r   rL   r   r   r   )	r   r   number_syllablesexponent_syllablegenerator_syllabler   sub_syllablesr   r!   rR   s    r   test_FreeGroupElm_syllablesrq      s    	1Qq!tArE!A1$$$q!Q&&&"fSk111??1a A%%%??1a AJJ...r   c                  n   t         dz  t        dz  z  } | j                  t               dk(  sJ | j                  t         dz        dk(  sJ | j                  t               dk(  sJ t         dz  t        dz  z  t         dz  z  }|j                  t               dk(  sJ |j                  t               dk(  sJ y )Nr   r   r   r;   rN   rP   rH   )r   r   exponent_sumgenerator_count)w1w2s     r   test_FreeGroup_exponentsrw      s    	
AadB??1"""??1b5!R'''a A%%%	
Aad1b5B??1###a A%%%r   c                      t         dz  t        dz  z  t        dz  z  j                         t         t        t        hk(  sJ t         dz  t        dz  z  j                         t         t        hk(  sJ y )Nr   rN   r   r   )r   r   r   contains_generatorsr   r   r   test_FreeGroup_generatorsrz      sZ    qDAIaeO002q!Qi???rE!Q$J++-!Q777r   c                  J   t         dz  t        z  t         dz  z  t        dz  z  t         z  } | j                  dd      t         dz  t        z  k(  sJ | j                  dd      t        j                  k(  sJ | j                  dd      t         dz  t        dz  z  k(  sJ | j                  dd	t        d
z        t        d
z  t         z  t        dz  z  t         z  k(  sJ | j                  dd	t        dz  t         z        t        dz  t         dz  z  t        dz  z  t         z  k(  sJ y )NrH   r   rL      r   rM   r;   r   r4   r   )r   r   subwordr   r!   substituted_wordrp   s    r   test_FreeGroupElm_wordsr      s    	1Qq!tArE!A99Q?ad1f$$$99Q?ajj(((99Qq!tArEz)))aArE*aeAgaemAo===aAqDF+q!tAqDyBq/@@@@r   N)"sympy.combinatorics.free_groupsr   r   
sympy.corer   sympy.testing.pytestr   sympy.core.numbersr   r   r   r   r   r   r(   r,   r.   r0   r2   r9   r=   rF   rJ   rT   rW   rZ   r]   rd   rh   rj   rq   rw   rz   r   r   r   r   <module>r      s    A  ' !	"
1a5 .A#-#"	ANL=:*/&8
Ar   