o
    FZh  ć                   @   sų   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d Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Z d.d/ Z!d0d1 Z"d2S )3é    )Ś
free_groupŚ	FreeGroup)ŚSymbol)Śraises)Śoośx, y, zc                  C   sp   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s6J d S )NŚxyzr   é   é   ©ŚxŚyŚz)Śmapr   Ślenr   Ś
generatorsr   © r   śY/var/www/auris/lib/python3.10/site-packages/sympy/combinatorics/tests/test_free_groups.pyŚtest_FreeGroup__init__	   s
    r   c                  C   s0   t td\} }}td ” | ||ffksJ d S )Nr   r   )r   r   r   Ś__getnewargs__r   r   r   r   Śtest_FreeGroup__getnewargs__   s    r   c                  C   s2  t d\} }}}tjtttfksJ ttd  tv sJ ttv s"J ttd  tv s,J tt d tv s6J |tvs<J |d tvsDJ ttdksLJ ttdksTJ t| krZJ t ” t	u sbJ tj
dksiJ t ” tjhkssJ 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
   r   T)r   ŚFr   r   r   r   r   ŚstrŚorderr   Z
is_abelianŚcenterŚidentityŚelements)ŚGŚaŚbŚcŚer   r   r   Śtest_free_group   s&   
r%   c                   C   s   t tsJ d S ©N)Śhashr   r   r   r   r   Śtest_FreeGroup__hash__.   s   r(   c                   C   sä   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s8J t dd t dd ksFJ t dd t dd usTJ t dd t dd ksbJ t dd t dd uspJ d S )Nr   r   za, x, yzx, y)r   r   r   r   r   Śtest_FreeGroup__eq__2   s    r)   c                   C   sL   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   r   Śtest_FreeGroup__getitem__@   s   r*   c                   C   s   t tt t s
J d S r&   )r'   r   r   r   r   r   r   r   Śtest_FreeGroupElm__hash__F   s   r+   c                  C   sD   t t td  } |  ” }t t td  }| |ksJ | |ks J d S )Nr	   é   )r   r   r   Ścopy)ŚfŚgŚhr   r   r   Śtest_FreeGroupElm_copyJ   s
   r1   c                   C   s   t  ” t d ks
J t t  ” td t d  ksJ tt  td   ” tt d  td  ks0J td t d   ” t td  ksBJ d S )Nr   r   éž’’’)r   Zinverser   r   r   r   r   Śtest_FreeGroupElm_inverseS   s    ,(r3   c                   C   s.   t tdd  t tdd  t tdd  d S )Nc                   S   s   dt  S ©Nr   ©r   r   r   r   r   Ś<lambda>[   ó    z.test_FreeGroupElm_type_error.<locals>.<lambda>c                   S   s   t d td  S r4   )r   r   r   r   r   r   r6   \   s    c                   S   s   t d S r4   r5   r   r   r   r   r6   ]   r7   )r   Ś	TypeErrorr   r   r   r   Śtest_FreeGroupElm_type_errorZ   s   r9   c                   C   s   t d  ” dks
J td  ” tu sJ t d t  t ”td t d  t t  ks+J tt d td  dks9J tt d td  t dksIJ d S )Nr   r
   r   r   r	   é   )r   r   r   r   Z
commutatorr   r   r   r   r   r   Śtest_FreeGroupElm_methods`   s
   .$r;   c                  C   sd  t d t t d  td  t  } |  t t d ”t d t t d  td  t d  ks,J t d td  t d  t }| t t d ”t d td  t d  t ksRJ | t t”td ks^J | t td ”td	 kslJ | tt d ”t d
 kszJ | t tt ”tt t t td  td  ksJ td
  tt d td  ”tt  t t  t t  ks°J d S )Nr:   r   éü’’’é
   é   r	   r   r2   é   éż’’’)r   r   Zeliminate_wordr   )ŚwZw3r   r   r   Ś test_FreeGroupElm_eliminate_wordh   s    804<rB   c                   C   s¢   t t jtddftddffksJ t d t t t d  jtddftddftddftddffks8J t d td  jtddftddffksOJ d S )Nr   r
   r   r   r2   r   r   )r   r   Z
array_formr   r   r   r   r   r   Śtest_FreeGroupElm_array_formv   s
   &*’2rC   c                   C   sh   t d jtdtdtdfksJ t d td  t  jtdtdtd td tdfks2J d S )Nr	   r   r   r2   r   )r   Zletter_formr   r   r   r   r   r   Śtest_FreeGroupElm_letter_form}   s   $$’rD   c                   C   s   t d td  t  jtddtddtddfksJ t d td  jtddtddfks0J t t jtddtddfksAJ d S )Nr   r2   r   r   r
   r   r   )r   r   Zext_repr   r   r   r   r   r   Śtest_FreeGroupElm_ext_rep   s
   ’*&rE   c                  C   sb  t j tddff”} t d | t  ksJ t d t t d  d t d td  t d  ks/J t d d t d ks;J t d d t ksEJ t d d tjksPJ td d td ks\J t d t d  t kshJ t d td  td  t d t ks|J t t d  tjksJ t t  tjksJ t t d  t d ksJ t d t t d td   t d td  t d  ksøJ t d t td t d   t d t t d  t ksŌJ t t d t t td   tt td  ksģJ t d t d td  td  t  td td  t ksJ tj}td	D ]}|t | ksJ |d t |  ks)J |t 9 }qd S )
Nr   r
   r   r2   r>   r   r   r<   r=   )	r   ŚgroupZdtyper   r   r   r   r   Śrange)Śx1r!   Śnr   r   r   Śtest_FreeGroupElm__mul__pow__   s,   4(880>żrJ   c                   C   sX   t td t td  td  t dksJ t td dks J t td dks*J d S )Nr:   r   r<   é   é   r   )r   r   r   r   r   r   r   Śtest_FreeGroupElm__len__§   s   ,rM   c                   C   s$  t t tt  kr
J t d td ksJ t d td k sJ t d td k r(J t t t d t k s4J t d td  td k sBJ td td k rLJ td t d k rVJ td td k s`J t d td ksjJ t d t d kstJ tt tt kr~J t t d ksJ t d td krJ d S )Nr   r   r	   r>   r<   r2   r   r   r   r   r   r   Śtest_FreeGroupElm_comparison­   s   rN   c                  C   s   t d t t d  td  t  } |  ” dksJ |  d”dks!J |  d”tdks,J |  dd”tks6J |  dd”tjksAJ d S )Nr:   r   r<   r	   r   r
   )	r   r   Znumber_syllablesZexponent_syllableZgenerator_syllabler   Zsub_syllablesr   r   ©rA   r   r   r   Śtest_FreeGroupElm_syllablesĀ   s    rP   c                  C   s   t d td  } |  t ”dksJ |  t d ”dksJ |  t ”dks%J t d td  t d  }| t ”dks:J | t ”dksCJ d S )Nr   r	   r   r2   r>   r@   r:   )r   r   Zexponent_sumZgenerator_count)Zw1Zw2r   r   r   Śtest_FreeGroup_exponentsĖ   s   rQ   c                   C   sN   t d td  td   ” t tthksJ t d td   ” t thks%J d S )Nr   r>   r   r	   )r   r   r   Zcontains_generatorsr   r   r   r   Śtest_FreeGroup_generatorsÖ   s   *$rR   c                  C   sŚ   t d t t d  td  t  } |  dd”t d t ksJ |  dd”tjks)J |  dd”t d td  ks9J |  dd	td
 ”td
 t  td  t  ksPJ |  dd	td t  ”td t d  td  t  kskJ d S )Nr:   r   r<   é   r	   r=   r2   r   r,   r   )r   r   Zsubwordr   r   Zsubstituted_wordrO   r   r   r   Śtest_FreeGroupElm_wordsŪ   s     .:rT   N)#Zsympy.combinatorics.free_groupsr   r   Z
sympy.corer   Zsympy.testing.pytestr   Zsympy.core.numbersr   r   r   r   r   r   r   r%   r(   r)   r*   r+   r1   r3   r9   r;   rB   rC   rD   rE   rJ   rM   rN   rP   rQ   rR   rT   r   r   r   r   Ś<module>   s6    			