
    Qi                     d   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)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                     t          d          \  } }}}}}}}t          t                                        t                    }t	          |t          dz  t          t                    z            }	t          t                                        t                    | t          t                    z  z   |t          |t          z            z  z
  }
t          t                                        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                                        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	         s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                                        t                    z  dz   t          t                    dz  z
  }t          |d          }t          ||          d	         sJ 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eq7s                             ~/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/sympy/solvers/ode/tests/test_lie_group.pytest_heuristic1rB      s   ")*@"A"AAq!RRR	
11B	B1QqTT			B
A$$))A,,1Q44
!C!HH*
,C
A$$))A,,1QqTT
!Ac1a4%jjL
0Cqs7B,
QsAaDD5zz\
)C
A$$))A,,"QT'Bq!tG+bAg51<rAHRQROOS
SC
Q$r'AaDD.1a4A1I.
.C#sCc*Fr000A#a1,,AqDFR1Q44[[!<	Q!qttR1Q44[[!,	Q!q"Q!++q2w/1 1 1 1 1 
/	2	2	2B3q!A$$<<aRTBq!A$$KK;<<<<<	/	2	2	2B3q!A$$<<adUR1Q44[[!<=====	/	2	2	2B3q!A$$<<Bq!A$$KK1q9	Q!q"Q!++q#add))a-'89; ; ; ; ;	/	2	2	2B3q!A$$<<Bq!A$$KK3	Q!q
1addT"r!t)bAg-1a47"QT'ABB	DE E E E E 
/	2	2	2B2a1;;3q!A$$<<RT;<<<<<BB#Efe$$  AB""Qx !Q3q!tAaDDy>>)A-.
.Cs!1222A#a1,,!S!WWbAaDDkk1=>>>>>sAq!!!!
QqTTYYq\\
Q
1q
(Cs'''AsAq!!!!!!    c            	      J   t          d          \  } }t          t                                        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 d S )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1QqTT6	AaDD!G	#ad	*Br,,,A#a1,,!bAaDDkk1566666r1a    	
A!ax"}	qAvadd{	*Q	.1	4Br,,,Ar1a      rC   c            	          t          t                                        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 d S )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QqTT1W,-d1Q446ll:a!AaDD&j!^K	AaddF
QqttQwY  
!Br///A#a1,,!r
QW 4bAaDDkk1EFFFFFr1a      rC   c            	         t          d          \  } }t          d          }t          t                                        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                                        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 d S )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   [   s   5>>DAqA	
11!A#!A$$,	'Br 0111A#a1,,1bAaDDkk1566666r1a    	
111qC!qMMAqD$81Q3qtt8$CD	EBr 0111A#a1,,!aAqttaddAg>?????r1a      rC   c            
         t          d          \  } }t          d          }t          t                                        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                                        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                                        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 d S )	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   sV   5>>DAqA	
11AE
AaDD1q5M211QT!VaddAgai5G3H3HH	HBr 7888A#a1,,1addaRj 0"Q!++qaRyIJJJJJr1a    	
11AAadQqTT1Wn--QqttV<==	=Br 7888A#a1,,2a1;;1677777r1a    
AaDDIIaLL.1Q44
!A#
%	)1Q3qtt8	3Qq!tV	;QqS	@Br 7888Ar1a      rC   c                  ^   t          d          \  } }}}t          ||dz   z  |z
  z  t          t                                        t                    z  | t          t                    |z  z  z
  |t          ||dz   z  z  z  z
  }t	          |d          }t          ||          d         sJ d S )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]	QqTTYYq\\	*QqttQwY	6!aQi.8H	HBr)))Ar1a      rC   c                  F   t          d          \  } }}}t          dz  | t          t                    dz  z  t          t                                        t                    z   z  |t          |z  z  z   |z   }t	          |d          }t          ||          d         sJ d S )Nza b alpha cr   sum_functionr   r   rU   )r'   r(   alphar)   r0   r7   s         rA   
test_kamker\      s    ]++NAq%	
Aq1qy!A$$))A,,'	(1QX:	5	9Br///Ar1a      rC   c                     t          d          } | t          |                               |           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 d S )	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	
AaDDIIaLL	A	!a	'B
QqTTBAIQT	*
+
+C!q>>$qttax..8BBN"99;9.99S@@@@r39,,,,,,rC   c                      t          t          t                                        t                    t          t                    z
            } dt	          | t          t                              vsJ d S )Nr^   )r   r   r$   r%   r   )eqns    rA   test_lie_group_issue15219rc      sQ    
addiill1Q44
 
 Cl3!5555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 9 9 9 9 9 E E E E E E E E E E Q Q Q Q Q Q Q Q Q Q Q Q 3 3 3 3 3 3 & & & & & & VD\\wu~~1HSMMXd^^huoo+" +" +"\! ! !! ! !! ! !! ! !&! ! ! ! ! !- - - 6 6 6 6 6rC   