o
    8Va                     @   s   d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ G dd deeeZd	d
 Zdd Zdd Zdd Zdd ZdS )    )_MinimalMatrix_CastableMatrix)MatrixSubspaces)Matrix)Rational)symbols)solvec                   @   s   e Zd ZdS )SubspaceOnlyMatrixN)__name__
__module____qualname__ r   r   E/usr/lib/python3/dist-packages/sympy/matrices/tests/test_subspaces.pyr	      s    r	   c                  C   s   t g dg dg dg dg} |  }|d tg dks J |d tg dks,J |d	 tg d
ks8J t|dks@J tj| g|R   |ksOJ d S )N      r   r      r   r         r   r      r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r	   columnspacer   lenZhstackmbasisr   r   r   test_columnspace_one   s   "r'   c                  C   s   t g dg dg dg dg} |  }|d tg dgks!J |d tg dgks.J |d tg d	gks;J t|d
ksCJ d S )Nr   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r	   Zrowspacer   r#   r$   r   r   r   test_rowspace   s   r(   c                  C   s   t g dg dg dg dg} |  }|d tg dks J |d tg dks,J td	d
 | |d  D s;J tdd
 | |d  D sJJ d S )Nr   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   c                 s       | ]}|j V  qd S NZis_zero.0er   r   r   	<genexpr>3       z%test_nullspace_one.<locals>.<genexpr>c                 s   r)   r*   r+   r,   r   r   r   r/   4   r0   )r	   	nullspacer   allr$   r   r   r   test_nullspace_one)   s   "r3   c                  C   s  t } tg dg dg}| \}}|tdd| d d | dd gdd| dd | d	d ggks5J tg d
g dg dg dg dg}|| d  tdddgd ks[J tg dg dg dg dg}| \}}|tg dg ddddddd| dd gg dgksJ | }|d tg dksJ |d tg dksJ |d tg dksJ |d tddddd| dd dgksJ tddgddgddgg}| sJ d S )N)r      r   r   )r   r   r   r   r   r   r            )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r8   r   r   r   r   r   )r   	   r   r   r   r   r   )r   r   r   r   r   r:   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   )r   r   Zrrefr1   )RMouttmpr&   r   r   r   test_nullspace_second6   sB    &
*r?   c            
      C   s  t g dg dg dg dg} |  }|d t g dks J |d t g dks,J |d	 t g d
ks8J td\}}}}}t |||||g}tt|D ]}| | ||  }	tt|	|dkseJ qP|  t|kspJ t|  t|   | jksJ d S )Nr   r   r   r   r   r   r   r    r   r!   z	a b c d e)	r   r"   r   ranger#   r   Zrankr1   Zcols)
r<   r&   abcdr.   Xieqr   r   r   test_columnspace_second]   s    &rH   N)Zsympy.matrices.commonr   r   Zsympy.matrices.matricesr   Zsympy.matricesr   Zsympy.core.numbersr   Zsympy.core.symbolr   Zsympy.solversr   r	   r'   r(   r3   r?   rH   r   r   r   r   <module>   s    '