o
    GZh`	                     @   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      | d S N    xr   r   O/var/www/auris/lib/python3.10/site-packages/sympy/strategies/tests/test_tree.pyinc      r   c                 C   s   | d S r	   r   r   r   r   r   dec	   r   r   c                 C   s   d|  S N   r   r   r   r   r   double   r   r   c                 C      | d S r   r   r   r   r   r   square   r   r   c                  G   s   t | S N)sumargsr   r   r   add   r   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J t | ttttidks#J d S )N      r
   r   <   )r   listmintuplemaxr   r    )treer   r   r   test_treeapply   s   r)   c                  C   sr   t di dd ddksJ 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s7J d S )Nr!   c                 S   r   r   r   r   r   r   r   r   $   r   z%test_treeapply_leaf.<locals>.<lambda>)leaf	   r"   r
   r      c                 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J tttf|d|ttdks)J tttg|d| ttdks;J tttgf}t||ddksLJ t||ddksWJ t	|dd d}t| t|i}t||}|d	dksrJ |dd
kszJ d S )Nr   )chainminimizer,      r
   c                 S      |  S r   r   r   r   r   r   r   6       z+test_treeapply_strategies.<locals>.<lambda>Z	objectiver"   r   )
Zsympy.strategiesr.   r/   r$   r&   r   r   r   r   r   )r.   r/   joinr(   Zmaximizefnr   r   r   test_treeapply_strategies+   s   $$
r6   c                  C   s   t ttfg} t| dd d}|ddksJ |ddksJ t tt tt t fttfggg} t| }|dd	ks8J t| d
d d}|ddksHJ d S )Nc                 S   r1   r   r   r   r   r   r   r   @   r2   ztest_greedy.<locals>.<lambda>r3   r"   r0   r
   r   
      c                 S   r1   r   r   r   r   r   r   r   H   r2      )r   r   r   r   )r(   r5   ZlowestZhighestr   r   r   test_greedy=   s   r:   c                   C   s   t ttdtdhksJ t tttgdddhksJ t tttfddhks.J t ttttfgdddhks@J d S )Nr!   r   r"   r,   r0   )setr   r   r   r   r   r   r   r   test_allresultsL   s    (r<   c                  C   sR   t tgtf} t| dd }|ddksJ |ddksJ tt ddks'J d S )Nc                 S   r1   r   r   r   r   r   r   r   W   r2   ztest_brute.<locals>.<lambda>r   r+   r
   )r   r   r   r   )r(   r5   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-   r6   r:   r<   r>   r   r   r   r   <module>   s    	