U
    9%e                     @   s   d Z ddlmZmZmZmZmZmZmZm	Z	m
Z
mZ ddlmZmZmZmZ ddlmZ ddlmZ dd Zdd	 Zd
d Zdd Zdd Zdd Zdd ZdS )zTests of monomial orderings.     )
monomial_keylexgrlexgrevlexilexigrlexLexOrderInverseOrderProductOrderbuild_product_order)xyzt)S)raisesc                   C   s   t ddksttt dks tt dt dks4tt dt dksHtt dt dks\tt dt dksptt dt dk stt dt dk stt dt dk stt jd	kstt t kstt tkstd S )
N         r   r   r   r   r   r   r   r   r      r   r   r   r   r   r   r   r   r   T)r   AssertionErrorstr	is_globalr   r    r    r    _/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sympy/polys/tests/test_orderings.pytest_lex_order   s    r"   c                   C   s<  t ddksttt dks tt dt dks4tt dt dksHtt dt dks\tt dt dksptt dt dk stt dt dk stt d	t dk stt dt dkstt dt dkstt dt d	k stt dt d	k stt d
t dkstt dt dk s(tt jdks8td S )Nr   )   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   T)r   r   r   r   r    r    r    r!   test_grlex_order   s     r(   c                   C   s<  t ddksttt dks tt dt dks4tt dt dksHtt dt dks\tt dt dksptt dt dk stt dt dk stt d	t dk stt dt dkstt dt dkstt dt d	k stt dt d	k stt d
t dkstt dt dk s(tt jdks8td S )Nr   )r#   )r   r   r   r   r   r   r   r$   r%   r&   r'   T)r   r   r   r   r    r    r    r!   test_grevlex_order7   s     r,   c                  C   s   t t} t t}| d| dks$t|d|dk s8tt| dksHtt|dksXt| jdksft|jdkstt| |kst| t t kstd S )Nr   )r   r   r   r   r   r   F)r	   r   r   r   r   r   r   )r   r   r    r    r!   test_InverseOrderP   s    r-   c                  C   s   t tdd ftdd f} | d| dks.tt| dks>t| jdksLtt td ftd fjd kshtt td ftd fjdkstd S )	Nc                 S   s   | d d S Nr   r    mr    r    r!   <lambda>^       z#test_ProductOrder.<locals>.<lambda>c                 S   s   | dd  S r.   r    r/   r    r    r!   r1   ^   r2   )r   r   r   r      )r   r   r3   r3   r3   zProductOrder(grlex, grlex)TF)r
   r   r   r   r   r   r   )Pr    r    r!   test_ProductOrder]   s    r5   c                  C   s  t  tkstt dtkstt dtks.tt dtks>tttdd  ttdd  ttd td  tt	 td t
jt	d td t	ttt	d  t td t	d  g} t| t dtt	tgd	t
jttd td t	tt	 t	d td t	d  ttt	d  t td td  gkstt| t dtt	tgd	t
jtt	ttd tt	 t	d td td t	d  tt	d  t td td  gkstt| t dtt	tgd	t
jtt	ttd tt	 t	d td td t	d  td td  tt	d  t gkstd S )
Nr   r   r   c                   S   s   t dS )NZfoor   r    r    r    r!   r1   l   r2   z#test_monomial_key.<locals>.<lambda>c                   S   s   t dS )Nr   r6   r    r    r    r!   r1   m   r2   r   r   )key)r   r   r   r   r   r   
ValueErrorr   r   r   r   ZOnesorted)Mr    r    r!   test_monomial_keye   s     PN
N
Nr;   c                   C   sz   t dttfdttffttttgddks.tt dttfdttffttttgt dttfdttffttttgksvtd S )Nr   )r   r3   r#      ))	   )r   r3   )   )r#   r<   )r   r   r   r   r   r   r    r    r    r!   test_build_product_orderw   s    $  r?   N)__doc__Zsympy.polys.orderingsr   r   r   r   r   r   r   r	   r
   r   Z	sympy.abcr   r   r   r   Z
sympy.corer   Zsympy.testing.pytestr   r"   r(   r,   r-   r5   r;   r?   r    r    r    r!   <module>   s   0