
    Qi'                         d dl mZ d dlmZmZmZmZmZ d dlm	Z	m
Z
 d dlmZ 	 d Zd Zed             Zd Zd	 Zd
 Zd Zd ZdS )    )S)FpGrouplow_index_subgroupsreidemeister_presentation
FpSubgroupsimplify_presentation)
free_group	FreeGroup)slowc                  f   t          d          \  } }}t          | |dz  |dz  ||z  dz  g          }t          |d          }g dgg dg dg dg d	gg dg d
g dgg dg dgg}t          t	          |                    D ]}||         j        ||         k    sJ t          | |dz  |dz  ||z  dz  g          }t          |d          }g dgg dg dg dg dg dg dg dgg dg dg dg dg dg dg dgg dg dg dg dg dg dg dg dg dg dg dg dg dg dg d gg dg dg dg dg dg dg dg dg dg d!g d"g dg d#g dg d gg dg dg dg dg dg dg dg dg dg d!g d$g dg d%g d&gg dg d'g d(g d)g d*g d+g d,g d-g d.g d/g d0g d1g d2g d3gg dg d'g d(g d)g d*g d+g d,g d-g d.g d/g d0g d4g d5g d6gg dg d'g d(g d7g d8g d9g d:g d-g d.g d/g d0g d4g d5g d6gg dg d'g d(g d7g d;g d<g d=g d>g d?g d@g dAg dBg dCg dg d gg dg d'g d(g d7g d;g dDg dEg dFg dGg	g dg d'g d(g d7g d;g dHg dIg d>g dJg dKg dLg dMg dNg d3gg dg d'g d(g d7g d;g dHg dIg d>g dJg dOg dPg dQg dRg d3gg dg d'g d(g d7g d;g dHg dSg dTg dJg dUg dVg dWg d2g d3gg dg d'g d(g d7g d;g dHg dSg dTg dJg dOg dXg dQg dRg d3gg dg d'g d(g d7g d;g dHg dSg dYg dZg dUg d[g d\g d]g d^gg dg d_g d`g dag d8g dbg dcg ddgg}t          t	          |                    D ]}||         j        ||         k    sJ t          | |dz  |dz  ||z  dz  g          }t          |de|g          }g dgg dg dg dg dg dg dg dgg dg dg dg dg dg dg dgg dg d'g d(g d7g d;g dDg dEg dFg dGg	g}t          t	          |                    D ]}||         j        ||         k    sJ d S )fNx, y         )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   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   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   )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   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   )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   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   r   )r	   r   r   rangelentable)	FxyfLt1it2t3s	            /var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/sympy/combinatorics/tests/test_fp_groups.pytest_low_index_subgroupsr*      s'     GAq! 	AqD!Q$1q)**AAq!!A<<.<<|||\\\
B<<|||
4<<
&
(B 3r77^^ # #tzRU"""""AqD!Q$1q)**AAr""A<<.LL,,,lllLL,,,6LL,,,lllLL,,,6LL,,,lllLL,,,nnnNNLLL///===...0@0@0@B LL,,,lllLL,,,nnnNNNNNOOO]]]NN,,,.>.>.>@ LL,,,lllLL,,,nnnNNNNNOOO]]]NN,,,. LL,,,lllLLLllLLL,,,NNNNN,<,<,<>N>N>N LL,,,lllLLLllLLL,,,NNNNN,<,<,<>N>N>N LL,,,lllLLLllLLL,,,NNNNN,<,<,<>N>N>N LL,,,lllLLLllLLL...,,,NNMMM???<L<L<L...0 LL,,,lllLLLllLLL,,,FLL,,,lllLLLllLLL......NNMMM>>>??? LL,,,lllLLLllLLL......NNNNNMMM??? LL,,,lllLLLllNNNLLL...LL......:J:J:J LL,,,lllLLLllNNNLLL...NNNNNMMM??? LL,,,lllLLLllNNNNNNNNNLL......... LL,,,lllLLLllLLL,,,8o8
9Br CGGnn # #tzRU"""""AqD!Q$1q)**AArA3''A<<.<<|||\\\<<<<<'<<|||\\\<<<<<'<<|||\\\<<<<<|||\\\C
DB 3r77^^ # #tzRU"""""# #    c                     t          d          \  } }}t          | |dz  |dz  ||z  dz  g          }||z  |dz  |dz  z  |z  |z  |z  g}t          ||          }t          |          dk    sJ |                    |          }|j        |j        f|k    sJ t          | |dz  |dz  ||z  dz  g          }||z  ||dz  z  g}t          ||          }t          |          dk    sJ t          | |dz  |dz  z  |dz  |z  |z  |dz  z  g          }|g}t          ||          }t          |          d	k    sJ t          | |dz  |dz  z  ||z  dz  ||dz  z  dz  g          }|g}t          ||          }t          |          d
k    sJ t          d          \  } }	}
}t          | |	dz  |
dz  |dz  |
|dz  z  dz  |	|
z  |z  dz  |	dz  |dz  z  dz  |
dz  |dz  z  |
dz  z  |z  |	dz  |
dz  z  |	dz  z  |
z  g          }|	|
|dz  g}t          ||          \  }}t          |          dk    sJ t          |          dk    sJ d S )Nr   r   r   r   z7((y_1, y_2), (y_1**2, y_2**3, y_2*y_1*y_2*y_1*y_2*y_1))z7((x_0, y_0), (x_0**3, y_0**3, x_0*y_0*x_0*y_0*x_0*y_0))z((x_0,), (x_0**4,))z((x_0,), (x_0**6,))a, b, cr   r   z
(b_1, c_3)   )r	   r   r   strsubgroup
generatorsrelatorsr   )r    r!   r"   r#   Hp1p2p3p4abcgensrelss                 r)   test_subgroup_presentationsr?   r   s     GAq!AqD!Q$1q)**A	
1aeArEk!mAoa A	"1a	(	(Br77OOOOO	

1AL!*%++++AqD!Q$1q)**A	
1a2gA	"1a	(	(Br77OOOOOAqDAIq"uQwqyB/00A	
A	"1a	(	(Br77+++++AqDBJ1q1QU7Q,788A	
A	"1a	(	(Br77+++++ I&&JAq!QArE1a4A!Q${QqSUQJAadQPQSTPTUVXZUZPZ[\^`[`P`abPbdeghdhijlnindnoprtotdtuvdvwxxA	
Aq!tA*1a00JD$t99$$$$t99??????r+   c                  &   t          d          \  } }}t          | |dz  |dz  ||z  |dz  z  |z  g          }|                                dk    sJ t          | ||z  |dz  z  |dz  z  |dz  g          }|                                t          j        u sJ t          d          \  } }}}t          | |dz  |dz  ||z  |dz  z  |z  |dz  |dz  |dz  z  |z  |z  |dz  |dz  z  |z  |z  g          }|                                dk    sJ t          d	          \  } }t          | g           }|                                t          j        u sJ t          t          d
          d         g           }|                                dk    sJ d S )Nr   r   r   r-   r   r/      i  r!    r   r   )r	   r   orderr   Infinity)r    r!   r"   r#   r:   r;   r<   s          r)   
test_orderrE      s     GAq!AqD!Q$!ArE	!,--A7799>>>>AaC2IaeOQT*++A7799
""""I&&JAq!QAsFAqD!A#ae)A+q!tQU1b5[]1_aeArEkRSmTUoVWWA7799c??DAq2A7799
""""
2q!2&&A7799>>>>>>r+   c                  R   d } t          d          \  }}}t          ||dz  |dz  ||z  |dz  z  |z  g          }t          |||z  g          }||z  dz  |v sJ |                    ||z  gd          \  }} ||j                  ||dz  z  gk    sJ  | |||           t          ||dz  |z  |z  g          }|dz  |dz  z  |z  |v sJ |dz  |dz  z  |dz  z  |vsJ |                    |dz  |z  |z  gd          \  }} ||j        d	         d
z            |d
z  k    sJ  | |||           t          ||d
z  |dz  ||z  dz  g          }||z  |dz  |dz  z  |z  |z  |z  g}|                    |d          \  }}t          ||          } | |||           d S )Nc                      || j                   }t          fd|D                       sJ |                                sJ |                                                                 j                    k    sJ d S )Nc              3       K   | ]}|v V  	d S )N ).0elemr   s     r)   	<genexpr>z;test_fp_subgroup.<locals>._test_subgroup.<locals>.<genexpr>   s'      //419//////r+   )r3   allis_injectiveimagerC   )KTr   _genss     ` r)   _test_subgroupz(test_fp_subgroup.<locals>._test_subgroup   s    !,////////////~~wwyy  GAGII------r+   r   r   r   r-   r.   T)homomorphismr   r   r   )r	   r   r   r2   r3   )	rS   r    r!   r"   r#   r   rP   rQ   r5   s	            r)   test_fp_subgrouprU      s-   . . .
   GAq!AqD!Q$!ArE	!,--A1qseAaC"9>>>>::qse$://DAq1Q\??qBwi''''N1a1q"uQwqyk""Ab5A:a<1b5A:ad?!####::q"uQwqyk:55DAq1Q\!_a  AqD((((N1aAqD!Q$1q)**A	
1aeArEk!mAoa A::ad:++DAq1aAN1ar+   c                     t          d          \  } }}t          | |dz  |dz  ||z  |dz  z  |z  g          }|                                d         }|                                sJ |                                |dz  gk    sJ t          | |dz  |dz  ||z  |dz  z  |z  g          }t          ||                    |g                    }||v sJ |dz  |z  |z  |v sJ t          | ||z  |dz  z  |dz  z  |dz  |dz  g          }|j        sJ |j        sJ t          | |dz  |dz  ||z  dz  g          }|j        rJ t          | |dz  |dz  ||z  dz  g          }t          |
                                          dk    sJ t          ||                                          } |j                    dk    sJ d S )	Nr   r   r   r-   r   r   r   r   )r	   r   _to_perm_groupis_isomorphismcenterr   normal_closure
is_abelianis_solvabler   derived_seriesderived_subgrouprC   )r    r!   r"   GrQ   r   s         r)   test_permutation_methodsr`      s     GAq!AqD!Q$!ArE	!,--A	1A88::!Q$ 	AqD!Q$!ArE	!,--A1a&&s++,,A6666b5719>>>> 	AaC2IaeOQT1a4011A<= 	AqD!Q$1q)**A} 	AqD!Q$1q)**Aq!!""a''''1a((**++A1799>>>>>>r+   c            	         t          t          t          g           g                     } | j        rJ | j        rJ t          d          \  }}}t          t          ||dz  |dz  |dz  g                    } || j        v sJ d S )Nr   r   r   r   )r   r   r
   r3   r4   r	   )r_   r    r!   r"   s       r)   test_simplify_presentationrb      s    gimmR8899A|z   GAq!ga!Q$1ad);<<==A
??????r+   c                  0   t          d          \  } }}t          | ||z  |dz  |dz  z  |z  |z  |z  g          }|j        sJ t          | ||z  ||dz  z  g          }|j        sJ t          | |dz  |dz  ||z  |dz  z  |z  g          }|j        rJ d S )Nr   r-   r   r   )r	   r   	is_cyclicr    r!   r"   r#   s       r)   test_cyclicrf      s      GAq!AaCBq"uQq*+,,A;AaC1b5>""A;AqD!Q$!ArE	!,--A{r+   c                     t          d          \  } }}t          | ||z  |dz  |dz  z  |z  |z  |z  g          }|                                g k    sJ t          | ||z  ||dz  z  g          }|                                dgk    sJ t          | |dz  |dz  ||z  |dz  z  |z  g          }|                                ddgk    sJ d S )Nr   r-   r   r   )r	   r   abelian_invariantsre   s       r)   test_abelian_invariantsri      s      GAq!AaCBq"uQq*+,,A!!R''''AaC1b5>""A!!aS((((AqD!Q$!ArE	!,--A!!aV++++++r+   N)sympy.core.singletonr   sympy.combinatorics.fp_groupsr   r   r   r   r   sympy.combinatorics.free_groupsr	   r
   sympy.testing.pytestr   r*   r?   rE   rU   r`   rb   rf   ri   rI   r+   r)   <module>rn      s0   " " " " " "B B B B B B B B B B B B B B D C C C C C C C % % % % % %"U# U# U#p" " "J   &  6  <
 
 
  , , , , ,r+   