U
    L?hÇ  ã                   @   s  d dl mZ d dlmZ d dlmZ d dl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 d dlmZmZmZmZ d d	lmZ d d
lmZ edƒZedƒ\ZZedƒZedƒZedƒZ dd„ Z!dd„ Z"dd„ Z#dd„ Z$dd„ Z%dd„ Z&edd„ ƒZ'dd„ Z(ed d!„ ƒZ)d"S )#é    )ÚFunction)ÚRational)ÚEq)ÚSymbolÚsymbols)ÚexpÚlog)Úsqrt)ÚatanÚsinÚtan)Úclassify_odeÚcheckinfsolÚdsolveÚinfinitesimals)Úcheckodesol)ÚXFAILÚC1zx yÚfÚxiÚetac               
   C   sŠ  t dƒ\} }}}}}}}ttƒ t¡}t|td ttƒ ƒ}	ttƒ t¡| ttƒ  |t|t ƒ  }
ttƒ t¡dt ttƒ  tttd  ƒ  }ddt  | d dtttƒ ƒ  }ttƒ t¡|td  |td   |td   |t  | tddƒ  }td | ttƒ td ttdt  ƒ  }|	|
||||g}t|	dd}|ttttƒƒttd d ƒt	tttƒƒd	ittttƒƒttƒt	tttƒƒd	ittttƒƒd	t	tttƒƒtd
 igksÈt
‚t|
dd}|ttttƒƒt|  t ƒt	tttƒƒd	igks
t
‚t|dd}|ttttƒƒttd  ƒt	tttƒƒd	igksLt
‚t|dd}|ttttƒƒd	t	tttƒƒdt d ittttƒƒd	t	tttƒƒdtttƒƒd  igksºt
‚t|dd}|ttttƒƒdt	tttƒƒd	ittttƒƒd	t	tttƒƒt||t  |td   |td   |td   ƒigks@t
‚t|dd}|t	tttƒƒd	ttttƒƒtdt ƒigks€t
‚||||||g}t||ƒD ]"\}	}t|	|ƒ}|d	 sšt
‚qš|ttƒt tttd ttƒ ƒ d   }t|dd}|ttttƒƒttƒtt ƒ t	tttƒƒd	igks0t
‚t||ƒd	 sDt
‚tttƒ t¡ d ttƒd  }t|dd}t||ƒd	 s†t
‚d S )Nza b c a4 a3 a2 a1 a0é   é   é   é   éÿÿÿÿZabaco1_simple©Úhintr   éþÿÿÿZabaco1_productÚchi)r   r   ÚxÚdiffr   r   r   r   r   r   ÚAssertionErrorr	   Úzipr   r   )ÚaÚbÚcZa4Úa3Za2Za1Za0ÚdfÚeqZeq1Zeq2Zeq3Zeq4Zeq5ZeqlistÚiÚi1Úi2Zi3Úi4Zi5ZilistÚcheckZeq6Zeq7© r/   úX/var/www/html/venv/lib/python3.8/site-packages/sympy/solvers/ode/tests/test_lie_group.pyÚtest_heuristic1   sT    *0&H,,""þ66(.ÿ  2ÿÿ4
,:"r1   c                  C   sî   t dƒ\} }ttƒ t¡}td | tttƒ  ttƒd  td  }t|dd}|ttttƒƒttƒttttƒƒtigks€t‚t||ƒd s’t‚td ttƒd  |  | td  ttƒ  d | t  }t|dd}t||ƒd sêt‚d S )Núa br   Z	bivariater   r   )	r   r   r    r!   r   r   r   r"   r   )r$   r%   r(   r)   r*   r/   r/   r0   Útest_heuristic3E   s    ,.:r3   c                  C   sÊ   t tƒ t¡ddtd t tƒd    tt tƒt ƒ ddt tƒ  t  ddt tƒ  tt tƒd     } t| dd}|ttt tƒƒt tƒd td  ttt tƒƒdigks´t‚t| |ƒd sÆt‚d S )Nr   r   r   Zfunction_sumr   r   r   )	r   r    r!   r
   r   r   r   r"   r   )r)   r*   r/   r/   r0   Útest_heuristic_function_sumS   s    Jÿ:r4   c                  C   s*  t dƒ\} }tdƒ}ttƒ t¡|| t |ttƒ  ƒ }t|dd}|ttttƒƒ|  | ttttƒƒdigksvt‚t	||ƒd sˆt‚ttƒ t¡ttƒd t
ttƒt ƒtd  dt ttƒ    }t|dd}|ttttƒƒttƒd ttttƒƒttƒd igkst‚t	||ƒd s&t‚d S )Nr2   ÚFZabaco2_similarr   r   r   r   )r   r   r   r    r!   r   r   r   r"   r   r   ©r$   r%   r5   r)   r*   r/   r/   r0   Útest_heuristic_abaco2_similar[   s    &0B<r7   c                  C   s¾  t dƒ\} }tdƒ}ttƒ t¡t| d  ttƒd|   |t|  |  ttƒ| |  ƒ  }t|dd}|ttttƒƒttƒ ttƒ|   ttttƒƒtt|    igks²t‚t	||ƒd sÄt‚ttƒ t¡t
|td ttƒd  ƒttttƒ ƒ ƒ }t|dd}|ttttƒƒtttttƒƒttƒ igks<t‚t	||ƒd sPt‚tttƒ t¡ ttƒ dt  d dt ttƒ  dtd   d|   }t|dd}t	||ƒd sºt‚d S )	Nr2   r5   r   Zabaco2_unique_unknownr   r   r   r   )r   r   r   r    r!   r   r   r   r"   r   r   r
   r6   r/   r/   r0   Ú$test_heuristic_abaco2_unique_unknowni   s    JH:2Jr8   c                  C   sx   t dƒ\} }}}t||d  |  ttƒ t¡ | ttƒ|   |t||d     }t|dd}t||ƒd stt‚d S )Nza b m nr   Zlinearr   r   ©r   r    r   r!   r   r   r"   )r$   r%   ÚmÚnr)   r*   r/   r/   r0   Útest_heuristic_linear|   s    Fr<   c                  C   sh   t dƒ\} }}}td | ttƒd  ttƒ t¡  |t|   | }t|dd}t||ƒd sdt‚d S )Nza b alpha cr   Zsum_functionr   r   r9   )r$   r%   Úalphar&   r)   r*   r/   r/   r0   Ú
test_kamke„   s    6r>   c                  C   s¤   t dƒ} | t| ƒ | ¡ d t| ƒd  }tt| ƒt| d  t| d   ƒ}tt| ƒd ƒtt| ƒd ƒ ddœ}t|fddi|—Ž|ksŽt‚t||ƒdks t‚d S )	Nr    r   r   r   )r   r   r   Ú	lie_group)Tr   )	r   r   r!   r   r   r	   r   r"   r   )r    r)   Zsolr   r/   r/   r0   Útest_user_infinitesimalsŒ   s    ""&r@   c                  C   s4   t ttƒ t¡ttƒ ƒ} dt| ttƒƒks0t‚d S )Nr?   )r   r   r    r!   r   r"   )Zeqnr/   r/   r0   Útest_lie_group_issue15219•   s    rA   N)*Zsympy.core.functionr   Zsympy.core.numbersr   Zsympy.core.relationalr   Zsympy.core.symbolr   r   Z&sympy.functions.elementary.exponentialr   r   Z(sympy.functions.elementary.miscellaneousr	   Z(sympy.functions.elementary.trigonometricr
   r   r   Zsympy.solvers.oder   r   r   r   Zsympy.solvers.ode.subscheckr   Zsympy.testing.pytestr   r   r    Úyr   r   r   r1   r3   r4   r7   r8   r<   r>   r@   rA   r/   r/   r/   r0   Ú<module>   s2   .
	