U
    ZÊ¹j3(  ã                   @   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dddgƒt||d tdƒgƒt|| t|ƒ dtdƒgƒg}|D ]}|D ]}| ||ƒ qšq’d S )Nc                 S   sD   | | ||  | | ||  | | ||  | | ||  | | ||  g
}d S )N© )Zsympy_objectZnumpy_arrayÚ_r   r   ú^/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/external/tests/test_numpy.pyÚs%   s    ÷z test_systematic_basic.<locals>.sr   r   é   é   z1.3é   g      @é   é   éÿÿÿÿ)r   r   r   Úpowr   Úarrayr
   )r   r   r   Z
sympy_objsZ
numpy_objsr   r   r   Útest_systematic_basic$   s&    ù
ür"   c                  C   sÎ   t dƒ} t dƒ}tdƒt| ƒks$t‚t| gƒt| gƒks<t‚ttgƒttgƒksTt‚ttƒttdƒƒkslt‚t| t ƒtdt ƒksˆt‚t| ||gƒ}|t| ||gƒk ¡ s°t‚|t| ddgƒk ¡ sÊt‚d S )Nr   r   r   )r   r!   ÚAssertionErrorr   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sdt‚|d }|tddtdƒ  gƒksŠt‚|| }|tdgƒks¤t‚d S )Nr   r   Úar   )r   r!   r   r#   )r%   r&   r'   ÚYr   r   r   Útest_arraysW   s    r+   c                  C   sV   t td tgƒ} t| tƒst‚| d td ks2t‚| d tksBt‚t| ƒdksRt‚d S )Nr   r   r   )r   r   Ú
isinstanceÚndarrayr#   Úlen©r)   r   r   r   Útest_conversion1e   s
    r0   c                  C   sä   dt td tgƒ } t dtd  dt gƒ}| |k ¡ s<t‚tdƒ}tdƒ}t |||gƒ}|| }t tdƒtddƒ gƒ}|| }|tddtdƒ  gƒks t‚|d }|tddtdƒ  gƒksÆt‚|| }|tdgƒksàt‚d S )Nr   r   r   r)   )r   r   r$   r#   r   r   r!   )r)   Úbr%   r&   r'   r*   r   r   r   Útest_conversion2o   s    r2   c                   C   s,   t td tgƒttd tgƒk ¡ s(t‚d S )Nr   )r!   r   r   r$   r#   r   r   r   r   Útest_list2numpy�   s    r3   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 ¡ sHt‚t ttƒtd gddt ggƒ} t|  td¡ƒttdƒdgddggƒk ¡ s˜t‚d S ©Nr   r   é   r   )r   r   r!   Úsubsr$   r#   r
   ©Úmr   r   r   Útest_Matrix1…   s    , r9   c               	   C   sÄ   t ttd gddt ggƒ} ttƒ�2 t|  td¡ƒtddgddggƒk ¡ sRt‚W 5 Q R X t ttƒtd gddt ggƒ} ttƒ�6 t|  td¡ƒttdƒdgddggƒk ¡ s¶t‚W 5 Q R X d S r4   )	r   r   r   ÚPendingDeprecationWarningÚmatrixr6   r$   r#   r
   r7   r   r   r   Útest_Matrix2Œ   s    
6 
r<   c                  C   s¸   t ddgddggƒ} t| ƒtddgddggƒks4t‚t| ƒtddgddggƒksTt‚t tdƒdgddggƒ} t| ƒttdƒdgddggƒks�t‚t| ƒttdƒdgddggƒks´t‚d S ©Nr   r5   r   r   r   )r!   r   r#   r
   r/   r   r   r   Útest_Matrix3•   s      $r>   c               	   C   sà   t tƒ� tddgddggƒ} W 5 Q R X t| ƒtddgddggƒksHt‚t| ƒtddgddggƒksht‚t tƒ� ttdƒdgddggƒ} W 5 Q R X t| ƒttdƒdgddggƒks¸t‚t| ƒttdƒdgddggƒksÜt‚d S r=   )r   r:   r;   r   r#   r
   r/   r   r   r   Útest_Matrix4ž   s    
  
"$r?   c               	   C   s  t dddgtttgdt dtt ggƒ} ttƒ�* tdddgtddgtttd ggƒ}W 5 Q R X | | t dddgdt td td gdt t td	 tt td  ggƒks°t‚||  t dddgdt td td gdt t td	 tt td  ggƒk�st‚| | |  |¡k�st‚d S )
Nr   r   r   iÎÿÿÿr5   r   é   é   é2   )	r   r   r   r   r   r:   r;   r#   Úadd)ÚMr8   r   r   r   Útest_Matrix_sum©   s    (
.PRrE   c               
   C   sr  t dddgtttggƒ} ttƒ�$ tddgtdgttd ggƒ}W 5 Q R X | | 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ªt‚||  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�s0t‚tdgƒ}|d
 |  d|  k�sTt‚| |d
  d|  k�snt‚d S )Nr   r   r   r5   r@   r   é   rA   é	   r   )	r   r   r   r   r:   r;   r   r#   r!   )rD   r8   r)   r   r   r   Útest_Matrix_mul²   s    
(2þ 4ý
rH   c                  C   sD   G dd„ dƒ} | ƒ }t |ƒt dddgdddgd	d
dggƒks@t‚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 k	r|st dƒ‚ddlm} |dddgddd	gd
ddggƒS )Nz=Cannot implement copy=False when converting Matrix to ndarrayr   )r!   r   r   r   r5   r   r@   rA   r   rG   )Ú	TypeErrorr   r!   )ÚselfÚdtypeÚcopyr!   r   r   r   Ú	__array__Ç   s    z-test_Matrix_array.<locals>.matarray.__array__)Ú__name__Ú
__module__Ú__qualname__ÚobjectrM   r   r   r   r   ÚmatarrayÆ   s   rR   r   r   r   r5   r   r@   rA   r   rG   )r   r#   )rR   Zmatarrr   r   r   Útest_Matrix_arrayÅ   s    rS   c                  C   s�   t tdtd gdttƒ dggƒƒ} t| tƒs2t‚| jdks@t‚| d dksPt‚| d td ksdt‚| d dttƒ ks|t‚| d	 dksŒt‚d S )
Nr   r   r   r   )r   r   ©r   r   )r   r   )r   r   )r   r   )r   r   r   r
   r,   r-   r#   Úshaper/   r   r   r   Útest_matrix2numpyÐ   s    $rV   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 ¡ s`t‚t| ƒjt	 d¡ksxt‚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sÄt‚|jt	 d¡ksØt‚d S )	Nr   r   rQ   é
   é   Zint8©rK   Zfloat64)
r   r
   r   r   r!   r   r$   r#   rK   r   )r)   r1   ÚcÚdr   r   r   Útest_matrix2numpy_conversionÚ   s    &&r\   c                   C   sä   t ddƒtdt dgƒ ttdgƒk ¡ s.t‚t ddƒtdt dgƒ tdt t ddƒ t ddƒgƒk ¡ spt‚tdƒtdt dgƒ ttdƒt dgƒk ¡ s¤t‚tdƒtdt dgƒ tdt tdƒ tdƒgƒk ¡ sàt‚d S )Nr   r   r   z0.5z1.0)r   r!   r   r$   r#   r   r   r   r   r   Útest_issue_3728æ   s    .

ÿÿ4
ÿÿr]   c               	   C   sš   dt j_t  d¡} ttttƒdƒ}d}| |dƒ|    k rD|k sJn t‚tt	j
ƒtdƒkrzttƒ� |tƒ W 5 Q R X nttƒ� |tƒ W 5 Q R X d S )NrF   z0.198669330795061215459412627r   gVçž¯Ò<gš™™™™™É?z1.17)ÚmpmathÚmpZdpsZmpfr   r   r
   r#   r   r   Ú__version__r   rI   ÚAttributeError)Zsin02ÚfÚprecr   r   r   Útest_lambdifyï   s    
$

rd   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 ¡ sNt‚d S )Nr   r   ÚImmutableMatrixr   )r   r   r   r   r!   r$   r#   )rb   r   r   r   Útest_lambdify_matrix  s    *rf   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 ||¡sÌt	‚d S )Nr   re   r   )ç      ð?ç       @ç      @)
Úsympyr   r   r   r   r   r   r!   Úallcloser#   )rD   rb   ÚxhZyhÚzhÚexpectedÚactualr   r   r   Ú test_lambdify_matrix_multi_input  s    þ
þrp   c                  C   sL  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ddd	gƒ}t|d d |d |d  |d |d  g|d |d  |d d |d |d  g|d |d  |d |d  |d d ggƒ}||ƒ}t ||¡�sHt‚d S )
Nr'   r   r   r   re   r   rg   rh   ri   )rj   ZDeferredVectorr   r   r   r!   rk   r#   )r'   rD   rb   ZXhrn   ro   r   r   r   Útest_lambdify_matrix_vec_input  s    
(((ý*((þrq   c                  C   s>   ddl m}  |  ¡ D ]$\}}|tjks*t‚|tjkst‚qd S )Nr   )ÚNUMPY_TRANSLATIONS)Úsympy.utilities.lambdifyrr   Úitemsrj   Ú__dict__r#   r   )rr   ÚsymZmatr   r   r   Útest_lambdify_transl$  s    rw   c                  C   sD  ddl } ddlm} tdƒ}tddƒ}tddƒ}| || j|td�¡ |d |d ksZt‚tddƒ}tddƒ}|d |d kr‚t‚td	ƒ}| || j|td�¡ tdd
ƒ}|j	d
ks¸t‚tdƒ\}	}
|d |	ksÔt‚|d |
ksät‚tddƒ}|j	dksüt‚tdƒ\}}}|d |k�st‚|d |k�s.t‚|d |k�s@t‚dS )z/Test creation of numpy arrays of SymPy symbols.r   Nz_0,_1,_2Ú r   rY   r)   r1   za_0,a_1,a_2)r   r   za_0_0,a_1_2rT   )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   Znumpy.testingZtestingr	   r   Zassert_array_equalr!   rQ   r#   rU   )ÚnpZnptZsymsÚs1Ús2r)   r1   ZasymsZa2dZa00Za12Za3dZa000Za120Za121r   r   r   Útest_symarray+  s.    





r|   c                   C   s<   t  t¡dddgƒt  tdƒtdƒtdƒg¡k ¡ s8t‚d S )Nr   r   r   )r   Z	vectorizer
   r!   r$   r#   r   r   r   r   Útest_vectorizeM  s    ÿÿÿr}   )<Zsympy.external.importtoolsr   Zsympy.externalr   r   r!   r;   r-   ÚdisabledZsympy.core.numbersr   r   r   Zsympy.core.symbolr   r	   Z(sympy.functions.elementary.trigonometricr
   Zsympy.matrices.denser   r   r   r   rs   r   rj   r^   Z	sympy.abcr   r   r   Zsympy.utilities.decoratorr   Zsympy.utilities.exceptionsr   Zsympy.testing.pytestr   r"   r(   r+   r0   r2   r3   r9   r<   r>   r?   rE   rH   rS   rV   r\   r]   rd   rf   rp   rq   rw   r|   r}   r   r   r   r   Ú<module>   sP   %
			
	
"