
    sh                         S SK JrJr  S SKJr  S SKJr  S SKJr  \" S5      u  r	r
rrS rS rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"g)    )
free_group	FreeGroup)Symbol)raises)oox, y, zc                  :   [        [        S5      u  pn[        [        S5      R                  5      S:X  d   e[        [        U 5      R                  5      S:X  d   e[        [        S5      5      S:X  d   e[        [        XU45      R                  5      S:X  d   eg )Nxyzr         xyz)mapr   lenr   
generatorsr   s      ~/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/sympy/combinatorics/tests/test_free_groups.pytest_FreeGroup__init__r   	   s    &% GA!y#../1444y|&&'1,,,y)*a///y!#../1444    c                  n    [        [        S5      u  pn[        S5      R                  5       XU44:X  d   eg )Nr
   r   )r   r   r   __getnewargs__r   s      r   test_FreeGroup__getnewargs__r      s4    &% GA!Y..0aAYL@@@r   c                  H   [        S5      u  pp#[        R                  [        [        [
        4:X  d   e[        [
        S-  -  [        ;   d   e[        [        ;   d   e[        [
        S-  -  [        ;   d   e[        [
        -  S-  [        ;   d   eU[        ;  d   eUS-  [        ;  d   e[        [        5      S:X  d   e[        [        5      S:X  d   e[        U :X  a   e[        R                  5       [        L d   e[        R                  S:X  d   e[        R                  5       [        R                  1:X  d   e[        S5      u  nUR                  5       S	:X  d   eUR                  S
:X  d   eUR                  UR                  1:X  d   eUR                  S:X  d   eg )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+      sQ   I&JA!<<Aq!9$$$QT6Q;;6M6QU7a<<aC!8q==A::a4q==q6Q;;q6????Av:779??<<5   88:!**%%%b>DQ779>><<2::!**%%%<<4r   c                  0    [        [        5      (       d   eg N)hashr   r   r   r   test_FreeGroup__hash__r/   .   s    77N7r   c                     [        S5      S   [        S5      S   :X  d   e[        S5      S   [        S5      S   L d   e[        S5      S   [        S5      S   :w  d   e[        S5      S   [        S5      S   Ld   e[        S5      S   [        S5      S   :w  d   e[        S5      S   [        S5      S   Ld   e[        S5      S   [        S5      S   :w  d   e[        S5      S   [        S5      S   Ld   eg )Nr   r   za, x, yzx, y)r   r   r   r   test_FreeGroup__eq__r1   2   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                      [         SS  [        S5      :X  d   e[         SS  [        S5      :X  d   e[         SS  [        S5      :X  d   eg )Nr   r   r   zy, zr   r   )r   r   r   r   r   test_FreeGroup__getitem__r3   @   sL    QR5Ii((((QR5If%%%%QR5IcN"""r   c                  L    [        [        [        -  [        -  5      (       d   eg r-   )r.   r   r   r   r   r   r   test_FreeGroupElm__hash__r5   F   s    !A;;;r   c                      [         [        -  [        S-  -  n U R                  5       n[         [        -  [        S-  -  nX:X  d   eX:w  d   eg )Nr      )r   r   r   copy)fghs      r   test_FreeGroupElm_copyr<   J   sA    	!AqDA	A	!AqDA6M66M6r   c                     [         R                  5       [         S-  :X  d   e[         [        -  R                  5       [        S-  [         S-  -  :X  d   e[        [         -  [        S-  -  R                  5       [        [         S-  -  [        S-  -  :X  d   e[        S-  [         S-  -  R                  5       [         [        S-  -  :X  d   eg )Nr   r   )r   inverser   r   r   r   test_FreeGroupElm_inverser@   S   s    99;!R%aC==?aeArEk)))aC2I AaeGArEM111qDBJ!Qq"uW,,,r   c                  j    [        [        S 5        [        [        S 5        [        [        S 5        g )Nc                      S[         -  $ Nr   r   r   r   r   <lambda>.test_FreeGroupElm_type_error.<locals>.<lambda>[   s    acr   c                  (    [         S-  [        S-  -   $ rC   )r   r   r   r   r   rE   rF   \   s    adQTkr   c                      [         S-  $ rC   rD   r   r   r   rE   rF   ]   s    acr   )r   	TypeErrorr   r   r   test_FreeGroupElm_type_errorrJ   Z   s!    
9k"
9)*
9k"r   c                     [         S-  R                  5       S:X  d   e[        S-  R                  5       [        L d   e[         S-  [        -  R	                  [         5      [        S-  [         S-  -  [        -  [         -  :X  d   e[        [         S-  [        S-  -  5      S:X  d   e[        [         S-  [        S-  -  [        -  5      S:X  d   eg )Nr   r   r   r   r      )r   r!   r   r   
commutatorr   r   r   r   r   test_FreeGroupElm_methodsrN   `   s    qD<<>QqD<<>RrE!G"aeArEk!mAo555q!tArEz?aq"uQTz!|!!!r   c                     [         S-  [        -  [         S-  -  [        S-  -  [         -  n U R                  [         [         S-  5      [         S-  [        -  [         S-  -  [        S-  -  [         S-  -  :X  d   e[         S-  [        S-  -  [         S-  -  [        -  nUR                  [         [         S-  5      [         S-  [        S-  -  [         S-  -  [        -  :X  d   eUR                  [         [        5      [        S-  :X  d   eUR                  [         [        S-  5      [        S	-  :X  d   eUR                  [        [         S-  5      [         S
-  :X  d   eUR                  [         [        [        -  5      [        [        -  [        -  [        -  [        S-  -  [        S-  -  :X  d   e[        S
-  R                  [        [         S-  [        S-  -  5      [        [         -  [        -  [         -  [        -  [         -  :X  d   eg )NrL   r   
      r   r   r>      )r   r   eliminate_wordr   )ww3s     r    test_FreeGroupElm_eliminate_wordrX   h   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                     [         [        -  R                  [        S5      S4[        S5      S44:X  d   e[         S-  [        -  [        -  [         S-  -  R                  [        S5      S4[        S5      S4[        S5      S4[        S5      S44:X  d   e[         S-  [        S-  -  R                  [        S5      S4[        S5      S44:X  d   eg )Nr   r   r   r   r>   r   r   )r   r   
array_formr   r   r   r   r   test_FreeGroupElm_array_formr[   v   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                  .   [         S-  R                  [        S5      [        S5      [        S5      4:X  d   e[         S-  [        S-  -  [         -  R                  [        S5      [        S5      [        S5      * [        S5      * [        S5      4:X  d   eg )Nr   r   r   r>   r   )r   letter_formr   r   r   r   r   test_FreeGroupElm_letter_formr^   }   s~    qD&+vc{F3K!HHHHqDBJqL%%	fSkF3K<&+vc{KL L Lr   c                  r   [         S-  [        S-  -  [         -  R                  [        S5      S[        S5      S[        S5      S4:X  d   e[         S-  [        S-  -  R                  [        S5      S[        S5      S4:X  d   e[         [        -  R                  [        S5      S[        S5      S4:X  d   eg )Nr   r>   r   r   r   r   r   )r   r   ext_repr   r   r   r   r   test_FreeGroupElm_ext_repra      s    qDBJqL!!	ab&+q9: : :rE!R%K  VC["fSk2$FFFFaC==VC[!VC[!<<<<r   c                     [         R                  R                  [        S5      S445      n [         S-  U [         -  :X  d   e[         S-  [        -  [         S-  -  S-  [         S-  [        S-  -  [         S-  -  :X  d   e[         S-  S-  [         S-  :X  d   e[         S-  S-  [         :X  d   e[         S-  S-  [
        R                  :X  d   e[        S-  S-  [        S-  :X  d   e[         S-  [         S-  -  [         :X  d   e[         S-  [        S-  -  [        S-  -  [         S-  [        -  :X  d   e[         [         S-  -  [
        R                  :X  d   e[         [         -  [
        R                  :X  d   e[         [         S-  -  [         S-  :X  d   e[         S-  [        -  [         S-  [        S-  -  -  [         S-  [        S-  -  [         S-  -  :X  d   e[         S-  [        -  [        S-  [         S-  -  -  [         S-  [        -  [         S-  -  [        -  :X  d   e[         [         S-  [        -  [        -  [        S-  -  -  [        [        -  [        S-  -  :X  d   e[         S-  [         S-  [        S-  -  [        S-  -  [        -  -  [        S-  [        S-  -  [        -  :X  d   e[
        R                  n[        S	5       H.  nU[         U-  :X  d   eUS-  [         U* -  :X  d   eU[         -  nM0     g )
Nr   r   r   r>   rR   r   r   rP   rQ   )	r   groupdtyper   r   r   r$   r   range)x1r'   ns      r   test_FreeGroupElm__mul__pow__rh      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                      [        [        S-  [        -  [        S-  -  [        S-  -  [        -  5      S:X  d   e[        [        S-  5      S:X  d   e[        [        S-  5      S:X  d   eg )NrL   r   rP         r   )r   r   r   r   r   r   test_FreeGroupElm__len__rl      s]    q!tAvad{1b5 "#r)))q"u:q!t9>>r   c                     [         [        -  [        [         -  :X  a   e[         S-  [        S-  :X  d   e[         S-  [        S-  :  d   e[         S-  [        S-  :  a   e[         [        -  [         S-  [        -  :  d   e[         S-  [        S-  -  [        S-  :  d   e[        S-  [        S-  :  a   e[        S-  [         S-  :  a   e[        S-  [        S-  :  d   e[         S-  [        S-  ::  d   e[         S-  [         S-  ::  d   e[        [        -  [        [        -  :  a   e[         [         S-  :  d   e[         S-  [        S-  :  a   eg )Nr   r   r   rR   rP   r>   r   r   r   r   r   test_FreeGroupElm_comparisonrn      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                  x   [         S-  [        -  [         S-  -  [        S-  -  [         -  n U R                  5       S:X  d   eU R                  S5      S:X  d   eU R	                  S5      [        S5      :X  d   eU R                  SS5      [        :X  d   eU R                  SS5      [        R                  :X  d   eg )NrL   r   rP   r   r   r   )	r   r   number_syllablesexponent_syllablegenerator_syllabler   sub_syllablesr   r$   rV   s    r   test_FreeGroupElm_syllablesru      s    	1Qq!tArE!A1$$$q!Q&&&"fSk111??1a A%%%??1a AJJ...r   c                  x   [         S-  [        S-  -  n U R                  [         5      S:X  d   eU R                  [         S-  5      S:X  d   eU R                  [         5      S:X  d   e[         S-  [        S-  -  [         S-  -  nUR                  [         5      S:X  d   eUR                  [         5      S:X  d   eg )Nr   r   r   r>   rR   rT   rL   )r   r   exponent_sumgenerator_count)w1w2s     r   test_FreeGroup_exponentsr{      s    	
AadB??1"""??1b5!R'''a A%%%	
Aad1b5B??1###a A%%%r   c                      [         S-  [        S-  -  [        S-  -  R                  5       [         [        [        1:X  d   e[         S-  [        S-  -  R                  5       [         [        1:X  d   eg )Nr   rR   r   r   )r   r   r   contains_generatorsr   r   r   test_FreeGroup_generatorsr~      sZ    qDAIaeO002q!Qi???rE!Q$J++-!Q777r   c                  T   [         S-  [        -  [         S-  -  [        S-  -  [         -  n U R                  SS5      [         S-  [        -  :X  d   eU R                  SS5      [        R                  :X  d   eU R                  SS5      [         S-  [        S-  -  :X  d   eU R                  SS	[        S
-  5      [        S
-  [         -  [        S-  -  [         -  :X  d   eU R                  SS	[        S-  [         -  5      [        S-  [         S-  -  [        S-  -  [         -  :X  d   eg )NrL   r   rP      r   rQ   r>   r   r7   r   )r   r   subwordr   r$   substituted_wordrt   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/   r1   r3   r5   r<   r@   rJ   rN   rX   r[   r^   ra   rh   rl   rn   ru   r{   r~   r   r   r   r   <module>r      s    A  ' !	"
1a5A
 .A#-#"	ANL=:*/&8
Ar   