U
    ZÊ¹j`	  ã                   @   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
   ú_/var/www/html/bwave/python/venv/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s˜t‚t||ƒdƒdks®t‚t
|dd„ d�}t| t|i}t||ƒ}|d	ƒdksät‚|dƒd
ksôt‚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s�t‚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s€t‚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   	