
    gg4                     v   d 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
mZmZ ddlmZ ddlmZ dd	lmZmZmZ d
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d  Z+d! Z,d" Z-d# Z.d$ Z/d% Z0d& Z1d' Z2d( Z3d) Z4d* Z5d+ Z6d, Z7d- Z8d. Z9d/ Z:d0 Z;d1 Z<d2 Z=d3 Z>d4S )5z5
Tests for the basic functionality of the SDM class.
    )product)S)GROUND_TYPES)raises)QQZZEXRAW)SDM)DDM)DMBadInputErrorDMDomainErrorDMShapeErrorc                  6   t          ddt          d          iidt                    } | j        t          k    sJ | j        dk    sJ t	          |           ddt          d          iik    sJ t          t          d            t          t          d            d S )Nr         r   c                  P    t          ddt          d          iidt                    S )N   r   r   r   r
   r        _/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/polys/matrices/tests/test_sdm.py<lambda>ztest_SDM.<locals>.<lambda>        CAbee9vr$B$B r   c                  P    t          ddt          d          iidt                    S )Nr   r   r   r   r   r   r   r   ztest_SDM.<locals>.<lambda>   r   r   )r
   r   domainshapedictr   r   As    r   test_SDMr!      s    Q"Q%%yM62&&A8r>>>>7f77q!BqEEm####
?BBCCC
?BBCCCCCr   c                     t          dt          d          idt          d          iddt                    } t          |           dk    sJ t          dk    rt	          |           dk    sJ d S t	          |           dk    sJ d S )	Nr   r   r   r   r   z{0: {0: 1}, 1: {1: 1}}gmpyz1SDM({0: {0: mpz(1)}, 1: {1: mpz(1)}}, (2, 2), ZZ)z'SDM({0: {0: 1}, 1: {1: 1}}, (2, 2), ZZ))r
   r   strr   repr)sdms    r   test_DDM_strr(      s    
!BqEEqAi((&"
5
5Cs88/////vCyyOOOOOOOCyyEEEEEEEr   c                      t          ddt          d          iidt                    } |                     i dt                    }|t          i dt                    k    sJ d S Nr   r   r   )r
   r   newr    Bs     r   test_SDM_newr.   %   sY    Q"Q%%yM62&&A	b&"AB########r   c                      t          ddt          d          iidt                    } |                                 }| |k    sJ t          d          | d         d<   | |k    sJ d S )Nr   r   r   r   )r
   r   copyr,   s     r   test_SDM_copyr1   +   s_    Q"Q%%yM62&&A	A6666eeAaDG666666r   c                     t          j        t          d          t          d          gt          d          t          d          ggdt                    } | t          dt          d          idt          d          iddt                    k    sJ t          t          d            t          t          d            d S )Nr   r   r   r#   c                      t          j        t          d          gt          d          t          d          ggdt                    S r*   r
   	from_listr   r   r   r   r   z$test_SDM_from_list.<locals>.<lambda>7   s2    CMBqEE7RUUBqEEN2KVUW$X$X r   c                  r    t          j        t          d          t          d          ggdt                    S r*   r4   r   r   r   r   z$test_SDM_from_list.<locals>.<lambda>8   s'    CMBqEE2a55>2BFB$O$O r   )r
   r5   r   r   r   r   s    r   test_SDM_from_listr7   3   s    1r!uu~1r!uu~6CCA"Q%%yQr!uuI..;;;;;;
?XXYYY
?OOPPPPPr   c                     t          ddt          d          iidt                    } |                                 t          d          t          d          gt          d          t          d          ggk    sJ t          i dt                    } |                                 g k    sJ t          i dt                    } |                                 g g gk    sJ d S )Nr   r   r   r   r   )r   r   )r
   r   to_listr   s    r   test_SDM_to_listr;   ;   s    Q2a55zNFB''A99;;BqEE2a55>BqEE2a55>:::::BA99;;"BA99;;2r(""""""r   c                      t          ddt          d          iidt                    } |                                 t          d          t          d          t          d          t          d          gk    sJ d S r*   )r
   r   to_list_flatr   s    r   test_SDM_to_list_flatr>   F   sc    Q2a55zNFB''A>>1r!uubeeRUU;;;;;;;r   c                      t          ddt          d          iidt                    } |                                 dt          d          ik    sJ d S )Nr   r   r   r#   )r
   r   to_dokr   s    r   test_SDM_to_dokrA   K   sJ    Q2a55zNFB''A88::&"Q%%((((((r   c                  x   t          t          d          t          d          gt          d          t          d          ggdt                    } t          j        |           }|j        t          k    sJ |j        dk    sJ t          |          dt          d          idt          d          idk    sJ d S )Nr   r   r   r#   )r   r   r
   from_ddmr   r   r   r,   s     r   test_SDM_from_ddmrD   P   s    beeRUU^beeRUU^,fb99AQA8r>>>>7f77!BqEEqAi00000000r   c                  (   t          ddt          d          iidt                    } t          t          d          t          d          gt          d          t          d          ggdt                    }|                                 |k    sJ d S r*   )r
   r   r   to_ddmr,   s     r   test_SDM_to_ddmrG   X   sp    Q2a55zNFB''AbeeRUU^beeRUU^,fb99A88::??????r   c                      t          ddt          d          iidt                    } |                                 | k    sJ d S r*   )r
   r   to_sdmr   s    r   test_SDM_to_sdmrJ   ^   s:    Q2a55zNFB''A88::??????r   c                  ~    t          ddt          d          iidt                                          dd          t          j        k    sJ                      dd          t          j        k    sJ                      dd          t          j        k    sJ                      dd          t          j        k    sJ                      dd          t          j        k    sJ                      dd          t          j        k    sJ t          t           fd           t          t           fd           d S )Nr   r   r   c                  0                          dd          S Nr   r   getitemr   s   r   r   z"test_SDM_getitem.<locals>.<lambda>k       qyyA r   c                  0                          dd          S Nr   r   rP   r   s   r   r   z"test_SDM_getitem.<locals>.<lambda>l   rR   r   )r
   r   rQ   zerooner   
IndexErrorr   s   @r   test_SDM_getitemrX   c   s   Q"Q%%yM62&&A99Q??bg%%%%99Q??bf$$$$99Q??bg%%%%99R''''99R&&&&99R''''
:....///
:..../////r   c                      t          ddt          d          iidt                                          ddt          d                      t          dt          d          t          d          didt                    k    sJ                      ddt          d                      t          t          d          t          d          ddt          d          iddt                    k    sJ                      ddt          d                      t          dt          d          t          d          didt                    k    sJ                      ddt          d                      t          dt          d          t          d          didt                    k    sJ                      ddt          d                      t          ddt          d          iidt                    k    sJ                      ddt          d                      t          ddt          d          iidt                    k    sJ t          t           fd           t          t           fd           d S )Nr   r   r   r#   c                  L                          ddt          d                    S )Nr   r   r   setitemr   r   s   r   r   z"test_SDM_setitem.<locals>.<lambda>       qyyAr!uu55 r   c                  L                          ddt          d                    S )Nr   r   r   r[   r   s   r   r   z"test_SDM_setitem.<locals>.<lambda>   r]   r   )r
   r   r\   r   rW   r   s   @r   test_SDM_setitemr_   o   s?   Q"Q%%yM62&&AIIaBqEEQ"Q%%2a55))*FB777777IIaBqEE"Q%%2a55))a1Y77DDDDDDIIaBqEEQ"Q%%2a55))*FB777777IIaBqEEQ"Q%%2a55))*FB777777IIaBqEEQ"Q%%yM62......IIaBqEEQ"Q%%yM62......
:5555666
:555566666r   c                  j   t          t          d          t          d          dt          d          t          d          dddt                    } |                     t          dd          t          dd                    }|t          ddt          d          iidt                    k    sJ d S )	Nr   r   r#         r   r   r   r   )r
   r   extract_sliceslicer,   s     r   test_SDM_extract_slicerf      s    "Q%%2a55!!1A%7%788&"EEA	aU1a[[11AQ"Q%%yM62........r   c                     t          t          d          t          d          dt          d          t          d          dddt                                        dgdg          } | t          ddt          d          iidt                    k    sJ                     ddgddg          } | t          t          d          t          d          dt          d          t          d          dddt                    k    sJ                     ddgddg          } | t          t          d          t          d          dt          d          t          d          dddt                    k    sJ                     d	gd	g          } | t          ddt          d          iidt                    k    sJ t          i dt                                        g d
ddg          } | t          i dt                    k    sJ t          t          d          t          d          dt          d          t          d          dddt                                        g g           t          j        dt                    k    sJ                     dgg           t          j        dt                    k    sJ                     g dg          t          j        dt                    k    sJ t	          t
          fd           t	          t
          fd           t	          t
          fd           t	          t
          fd           d S )Nr   r   r#   ra   rb   r   r   rc   rM   )r   r   r   ra   r   )r   r   )r   r   c                  4                          dgdg          S rO   extractr   s   r   r   z"test_SDM_extract.<locals>.<lambda>       qyy!qc22 r   c                  4                          dgdg          S rT   rj   r   s   r   r   z"test_SDM_extract.<locals>.<lambda>   rl   r   c                  4                          dgdg          S )Nr   rj   r   s   r   r   z"test_SDM_extract.<locals>.<lambda>   s    qyy"s33 r   c                  4                          dgdg          S )Nr   ro   rj   r   s   r   r   z"test_SDM_extract.<locals>.<lambda>   s    qyy!rd33 r   )r
   r   rk   zerosr   rW   r-   r    s    @r   test_SDM_extractrs      s   "Q%%2a55!!1A%7%788&"EEA			1#sAQ"Q%%yM62......			1a&1a&!!A"Q%%2a55))1A-?-?@@&"MMMMMM			1a&1a&!!A"Q%%2a55))1A-?-?@@&"MMMMMM			2$AQ"Q%%yM62......BA			)))aV$$AB######"Q%%2a55!!1A%7%788&"EEA99R	&" 5 5555599aS"62!6!6666699R!62!6!66666
:2222333
:2222333
:3333444
:333344444r   c                      t          j        dt                    } | j        t          k    sJ | j        dk    sJ t          |           i k    sJ d S )Nr   )r
   rq   r   r   r   r   r   s    r   test_SDM_zerosru      sL    	&"A8r>>>>7f77b======r   c                      t          j        dt                    } | j        t          k    sJ | j        dk    sJ t          |           dt          d          t          d          dik    sJ d S )Nr   r   r   r   r#   )r
   onesr   r   r   r   r   s    r   test_SDM_onesry      sk    A8r>>>>7f77qBqEERUU++,,,,,,,r   c                      t          j        dt                    } | j        t          k    sJ | j        dk    sJ t          |           dt          d          idt          d          idk    sJ d S )Nr   r   r   r#   )r
   eyer   r   r   r   r   s    r   test_SDM_eyer|      sn    A8r>>>>7f77!BqEEqAi00000000r   c                      t          j        t          d          t          d          gt          d          } | t          dt          d          idt          d          iddt                    k    sJ d S )Nr   r   r   ra   r   r#   )r
   diagr   r   s    r   test_SDM_diagr      sd    "Q%%AV,,A"Q%%yQr!uuI..;;;;;;;;r   c                  &   t          t          d          t          d          dt          d          t          d          dddt                    } t          t          d          t          d          dt          d          t          d          dddt                    }|                                 |k    sJ t          ddt          d          iidt                    } t          ddt          d          iidt                    }|                                 |k    sJ t          ddt          d          iidt                    } t          ddt          d          iid	t                    }|                                 |k    sJ d S )
Nr   r   r#   ra   rb   r   r   rw   r   r   )r
   r   	transposer,   s     r   test_SDM_transposer      sQ   "Q%%2a55!!1A%7%788&"EEA"Q%%2a55!!1A%7%788&"EEA;;==AQ"Q%%yM62&&AQ"Q%%yM62&&A;;==AQ"Q%%yM62&&AQ"Q%%yM62&&A;;==Ar   c                  d   t          ddt          d          iidt                    t          ddt          d          iidt                    } t          d          z  | k    sJ t          d          z  | k    sJ t          t          fd           t          t          fd           d S )Nr   r   r   rb   c                  *     t          dd          z  S Nr   r   r   r   s   r   r   ztest_SDM_mul.<locals>.<lambda>   s    a1aj r   c                  *    t          dd           z  S r   r   r   s   r   r   ztest_SDM_mul.<locals>.<lambda>   s    bAhhqj r   )r
   r   r   	TypeErrorrr   s    @r   test_SDM_mulr      s    Q"Q%%yM62&&AQ"Q%%yM62&&ARUU7a<<<<a557a<<<<
9(((()))
9(((()))))r   c                     t          dt          d          t          d          didt                    } t          dt          d          idt          d          iddt                    t          ddt          d          iidt                    }|                               |k    sJ                     |           |k    sJ |                     t                    t          ddt          d          iid	t                    t          t          fd
           t          t          fd           d S )Nr   r   r#   r   rb   ra      r   rc   c                  .                                    S Nmul_elementwise)Aqr-   s   r   r   z*test_SDM_mul_elementwise.<locals>.<lambda>   s    ""4"4Q"7"7 r   c                  .                                    S r   r   )A1r-   s   r   r   z*test_SDM_mul_elementwise.<locals>.<lambda>   s    !3!3A!6!6 r   )r
   r   r   
convert_tor   r   r   r   )r    Cr   r   r-   s     @@@r   test_SDM_mul_elementwiser      s)   Q"Q%%2a55!!"FB//A"Q%%yQr!uuI&&33AQ"Q%%yM62&&AQ1$$$$Q1$$$$	
b		B	a2a55	]FB	'	'B
=77777888
<6666677777r   c                     t          ddt          d          iidt                    t          ddt          d          iidt                    }                               z  cxk    r| k    sn J t          ddt          d          iidt                    t	          t
          fd           t          t          d          t          d          dt          d          t          d          dddt                    t          t          d	          t          d
          dt          d          t          d          dddt                    }                               z  cxk    r| k    sn J t          ddt          d          iidt                    t          ddt          d          iidt                    }t          ddt          d          iidt                    t          ddt          d          iidt                    }t          ddt          d          iidt                    |                              |k    sJ                     |          k    sJ t	          t          fd           t          dt          d          t          d          didt                    t          dt          d          idt          d          iddt                    }                     |           | z  cxk    rt          i dt                    k    sn J d S )Nr   r   r   rb   c                  .                                    S r   matmul)r    r   s   r   r   z!test_SDM_matmul.<locals>.<lambda>   s    !((1++ r   r   r#   ra      
         rh   r~   r   )ra   ra   c                  .                                    S r   r   )A22A23s   r   r   z!test_SDM_matmul.<locals>.<lambda>   s    C r   rM   rw   r   rc   )r
   r   r   r   r   r   r   )r-   A32A33r    r   r   r   s      @@@@r   test_SDM_matmulr      s   Q"Q%%yM62&&AQ"Q%%yM62&&A88A;;!A#""""""""""Q"Q%%yM62&&A
=-----..."Q%%2a55!!1A%7%788&"EEA"Q%%2b66""B2b66&:&:;;VRHHA88A;;!A#""""""""""
q!BqEEmVR
(
(C
q!BqEEmVR
(
(C
q!BqEEmVR
(
(C
q!BqEEmVR
(
(C
q!BqEEmVR
(
(C::c??c!!!!::c??c!!!!
 <00000111QBrFFr!uu%%&33ABrFFBrFF,,fb99A88A;;!A#4444R!4!444444444r   c                  V   d } t           j        t           j        t           j        t           j        t           j        g}t          |gdz   D ]^\  }}}} | ||d||dd          } | ||z  ||z  z   ||z  ||z  z   d||z  ||z  z   ||z  ||z  z   dd          }||z  |k    sJ _d S )Nc                     i }|                                  D ]*\  }}d |                                 D             }|r|||<   +t          |dt                    S )Nc                     i | ]
\  }}|||S r   r   ).0jvals      r   
<dictcomp>z1test_matmul_exraw.<locals>.dm.<locals>.<dictcomp>  s#    :::VQc:1S:::r   r   )itemsr
   r	   )dresultirows       r   dmztest_matmul_exraw.<locals>.dm  sa    ggii 	  	 FAs::syy{{:::C  q	665)))r   rb   r#   )r   NegativeInfinityNegativeOneZeroOneInfinityr   )r   valuesabcr   AdAd2s           r   test_matmul_exrawr      s    * * *  !-
KFxz*  
1aRqAJJa1::..//b!ac	QqS1Q3Y//acAaCiAaC!A#I3N3NOOPPBw#~~~~~ r   c                     t          dt          d          it          d          t          d          dddt                    t          dt          d          it          d          t          d          dddt                    } t          t          d          t          d          ddt          d          iddt                    }                    |           |                               cxk    r| z   cxk    r| z   cxk    r|k    sn J t          ddt          d          iidt                    t          dt          d          it          d          t          d          dddt                    } t          t          d          t          d          dt          d          t          d          dddt                    }                    |           |                               cxk    r| z   cxk    r| z   cxk    r|k    sn J t          t          fd	           d S )
Nr   r   ra   r#   r   r   rL      c                       g z   S r   r   r   s   r   r   ztest_SDM_add.<locals>.<lambda>      a"f r   )r
   r   addr   r   r-   r   r    s     @r   test_SDM_addr     s   "Q%%yr!uu1..//<<A"Q%%yr"vvA//00&"==A"Q%%2a55!!a1Y//<<A5588quuQxx66661q56666AE6666Q666666Q"Q%%yM62&&A"Q%%yr"vvA//00&"==A"Q%%2a55!!2"Q%%%8%89962FFA5588quuQxx66661q56666AE6666Q666666
9nnnn%%%%%r   c                  $   t          dt          d          it          d          t          d          dddt                    t          dt          d          it          d          t          d          dddt                    } t          t          d          t          d          ddt          d	          iddt                    }                    |           | z
  cxk    r|k    sn J t          t          fd
           d S )Nr   r   ra   r#   r   r   rL   rM   rb   c                       g z
  S r   r   r   s   r   r   ztest_SDM_sub.<locals>.<lambda>$  r   r   )r
   r   subr   r   r   s     @r   test_SDM_subr     s    "Q%%yr!uu1..//<<A"Q%%yr"vvA//00&"==A"R&&BqEE""qAi00&"==A5588q1u!!!!!!!!!!
9nnnn%%%%%r   c                  b   t          dt          d          it          d          t          d          dddt                    } t          dt          d          it          d          t          d          dddt                    }|                                 |  cxk    r|k    sn J d S )	Nr   r   ra   r#   r   rM   rL   ro   )r
   r   negr,   s     r   test_SDM_negr   '  s    "Q%%yr!uu1..//<<A"R&&z2"R&&1122FB??A5577qbAr   c                     t          dt          d          it          d          t          d          dddt                    } t          dt          d          it          d          t          d          dddt                    }|                     t                    }||k    sJ |j        t          k    sJ |                     t                    }|| k    sJ |j        t          k    sJ d S )Nr   r   ra   r#   r   )r
   r   r   r   r   )r    r-   r   Ds       r   test_SDM_convert_tor   -  s    "Q%%yr!uu1..//<<A"Q%%yr!uu1..//<<A	RA66668r>>>>	RA66668r>>>>>>r   c                     t          ddt          d          iidt                    } t          ddt          d          iidt                    }t          dt          d          t          d          didt                    }t          dt          d          idt          d          iddt                    }t          j        |           | k    sJ t          j        | |           |k    sJ t          j        | |          |k    sJ d S )Nr   r   r   )r   ra   )r   rb   ra   r#   )r
   r   hstackr    r-   AAABs       r   test_SDM_hstackr   9  s    Q"Q%%yM62&&AQ"Q%%yM62&&A	a2a55BqEE""#VR	0	0B	2a55	a1Y''	4	4B:a==A:ar!!!!:ar!!!!!!r   c                     t          ddt          d          iidt                    } t          ddt          d          iidt                    }t          dt          d          idt          d          iddt                    }t          dt          d          idt          d          iddt                    }t          j        |           | k    sJ t          j        | |           |k    sJ t          j        | |          |k    sJ d S )Nr   r   r   r9   )rb   r   )r   ra   )r
   r   vstackr   s       r   test_SDM_vstackr   C  s    Q"Q%%yM62&&AQ"Q%%yM62&&A	2a55	a1Y''	4	4B	2a55	a1Y''	4	4B:a==A:ar!!!!:ar!!!!!!r   c                      t          ddt          d          iidt                    } t          ddt          d          iidt                    }|                     d t                    |k    sJ d S )Nr   r   r   r   c                     d| z  S )Nr   r   )xs    r   r   z$test_SDM_applyfunc.<locals>.<lambda>P  s
    1 r   )r
   r   	applyfuncr,   s     r   test_SDM_applyfuncr   M  sg    Q"Q%%yM62&&AQ"Q%%yM62&&A;;}}b))Q......r   c                     t          t          d          t          d          dt          d          t          d          dddt                    } t          t          d          t          d          dt          dd          t          dd          dddt                    }|                                 |k    sJ d S )	Nr   r   r#   ra   rb   r   rL   rM   )r
   r   invr,   s     r   test_SDM_invr   S  s    "Q%%2a55!!1A%7%788&"EEA"R&&BqEE""AqRAYY&?&?@@&"MMA5577a<<<<<<r   c                      t          t          d          t          d          dt          d          t          d          dddt                    } |                                 t          d          k    sJ d S )Nr   r   r#   ra   rb   r   rL   )r
   r   detr   s    r   test_SDM_detr   Y  sh    "Q%%2a55!!1A%7%788&"EEA5577bffr   c                  v   t          t          d          t          d          dt          d          t          d          dddt                    } t          dt          d          it          d          t          d          dddt                    }|                                 d         |k    sJ d S )Nr   r   r#   ra   rb   r   r   )r
   r   lu)r    Ls     r   test_SDM_lur   ^  s    "Q%%2a55!!1A%7%788&"EEA"Q%%yr!uu1..//<<A
 4466!9>>>>>>r   c                     t          t          d          t          d          dt          d          t          d          dddt                    } t          dt          d          idt          d          iddt                    }t          ddt          dd          iidt                    }|                     |          |k    sJ |                     |          |k    sJ d S )	Nr   r   r#   ra   rb   r   r   r   )r
   r   r   lu_solve)r    r   r   s      r   test_SDM_lu_solver   h  s    "Q%%2a55!!1A%7%788&"EEA"Q%%yQr!uuI&&33AQ"Q((|fb))A88A;;!::a==Ar   c                  4   t          t          d          t          d          dt          d          t          d          dddt                    } |                                 t          d          t          d          t          d          gk    sJ d S )	Nr   r   r#   ra   rb   r   rL   )r
   r   charpolyr   s    r   test_SDM_charpolyr   p  s{    "Q%%2a55!!1A%7%788&"EEA::<<BqEE2b662b662222222r   c                     t          dt          d          t          d          didt                    } |                                 d         t          dt          d          t          d          didt                    k    sJ d S )Nr   r   r#   r   rM   rw   )r
   r   	nullspacer   s    r   test_SDM_nullspacer   u  su    Q"Q%%2a55!!"FB//A;;==sAB2a55&9&9#:FBGGGGGGGGr   c                     t          t          d          t          d          dt          d          t          d          dddt                    } t          dt          d          idt          d          iddt                    }|                                 |ddgfk    sJ t          t          d          t          d          t          d          dt          d          t          d          d	dd
t                    } t          t          dd          t          dd          d	t          dd          t          dd          ddd
t                    }|                                 |ddgfk    sJ d S )Nr   r   r#   ra   rb   r   r   r   r   r   r9   r~   rw   )r
   r   rrefr   )r    A_rrefs     r   test_SDM_rrefr   {  sl    	"Q%%2a55!!Q%%2a55!!# #$*B	0 	0AQr!uuI!BqEE++VR88F6688A'''''BqEEbee1..qEE1..0 017	= 	=AAaR!WW--AaR!WW--/ /06< <F6688A'''''''r   c                      t          ddt          d          iidt                    } t          j        dt                    }|                                 |k    sJ d S )Nr   r   r   rw   )r
   r   rq   
particular)r    Aparts     r   test_SDM_particularr     sQ    Q"Q%%yM62&&AIfb!!E<<>>U""""""r   c                      t          ddt          d          iidt                    } t          j        dt                    }|                                 du sJ |                                du sJ d S )Nr   r   r   rw   FT)r
   r   rq   is_zero_matrix)r    Azeros     r   test_SDM_is_zero_matrixr     sr    QBqEE
OVR((AIfb!!E&&&&!!T))))))r   c            	         t          t          d          t          d          t          d          t          d          dt          d          t          d          t          d          d	t          d
          t          d          dddt                    } t          t          d          t          d          t          d          t          d          dt          d          t          d          t          d          d	t          d          t          d
          t          d          d	ddt                    }|                                 du sJ |                                du sJ d S Nr   r   ra   rb   )r   r   r   ra   r   r   r   )r   r   ra   r   	   r~   r   )ra   rb   TF)r
   r   is_upperr,   s     r   test_SDM_is_upperr    s>   BqEEbee1"Q%%88 ee1"Q%%88(*1"Q%%$8$8: :;A2	G 	GA 	BqEEbee1"Q%%88 ee1"Q%%88 ee1"Q%%88: :;A2	G 	GA ::<<4::<<5      r   c            	      6   t          t          d          t          d          t          d          t          d          dt          d          t          d          t          d          d	t          d
          t          d          dddt                                                    } t          t          d          t          d          t          d          t          d          dt          d          t          d          t          d          d	t          d          t          d
          t          d          d	ddt                                                    }|                                 du sJ |                                du sJ d S r   )r
   r   r   is_lowerr,   s     r   test_SDM_is_lowerr    sV   BqEEbee1"Q%%88 ee1"Q%%88(*1"Q%%$8$8: :;A2	 	 ikk  	BqEEbee1"Q%%88 ee1"Q%%88 ee1"Q%%88: :;A2	 	 ikk  ::<<4::<<5      r   N)?__doc__	itertoolsr   sympy.core.singletonr   sympy.external.gmpyr   sympy.testing.pytestr   sympy.polys.domainsr   r   r	   sympy.polys.matrices.sdmr
   sympy.polys.matrices.ddmr   sympy.polys.matrices.exceptionsr   r   r   r!   r(   r.   r1   r7   r;   r>   rA   rD   rG   rJ   rX   r_   rf   rs   ru   ry   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   <module>r     sY          " " " " " " , , , , , , ' ' ' ' ' ' - - - - - - - - - - ( ( ( ( ( ( ( ( ( ( ( (; ; ; ; ; ; ; ; ; ;D D DF F F$ $ $  Q Q Q# # #< < <
) ) )
1 1 1    
	0 	0 	07 7 7(/ / /5 5 54  - - -1 1 1< < <
  * * *8 8 85 5 5<  "& & && & &  	 	 	" " "" " "/ / /    
    3 3 3
H H H( ( (# # #* * *! ! !
! 
! 
! 
! 
!r   