U
    -e                     @   s   d dl mZ d dlmZ d dlmZmZmZmZm	Z	m
Z
mZmZ d dlmZmZ d dlmZ d dlmZmZ edeeZedee	Zd	d
 Zdd Zdd Zdd Zdd Zdd Zedd Zdd Zdd ZdS )    )MatrixSlice)MatrixSymbol)abcdklmn)raisesXFAIL)floor)assumingQXYc                  C   s2   t tttfttf} | jtt tt fks.td S N)r   r   r   r   r   r   shapeAssertionErrorB r   l/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/matrices/expressions/tests/test_slice.py
test_shape   s    r   c                  C   s   t tttfttf} | d tttf ks,t| ttf ttt tt f ksPtt	t
dd  tdd dd d f d td ksttd d dd df d td kstd S )	Nr   r   c                   S   s   t tddd S )N         )r   r   )r   r   r   r   r   r   <lambda>       ztest_entry.<locals>.<lambda>r   r   r      )r#   r#   )r#   r   )r   r   r   r   r   r   r   r   r	   r   
IndexErrorr   r   r   r   
test_entry   s    $&r%   c                   C   s8   t tttfttfjrtt tttfttfjs4td S r   )r   r   r   r   r   r   Zon_diagr   r   r   r   r   test_on_diag   s    r&   c                   C   s6   t tddt tddkstt tddjdks2td S )Nr   r   )r   r   r"   )r   r   r   r   r   r   r   r   test_inputs   s    r'   c                   C   s  t ddddf tt ddks$tt dddf tt ddksDtt ddd d f jdt jd fksltt d d ddf jt jd dfkstt d d dd d df jttd ttd fkstt dd d f tt ddtfkstt td d f tt tdtfkstd S )Nr   r   r      )r   r   )r   r(   r   )r   r   r   r   r   r   r
   r   r   r   r   r   test_slicing!   s    $ ((6$r)   c                      sF   t ddd tt fdd tt fdd tt fdd d S )Nx
      c                      s    dddf S )Nr      r   r   r   r   r   r   r    -   r!   z!test_exceptions.<locals>.<lambda>c                      s    dddf S )Nr   	      r   r   r.   r   r   r    .   r!   c                      s    dddf S )Nr   r   r   r   r.   r   r   r    /   r!   )r   r   r$   r   r   r.   r   test_exceptions+   s    r2   c               	   C   s\   t ddd} | d ddd f }tt| $ |j| dd d df ksNtW 5 Q R X d S )Nr*   r+   r   )r   r   r   Z	symmetricTr   )r   r   r   r   r   test_symmetry1   s    r4   c                  C   s   t ddd} | dd d f d d df d | d ks8t| d dd df d dd df | d dd df kstt| d	ddd
f d	ddf | dddf kst| d	dddd
f d	ddf | ddddf kstd S )Nr*   r+   r   r#   r   )r   r#   r   r(   r      r/      r   r   r.   r   r   r   test_slice_of_slice8   s
    ,<4r8   c                  C   s4   t ddd} | dd d f | dd d f ks0td S )Nr*   r+   r1   r/   r7   r.   r   r   r   test_negative_index?   s    r9   N) Z sympy.matrices.expressions.slicer   Zsympy.matrices.expressionsr   Z	sympy.abcr   r   r   r   r   r	   r
   r   Zsympy.testing.pytestr   r   Z#sympy.functions.elementary.integersr   Zsympy.assumptionsr   r   r   r   r   r%   r&   r'   r)   r2   r4   r8   r9   r   r   r   r   <module>   s"   (	

