HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/numpy/f2py/tests/__pycache__/test_symbolic.cpython-310.pyc
o

���g�G�@s�ddlZddlmZmZmZmZmZmZmZm	Z	m
Z
mZmZm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZddlmZGdd�dej�Z dS)�N)�Expr�Op�ArithOp�Language�	as_symbol�	as_number�	as_string�as_array�
as_complex�as_terms�
as_factors�eliminate_quotes�
insert_quotes�
fromstring�as_expr�as_apply�as_numer_denom�
as_ternary�as_ref�as_deref�	normalize�as_eq�as_ne�as_lt�as_gt�as_le�as_ge�)�utilc@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�TestSymboliccCsrdd�}dD]0}||d�||d|d�||d�||d|d�||d	�|d
|d�qdS)NcSs&t|�\}}t||�}||ksJ�dS�N)r
r)�s�r�d�s1�r%�I/usr/local/lib/python3.10/dist-packages/numpy/f2py/tests/test_symbolic.py�worker%s
z2TestSymbolic.test_eliminate_quotes.<locals>.worker)��mykind_z"1234" // "ABCD"z
"1234" // z"ABCD"z"1234" // 'ABCD'z'ABCD'z"1\"2'AB'34"za = z'1\'2"AB"34'r%)�selfr'�kindr%r%r&�test_eliminate_quotes$s�z"TestSymbolic.test_eliminate_quotescCs�td�}td�}td�}|jtjksJ�t|�dksJ�||ks"J�||ks(J�t|�dus0J�td�}td�}|jtjks@J�t|�dksHJ�||ksNJ�||ksTJ�t|�dus\J�td�}td	�}|jtjkslJ�t|�d
kstJ�||kszJ�||ks�J�t|�dus�J�t	dd�}t	d
d�}	|jtj
ks�J�t|�dks�J�||ks�J�||	ks�J�t|�dus�J�td�}
td�}|
jtjks�J�t|
�dks�Jt|
���|
|
ks�J�|
|ks�J�t
||f�}t
|f�}
|jtjks�J�t|�dks�J�||ks�J�||
k�sJ�t|�}t|�}|jtjk�sJ�t|�dk�s J�||k�s'J�||k�s.J�t|�du�s7J�t|�}t|�}|jtjk�sHJ�t|�dk�sQJ�||k�sXJ�||k�s_J�t|�du�shJ�t|||�}t|||�}|jtjk�s}J�||k�s�J�||k�s�J�t|�du�s�J�t||�}t||�}|jtjk�s�J�||k�s�J�||k�s�J�t|�du�s�J�dS)N�x�y�zzExpr(Op.SYMBOL, 'x')�{��zExpr(Op.INTEGER, (123, 4))g������(@g������F@zExpr(Op.REAL, (12.3, 4))r���zFExpr(Op.COMPLEX, (Expr(Op.INTEGER, (1, 4)), Expr(Op.INTEGER, (2, 4))))z'123'�"ABC"zExpr(Op.STRING, ("'123'", 1))zHExpr(Op.ARRAY, (Expr(Op.INTEGER, (123, 4)), Expr(Op.INTEGER, (456, 4))))z)Expr(Op.TERMS, {Expr(Op.SYMBOL, 'x'): 1})z+Expr(Op.FACTORS, {Expr(Op.SYMBOL, 'x'): 1}))r�opr�SYMBOL�repr�hashr�INTEGER�REALr
�COMPLEXr�STRINGr	�ARRAYr�TERMSr�FACTORSr�TERNARYrr�
RELATIONAL)r*r-r.r/�n�m�fn�fm�c�c2r!�s2�a�b�t�u�v�w�e�fr%r%r&�test_sanity2s�




zTestSymbolic.test_sanityc	
Cs�td�}td�}td�}td�}td�}t||f�}t||�}t|�dks'J�t|�dks/J�t|�dks7J�t|�dks?J�tttj|d	i��dksMJ�tttj|d
i��dks[J�tttj|di��d
ksiJ�tttj|di��dkswJ�tttj|d	|d	i��dks�J�tttj|d|di��dks�J�tttj|d
|di��dks�J�tttj|d|di��dks�J�tttj|d
|di��dks�J�tttj|d	i��dks�J�tttj|d
i��dks�J�tttj|di��dks�J�tttj|di��dks�J�tttj|d	|d	i��dk�sJ�tttj|d
|di��dk�s!J�ttj|d
ttj|d	|d	i�di�}t|�dk�s@Jt|���ttj|d
ttj|d	|d	i�di�}t|�dk�s_Jt|���tttj	ddif��d k�soJ�tttj	d|fif��d!k�s�J�tttj	d||fif��d"k�s�J�tttj
d|f��d#k�s�J�tt|||��d$k�s�J�tt||��d%k�s�J�tt
||��d&k�s�J�tt||��d'k�s�J�tt||��d(k�s�J�tt||��d)k�s�J�tt||��d*k�s�J�dS)+Nr-r.r/r0r1�123z
[123, 456]z
(123, 456)rr2z2 * x���z-x���z-2 * x�x + yz-x - yr3z
2 * x + 3 * yz-2 * x + 3 * y���z
2 * x - 3 * y�x ** 2zx ** -1zx ** -2�x * yzx ** 2 * y ** 3zx ** 2 * (x + y) ** 3zx ** 2 * (x * y) ** 3rQr%zf()�f(x)zf(x, y)�f[x]zmerge(y, z, x)�x .eq. y�x .ne. y�x .lt. y�x .le. y�x .gt. y�x .ge. y)rrr	r
�strrrr?r@�APPLY�INDEXINGrrrrrrr)	r*r-r.r/rCrDrJrGrNr%r%r&�test_tostring_fortran�sR
     ""$$ "$z"TestSymbolic.test_tostring_fortrancCs�tj}td�}td�}td�}td�}ttj|di�j|d�dks#J�ttj||di�j|d�dks5J�ttj|d	i�j|d�d
ksEJ�tt	j
||�j|d�dksTJ�tt	j
|||�j|d�dkseJ�tt	j
||||�j|d�d
ksxJ�||||||j|d�dks�J�t|||�j|d�dks�J�t||�j|d�dks�J�t
||�j|d�dks�J�t||�j|d�dks�J�t||�j|d�dks�J�t||�j|d�dks�J�t||�j|d�dks�J�dS)Nr-r.r/r0r2��languagezx * xz(x + y) * (x + y)�z
pow(x, 12)�x / yzx / (x + y)z(x - y) / (x + y)z123 + x + (x - y) / (x + y)z(x?y:z)�x == y�x != y�x < y�x <= y�x > y�x >= y)r�Crrrrr@�tostringrr�DIVrrrrrrr)r*rgr-r.r/rCr%r%r&�test_tostring_c�sn ������������������zTestSymbolic.test_tostring_cc
Cstd�}td�}td�}||ttj|di�ksJ�||ttjd�ks&J�||ttj|d|di�ks6J�||ttj|d|di�ksFJ�||ttj|di�ksTJ�||ttj|d|di�ksdJ�|
|kskJ�|ttj|di�ks}Jt|���d|ttj|di�ks�J�d|ttj|dtd�di�ks�J�d|d|ttj|d|di�ks�J�||dttj|d|di�ks�J�|dttj|di�ks�J�||dttjttj|di�dttj|di�dttj|d|di�di�ks�J�||||d||k�s
J�||d|dd|||dk�s!J�||d||dd|dd|dk�s<J�|||||||k�sMJ�|||||||k�s^J�|dtt	j
|td��k�snJ�d|d|k�syJ�d|dtt	j
d|td��k�s�J�d	|dd|k�s�J�d
|dtt	j
d
|td��k�s�J�d|dd|k�s�J�d|dtt	j
d
|td��k�s�J�d
|d|d	d|d|dtt	j
d
|d	|�k�s�J�d|dd
tt	j
|td��k�s
Jd|dd
��|d
|tt	j
|dtd
��k�s!J�|dttj|di�k�s0J�td�}td�}||ttjd�k�sEJ�||ttj
||f�k�sTJ�||ttj
||f�k�scJ�tdd�}|tdd�k�ssJ�||td�k�s~J�||td�k�s�J�dS)Nr-r.r/r2)rr4rrTr3r4�����g@g�?r5�"123")z"ABC123"rg�?g�g�y@@y�@)rrrr?r:r@r8rrrrrrr=�CONCATr
r)r*r-r.r/r!rLrGr%r%r&�test_operations�st   $$($��
�".6"" ((((�
��(
zTestSymbolic.test_operationscCsRtd�}td�}td�}t||f�}|�||i�|ksJ�||�||i�||ks,J�||�||i�||ks;J�|d�||i�|dksJJ�||�||i�||ksYJ�|�|||i�||kshJ�|�|||i�t|||f�ks{J�t|||��|||i�t||||�ks�J�t||��|||i�t|||�ks�J�dS)Nr-r.r/r4)rr	�
substituterr)r*r-r.r/rJr%r%r&�test_substitutes"&��.zTestSymbolic.test_substitutec	Cs&td�}td�}td�}td�}td�}td�}t||f�}td�|ks&J�td�|ks.J�td�|ks7J�td	�||ksAJ�td
�|dksKJ�td�||ksUJ�td
�|dks_J�td�||ksiJ�tdtjd�|dksvJ�tdtjd�|dks�J�td�|||ks�J�td�||�ks�J�td�|||�ks�J�td�||ks�J�td�|||ks�J�td�|ks�J�ttdtjd��||ks�J�td�||�ks�J�td�tdd�ks�J�td�|ks�Jtd���td�||�ks�J�td�t|||f�k�sJ�td �td!�k�sJ�td"�td!d�k�s#J�td#�td!d$�k�s/J�td%�td&d'�k�s;J�td(�td&d'�k�sGJ�td)�td&d�k�sSJ�td*�td&d'�k�s_J�td+�td&d�k�skJ�td,�td&d�k�swJ�td-�td&d'�k�s�J�td.�td&d�k�s�J�td/�td&d0�k�s�J�td1�td2d'�k�s�J�td3�t	dd�k�s�J�td4�t	td5�td6��k�s�J�td7�ttd�td�f�k�s�J�td8�t
td9�|td�d:�k�s�J�td;�t
td<�td=�td>�ttd?�td@�f�dA�k�sJ�tdB�t|||�k�sJ�tdC�t|�k�sJ�tdD�tt|��k�s(J�tdE�t
|�k�s3J�tdF�t|�t|�k�sBJ�tdG�t|�t|�k�sQJ�tdH�t|�t|�k�s`J�tdI�t|�t|�k�soJ�tdJ�t||�k�s{J�tdK�t||�k�s�J�tdL�t||�k�s�J�tdM�t||�k�s�J�tdN�t||�k�s�J�tdO�t||�k�s�J�tdPtjd�t||�k�s�J�tdQtjd�t||�k�s�J�tdRtjd�t||�k�s�J�tdStjd�t||�k�s�J�tdTtjd�t||�k�sJ�tdUtjd�t||�k�sJ�dS)VNr-r.r/rQr5ryz+ xz-  xrVzx + 1rrYzx * 2r2rirXrfzx ** 2 ** 3�z(x + y) * zrZzf(x,y)r[zf[x][y]z"ABC" // "123" zf("ABC")zMYSTRKIND_"ABC"�	MYSTRKINDz(/x, y/)zf((/x, y/))z(/(x+y)*z/)rSr0�123_2�
123_myintkind�	myintkindz123.0g�^@r4z123.0_4z123.0_8z123.0e0z123.0d0�123d0z123e-0z123d+0z123.0_myrealkind�
myrealkind�3E4gL�@z(1, 2)z	(1e2, PI)gY@�PIz[1, 2]z
POINT(x, y=1)�POINT)r.z-PERSON(name="John", age=50, shape=(/34, 23/))�PERSONz"John"�2�"�)�name�age�shapezx?y:zz*xz**xz&xz(*x) * (*y)z	(*x) * *yz*x * *yz*x**yrjrkrlrnrmror\r]r^r`r_ra)rrr	rr�Pythonr�Fortranrr
rrrrrrrrrr)r*r-r.r/rQr!rLrJr%r%r&�test_fromstring&s���� �"���
�"zTestSymbolic.test_fromstringcstd��td�}td�}td�}|f�fdd�	}��|�|ks!J�|�|�|ks*J�|�|�|ks3J�||��|�||�ks@J�|���|�||�ksMJ�||�|�||ksZJ�||�|�||ksgJ��||�|�d||ksxJ��||�|��|�|||td��ks�J�t�|��|�t||�ks�J�t��t����fd	d
�}�||�|��|��|hks�J���||hks�J�dd�}t���||�|��|����|||hks�J�d
d�}t���||�|��|����hk�sJ�dS)Nr-r.r/rQcs|�kr|SdSr r%)r!r"�r-r%r&�
replace_visit�s�z1TestSymbolic.test_traverse.<locals>.replace_visitr2rcsd|jtjur|jd}��|�|�vr��|�dSdS|jtjur.|�vr0��|�dSdSdS)Nr)r6rrc�data�add�remover7)r!�oper)�function_symbols�symbolsr%r&�collect_symbols�s

��z3TestSymbolic.test_traverse.<locals>.collect_symbolscSs|jtjur
|�|�dSdSr )r6rr7r���exprr�r%r%r&�collect_symbols2�s�z4TestSymbolic.test_traverse.<locals>.collect_symbols2cSs.|jtjur|S|jtjur|�|�dSdSr )r6rrcr7r�r�r%r%r&�collect_symbols3�s
�z4TestSymbolic.test_traverse.<locals>.collect_symbols3)r�traverserr�set)r*r.r/rQr�r�r�r�r%)r�r�r-r&�
test_traverse�sF"���	zTestSymbolic.test_traversecs�td��td�}td�}����td�td�fksJ��d���td�td�fks,J�d����td�td�fks=J�d�d���td�td�fksPJ�td����td�td�fksaJ�|���td�|fksnJ�||���td�||fksJ��|���td�|fks�J�|�|���||fks�J�||�|���|||fks�J�||�|���|||fks�J�t�t�fdd	��dS)
Nr-r.r/rrr2r3cs�����Sr )�linear_solver%r�r%r&�<lambda>�sz0TestSymbolic.test_linear_solve.<locals>.<lambda>)rr�r�pytest�raises�RuntimeError)r*r.r/r%r�r&�test_linear_solve�s""&""&&zTestSymbolic.test_linear_solvecCs�td�}td�}td�}t|�|td�fksJ�t||�||fks$J�t||�||fks0J�t||�||fks<J�t||�||td�fksLJ�t|||�||||fks^J�t|||||�||d|||fksxJ�dS)Nr-r.r0rr2)rrr�r*r-r.rCr%r%r&�test_as_numer_denom�s $8z TestSymbolic.test_as_numer_denomcCs�td�}td�}td�}|��|hksJ�|��t�ksJ�||��||hks+J�||���||�hks8J�||�|��||�|hksHJ�||�||��||�||hks\J�||�|��||�hkskJ�dS)Nr-r.r0)rr�polynomial_atomsr�r�r%r%r&�test_polynomial_atoms�s ("z"TestSymbolic.test_polynomial_atomsN)�__name__�
__module__�__qualname__r,rRrersr{r}r�r�r�r�r�r%r%r%r&r#sQ1 @^>
r)!r��numpy.f2py.symbolicrrrrrrrr	r
rrr
rrrrrrrrrrrrrrrr(r�F2PyTestrr%r%r%r&�<module>st