o
    æð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ãJ ‚t|
dd}|ttttƒƒt|  t ƒt	tttƒƒd	igksJ ‚t|dd}|ttttƒƒttd  ƒt	tttƒƒd	igks%J ‚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\J ‚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ŸJ ‚t|dd}|t	tttƒƒd	ttttƒƒtdt ƒigks¿J ‚||||||g}t||ƒD ]\}	}t|	|ƒ}|d	 sÜJ ‚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sJ ‚t||ƒd	 s!J ‚tttƒ t¡ d ttƒd  }t|dd}t||ƒd	 sBJ ‚d S )Nza b c a4 a3 a2 a1 a0é   é   é   é   éÿÿÿÿÚabaco1_simple©Úhintr   éþÿÿÿÚabaco1_productÚchi)r   r   ÚxÚdiffr   r   r   r   r   r   r	   Úzipr   r   )ÚaÚbÚcÚa4Úa3Úa2Úa1Úa0ÚdfÚeqÚeq1Úeq2Úeq3Úeq4Úeq5ÚeqlistÚiÚi1Úi2Úi3Úi4Úi5ÚilistÚcheckÚeq6Úeq7© r?   úZ/var/www/vscode/kcb/lib/python3.10/site-packages/sympy/solvers/ode/tests/test_lie_group.pyÚtest_heuristic1   sR   *0&H,,""
þ66(.ÿ >ÿÿ4
,:"rA   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@J ‚t||ƒd sIJ ‚td ttƒd  |  | td  ttƒ  d | t  }t|dd}t||ƒd suJ ‚d S )Núa br   Ú	bivariater   r   )r   r   r"   r#   r   r   r   r   )r%   r&   r-   r.   r5   r?   r?   r@   Útest_heuristic3E   s   ,.:rD   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sZJ ‚t| |ƒd scJ ‚d S )Nr   r   r   Úfunction_sumr   r   r   )r   r"   r#   r
   r   r   r   r   )r.   r5   r?   r?   r@   Útest_heuristic_function_sumS   s   Jÿ:rF   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s;J ‚t||ƒd sDJ ‚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ˆJ ‚t||ƒd s‘J ‚d S )NrB   ÚFÚabaco2_similarr   r   r   r   )
r   r   r   r"   r#   r   r   r   r   r   ©r%   r&   rG   r.   r5   r?   r?   r@   Útest_heuristic_abaco2_similar[   s   &0B:rJ   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sYJ ‚t||ƒd sbJ ‚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sJ ‚t||ƒd s¦J ‚tttƒ t¡ ttƒ dt  d dt ttƒ  dtd   d|   }t|dd}t||ƒd sÚJ ‚d S )	NrB   rG   r   Úabaco2_unique_unknownr   r   r   r   )r   r   r   r"   r#   r   r   r   r   r   r
   rI   r?   r?   r@   Ú$test_heuristic_abaco2_unique_unknowni   s   JH:0JrL   c                  C   sx   t dƒ\} }}}t||d  |  ttƒ t¡ | ttƒ|   |t||d     }t|dd}t||ƒd s:J ‚d S )Nza b m nr   Úlinearr   r   ©r   r"   r   r#   r   r   )r%   r&   ÚmÚnr.   r5   r?   r?   r@   Útest_heuristic_linear|   s   FrQ   c                  C   sh   t dƒ\} }}}td | ttƒd  ttƒ t¡  |t|   | }t|dd}t||ƒd s2J ‚d S )Nza b alpha cr   Úsum_functionr   r   rN   )r%   r&   Úalphar'   r.   r5   r?   r?   r@   Ú
test_kamke„   s   6rT   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sGJ ‚t||ƒdksPJ ‚d S )	Nr"   r   r   r   )r   r   r   Ú	lie_group)Tr   )r   r   r#   r   r   r	   r   r   )r"   r.   Úsolr   r?   r?   r@   Útest_user_infinitesimalsŒ   s   ""&rW   c                  C   s4   t ttƒ t¡ttƒ ƒ} dt| ttƒƒvsJ ‚d S )NrU   )r   r   r"   r#   r   )Úeqnr?   r?   r@   Útest_lie_group_issue15219•   s   rY   N)*Úsympy.core.functionr   Úsympy.core.numbersr   Úsympy.core.relationalr   Úsympy.core.symbolr   r   Ú&sympy.functions.elementary.exponentialr   r   Ú(sympy.functions.elementary.miscellaneousr	   Ú(sympy.functions.elementary.trigonometricr
   r   r   Úsympy.solvers.oder   r   r   r   Úsympy.solvers.ode.subscheckr   Úsympy.testing.pytestr   r   r"   Úyr   r   r   rA   rD   rF   rJ   rL   rQ   rT   rW   rY   r?   r?   r?   r@   Ú<module>   s4    .
	