a
    <b	                     @   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S )    )	treeapplygreedy
allresultsbrute)partialreducec                  C   sZ   ddgddgdf} t | ttttidks,J dd }dd }t | t|t|idksVJ d S )	N            c                  W   s   t | S N)sumargs r   p/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/sympy/strategies/tests/test_tree.py<lambda>       z test_treeapply.<locals>.<lambda>c                  W   s   t dd | dS )Nc                 S   s   | | S r   r   )abr   r   r   r   	   r   z2test_treeapply.<locals>.<lambda>.<locals>.<lambda>r
   )r   r   r   r   r   r   	   r   <   r   listmintuplemax)treeaddmulr   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snJ d S )Nr   c                 S   s   | d S Nr   r   xr   r   r   r      r   z%test_treeapply_leaf.<locals>.<lambda>)Zleaf	   r	   r
   r      c                 S   s   | d S Nr
   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}dd }dd }dd }t|||ksFJ t||f|d|||dksjJ t||g|d| ||dksJ |||gf}t||ddksJ t||d	dksJ t|d
d d}t| t|i}t||}|ddksJ |d	dksJ d S )Nr   )chainminimizec                 S   s   | d S r%   r   r!   r   r   r   r      r   z+test_treeapply_strategies.<locals>.<lambda>c                 S   s   | d S r%   r   r!   r   r   r   r      r   c                 S   s   d|  S r    r   r!   r   r   r   r      r   r$      r
   c                 S   s   |  S r   r   r!   r   r   r   r   !   r   Z	objectiver	   r   )Zsympy.strategiesr'   r(   r   r   r   r   )	r'   r(   joinincdecdoubler   Zmaximizefnr   r   r   test_treeapply_strategies   s     $$
r0   c                  C   s   dd } dd }dd }| ||fg}t |dd d}|ddksDJ |d	d
ksTJ | || || | f||fggg}t |}|ddksJ t |dd d}|ddksJ d S )Nc                 S   s   | d S r%   r   r!   r   r   r   r   (   r   ztest_greedy.<locals>.<lambda>c                 S   s   | d S r%   r   r!   r   r   r   r   )   r   c                 S   s   d|  S r    r   r!   r   r   r   r   *   r   c                 S   s   |  S r   r   r!   r   r   r   r   -   r   r*   r	   r)   r
   r   
      c                 S   s   |  S r   r   r!   r   r   r   r   5   r      )r   )r,   r-   r.   r   r/   ZlowestZhighestr   r   r   test_greedy'   s    r4   c                  C   s   dd } dd }dd }t t| d| dhks6J t t| |gdddhksVJ t t| |fddhkstJ t t| ||fgddd	hksJ d S )
Nc                 S   s   | d S r%   r   r!   r   r   r   r   9   r   z!test_allresults.<locals>.<lambda>c                 S   s   | d S r%   r   r!   r   r   r   r   :   r   c                 S   s   | d S r    r   r!   r   r   r   r   ;   r   r   r   r	   r$   r)   )setr   )r,   r-   r.   r   r   r   test_allresults8   s     r6   c                  C   sj   dd } dd }dd }| |g|f}t |dd }|ddksBJ |ddksRJ t | d	dksfJ d S )
Nc                 S   s   | d S r%   r   r!   r   r   r   r   D   r   ztest_brute.<locals>.<lambda>c                 S   s   | d S r%   r   r!   r   r   r   r   E   r   c                 S   s   | d S r    r   r!   r   r   r   r   F   r   c                 S   s   |  S r   r   r!   r   r   r   r   H   r   r   r#   r
   )r   )r,   r-   Zsquarer   r/   r   r   r   
test_bruteC   s    r8   N)Zsympy.strategies.treer   r   r   r   	functoolsr   r   r   r&   r0   r4   r6   r8   r   r   r   r   <module>   s   