U
    ˜9%e´0  ã                   @   s  d dl mZmZmZ d dlmZmZ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 d dlmZmZ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"m#Z# edƒ\Z$Z%Z&Z'Z(eddd\Z)Z*Z+Z,edƒZ-edƒZ.edƒZ/e#dd„ ƒZ0dd„ Z1dS )é    )Ú
DerivativeÚFunctionÚdiff)ÚIÚRationalÚpi)ÚEq)ÚSymbolÚsymbols)ÚexpÚlog)Úsqrt)ÚcosÚsin)ÚEiÚerfÚerfi)ÚIntegral)ÚcheckodesolÚchecksysodesol)ÚbesseljÚbessely)ÚraisesÚslowzC0:5zu,x:zT)ÚrealÚfÚgÚhc               
   C   s  t tdd„ ƒ t tdd„ ƒ tttƒ t¡ttttƒtƒƒdttƒ t¡ tttƒ t¡ d fksht‚tttƒ t¡tttƒtƒƒdk	sŽt‚tttƒ t¡tttƒtƒƒdks´t‚tttƒd d	ttƒ  d
ttƒ  t dƒ} tt| j	tƒ| ƒdksüt‚tt| j	tƒt
ttƒƒ | ƒdks$t‚tt| j	td
ƒ| ƒdksBt‚tt| j	td
ƒt
ttƒƒ | ƒdkslt‚tt| j	tdƒ| ƒdksŠt‚tt| j	tdƒt
ttƒƒ | ƒdks´t‚tt| j	tdƒtttƒtttƒ ƒƒddtd  ttƒd d
 ttƒ  ttƒd  ttƒd
  dtd  ttƒd   d fks<t‚ttt
ttƒƒt tƒt tt
ttƒƒt dƒƒdksxt‚ttt
ttƒƒt tƒt tt
ttƒƒt dƒdddks¸t‚tttƒ td
¡tttƒttt  ƒtttƒttt  ƒtttƒtt ttd
   ƒgƒdddtfgks&t‚tttƒ td
¡tttƒttt  ƒtttƒttt  ƒtttƒtt ttd
   ƒhƒdddtfhks”t‚tttƒ t¡dttƒ d
  tttƒd
 tƒƒddgksÔt‚tttƒ t¡ttƒ ttt
tƒ ttƒƒƒdkst‚tt
ttƒt ƒ ttƒ tttƒ t¡  }tttƒtttt ƒt  ƒƒ}t||ƒd  ttƒ¡rxt‚ttttttƒtƒ tƒt t
tƒƒ}tttƒttttƒ  t
tƒ ttƒ ƒ}t||d
ddd sât‚td
 ttƒ td
¡ tttƒ t¡  d
td
  d ttƒ  }tttƒttdt td
ƒt ƒ ttdt td
ƒt ƒ  ƒ}t||ƒdksvt‚tttƒ t¡ttƒttƒ ƒtttƒ t¡ttƒttƒ ƒg}tttƒt tt
d
t ƒ  ƒtttƒttt
d
t ƒ  ƒg}t||ƒdddgfkst‚d S )Nc                   S   s"   t tttƒ t¡ttttƒtƒƒS ©N)r   r   ÚxÚyr   r   © r!   r!   úe/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sympy/solvers/ode/tests/test_subscheck.pyÚ<lambda>   ó    z"test_checkodesol.<locals>.<lambda>c                   S   s(   t ttƒ t¡ttttƒtƒtttƒƒS r   )r   r   r   r   r   r    r!   r!   r!   r"   r#      s   ÿÿFé   T)Fr%   é   é   é   r   )Tr   é   é<   é   é	   )Úsolve_for_func)Úorderr-   é   )r   Ú
ValueErrorr   r   r   r   r   r    ÚAssertionErrorÚlhsr   r   ÚC1ÚC2Úhasr   r   r   r   r   r   r   )Zsol1Zeq3Zsol3ZeqnÚsolÚeqZeqsr!   r!   r"   Útest_checkodesol   sz    &ÿ&&.(**$$
ÿ
ÿÿÿÿ
0ÿ
.ÿÿ
$ ÿþ
$ ÿþ
0ÿ
8. &*B>@>r8   c                  C   s–  t dtd\} }}tdƒ}tt| |ƒ|ƒd||ƒ ƒtt||ƒ|ƒd| |ƒ ƒf}t| |ƒdt tdtdƒ | ƒ dt tdtdƒ | ƒ  ƒt||ƒdtdƒ t tdtdƒ | ƒ dtdƒ t tdtdƒ | ƒ  ƒg}t	||ƒd	d
d
gfkst
‚tt| |ƒ|ƒd| |ƒ d||ƒ  ƒtt||ƒ|ƒd| |ƒ d||ƒ  ƒf}t| |ƒdt t|tdƒ d tddƒ  ƒ dt t|tdƒd tddƒ  ƒ  ƒt||ƒttdƒ d tddƒ  t|tdƒ d tddƒ  ƒ ttddƒtdƒd   t|tdƒd tddƒ  ƒ  ƒg}t	||ƒd	d
d
gfksDt
‚tt| |ƒ|ƒ| |ƒ||ƒ ƒtt||ƒ|ƒd| |ƒ d||ƒ  ƒf}t| |ƒtttdƒ| d ƒ tttdƒ| d ƒ  t|tddƒ ƒ ƒt||ƒtd tdƒt d  ttdƒ| d ƒ tdƒt d td  ttdƒ| d ƒ  t|tddƒ ƒ ƒg}t	||ƒd	d
d
gfksht
‚tt| |ƒ|ƒ| |ƒ||ƒ d ƒtt||ƒ|ƒd| |ƒ d||ƒ  d ƒf}t| |ƒtt|tdƒ d  ƒ tt|tdƒd  ƒ  tddƒ ƒt||ƒttdƒ d  t|tdƒ d  ƒ tdtdƒ  t|tdƒd  ƒ  tddƒ ƒg}t	||ƒd	d
d
gfkszt
‚tt| |ƒ|ƒ| |ƒ||ƒ d ƒtt||ƒ|ƒd| |ƒ ||ƒ d ƒf}t| |ƒtttdƒ| ƒ tttdƒ| ƒ  t|ƒ tddƒ ƒt||ƒtdƒt ttdƒ| ƒ tdƒt ttdƒ| ƒ  t|ƒ tddƒ ƒg}t	||ƒd	d
d
gfkszt
‚tt| |ƒ|ƒd| | |ƒ d||ƒ  ƒtt||ƒ|ƒd| |ƒ d| ||ƒ  ƒf}t| |ƒtttd|ƒ ¡ ƒ tttd|ƒ ¡  ƒ  ttd| |ƒ ¡ ƒ ƒt||ƒtttd|ƒ ¡ ƒ tttd|ƒ ¡  ƒ  ttd| |ƒ ¡ ƒ ƒg}t	||ƒd	d
d
gfksŠt
‚tt| |ƒ|ƒd| | |ƒ |d ||ƒ  ƒtt||ƒ|ƒ|d  | |ƒ d| ||ƒ  ƒf}t| |ƒttt|d |ƒ ¡ ƒ ttt|d |ƒ ¡ ƒ  ttd| |ƒ ¡ ƒ ƒt||ƒt tt|d |ƒ ¡ ƒ ttt|d |ƒ ¡ ƒ  ttd| |ƒ ¡ ƒ ƒg}t	||ƒd	d
d
gfks²t
‚tt| |ƒ|ƒd| | |ƒ |d ||ƒ  ƒtt||ƒ|ƒ|d  | |ƒ d| d|d   ||ƒ  ƒf}t| |ƒtttdƒ d tddƒ t|d |ƒ ¡  ƒ tttdƒd tddƒ t|d |ƒ ¡  ƒ  ttd| |ƒ ¡ ƒ ƒt||ƒttdƒ d tddƒ  ttdƒ d tddƒ t|d |ƒ ¡  ƒ ttdƒd tddƒ  ttdƒd tddƒ t|d |ƒ ¡  ƒ  ttd| |ƒ ¡ ƒ ƒg}t	||ƒd	d
d
gfk	snt
‚tt| |ƒ||ƒd| |ƒ d||ƒ  ƒtt||ƒ||ƒ| |ƒd||ƒ  ƒf}ttdƒ d ƒ }ttdƒ d ƒ}ttdƒd ƒ }ttdƒd ƒ}	t| |ƒdt t|| ƒ dt t|| ƒ  dt t|| ƒ  dt t||	 ƒ  ƒt||ƒt|d d  t|| ƒ t|d d  t|| ƒ  t|d d  t|| ƒ  t|	d d  t||	 ƒ  ƒg}t	||ƒd	d
d
gfk
söt
‚tt| |ƒ||ƒd| |ƒ d||ƒ  d ƒtt||ƒ||ƒd| |ƒ d||ƒ  d ƒf}ttdƒ d tddƒ ƒ }ttdƒ d tddƒ ƒ}ttdƒd tddƒ ƒ }ttdƒd tddƒ ƒ}	t| |ƒdt t|| ƒ dt t|| ƒ  dt t|| ƒ  dt t||	 ƒ  tdd ƒ ƒt||ƒt|d d  t|| ƒ t|d d  t|| ƒ  t|d d  t|| ƒ  t|	d d  t||	 ƒ  td!d ƒ ƒg}t	||ƒd	d
d
gfksÆt
‚tt| |ƒ||ƒdt||ƒ|ƒ  d| |ƒ  d
ƒtt||ƒ||ƒdt| |ƒ|ƒ  d||ƒ  d
ƒf}t| |ƒtt|tddƒtdƒd   ƒ tt|tddƒtdƒd   ƒ  tt|tdƒ d tddƒ  ƒ  tt|tdƒ d tddƒ  ƒ  ƒt||ƒt t|tddƒtdƒd   ƒ tt|tddƒtdƒd   ƒ  tt|tdƒ d tddƒ  ƒ  tt|tdƒ d tddƒ  ƒ  ƒg}t	||ƒd	d
d
gfksxt
‚tt| |ƒ||ƒd| t||ƒ|ƒ d||ƒ  ƒtt||ƒ||ƒd| t| |ƒ|ƒ d| |ƒ  ƒf}tdƒdtd"dƒ  ttƒ ttdƒdtd"dƒ  | d ƒ d tdtdƒ |d  d ƒ|  }
tdƒ dtd"dƒ  ttƒ ttdƒdtd"dƒ  | d ƒ d td#tdƒ |d  d ƒ|  }t| |ƒt| |dt |
 dt |    ƒt||ƒt| |dtdƒ t |
 dtdƒ t |    ƒg}t	||ƒd	d
d
gfks2t
‚tt| |ƒ|ƒd$| |ƒ ƒtt||ƒ|ƒd%| |ƒ d||ƒ  ƒtt||ƒ|ƒd| |ƒ d||ƒ  d||ƒ  ƒf}t| |ƒttd$| ƒ ƒt||ƒd%t td$| ƒ d& ttd| ƒ  ƒt||ƒd't td$| ƒ d( dt td| ƒ d  ttd| ƒ  ƒg}t	||ƒd	d
d
d
gfksZt
‚tt| |ƒ|ƒd||ƒ d)||ƒ  ƒtt||ƒ|ƒd||ƒ d| |ƒ  ƒtt||ƒ|ƒd)| |ƒ d||ƒ  ƒf}t| |ƒdt td*ƒt ttd*ƒ| ƒ  dt d d+t d  ttd*ƒ| ƒ  ƒt||ƒd)t td*ƒt ttd*ƒ| ƒ  d,t d dt d  ttd*ƒ| ƒ  ƒt||ƒdt td*ƒd-t d d)t d   ttd*ƒ| ƒ  d)t dt  ttd*ƒ| ƒ  ƒg}t	||ƒd	d
d
d
gfksút
‚tdt| |ƒ|ƒ d.||ƒ||ƒ  ƒtdt||ƒ|ƒ d||ƒ| |ƒ  ƒtdt||ƒ|ƒ d| |ƒ||ƒ  ƒf}t| |ƒtdtdƒ t tdtdƒ | ƒ  dt d d/t d  tdtdƒ | ƒ  ƒt||ƒtdtdƒ t tdtdƒ | ƒ  d0t d1 dt d  tdtdƒ | ƒ  ƒt||ƒtdtdƒ d2t d3 d4t d3   tdtdƒ | ƒ  dt d dt d  tdtdƒ | ƒ  ƒg}t	||ƒd	d
d
d
gfksºt
‚tt| |ƒ|ƒd| |ƒ ||ƒ ƒtt||ƒ|ƒd| |ƒ d||ƒ  ||ƒ ƒtt||ƒ|ƒd| |ƒ ||ƒ ƒf}t| |ƒttd| ƒ t| td| ƒ  ttd| ƒ  t|d  td| ƒ d  t| td| ƒ  ttd| ƒ  ƒt||ƒttd| ƒ t| td| ƒ  ttd| ƒ  t|d  td| ƒ d  t| td| ƒ  ƒt||ƒdt td| ƒ dt | td| ƒ  ttd| ƒ  t|d  td| ƒ  t| td| ƒ  ttd| ƒ  ƒg}t	||ƒd	d
d
d
gfksºt
‚tt| |ƒ|ƒd| |ƒ ||ƒ d||ƒ  ƒtt||ƒ|ƒd| |ƒ ||ƒ d||ƒ  ƒtt||ƒ|ƒd| |ƒ d||ƒ  ƒf}t| |ƒttd| ƒ tt|ƒ dt|ƒ    tdt|ƒ t|ƒ   ƒt||ƒtt|ƒ dt|ƒ   tdt|ƒ t|ƒ   ƒt||ƒttd| ƒ dt t|ƒ  dt t|ƒ  ƒg}t	||ƒd	d
d
d
gfkst
‚tt| |ƒ|ƒ| |ƒ||ƒd  ƒtt||ƒ|ƒ||ƒd ƒf}t| |ƒttd5dt d|   td5dƒ ƒ ƒt||ƒd5dt d|   td"dƒ  ƒt| |ƒttd5d5dt d|   td"dƒ  ƒ ƒt||ƒd5dt d|   td"dƒ ƒt| |ƒttt d5dt d|   td"dƒ  ƒ ƒt||ƒt d5dt d|   td"dƒ  ƒt| |ƒtttd5dt d|   td"dƒ  ƒ ƒt||ƒtd5dt d|   td"dƒ  ƒg}t	||ƒd	d
d
gfksèt
‚tt| |ƒ|ƒtd| |ƒ ƒ||ƒd  ƒtt||ƒ|ƒ||ƒd ƒf}t| |ƒttdd5dt d|   td"dƒ   ƒ d ƒt||ƒd5dt d|   td"dƒ  ƒt| |ƒttdd5dt d|   td"dƒ   ƒ d ƒt||ƒd5dt d|   td"dƒ ƒt| |ƒttdt d5dt d|   td"dƒ   ƒ d ƒt||ƒt d5dt d|   td"dƒ  ƒt| |ƒttdt d5dt d|   td"dƒ   ƒ d ƒt||ƒtd5dt d|   td"dƒ  ƒg}t	||ƒd	d
d
gfksÜt
‚t| |ƒ|t| |ƒ|ƒ t| |ƒ|ƒt||ƒ|ƒ  ƒt||ƒ|t||ƒ|ƒ t||ƒ|ƒd  ƒf}t| |ƒtt t|  ƒt||ƒtd t|  ƒh}t	||ƒd	d
d
gfks’t
‚d S )6Nzx, y, z)ÚclsÚtr,   é   iúÿÿÿr)   é   Tr   r(   r+   é)   i±  é+   é'   éþÿÿÿé   r&   é   é   éQ   é:   é¹   éM   é/   é   é   ém   é   éµ   é   é·   r%   éýÿÿÿé   é   é   éÑ   éØ   r'   é³   é‚   iÆÿÿÿiùÿÿÿé   é¤   iÍÿÿÿé
   i÷ÿÿÿr/   é   éÿÿÿÿ)r
   r   r	   r   r   r3   r   r   r4   r   r1   r   r   r   r   ZdoitÚC3ÚC4r   r   r   ÚC0r   r   )r   r    Úzr:   r7   r6   Zroot0Zroot1Úroot2Zroot3ZI1ZI2r!   r!   r"   Útest_checksysodesolM   sl   8@PÿPBÿ2ÿ6ÿÿHJ@ÿÿÿÿP8ÿ2ÿÿÿÿLBRÿX4ÿÿÿÿb:ÿ"ÿÿÿn8.ÿÿPDÿÿþPX>ÿÿÿ\b>ÿÿÿÿhJ"ÿ"ÿ* ÿ"ÿ"ÿÿhdflvHHÿvTT`þv\\pþv|l€þ†J: 8ÿ@V2 &4 ,2 *ýH`8 &< ,< *ýf4rb   N)2Zsympy.core.functionr   r   r   Zsympy.core.numbersr   r   r   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   Z'sympy.functions.special.error_functionsr   r   r   Zsympy.integrals.integralsr   Zsympy.solvers.ode.subscheckr   r   Zsympy.functionsr   r   Zsympy.testing.pytestr   r   r_   r3   r4   r]   r^   Úur   r    r`   r   r   r   r8   rb   r!   r!   r!   r"   Ú<module>   s&   
3