B
    SR                 @   sX   d dl mZ d dlZd dlmZmZmZ d dlm	Z	 dd Z
dd Zd	d
 Zdd ZdS )    )print_functionN)CenterStandardizecenter)atleast_2d_column_defaultc          
      sD  t   t |} g|f |fdd  D |fdd  D |ft  g|fdd  D |ft  d d d f gt|fdd  D t|fg}|r|t   d d d fgt ||d d d ff fddtt D t ||d d d ffg7 }dd	lm} |rdd l	j
jf}t jdd
t d|jd
krZj
|d}	nj|d}	|j
 dg|	ffddt D |	fg7 }|rt   d d d ft ||d d d f}
j|
d}|jdg|ffddtt D |fg7 }x"|D ]\}}t| |  }x |D ]}|j|f|| q@W |  g }xP|D ]H}|j|f||} j|jkr|jt |jkst|| qnW |rt|d |r|}t |js2tnB|d jdkrt |}n&|d jd
kr(t |}n
t |}|jd t ksJtt ||s\tt |d jdkr~t |}nN|rt|d |r|}n,t |d jd
krt |}n
t |}|j|f||}|rt|d |rt |jst j|jkr(|j|jks(tt ||s"tq"W d S )Nc             S   s   g | ]
}|gqS  r   ).0nr   r   /lib/python3.7/site-packages/patsy/test_state.py
<listcomp>   s    z"check_stateful.<locals>.<listcomp>c             S   s   g | ]}t |qS r   )nparray)r   r	   r   r   r
   r      s    c             S   s   g | ]}t |gqS r   )r   r   )r   r	   r   r   r
   r      s    c             S   s   g | ]}t |ggqS r   )r   r   )r   r	   r   r   r
   r      s    c                s*   g | ]"}t  |  | d   ggqS )   )r   r   )r   i)inputr   r
   r   %   s    r   )have_pandasr   )Znum)indexc                s"   g | ]\}} j |g|gd qS ))r   )Series)r   xidx)pandasr   r
   r   6   s   c                s.   g | ]&}j  |d d f g| gdqS )N)r   )	DataFrame)r   r   )input_2d_2colr   pandas_indexr   r
   r   D   s   )r   Zasarrayr   r   Zcolumn_stackrangelen
patsy.utilr   r   r   r   ZlinspacendimzipprintZmemorize_chunkZmemorize_finishZ	transformAssertionErrorappend
isinstanceconcatarray_equalr   ZconcatenateZ	row_stackshapeallclose)clsZaccepts_multicolumnr   outputargskwargsZ
test_casesr   Zpandas_typeZ	output_1dZoutput_2d_2colZoutput_2col_dataframeZ	input_objZ
output_objtZinput_chunkZall_outputsZoutput_chunkZall_output1Z	all_inputZall_output2r   )r   r   r   r   r
   check_stateful
   s    









r-   c               C   sZ   t tddddgdddg t tdddddgddddg t tdd	d
ddgddddg d S )NTr         r   r   g      g      ?g?g333333$g      @g      (@g      gL)g@gfffff"@)r-   r   r   r   r   r
   test_Centert   s
    
r0   c              C   s  t tdddgdddgs tt tddddgddddgsDttdd	d
gjt tksbttt jdd	d
gt jdjt t jksttdddgjt tkstddlm	}  | rdd l
}|jdddgdddgd}|jddgddgddggddgdddgd}t|}t||js&tt |jdddgs@tt |dddgsXtt|}t||jsrtt |jdddgstt |jddgstt |ddgddgddggstd S )Nr   r.   r/   r   r   g      g      ?g      ?g       @g      @)dtype)r   abc)r         Zx1Zx2
         )columnsr   )r   r'   r   r!   r1   floatr   Zfloat32r   r   r   r   r   r#   r%   r   r:   )r   r   sZdfZs_cZdf_cr   r   r
   test_stateful_transform_wrapper{   s,     $r>   c           	   C   s^  t tdddgddg t tdddgddg t tddddgtddtd g t tdd	d
dgtddtd g ttd} t tdddgtdd td d gdd t td| ttdd d dd t td| ttdd d dd t td| ttdd ddd t td| ttdd ddd t td| | dddd d S )NTr   r      r7      g      ?r   g      (@g      &@g      $@r8   r.   )ddofg      #@g2^^@g-@F)rescalerA   )r   rA   )r   rB   rA   )r-   r   r   Zsqrtlistr   Zarange)Zr20r   r   r
   test_Standardize   s>    (

rD   )Z
__future__r   Znumpyr   Zpatsy.stater   r   r   r   r   r-   r0   r>   rD   r   r   r   r
   <module>   s   j