
    Qi                         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!d Z"dS )    )
free_group	FreeGroup)Symbol)raises)oox, y, zc                  l   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 d S )Nxyzr         xyz)mapr   lenr   
generatorsr   s      /var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/sympy/combinatorics/tests/test_free_groups.pytest_FreeGroup__init__r   	   s    &%  GAq!y##.//14444y||&''1,,,,y))**a////y!Q##.//1444444    c                      t          t          d          \  } }}t          d                                          | ||ffk    sJ d S )Nr
   r   )r   r   r   __getnewargs__r   s      r   test_FreeGroup__getnewargs__r      sJ    &%  GAq!Y..00aAYL@@@@@@r   c                  X   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                                          t          u sJ t          j
        dk    sJ t                                          t          j        hk    sJ t          d          \  }|                                d	k    sJ |j        d
k    sJ |j        |j        hk    sJ |j
        dk    sJ d S )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+      s|   I&&JAq!Q<Aq!9$$$$QT6Q;;;;6666QU7a<<<<aC!8q====A::::a4q====q66Q;;;;q66?????Avvvv7799????<5    88::!*%%%%b>>DQ7799>>>><2:!*%%%%<4r   c                  2    t          t                    sJ d S N)hashr   r   r   r   test_FreeGroup__hash__r/   .   s    77NNNNNr   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         k    sJ t          d          d         t          d          d         usJ t          d          d         t          d          d         k    sJ t          d          d         t          d          d         usJ t          d          d         t          d          d         k    sJ t          d          d         t          d          d         usJ d S )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Cfa Jy$9$9!$<<<<<fa 
9(=(=a(@@@@@i  #z&'9'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 d S )Nr   r   r   zy, zr   r   )r   r   r   r   r   test_FreeGroup__getitem__r3   @   si    QRR5Ii((((((QRR5If%%%%%%QRR5IcNN""""""r   c                  R    t          t          t          z  t          z            sJ d S r-   )r.   r   r   r   r   r   r   test_FreeGroupElm__hash__r5   F   s"    !A;;r   c                      t           t          z  t          dz  z  } |                                 }t           t          z  t          dz  z  }| |k    sJ | |k    sJ d S )Nr      )r   r   r   copy)fghs      r   test_FreeGroupElm_copyr<   J   sO    	!AqDA	A	!AqDA6666666666r   c                     t                                           t           dz  k    sJ t           t          z                                  t          dz  t           dz  z  k    sJ t          t           z  t          dz  z                                  t          t           dz  z  t          dz  z  k    sJ t          dz  t           dz  z                                  t           t          dz  z  k    sJ d S )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1qDBJ!!Qq"uW,,,,,,r   c                      t          t          d            t          t          d            t          t          d            d S )Nc                      dt           z  S Nr   r   r   r   r   <lambda>z.test_FreeGroupElm_type_error.<locals>.<lambda>[   s
    ac r   c                  ,    t           dz  t          dz  z   S rC   )r   r   r   r   r   rE   z.test_FreeGroupElm_type_error.<locals>.<lambda>\   s    adQTk r   c                      t           dz  S rC   rD   r   r   r   rE   z.test_FreeGroupElm_type_error.<locals>.<lambda>]   s
    ac r   )r   	TypeErrorr   r   r   test_FreeGroupElm_type_errorrI   Z   s@    
9kk"""
9))***
9kk"""""r   c                     t           dz                                  dk    sJ t          dz                                  t          u sJ t           dz  t          z                      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 d S )Nr   r   r   r   r      )r   r!   r   r   
commutatorr   r   r   r   r   test_FreeGroupElm_methodsrM   `   s    qD<<>>QqD<<>>RrE!G""aeArEk!mAo5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  } |                     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  }|                    t           t           dz            t           dz  t          dz  z  t           dz  z  t          z  k    sJ |                    t           t                    t          dz  k    sJ |                    t           t          dz            t          d	z  k    sJ |                    t          t           dz            t           d
z  k    s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                      t          t           dz  t          dz  z            t          t           z  t          z  t           z  t          z  t           z  k    sJ d S )NrK   r   
      r   r   r>      )r   r   eliminate_wordr   )ww3s     r    test_FreeGroupElm_eliminate_wordrW   h   s   	1Qq!tArE!AQ1&&!R%'!Q$,q"u*<QT*A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[1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 d S )Nr   r   r   r   r>   r   r   )r   r   
array_formr   r   r   r   r   test_FreeGroupElm_array_formrZ   v   s    aCa 06#;;2BCCCCCqDF1HQUN&
++q	F3KK+fSkk1-=sR?PQR R R RrE!R%K#b(9F3KK;L'MMMMMMMr   c                  d   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 d S )Nr   r   r   r>   r   )r   letter_formr   r   r   r   r   test_FreeGroupElm_letter_formr]   }   s    qD&++vc{{F3KK!HHHHHqDBJqL%	fSkkF3KK<&++vc{{KL L L L L Lr   c                     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 d S )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[["fSkk2$FFFFFaC=VC[[!VC[[!<<<<<<<r   c                  p   t           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 ]0}|t           |z  k    sJ |dz  t           | z  k    sJ |t           z  }1d S )
Nr   r   r   r>   rQ   r   r   rO   rP   )	r   groupdtyper   r   r   r$   r   range)x1r'   ns      r   test_FreeGroupElm__mul__pow__rg      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U7aj    Q3!*QT6QU????qDFQT!R%Z AqDAIaeO3333qDFQU1a4Z AqDF1b5LN2222aeAgai2o!A#ae)++++a4Bq"uQT!!#$2ad
14444	
A2YY  AqDyyyy"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 d S )NrK   r   rO         r   )r   r   r   r   r   r   test_FreeGroupElm__len__rk      so    q!tAvad{1b5 "##r))))q"u::q!t99>>>>>>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  k    rJ t           t           dz  k    sJ t           dz  t          dz  k    rJ d S )Nr   r   r   rQ   rO   r>   r   r   r   r   r   test_FreeGroupElm_comparisonrm      s8   !qs



a41a4<<<<a4!Q$;;;;!tad{{{{Q3Aa<<<<a419q!t!tae||||!tae||||b51a4<<<<a41a4<<<<a41a4<<<<sQqSyyyyq"u9999!tq!t||||||r   c                     t           dz  t          z  t           dz  z  t          dz  z  t           z  } |                                 dk    sJ |                     d          dk    sJ |                     d          t          d          k    sJ |                     dd          t          k    sJ |                     dd          t          j        k    sJ d S )NrK   r   rO   r   r   r   )	r   r   number_syllablesexponent_syllablegenerator_syllabler   sub_syllablesr   r$   rU   s    r   test_FreeGroupElm_syllablesrt      s    	1Qq!tArE!A1$$$$q!!Q&&&&""fSkk1111??1a  A%%%%??1a  AJ......r   c                     t           dz  t          dz  z  } |                     t                     dk    sJ |                     t           dz            dk    sJ |                     t                     dk    sJ t           dz  t          dz  z  t           dz  z  }|                    t                     dk    sJ |                    t                     dk    sJ d S )Nr   r   r   r>   rQ   rS   rK   )r   r   exponent_sumgenerator_count)w1w2s     r   test_FreeGroup_exponentsrz      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                                  t           t          t          hk    sJ t           dz  t          dz  z                                  t           t          hk    sJ d S )Nr   rQ   r   r   )r   r   r   contains_generatorsr   r   r   test_FreeGroup_generatorsr}      sl    qDAIaeO0022q!Qi????rE!Q$J++--!Q777777r   c                     t           dz  t          z  t           dz  z  t          dz  z  t           z  } |                     dd          t           dz  t          z  k    sJ |                     dd          t          j        k    sJ |                     dd          t           dz  t          dz  z  k    sJ |                     dd	t          d
z            t          d
z  t           z  t          dz  z  t           z  k    sJ |                     dd	t          dz  t           z            t          dz  t           dz  z  t          dz  z  t           z  k    sJ d S )NrK   r   rO      r   rP   r>   r   r7   r   )r   r   subwordr   r$   substituted_wordrs   s    r   test_FreeGroupElm_wordsr      s   	1Qq!tArE!A99Q??ad1f$$$$99Q??aj((((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@   rI   rM   rW   rZ   r]   r`   rg   rk   rm   rt   rz   r}   r   r   r   r   <module>r      s   A A A A A A A A       ' ' ' ' ' ' ! ! ! ! ! !Z	""
1a5 5 5A A A
     .  A A A# # #    - - -# # #" " "	A 	A 	AN N NL L L= = =  :    */ / /& & &8 8 8
A A A A Ar   