o
    jg3(                     @   s  d dl mZ d dlmZ edZerejejejZZZndZd dl	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mZmZ d d	lmZ d d
lZd d
l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$ dd Z%dd Z&dd Z'dd Z(dd Z)dd Z*dd Z+dd Z,dd  Z-d!d" Z.d#d$ Z/d%d& Z0d'd( Z1d)d* Z2d+d, Z3d-d. Z4e d/d0 Z5d1d2 Z6d3d4 Z7d5d6 Z8d7d8 Z9d9d: Z:d;d< Z;d
S )=    )version_tuple)import_modulenumpyT)FloatIntegerRational)Symbolsymbols)sin)Matrix
list2numpymatrix2numpysymarray)lambdifyN)xyz)conserve_mpmath_dps)ignore_warnings)raisesc                  C   s   dd } t d}t d}tddtd||t||| tdtd	g}td
gtg dt||d tdgt|| t| dtdgg}|D ]}|D ]}| || qLqHd S )Nc                 S   sD   | | ||  | | ||  | | ||  | | ||  | | ||  g
}d S )N )sympy_objectnumpy_array_r   r   W/var/www/html/zoom/venv/lib/python3.10/site-packages/sympy/external/tests/test_numpy.pys%   s   z test_systematic_basic.<locals>.sr   r         z1.3   g      @   )r      )r   r   r   powr   arrayr
   )r   r   r   
sympy_objs
numpy_objsr   r   r   test_systematic_basic$   s*   

r&   c                  C   s   t d} t d}tdt| ksJ t| gt| gksJ ttgttgks*J ttttdks6J t| t tdt ksDJ t| ||g}|t| ||gk sXJ |t| ddgk seJ d S )Nr   r   r   )r   r#   r   r   all)onezeroXr   r   r   test_basicsI   s   r+   c                  C   s   t d} t d}t| ||g}| | }ttdt dd g}|| }|tddtd  gks2J |d }|tddtd  gksEJ || }|tdgksRJ d S )Nr   r   ar   )r   r#   r   )r(   r)   r*   Yr   r   r   test_arraysW   s   r.   c                  C   sV   t td tg} t| tsJ | d td ksJ | d tks!J t| dks)J d S )Nr   r   r   )r   r   
isinstancendarraylenr,   r   r   r   test_conversion1e   s
   r3   c                  C   s   dt td tg } t dtd  dt g}| |k sJ td}td}t |||g}|| }t tdtdd g}|| }|tddtd  gksPJ |d }|tddtd  gkscJ || }|tdgkspJ d S )Nr   r   r   r,   )r   r   r'   r   r   r#   )r,   br(   r)   r*   r-   r   r   r   test_conversion2o   s   r5   c                   C   s,   t td tgttd tgk sJ d S )Nr   )r#   r   r   r'   r   r   r   r   test_list2numpy   s   ,r6   c                  C   s   t ttd gddt gg} t| tdtddgddggk s$J t tttd gddt gg} t| tdttddgddggk sLJ d S Nr   r      r   )r   r   r#   subsr'   r
   mr   r   r   test_Matrix1   s   , 4r<   c                  C   s   t ttd gddt gg} tt t| tdtddgddggk s)J W d    n1 s3w   Y  t tttd gddt gg} tt! t| tdttddgddggk seJ W d    d S 1 spw   Y  d S r7   )r   r   r   PendingDeprecationWarningmatrixr9   r'   r
   r:   r   r   r   test_Matrix2   s   
. 
2"r?   c                  C   s   t ddgddgg} t| tddgddggksJ t| tddgddggks*J t tddgddgg} t| ttddgddggksHJ t| ttddgddggksZJ d S Nr   r8   r   r   r   )r#   r   r
   r2   r   r   r   test_Matrix3   s     $(rA   c                  C   s  t t tddgddgg} W d    n1 sw   Y  t| tddgddggks.J t| tddgddggks>J t t ttddgddgg} W d    n1 sYw   Y  t| ttddgddggkspJ t| ttddgddggksJ d S r@   )r   r=   r>   r   r
   r2   r   r   r   test_Matrix4   s   
  
$(rB   c               	   C   s&  t g dtttgdt dtt gg} tt tg dtddgtttd gg}W d    n1 s3w   Y  | | t g ddt td td gdt t td tt td  ggks_J ||  t g ddt td td gdt t td tt td  ggksJ | | | |ksJ d S )	Nr   r   r   r   i)r   r   r8   r      )r   r      2   )r   r   r   r   r   r=   r>   add)Mr;   r   r   r   test_Matrix_sum   s   &
$NNrI   c               
   C   s~  t g dtttgg} tt tddgtdgttd gg}W d    n1 s)w   Y  | | t ddt  ddtd   gdt tt  td  dt dt  ttd   ggks^J ||  t ddt  ddt  ddt  gdt dt dt  d	t gtttd   dt ttd   dt ttd   ggksJ tdg}|d
 |  d|  ksJ | |d
  d|  ksJ d S )NrC   r   r8   rD   r      r   rE   	   r   )r   r   r   r   r=   r>   r   r#   )rH   r;   r,   r   r   r   test_Matrix_mul   s    
 2 4
rL   c                  C   s>   G dd d} |  }t |t g dg dg dgksJ d S )Nc                   @   s   e Zd ZedfddZdS )z#test_Matrix_array.<locals>.matarrayNc                 S   s:   |d ur
|s
t dddlm} |g dg dg dgS )Nz=Cannot implement copy=False when converting Matrix to ndarrayr   )r#   rC   r8   r   rD   rE   r    rK   )	TypeErrorr   r#   )selfdtypecopyr#   r   r   r   	__array__   s   z-test_Matrix_array.<locals>.matarray.__array__)__name__
__module____qualname__objectrS   r   r   r   r   matarray   s    rX   rC   rM   rN   )r   )rX   matarrr   r   r   test_Matrix_array   s   *rZ   c                  C   s   t tdtd gdtt dgg} t| tsJ | jdks J | d dks(J | d td ks2J | d dtt ks>J | d	 dksFJ d S )
Nr   r   r   r   )r   r   r   r   )r   r   )r   r   )r   r   )r   r   r   r
   r/   r0   shaper2   r   r   r   test_matrix2numpy   s   $r]   c                  C   s   t ddttgtd ttddgg} tddttgtd ttddgg}t| |k s0J t| jtdks<J tt ddgddggdd}tt ddgddggdd}|jtdksbJ |jtdkslJ d S )	Nr   r   rW   
      int8rQ   float64)	r   r
   r   r   r#   r   r'   rQ   r   )r,   r4   cdr   r   r   test_matrix2numpy_conversion   s   &&re   c                   C   s   t ddtdt dg ttdgk sJ t ddtdt dg tdt t dd t ddgk s8J tdtdt dg ttdt dgk sRJ tdtdt dg tdt td tdgk spJ d S )Nr   r   r   z0.5z1.0)r   r#   r   r'   r   r   r   r   r   test_issue_3728   s    .

4

rf   c                  C   s   dt j_t d} ttttd}d}| |d|    k r#|k s&J  J ttj	tdkrJt
t |t W d    d S 1 sCw   Y  d S t
t |t W d    d S 1 s^w   Y  d S )NrJ   z0.198669330795061215459412627r   gV瞯<g?z1.17)mpmathmpdpsmpfr   r   r
   r   r   __version__r   rO   AttributeError)sin02fprecr   r   r   test_lambdify   s   
&

"

"rp   c                  C   sR   t tttdt gddggdtjidg} | dtddgddggk s'J d S )Nr   r   ImmutableMatrixr   )r   r   r   r   r#   r'   )rn   r   r   r   test_lambdify_matrix  s   *(rr   c                  C   s   t td tt tt gtt td tt gtt tt td gg} ttttf| dtjidg}d\}}}t|d || || g|| |d || g|| || |d gg}||||}t||sfJ d S )Nr   rq   r   g      ?g       @g      @)	sympyr   r   r   r   r   r   r#   allclose)rH   rn   xhyhzhexpectedactualr   r   r    test_lambdify_matrix_multi_input  s   
r{   c                  C   sH  t d} t| d d | d | d  | d | d  g| d | d  | d d | d | d  g| d | d  | d | d  | d d gg}t| |dtjidg}tg d}t|d d |d |d  |d |d  g|d |d  |d d |d |d  g|d |d  |d |d  |d d gg}||}t||sJ d S )Nr*   r   r   r   rq   r   rs   )rt   DeferredVectorr   r   r   r#   ru   )r*   rH   rn   Xhry   rz   r   r   r   test_lambdify_matrix_vec_input  s   
(((*((r~   c                  C   s>   ddl m}  |  D ]\}}|tjv sJ |tjv sJ q
d S )Nr   )NUMPY_TRANSLATIONS)sympy.utilities.lambdifyr   itemsrt   __dict__r   )r   symmatr   r   r   test_lambdify_transl$  s
   r   c                  C   s>  ddl } ddlm} td}tdd}tdd}||| j|td |d |d ks-J tdd}tdd}|d |d krAJ td	}||| j|td tdd
}|jd
ks\J td\}	}
|d |	ksjJ |d |
ksrJ tdd}|jdks~J td\}}}|d |ksJ |d |ksJ |d |ksJ dS )z/Test creation of numpy arrays of SymPy symbols.r   Nz_0,_1,_2 r   ra   r,   r4   za_0,a_1,a_2)r   r   za_0_0,a_1_2r[   )r   r   )r   r   r   za_0_0_0,a_1_2_0,a_1_2_1)r   r   r   )r   r   r   )r   r   r   )	r   numpy.testingtestingr	   r   assert_array_equalr#   rW   r\   )npnptsymss1s2r,   r4   asymsa2da00a12a3da000a120a121r   r   r   test_symarray+  s.   





r   c                   C   s:   t tg dt tdtdtdgk sJ d S )NrC   r   r   r   )r   	vectorizer
   r#   r'   r   r   r   r   test_vectorizeM  s   
r   )<sympy.external.importtoolsr   sympy.externalr   r   r#   r>   r0   disabledsympy.core.numbersr   r   r   sympy.core.symbolr   r	   (sympy.functions.elementary.trigonometricr
   sympy.matrices.denser   r   r   r   r   r   rt   rg   	sympy.abcr   r   r   sympy.utilities.decoratorr   sympy.utilities.exceptionsr   sympy.testing.pytestr   r&   r+   r.   r3   r5   r6   r<   r?   rA   rB   rI   rL   rZ   r]   re   rf   rp   rr   r{   r~   r   r   r   r   r   r   r   <module>   sR   %
			
	
"