
    sg                        d dl mZ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mZ d dlmZ d dlmZmZmZmZ  ed	      \  ZZZ ed
ee      Z edee      Z edee      Z edee      Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&y)    )Matrixeye)
ShapeError)MatAdd)Identity	OneMatrix
ZeroMatrix)symbols)raiseswarns_deprecated_sympy)MatrixSymbol)HadamardProducthadamard_productHadamardPowerhadamard_powerzn,m,kZABCc                     t        t        t        t              j                  t        j                  k(  sJ t	        t
        d        t	        t
        d        t        t        dt        z  t               d   dt        d   z  t        d   z  t        d   z  k(  sJ t        t        t        z  t              t        z  } | j                  t        t        fk(  sJ t        t        t        t        t              j                  j                        t        j                  t        j                  t        j                  hk(  sJ y )Nc                  *    t        t        t              S N)r   r   n     a/var/www/html/venv/lib/python3.12/site-packages/sympy/matrices/expressions/tests/test_hadamard.py<lambda>z&test_HadamardProduct.<locals>.<lambda>   s    q!4 r   c                  "    t        t        d      S )N   )r   r   r   r   r   r   z&test_HadamardProduct.<locals>.<lambda>   s    q!4 r      r   r   )r   r   r   shaper   	TypeErrorr   r   r   ksetTargs)mixs    r   test_HadamardProductr*      s    1a#))QWW444
945
9451acA2&t,4L1T7"QtW,- - - !A#q
!!
#C99Aq!Q'))../ACCacc?BBBr   c                  Z    t        t        t              t        t        t              k7  sJ y r   )r   r   r   r   r   r   %test_HadamardProduct_isnt_commutativer,   !   s    1a OAq$9999r   c                      t        ddd      } t        ddd      }t        ddd      }| t        ||      z  d   | d   |d   z  |d   z  | d   |d   z  |d   z  z   k(  sJ y )NXr    Yr   r   r   r   r   r   r   )r   r   )r.   r/   r   s      r   test_mixed_indexingr3   %   s    S!QAS!QAS!QAoa##T*dGAdGOAdG#agagoag&==> > >r   c                  R   t        ddd      } t        ddd      }t               5  t        | d      }d d d        t        t              sJ |j	                         }t        |t               sJ t        dd      }t        dd      }t        ||       j	                         |k(  sJ t        || | |      j	                         t        | d      k(  sJ t        | ||      j	                         t        | |      k(  sJ t        | |||      j	                         |k(  sJ y # 1 sw Y   xY w)Nr.   r    r/   F)check)r   r   r   
isinstancedoitr	   r   r   )r.   r/   exprexpr2r   Us         r   test_canonicalizer;   .   s   S!QAS!QA		! /q./dO,,,IIKEe\***1aA!QA1a %%'1,,,1aA&++-q!1DDDD1a#((*oa.CCCC1aA&++-222/ /s   DD&c                     t        dd      \  } }}t        d| |      }t        d| |      }t        d| |       }t        |       }t        t        d        t        |      |k(  sJ t        t        ||      t              sJ t        ||      j                         t        ||      k(  sJ t        ||      t        ||      k(  sJ t        t        ||      t              sJ t        dt        d	      }t        t        t        d	      t        t        d	            }t        ||      }|j                         |k(  sJ t        t        d
        y )Nm, n, pTintegerr   r   r.   c                      t               S r   )r   r   r   r   r   ztest_hadamard.<locals>.<lambda>E   s
    .0 r   ar   c                      t               S r   r   r   r   r   r   ztest_hadamard.<locals>.<lambda>Q   s	    0 r   )r
   r   r   r   r$   r   r6   r   r7   r%   r   r	   r   
ValueError)	mr   pr   r   r.   IrA   r8   s	            r   test_hadamardrH   >   s)   i.GAq!S!QAS!QAS!QAA
901A!###&q!,o>>>Aq!&&(,<Q,BBBBAq!_Q%::::&q!,o>>>S!QA*Q"IaO4D4#D99;!
:01r   c            	      >   t        ddd      j                         } t        ddd      j                         }t        ddd      }t        | |      }t        t	        | |      D cg c]
  \  }}||z   c}}      j                  dd      }||k(  sJ t        | ||      }|t        ||      k(  sJ t        t        d      |       }|t        | d   ddgd| d   dgdd| d   gg      k(  sJ t        t        d      t        d            }|t        d      k(  sJ y c c}}w )	Nr      r   r.   r0   r   r!   )r    r    )r   as_explicitr   r   zipreshaper   r   )r   r   r.   r8   ijrets          r   'test_hadamard_product_with_explicit_matrQ   T   s   S!Q++-AS!Q++-AS!QAAq!D
#a),$!Q!A#,
-
5
5a
;C3;;Aq!$D?3****CFA&D6AdGQ?Q$OaAdG_MNNNNCFCF+D3q6>> -s   $D
c                  |   t        dd      \  } }}t        d| |      t        d      k(  sJ t        t        d      t              sJ t        |      j
                  t        j
                  |      k(  sJ t        |      d   d   |z  k(  sJ t        | |      | |z  k(  sJ t        t        fd       y )	Nr=   Tr>   r   r   r    r0   c                      t                S r   )r   )r   s   r   r   z%test_hadamard_power.<locals>.<lambda>l   s    ~a3 r   )r
   r   r   r6   r   r'   r   rD   )rE   r   rF   r   s      @r   test_hadamard_powerrT   c   s    i.GAq!S!QA!Q1$$$nQ*M:::!Q!!^ACC%;;;;!Q%4!333!Q1a4'''
:34r   c                  8   t        ddd      } t        ddd      }t        d      \  }}t        ||      ||z  k(  sJ t        ||      j                         t	        ||d   z  ||d   z  g||d   z  ||d   z  gg      k(  sJ t        | |      j                         t	        | d   |z  | d   |z  g| d   |z  | d   |z  gg      k(  sJ t        | |      j                         t	        | d   |d   z  | d   |d   z  g| d   |d   z  | d   |d   z  gg      k(  sJ y )	Nr   r    r   za br0   r1   r2   r!   )r   r
   r   rK   r   )r   r   rA   bs       r   test_hadamard_power_explicitrW   o   sy   S!QAS!QA5>DAqA!Q$&&&A**,$ZAdG$$ZAdG$& 	'' ' '
 A**,tWaZ4!$tWaZ4!$& 	'' ' '
 A**,tWagqw$/0tWagqw$/02 	33 3 3r   c                       t        ddd       t        ddd      t        t         fd       t        t         fd       t        ddd       t        t         fd       t        t         fd       y )	Nr   r    rJ   r   c                      t               S r   rC   r   r   s   r   r   z"test_shape_error.<locals>.<lambda>       q!4 r   c                      t               S r   r   rZ   s   r   r   z"test_shape_error.<locals>.<lambda>       }Q2 r   c                      t               S r   rC   rZ   s   r   r   z"test_shape_error.<locals>.<lambda>   r[   r   c                      t               S r   r]   rZ   s   r   r   z"test_shape_error.<locals>.<lambda>   r^   r   )r   r   r   rZ   s   @@r   test_shape_errorra      sY    S!QAS!QA
:45
:23S!QA
:45
:23r   N)'sympy.matrices.denser   r   sympy.matrices.exceptionsr   !sympy.matrices.expressions.mataddr   "sympy.matrices.expressions.specialr   r   r	   
sympy.corer
   sympy.testing.pytestr   r   sympy.matricesr   sympy.matrices.expressionsr   r   r   r   r   rE   r%   r   r   r   r   r*   r,   r3   r;   rH   rQ   rT   rW   ra   r   r   r   <module>rj      s    , 0 4 N N  ? ' i i
'
1aaaaaC:>3 2,	53.4r   