
    wg                     8   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 Z!d Z"d Z#d Z$d Z%d Z&ed        Z'd Z(ed        Z)y)    )Function)Rational)Eq)Symbolsymbols)explog)sqrt)atansintan)classify_odecheckinfsoldsolveinfinitesimals)checkodesol)XFAILC1zx yfxietac                  L   t        d      \  } }}}}}}}t        t              j                  t              }t	        |t        dz  t        t              z        }	t        t              j                  t              | t        t              z  z   |t        |t        z        z  z
  }
t        t              j                  t              dt        z  t        t              z  z   t        t        t        dz         z  z
  }ddt        z  z   |z  dz   dt        t        t                     z  z
  }t        t              j                  t              |t        dz  z  |t        dz  z  z   |t        dz  z  z   |t        z  z   |z   t        dd      z  z
  }t        dz  |z  t        t              z
  t        dz  t        t        dt        z  z
        z  z   }|	|
||||g}t        |	d      }|t        t        t        t                    t        t        dz  dz        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
z  igk(  sJ t        |
d      }|t        t        t        t                    t        |  t        z        t        t        t        t                    d	igk(  sJ t        |d      }|t        t        t        t                    t        t        dz         t        t        t        t                    d	igk(  sJ t        |d      }|t        t        t        t                    d	t        t        t        t                    dt        z  dz   it        t        t        t                    d	t        t        t        t                    dt        t        t                    dz
  z  igk(  sJ t        |d      }|t        t        t        t                    dt        t        t        t                    d	it        t        t        t                    d	t        t        t        t                    t        ||t        z  z   |t        dz  z  z   |t        dz  z  z   |t        dz  z  z         igk(  sJ t        |d      }|t        t        t        t                    d	t        t        t        t                    t        dt        z        igk(  sJ ||||||g}t        ||      D ]  \  }	}t        |	|      }|d	   rJ  |t        t              t        z  t        t        t        dz  t        t              z        z  dz   z  z
  }t        |d      }|t        t        t        t                    t        t              t        t               z  t        t        t        t                    d	igk(  sJ t        ||      d	   sJ t        t        t              j                  t              z  dz   t        t              dz  z
  }t        |d      }t        ||      d	   sJ y )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eq7s                             k/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/sympy/solvers/ode/tests/test_lie_group.pytest_heuristic1rB      s   ")*@"AAq!RRR	
11B	B1QqT		B
A$))A,1Q4
!C!H*
,C
A$))A,1QqT
!Ac1a4%jL
0Cqs7B,
QsAaD5z\
)C
A$))A,"QT'Bq!tG+bAg51<rAHRQROS
SC
Q$r'AaD.1a4A1I.
.C#sCc*Fr0A#a1,AqDFR1Q4[!<	Q!qtR1Q4[!,	Q!q"Q!+q2w/1 1 1 1 
/	2B3q!A$<aRTBq!A$K;<<<<	/	2B3q!A$<adUR1Q4[!<====	/	2B3q!A$<Bq!A$K1q9	Q!q"Q!+q#ad)a-'89; ; ; ;	/	2B3q!A$<Bq!A$K3	Q!q
1adT"r!t)bAg-1a47"QT'AB	DE E E E 
/	2B2a1;3q!A$<RT;<<<<BB#Efe$ AB"Qxx !Q3q!tAaDy>)A-.
.Cs!12A#a1,!S!WbAaDk1=>>>>sAq!!!
QqTYYq\
Q
1q
(Cs'AsAq!!!    c            	         t        d      \  } }t        t              j                  t              }t        dz  |z  t        t        t              z  z   t        t              dz  z   t        dz  z   }t	        |d      }|t        t        t        t                    t        t              t        t        t        t                    t        igk(  sJ t        ||      d   sJ t        dz  t        t              dz   |z   z  | t        dz  z  t        t              z  z
  dz   | t        z  z
  }t	        |d      }t        ||      d   sJ y )Na br   	bivariater   r   )r   r   r$   r%   r   r   r   r   )r'   r(   r/   r0   r7   s        rA   test_heuristic3rG   E   s   5>DAq	
11B	
Ab1QqT6	AaD!G	#ad	*Br,A#a1,!bAaDk156666r1a   	
A!ax"}	qAvad{	*Q	.1	4Br,Ar1a   rC   c            	      \   t        t              j                  t              ddt        dz  t        t              dz  z  z   z  t        t        t              t        z        z  ddt        t              z  z
  t        z  z   ddt        t              z  z
  t        t        t              dz  z  z  z   z
  } t	        | d      }|t        t        t        t                    t        t              dz  t        dz  z   t        t        t        t                    digk(  sJ t        | |      d   sJ y )Nr   r   r   function_sumr   r!   r   )r   r$   r%   r   r   r   r   r   )r0   r7   s     rA   test_heuristic_function_sumrJ   S   s    	
11A1QqT1W,-d1Q46l:a!AaD&j!^K	AadF
QqtQwY  
!Br/A#a1,!r
QW 4bAaDk1EFFFFr1a   rC   c            	      z   t        d      \  } }t        d      }t        t              j	                  t               || t        z  |t        t              z  z         z
  }t        |d      }|t        t        t        t                    |  |z  t        t        t        t                    digk(  sJ t        ||      d   sJ t        t              j	                  t              t        t              dz  t        t        t              t        z
        t        dz  z
  dt        z  t        t              z  z   z  z
  }t        |d      }|t        t        t        t                    t        t              dz  t        t        t        t                    t        t              dz  igk(  sJ t        ||      d   sJ y )NrE   Fabaco2_similarr   r   r   r   )
r   r   r   r$   r%   r   r   r   r   r   r'   r(   rL   r0   r7   s        rA   test_heuristic_abaco2_similarrO   [   sA   5>DAqA	
11!A#!A$,	'Br 01A#a1,1bAaDk156666r1a   	
111qC!qMAqD$81Q3qt8$CD	EBr 01A#a1,!aAqtadAg>????r1a   rC   c            
         t        d      \  } }t        d      }t        t              j	                  t              t        | dz
  z  t        t              d|z
  z  z   |t        | z  | z  t        t              |z  |z  z         z  z
  }t        |d      }|t        t        t        t                    t        t               t        t              | z  z  t        t        t        t                    t        t        |  z  z  igk(  sJ t        ||      d   sJ t        t              j	                  t              t         |t        dz  t        t              dz  z         t        t        t        t              z        z         z   }t        |d      }|t        t        t        t                    t        t        t        t        t                    t        t               igk(  sJ t        ||      d   sJ t        t        t              j	                  t              z  t        t              z   dt        z  z   dz  dt        z  t        t              z  z
  dt        dz  z  z
  d| z  z
  }t        |d      }t        ||      d   sJ y )	NrE   rL   r   abaco2_unique_unknownr   r   r   r   )r   r   r   r$   r%   r   r   r   r   r   r   rN   s        rA   $test_heuristic_abaco2_unique_unknownrR   i   s   5>DAqA	
11AE
AaD1q5M21QT!VadAgai5G3HH	HBr 78A#a1,1adaRj 0"Q!+qaRyIJJJJr1a   	
11AadQqT1Wn-QqtV<=	=Br 78A#a1,2a1;167777r1a   
AaDIIaL.1Q4
!A#
%	)1Q3qt8	3Qq!tV	;QqS	@Br 78Ar1a   rC   c                     t        d      \  } }}}t        ||dz   z  |z
  z  t        t              j                  t              z  | t        t              |z  z  z
  |t        ||dz   z  z  z  z
  }t	        |d      }t        ||      d   sJ y )Nza b m nr   linearr   r   r   r$   r   r%   r   r   )r'   r(   mnr0   r7   s         rA   test_heuristic_linearrX   |   s    #JAq!Q	
QAY]	QqTYYq\	*QqtQwY	6!aQi.8H	HBr)Ar1a   rC   c                     t        d      \  } }}}t        dz  | t        t              dz  z  t        t              j                  t              z   z  |t        |z  z  z   |z   }t	        |d      }t        ||      d   sJ y )Nza b alpha cr   sum_functionr   r   rU   )r'   r(   alphar)   r0   r7   s         rA   
test_kamker\      sr    ]+NAq%	
Aq1qy!A$))A,'	(1QX:	5	9Br/Ar1a   rC   c                  |   t        d      } | t        |       j                  |       z  dz   t        |       dz  z
  }t        t        |       t        | dz  z   t        | dz  z
  z        }t        t        |       dz
        t        t        |       dz         z  dd}t        |fddi||k(  sJ t        ||      dk(  sJ y )	Nr$   r   r   r   )r   r   r    	lie_group)Tr   )r   r   r%   r   r   r
   r   r   )r$   r0   solr   s       rA   test_user_infinitesimalsr`      s    sA	
AaDIIaL	A	!a	'B
QqTBAIQT	*
+C!q>$qtax.8BN"9;9.9S@@@r39,,,rC   c                      t        t        t              j                  t              t        t              z
        } dt	        | t        t                    vsJ y )Nr^   )r   r   r$   r%   r   )eqns    rA   test_lie_group_issue15219rc      s:    
adiil1Q4
 Cl3!5555rC   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   rB   rG   rJ   rO   rR   rX   r\   r`   rc    rC   rA   <module>rp      s    ( ' $ / = 9 E E Q Q 3 & D\u~1SMd^uo+"\!!!!&! ! !- 6 6rC   