o
    GZh                     @   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J d S N)r   r   r   r   r   r   shapeB r   Z/var/www/auris/lib/python3.10/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J | ttf ttt tt f ks(J tt	dd  tdd dd d f d td ksBJ td d dd df d td ksUJ 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   
IndexErrorr   r   r   r   
test_entry   s   $&*r%   c                   C   s8   t tttfttfjrJ t tttfttfjsJ d S r   )r   r   r   r   r   r   Zon_diagr   r   r   r   test_on_diag   s   r&   c                   C   s6   t tddt tddksJ t tddjdksJ d S )Nr   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J t dddf tt ddks"J t ddd d f jdt jd fks6J t d d ddf jt jd dfksJJ t d d dd d df jttd ttd fkseJ t dd d f tt ddtfkswJ t td d f tt tdtfksJ d S )Nr   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                          dddf S )Nr      r   r   r   r   r   r   r    -   r!   z!test_exceptions.<locals>.<lambda>c                      r-   )Nr   	      r   r   r/   r   r   r    .   r!   c                      r-   )Nr   r   r   r   r/   r   r   r    /   r!   )r   r   r$   r   r   r/   r   test_exceptions+   s   r3   c                  C   sr   t ddd} | d ddd f }tt|  |j| dd d df ks'J W d    d S 1 s2w   Y  d S )Nr*   r+   r   )r   r   r   Z	symmetricT)r   r   r   r   r   test_symmetry1   s
    "r5   c                  C   s   t ddd} | dd d f d d df d | d ksJ | d dd df d dd df | d dd df ks:J | d	ddd
f d	ddf | dddf ksTJ | d	dddd
f d	ddf | ddddf kspJ d S )Nr*   r+   r   r#   r   )r   r#   r   r(   r      r0      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sJ d S )Nr*   r+   r2   r0   r   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)   r3   r5   r8   r9   r   r   r   r   <module>   s$    (	

