o
    oh`	                     @   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   t/var/www/html/construction_image-detection-poc/venv/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(   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>	objectiver"   r   )
sympy.strategiesr/   r0   r$   r&   r   r   r   r   r   )r/   r0   joinr(   maximizefnr   r   r   test_treeapply_strategies+   s   $$
r:   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   r2   r   r   r   r   r   r   r   @   r3   ztest_greedy.<locals>.<lambda>r4   r"   r1   r
   r   
      c                 S   r2   r   r   r   r   r   r   r   H   r3      )r   r   r   r   )r(   r9   lowest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,   r1   )setr   r   r   r   r   r   r   r   test_allresultsL   s    (rB   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   r2   r   r   r   r   r   r   r   W   r3   ztest_brute.<locals>.<lambda>r   r+   r
   )r   r   r   r   )r(   r9   r   r   r   
test_bruteU   s
   rD   N)sympy.strategies.treer   r   r   r   	functoolsr   r   r   r   r   r   r   r    r)   r.   r:   r@   rB   rD   r   r   r   r   <module>   s    	