o
    GZŽ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é   é   é   é   éÿÿÿÿZabaco1_simple©Úhintr   éþÿÿÿZabaco1_productÚchi)r   r   ÚxÚdiffr   r   r   r   r   r   r	   Ú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.   úU/var/www/auris/lib/python3.10/site-packages/sympy/solvers/ode/tests/test_lie_group.pyÚtest_heuristic1   sR   *0&H,,""
þ66(.ÿ >ÿÿ4
,:"r0   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   Z	bivariater   r   )r   r   r    r!   r   r   r   r   )r#   r$   r'   r(   r)   r.   r.   r/   Útest_heuristic3E   s   ,.:r2   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   Zfunction_sumr   r   r   )r   r    r!   r
   r   r   r   r   )r(   r)   r.   r.   r/   Útest_heuristic_function_sumS   s   Jÿ:r3   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 )Nr1   ÚFZabaco2_similarr   r   r   r   )
r   r   r   r    r!   r   r   r   r   r   ©r#   r$   r4   r(   r)   r.   r.   r/   Útest_heuristic_abaco2_similar[   s   &0B:r6   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 )	Nr1   r4   r   Zabaco2_unique_unknownr   r   r   r   )r   r   r   r    r!   r   r   r   r   r   r
   r5   r.   r.   r/   Ú$test_heuristic_abaco2_unique_unknowni   s   JH:0Jr7   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   Zlinearr   r   ©r   r    r   r!   r   r   )r#   r$   ÚmÚnr(   r)   r.   r.   r/   Ú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 s2J ‚d S )Nza b alpha cr   Zsum_functionr   r   r8   )r#   r$   Úalphar%   r(   r)   r.   r.   r/   Ú
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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(   Zsolr   r.   r.   r/   Útest_user_infinitesimalsŒ   s   ""&r?   c                  C   s4   t ttƒ t¡ttƒ ƒ} dt| ttƒƒvsJ ‚d S )Nr>   )r   r   r    r!   r   )Zeqnr.   r.   r/   Útest_lie_group_issue15219•   s   r@   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   r0   r2   r3   r6   r7   r;   r=   r?   r@   r.   r.   r.   r/   Ú<module>   s4    .
	