U
    øÕ/e(  ã                   @   sH  d dl mZmZ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Zeeddfe	dfeƒZeeddfe
dfeƒZeee	dfe	dffee
dfdfeƒZeee	dfe	dffeeddfdfeƒZeedddgfeeddfdfeƒZdd„ ZeedfedƒZdd„ Zdd„ ZeeeeeegZeeŽ Zdd„ Zdd„ Zdd„ ZdS ) é    )ÚVARÚRewriteRuleÚRuleSetÚ	TraverserÚargsÚhead)ÚaddÚincc                 C   s   | d S )Né   © ©Úxr   r   ú;/tmp/pip-unpacked-wheel-dbjnr7gq/dask/tests/test_rewrite.pyÚdouble   s    r   c                   C   sb   t tdfƒtkst‚t tddfƒtks*t‚t ttdftdffƒtksHt‚t dddgƒtks^t‚d S ©Né   r
   é   )r   r	   ÚAssertionErrorr   Úlistr   r   r   r   Ú	test_head	   s    r   c                   C   sZ   t tdfƒdkst‚t tddfƒdks*t‚t dƒdks:t‚t dddgƒdddgksVt‚d S )Nr   )r   r
   )r   r
   r   r   )r   r	   r   r   r   r   r   r   Ú	test_args   s    r   c                  C   s¨   t tdfttdfdff} t| ƒ}| ¡ }|jt ks6t‚| ¡  |jtksLt‚|jt ksZt‚| ¡  |jtkspt‚| ¡  |jtks†t‚t	|ƒt tdttddgks¤t‚d S )Nr   r
   )
r   r	   r   r   ÚcopyÚcurrentr   ÚnextÚskipr   )ÚtermÚtÚt2r   r   r   Útest_traverser   s    r   ©ÚaÚbÚcr    r   r
   r!   r"   c                 C   s"   | d }t |tƒr|S t|fS d S )Nr   )Ú
isinstancer   )Úsdr   r   r   r   Ú	repl_list5   s    
r%   r   r   c                   C   s¤   t jdkst‚t jdgkst‚tjdks,t‚tjddgks>t‚tjdksLt‚tjddgks^t‚tjdkslt‚tjddgks~t‚tjdksŒt‚tjdddgks t‚d S )N)r    r    ©r    r!   r!   r   r"   )Úrule1Úvarsr   Z_varlistÚrule2Úrule3Úrule4Úrule5r   r   r   r   Útest_RewriteRule@   s    r-   c                   C   s@   t  ddi¡tdfkst‚t ddddgi¡dddgks<t‚d S )Nr    r   r   r
   r   )r'   Úsubsr	   r   Úrule6r   r   r   r   Útest_RewriteRuleSubsN   s    r0   c                  C   s¬   t tti dgfdi dgfig ftttti ddgfig fig fig fig ftti dgfig fttttti dgfig fig fig fig fig f} tj| ksšt‚tjtks¨t‚d S )Nr   r   r
   r   é   é   )	r   r   r	   r   ÚsumÚrsZ_netr   Úrules)Únetr   r   r   Útest_RuleSetX   s"      "þû  (÷ôr7   c                  C   s’  t ddf} tt | ¡ƒ}t|ƒdks(t‚|d tddifks@t‚t ddf} tt | ¡ƒ}t|ƒdksht‚|d tddifks€t‚|d tddifks˜t‚t dgdgf} tt | ¡ƒ}t|ƒdksÄt‚|d tddgifksÞt‚t tdftdff} tt | ¡ƒ}t|ƒdkst‚|d t	ddifks*t‚|d t
dddœfksFt‚|d tdtdfifksdt‚t ddf} tt | ¡ƒ}t|ƒdksŽt‚d S )Nr
   r   r   r    r   r&   )r   r   r4   Ziter_matchesÚlenr   r'   r)   r	   r*   r+   )r   Úmatchesr   r   r   Útest_matchesk   s,    


r:   c                  C   s"  t tddftddftddfgf} t | ¡}|tttdftdfftdffksNt‚t |¡}|tttdfdftdffksxt‚ttttddftddffttddftddfffdf} t | ¡ttttddffffksÐt‚tdddgf} t | ¡dddgksöt‚tttdddgff} t | ¡| kst‚d S r   )	r3   r   r4   Zrewriter	   r   r   r   Úmap)r   Znew_termr   r   r   Útest_rewrite‰   s     
$
 ,ý$r<   N)Zdask.rewriter   r   r   r   r   r   Zdask.utils_testr   r	   r   r   r   r   r(   r'   r)   r*   r+   r3   r,   r%   r   r/   r-   r0   r5   r4   r7   r:   r<   r   r   r   r   Ú<module>   s(    $&"