U
    	-e`	                     @   s   d dl mZmZmZmZ d dlmZmZ dd Zdd Z	dd Z
d	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )    )	treeapplygreedy
allresultsbrute)partialreducec                 C   s   | d S N    xr
   r
   a/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/strategies/tests/test_tree.pyinc   s    r   c                 C   s   | d S r   r
   r   r
   r
   r   dec	   s    r   c                 C   s   d|  S N   r
   r   r
   r
   r   double   s    r   c                 C   s   | d S r   r
   r   r
   r
   r   square   s    r   c                  G   s   t | S N)sumargsr
   r
   r   add   s    r   c                  G   s   t dd | dS )Nc                 S   s   | | S r   r
   )abr
   r
   r   <lambda>       zmul.<locals>.<lambda>r	   )r   r   r
   r
   r   mul   s    r   c                  C   sJ   ddgddgdf} t | ttttidks,tt | ttttidksFtd S )N      r	   r   <   )r   listmintuplemaxAssertionErrorr   r   )treer
   r
   r   test_treeapply   s    r'   c                  C   sr   t di dd ddkstddgddgdf} ddgd	dgdf}t | ttttid
d dt |ttttiksntd S )Nr   c                 S   s   | d S r   r
   r   r
   r
   r   r   $   r   z%test_treeapply_leaf.<locals>.<lambda>)leaf	   r   r	   r      c                 S   s   | d S r   r
   r   r
   r
   r   r   '   r   )r   r%   r!   r"   r#   r$   )r&   Ztreep1r
   r
   r   test_treeapply_leaf#   s    r+   c                  C   s   ddl m} m} t| t|i}tt|tks.ttttf|d|ttdksRttttg|d| ttdksvtttt	gf}t||ddkstt||ddkstt
|dd d}t| t|i}t||}|d	dkst|dd
kstd S )Nr   )chainminimizer*      r	   c                 S   s   |  S r   r
   r   r
   r
   r   r   6   r   z+test_treeapply_strategies.<locals>.<lambda>Z	objectiver   r   )Zsympy.strategiesr,   r-   r!   r#   r   r   r%   r   r   r   )r,   r-   joinr&   Zmaximizefnr
   r
   r   test_treeapply_strategies+   s    $$
r2   c                  C   s   t ttfg} t| dd d}|ddks,t|ddks<tt tt tt t fttfggg} t| }|dd	ksptt| d
d d}|ddkstd S )Nc                 S   s   |  S r   r
   r   r
   r
   r   r   @   r   ztest_greedy.<locals>.<lambda>r/   r   r.   r	   r   
      c                 S   s   |  S r   r
   r   r
   r
   r   r   H   r      )r   r   r   r   r%   )r&   r1   ZlowestZhighestr
   r
   r   test_greedy=   s    r6   c                   C   s   t ttdtdhkstt tttgdddhks>tt tttfddhks\tt ttttfgdddhkstd S )Nr   r   r   r*   r.   )setr   r   r%   r   r   r
   r
   r
   r   test_allresultsL   s     r8   c                  C   sR   t tgtf} t| dd }|ddks*t|ddks:ttt ddksNtd S )Nc                 S   s   |  S r   r
   r   r
   r
   r   r   W   r   ztest_brute.<locals>.<lambda>r   r)   r	   )r   r   r   r   r%   )r&   r1   r
   r
   r   
test_bruteU   s
    r:   N)Zsympy.strategies.treer   r   r   r   	functoolsr   r   r   r   r   r   r   r   r'   r+   r2   r6   r8   r:   r
   r
   r
   r   <module>   s   	