U
    ½mœd1p  ã                   @   s®  d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZmZmZ d dlmZ d dlmZ d dlmZmZ d d	lmZmZ d d
lT d dlmZmZmZm Z  d dl!m"Z" erÔd dl#Z#dd„ Z$i d dfdd„Z%i d dfdd„Z&d>dd„Z'ef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'„ Z0d(d)„ Z1d*d+„ Z2d,d-„ Z3d.d/„ Z4d0d1„ Z5d2d3„ Z6d4d5„ Z7d6d7„ Z8d8d9„ Z9d:d;„ Z:d<d=„ Z;dS )?é    N©Ú
PatsyError)ÚDesignMatrixÚ
DesignInfo)ÚEvalEnvironment)Ú	ModelDescÚTermÚ	INTERCEPT)ÚC)ÚHelmert)ÚbalancedÚLookupFactor)Údesign_matrix_buildersÚbuild_design_matrices)Ú*)Úhave_pandasÚhave_pandas_categoricalÚhave_pandas_categorical_dtypeÚpandas_Categorical_from_codes)ÚOriginc           
      C   s  t  ||¡st‚|jj|ks t‚|d k	rJt  ||¡s8t‚|jj|ksbt‚n|d ksVt‚|d ksbt‚| rØ|d kr€t|jg|ƒ\}n6t|j|jg|ƒ\}	}t  |	|¡s¦t‚|	jj|ks¶t‚t  ||¡sÆt‚|jj|ksÖt‚n,|jjd ksèt‚|d k�s|jjd k�st‚d S ©N)ÚnpÚallcloseÚAssertionErrorÚdesign_infoÚcolumn_namesr   Úterms)
Úexpect_full_designsÚlhsÚrhsÚdataÚexpected_rhs_valuesÚexpected_rhs_namesÚexpected_lhs_valuesÚexpected_lhs_namesZnew_rhsZnew_lhs© r%   úM/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/patsy/test_highlevel.pyÚcheck_result   s*    ÿþr'   Úmatrixc                 C   s&   d}t |tƒr|d7 }t| |||d�S ©NÚ	dataframeé   ©Úreturn_type)Ú
isinstanceÚintÚdmatrix©Úformula_liker    Údepthr-   r%   r%   r&   Údmatrix_pandas:   s    
r4   c                 C   s&   d}t |tƒr|d7 }t| |||d�S r)   )r.   r/   Ú	dmatricesr1   r%   r%   r&   Údmatrices_pandas@   s    
r6   c              
      sÒ  t |tƒr|d7 }‡ fdd„}t | tjttf ƒsTt | tƒrJt | d tƒsTt| dƒr®|d kr|t| ||ƒ}	d }
t	|	gˆ ƒ\}nt
| ||ƒ}t	|ˆ ƒ\}
}t||
|ˆ ||||ƒ n t tt
| |¡ t tt| |¡ tg}tg}trò| t¡ | t¡ |d k�rd|D ](}|| ˆ |ƒ}t|d |ˆ ||||ƒ �q |D ]2}z|| ˆ |ƒ W n tk
�rX   Y nX t‚�q.nj|D ]2}z|| ˆ |ƒ W n tk
�r’   Y nX t‚�qh|D ],}|| ˆ |ƒ\}
}t||
|ˆ ||||ƒ �q d S )Nr+   c                      s
   t ˆ gƒS r   ©Úiterr%   ©r    r%   r&   Údata_iter_makerL   s    zt.<locals>.data_iter_makerr   Ú__patsy_get_model_desc__)r.   r/   ÚsixÚstring_typesr   r   ÚtupleÚhasattrÚincr_dbuilderr   Úincr_dbuildersr'   ÚpytestÚraisesr   r0   r5   r   Úappendr4   r6   r   )r2   r    r3   r   r!   r"   r#   r$   r:   Úbuilderr   r   ÚbuildersZ
one_mat_fsZ
two_mat_fsÚfr%   r9   r&   ÚtF   s€    
ÿþý
  þ ÿ ÿ



  þ

  þrH   c              	   C   sb   t |tƒr|d7 }ttg}tr*|ttg7 }|D ].}z|| ||ƒ W n |k
rV   Y q.X t‚q.d S )Nr+   )r.   r/   r0   r5   r   r4   r6   r   )r2   r    r3   ÚexcÚfsrG   r%   r%   r&   Ú	t_invalid…   s    
rK   c                     s²	  t dddgdddggi dddddgdddggd	d
dgƒ t d dddgdddggfi dddddgdddggd	d
dgƒ t t dddgdddgg¡i dddddgdddggd	d
dgƒ t d t dddgdddgg¡fi dddddgdddggd	d
dgƒ tdddgdddggdd�} t | i dddddgdddggdddgƒ t d | fi dddddgdddggdddgƒ t ddgdddgdddggfi dddddgdddggd	d
dgdgdggdgƒ t dgdggdddgdddggfi dddddgdddggd	d
dgdgdggdgƒ t t ddg¡t dddgdddgg¡fi dddddgdddggd	d
dgdgdggdgƒ t t dgdgg¡t dddgdddgg¡fi dddddgdddggd	d
dgdgdggdgƒ tdddgdddggdd�}tddgdd�}t ||fi dddddgdddggdddgdgdggdgƒ tdddgdddgdddggfi dƒ tdddggfi dƒ tdddggdddggdddggfi dƒ t�rRt t ddddgi¡i dddgdgdggdgƒ t tjdddgdd�i dddgdgdggdgƒ t t ddddgi¡t ddddgi¡fi dddgdgdggdgdgdgdggdgƒ t tjdddgdd�tjdddgdd�fi dddgdgdggdgdgdgdggdgƒ t t dddgg¡tjdddggdddgd�fi dddddggdddgdddggddd gƒ t t dddg¡i dddgdgdggd	gƒ ttjdggdgd!�tjdggdgd!�fi dƒ G d"d#„ d#t	ƒ}|ƒ }t |ddgddgddggd$œdd%ddgddggd&d'gdgdggd(gƒ G d)d*„ d*t	ƒ}t|ƒ i dƒ t d+ddgddgd,œdd%ddgddggd-dgdgdggdgƒ t d.ddgddgd,œdd%ddgddggd-dgƒ t d/ddgddgd,œdd%dddgdddggd-ddgƒ t
j�sît td+ƒddgddgd,œdd%ddgddggd-dgdgdggdgƒ d0 d1¡}t|tƒ�sÔt‚tjtt||ddgid2� tg ttdƒgƒgƒ}t |dd3d4d5gidd%d3gd4gd5ggdgƒ tg tg ƒttdƒgƒgƒ}t |dd3d4d5gidd%dd3gdd4gdd5ggd-dgƒ tttdƒgƒgtg ƒttdƒgƒgƒ}t |d3d4d5gd6d7d8gd9œdd%dd3gdd4gdd5ggd-dgd6gd7gd8ggdgƒ g ttdƒgƒgtg ƒttdƒgƒgf}t|d:d;„ dd<�}	t |	d |	d fdd6d7d8gidd%dd6gdd7gdd8ggd-dgƒ t |	d dd6d7d8gidd%dd6gdd7gdd8ggd-dgƒ t |	d |	d fdd6d7d8gidd%dd6gdd7gdd8ggd-dgd6gd7gd8ggdgƒ dddg}
t d=i dd%ddgddgddggd-d>gƒ t d=d>d6d7d8gidd%dd6gdd7gdd8ggd-d>gƒ td=i dttfd?� d@dA„ }|ƒ  t d¡‰ td=i ˆ ttfd?� t d¡‰ ‡ fdBdC„}|ƒ  d S )DNr+   é   é   é   é   é   r   FZx0Úx1Úx2Úfoo)Zdefault_column_prefixZfoo0Zfoo1Zfoo2Zy0ÚbarZbar0ÚxÚasdf)ÚnameÚyé   é   é	   )ÚcolumnsZx7Zx8Zx9Úy1Úy2)Úindexc                   @   s   e Zd Zdd„ ZdS )z.test_formula_likes.<locals>.ForeignModelSourcec                 S   s"   t ttdƒgƒgttdƒgƒgƒS )NÚYÚX)r   r   r   ©Úselfr    r%   r%   r&   r;   ë   s    ÿzGtest_formula_likes.<locals>.ForeignModelSource.__patsy_get_model_desc__N©Ú__name__Ú
__module__Ú__qualname__r;   r%   r%   r%   r&   ÚForeignModelSourceê   s   rh   )r`   ra   TúX[0]úX[1]r`   c                   @   s   e Zd Zdd„ ZdS )z1test_formula_likes.<locals>.BadForeignModelSourcec                 S   s   |S r   r%   rb   r%   r%   r&   r;   ÷   s    zJtest_formula_likes.<locals>.BadForeignModelSource.__patsy_get_model_desc__Nrd   r%   r%   r%   r&   ÚBadForeignModelSourceö   s   rk   úy ~ x)rX   rU   Ú	Interceptz~ xúx + yu   ÃƒÂ©zutf-8r9   g      ø?ç      @g      @é
   é   é   ©rU   rX   c                   S   s   t ddddgigƒS )NrU   r+   rL   rM   r7   r%   r%   r%   r&   Ú<lambda>+  ó    z$test_formula_likes.<locals>.<lambda>)Zeval_envú
~ x_in_envÚx_in_env)rI   c               	   S   s0   d} t di ddddgddgddggddgƒ d S )	NrV   rv   r+   TrL   rM   rm   rw   ©rH   ©rw   r%   r%   r&   Úcheck_nested_callF  s     þz-test_formula_likes.<locals>.check_nested_callc               	      s0   d} t di ˆ dddgddgddggddgƒ d S )	NrV   rv   Tr+   rL   rM   rm   rw   rx   ry   ©Úer%   r&   Úcheck_nested_call_2P  s     þz/test_formula_likes.<locals>.check_nested_call_2)rH   r   Úasarrayr   rK   r   ÚpandasZ	DataFrameÚSeriesÚobjectr<   ÚPY3ÚunicodeÚdecoder.   r   rB   rC   r   r0   r   r   r   r   Ú	NameErrorr   Úcapture)ÚdmZx_dmZy_dmrh   Zforeign_modelrk   ÚeacuteÚdescZ	termlistsrF   rw   rz   r}   r%   r{   r&   Útest_formula_likes”   sÚ    þ þ þ" þ þ þ  
 ý$ 
 ý, 
 ý0 
 ý 
 ý&* þ þÿ   üÿ   üÿ 
 
 ü þÿ þÿ 
 ú 
 ý þ þ  
 ü
 þ þÿ  ýþþ þ þ  ý
 þ þ

rŠ   c                  C   sÄ  t sd S tjdddgddddgd�} tjd	d
dgddddgd�}tddd�}t |ddgddgddgg¡snt‚t |jddg¡s„t‚|j	j
ddgks˜t‚t |jdddg¡s°t‚tddd�\}}t |d	gd
gdgg¡sÜt‚t |jdg¡sðt‚|j	j
dgk�st‚t |jdddg¡�st‚t |ddgddgddgg¡�sBt‚t |jddg¡�sZt‚|j	j
ddgk�spt‚t |jdddg¡�sŠt‚t| dd�}t |dgdgdgg¡�s´t‚t |jdg¡�sÊt‚|j	j
dgk�sÞt‚t |jdddg¡�søt‚t|| fdd�\}}t |d	gd
gdgg¡�s*t‚t |jdg¡�s@t‚|j	j
dgk�sTt‚t |jdddg¡�snt‚t |dgdgdgg¡�sŒt‚t |jdg¡�s¢t‚|j	j
dgk�s¶t‚t |jdddg¡�sÐt‚t| dddgfdd�\}}	t |j| j¡�s t‚t |	j| j¡�st‚tdddg| fdd�\}
}t |
j| j¡�sFt‚t |j| j¡�s\t‚dd l}|jj }zHd|j_ tjttdddgiddd� tjttddgdgdœddd� W 5 ||j_ X d S )Nr+   rL   rM   ZAArp   rq   rr   )rW   r_   rN   rO   rP   ÚBBÚs1r*   r,   rm   zs2 ~ s1Ús2é   é   r   FrU   rl   rs   )r   r   r€   r0   r   r   r   Úarray_equalr\   r   r   r_   r5   Úpatsy.highlevelZ	highlevelrB   rC   r   )rŒ   r�   Zdf1Zdf2Zdf3Zdf4Zdf5Zdf6Zdf7Zdf8Zdf9Zdf10ÚpatsyZ
had_pandasr%   r%   r&   Útest_return_pandasW  sr    "$    ÿ   þ
r“   c                  C   sn   t ddd�} td| ƒ}|jjddddgks.t‚|jjddgksBt‚t|jjƒdksVt‚|jjd tksjt‚d S )	NrL   ©ÚaÚbúa:brm   úb[T.b2]za[T.a2]:b[b1]za[T.a2]:b[b2]r   )	r   r0   r   r   r   Ú
term_namesÚlenr   r	   )r    r   r%   r%   r&   Útest_term_infoŽ  s    

 ÿ
r›   c                  C   s°  dddgdddgt jdddgt jd�dd	dgd
ddgtdddgƒtd
ddgƒt jd
ddgtd�dœ} td| dddgdgdggdgƒ td| dddgdgdggdgƒ td| dddgdgdggdgƒ td| ddddgddgddggddgƒ td| dddddgdddgdddggdddgƒ td| dddddgdddgdddggddd gƒ td!| dddddgdddgdddggd"d#d$gƒ td%| dddddgdddgdddggd&d'd(gƒ d S ))Nr+   rL   rM   g      ð?g       @g      @)ZdtypeTFrS   rT   Zbaz)r+   Úhi)r•   r–   ÚcÚdr|   rG   ÚgÚhz~ 0 + ar   r•   z~ 0 + br–   z~ 0 + cr�   z~ 0 + dzd[False]zd[True]z~ 0 + eze[bar]ze[baz]ze[foo]z~ 0 + fzf[1]zf[2]zf[3]z~ 0 + gzg[bar]zg[baz]zg[foo]z~ 0 + hzh[1]zh[foo]zh[(1, 'hi')])r   r~   Zfloat32r
   Úarrayr�   rH   r9   r%   r%   r&   Útest_data_types—  sR    ù	
 ÿ
 ÿ
 ÿ
 ÿ
 ÿ
 ÿ
 ÿ
þr¢   c                  C   sü  t ddd�} td| ddddgddgddgddggddgƒ td	| ddddgddgddgddggdd
gƒ td| ddddgddgddgddggddgƒ td| ddddddgddddgddddgddddggddddgƒ td| ddddddgddddgddddgddddggddddgƒ td| ddddddgddddgddddgddddggddddgƒ t| d tƒ| d< td| ddddgddgddgddggddgƒ td| ddddgddgddgddggddgƒ td| ddddgddgddgddggddgƒ d S )NrL   r”   z~ C(a)r   Tr+   rm   z
C(a)[T.a2]z~ C(a, levels=['a2', 'a1'])zC(a, levels=['a2', 'a1'])[T.a1]z~ C(a, Treatment(reference=-1))z#C(a, Treatment(reference=-1))[T.a1]za*búa[T.a2]r˜   za[T.a2]:b[T.b2]z0 + a:bza[a1]:b[b1]za[a2]:b[b1]za[a1]:b[b2]za[a2]:b[b2]z1 + a + a:bza[a1]:b[T.b2]za[a2]:b[T.b2]r•   éÿÿÿÿza[H.a2]zC(a, Treatment)zC(a, Treatment)[T.a2])r   rH   r
   r   r9   r%   r%   r&   Útest_categorical´  sv     þýý



ý
ú



ý
ú



ý
ú	 þ þ þr¥   c                  C   sž   dddgdddgddd	gd
œ} t d| dddgdgdgdgdgdggdgƒ t d| ddddgddgdd	ggddgƒ t d| ddddgddgddggddgƒ d S )Nr+   rL   rM   rN   rO   rP   rp   rq   rr   )rU   rX   za b cz0 + I(x + y)r   TzI(x + y)z
Q('a b c')rm   z	center(x)r¤   rx   r9   r%   r%   r&   Útest_builtinsè  s&    þ þ þ þr¦   c               
      sª  dddgdddgdœdddgddd	gdœg‰ t  dddddd	g¡} t  | t  | ¡ ¡}|t  |¡ }‡ fd
d„}td|ƒ}t|ˆ d ƒ\}}|jjdgksžt‚|jjdddgks´t‚t  	|dgdgdgg¡sÐt‚t  	|t  
dddgdddg|dd … f¡¡�st‚td|ƒ}t|gˆ d ƒ\}|jjdddgk�s6t‚t  	|dgdgdgg¡�sTt‚t  	|t  
dddgdddg|dd … f¡¡�s†t‚t ttd|¡ t ttd|¡ d S )NÚa2r+   rL   rM   )r•   rU   Úa1rN   rO   rP   c                      s   t ˆ ƒS r   r7   r%   ©Zdatasr%   r&   r:     s    z)test_incremental.<locals>.data_iter_makerz!1 ~ a + center(np.sin(center(x)))rm   r£   zcenter(np.sin(center(x)))r   z~ a + center(np.sin(center(x)))zx ~ xrU   )r   r~   ÚsinZmeanrA   r   r   r   r   r   Zcolumn_stackr@   rB   rC   r   )rU   Zsin_center_xZx_colr:   rF   r   r   rE   r%   r©   r&   Útest_incrementalö  sP    ÿÿýÿþ

þÿþ
þr«   c                   C   sH   t dddddgidddt d¡gdt d¡gdt d¡ggdd	gƒ d S )
Nz~ np.sin(x)rU   r+   rL   rM   r   Trm   z	np.sin(x))rH   r   rª   r%   r%   r%   r&   Útest_env_transform  s
    &ýr¬   c               
      s¼   t ddd�‰ t ddd¡ˆ d< ˆ d d ˆ d< ‡ fdd	„} | d
dddddgƒ | ddddddgƒ | ddddddgƒ | dddddgƒ | dddddddgƒ | dddddddddgƒ d S )NrL   r”   r   r+   rN   rQ   rR   c                    s   t | ˆ ƒ}|jj|kst‚d S r   )r0   r   r™   r   )ÚformulaÚorderÚmr9   r%   r&   Út_terms3  s    
z test_term_order.<locals>.t_termsza + b + x1 + x2rm   r•   r–   zb + a + x2 + x1z0 + x1 + a + x2 + b + 1z0 + a:b + a + b + 1r—   za + a:x1 + x2 + x1 + bza:x1z@0 + a:x1:x2 + a + x2:x1:b + x2 + x1 + a:x1 + x1:x2 + x1:a:x2:a:bzx1:x2za:x1:x2zx2:x1:bz	x1:a:x2:b)r   r   Zlinspace)r°   r%   r9   r&   Útest_term_order.  s,    ÿ   üÿr±   c                 C   sH   dddœ}t d|dƒ}| r0t |dgg¡sDt‚nt |dgg¡sDt‚d S )NrO   rL   rs   z0 + I(x / y)r+   ro   )r0   r   r   r   )Zexpect_true_divisionr    r¯   r%   r%   r&   Ú_check_divisionD  s
    
r²   c                   C   s(   t j ¡ tjk rd S tdƒ tdƒ d S )NFz6from __future__ import division
_check_division(True)
)Ú
__future__ÚdivisionÚgetMandatoryReleaseÚsysÚversion_infor²   Úexecr%   r%   r%   r&   Útest_futureO  s    r¹   c                  C   s¸   ddgddgddggddgddggdœ} t d| d	d
dddddddddg	dddddddddg	gdddddddddg	ƒ t d| d	d
ddd	dd	ddgdd	dd	dddggdddddddgƒ d S )Nr¨   r§   r+   rL   rM   rN   )r•   ra   r`   zX*Yr   TrP   rZ   r�   é   rm   ri   rj   zY[0]zY[1]z	X[0]:Y[0]z	X[1]:Y[0]z	X[0]:Y[1]z	X[1]:Y[1]za:X + Yz
a[a1]:X[0]z
a[a2]:X[0]z
a[a1]:X[1]z
a[a2]:X[1]rx   r9   r%   r%   r&   Útest_multicolumnY  s<    ýÿ
   ÿüÿ    þür»   c                  C   sˆ   dddg} dddg}t  tdƒddgddgddgg¡s:t‚tdƒ\}}t  |dgdgdgg¡sbt‚t  |ddgddgddgg¡s„t‚d S )	Nr+   rL   rM   rN   rO   rP   rU   rl   )r   r   r0   r   r5   )rU   rX   r   r   r%   r%   r&   Útest_dmatrix_dmatrices_no_datam  s    

&r¼   c                  C   sP   t ddddgdddgdd	d
gdœƒ\} }| j ¡ dks:t‚|j ¡ dksLt‚d S )Nz	y ~ x + ar+   rL   rM   rN   rO   rP   r¨   r§   Úa3)rX   rU   r•   rX   z	1 + a + x)r5   r   Zdescriber   )r   r   r%   r%   r&   Útest_designinfo_describeu  s    þr¾   c               
   C   sø   dd„ } d}z t |dddgddd	gd
œƒ W n> tk
rj } z |jt|d| d¡ƒksZt‚W 5 d }~X Y n
X dstt‚zt ddi iƒ W nd tk
rê } zFtjd dkrÌt	|tƒs´t‚|jtdddƒksÚt‚nt	|t
ƒsÚt‚W 5 d }~X Y n
X dsôt‚d S )Nc                 S   s   t dƒ‚d S )NZWHEEEEEEr   )rU   r%   r%   r&   Úraise_patsy_error€  s    z2test_evalfactor_reraise.<locals>.raise_patsy_errorzraise_patsy_error(X) + Yr+   rL   rM   rN   rO   rP   )ra   r`   r   ú Fz1 + x[1]rU   rZ   )r0   r   Úoriginr   r_   r   Ú	Exceptionr¶   r·   r.   ÚKeyError)r¿   r­   r|   r%   r%   r&   Útest_evalfactor_reraise|  s     . rÄ   c               	   C   sð  dddt jgt jdddgdœ} dg}tr2| d	¡ |D �]²}td
| |d�}t  |dddgdddgg¡sjt‚|d	krŒ|j t	 
ddg¡¡sŒt‚tjttd
| |dd� td| |d�\}}t  |dgdgg¡sÌt‚t  |ddgddgg¡sèt‚|d	k�r*|j t	 
ddg¡¡�st‚|j t	 
ddg¡¡�s*t‚tjttd| |dd� td| |d�\}}t  |dgdgdgg¡�spt‚t  |dgdgdgg¡�sŽt‚|d	k�rÔ|j t	 
dddg¡¡�s¶t‚|j t	 
dddg¡¡�sÔt‚tjttd| |dd� q6d S )Nr+   rL   rM   rq   rr   é(   rs   r(   r*   rn   )r    r-   Úraise)r    r-   Z	NA_actionrl   zy ~ 1)r   Únanr   rD   r0   r�   r   r_   Úequalsr   ÚIndexrB   rC   r   r5   )r    Zreturn_typesr-   ÚmatZlmatZrmatr%   r%   r&   Útest_dmatrix_NA_action—  sR    

ÿ
þ
   þ
   þrË   c                  C   s´   ddddœ} ddddggfddddggffD ]‚\}}t || ƒ}t ||¡sNt‚t t|jg| ƒd |¡slt‚tr,t | ¡}t t ||ƒ|¡s�t‚t t|jg|ƒd |¡s,t‚q,d S )	Ngš™™™™™ñ?g333333ó?r¨   )rQ   rR   r•   zx1 + x2r+   zC(a, levels=('a1', 'a2')) + x1r   )	r0   r   r   r   r   r   r   r   r€   )Zdata_0dr­   ÚexpectedrÊ   Zdata_seriesr%   r%   r&   Útest_0d_data¾  s.    þ
ÿÿþ
ÿÿþrÍ   c                  C   s>   dddg} t di ƒ}dddg} t |ji ƒ}t ||¡s:t‚d S )Nr+   rL   rM   rw   rp   rq   rr   )r0   r   r   r   r   )rw   Zdesign_matrixZdesign_matrix2r%   r%   r&   Útest_env_not_saved_in_builderÔ  s
    


rÎ   c                  C   sì   t sd S tdddgddgƒg} tr6|  t | d ¡¡ | D ]¬}d|i}t td|ƒddgddgddgg¡snt	‚t td|ƒddgddgddgg¡s–t	‚t td|ƒddgddgddgg¡s¾t	‚t td|ƒddgddgddgg¡s:t	‚q:d S )	Nr+   r   r–   r•   ÚobjzC(obj)zC(obj, levels=['b', 'a'])zC(obj, levels=['a', 'b']))
r   r   r   rD   r   r€   r   r   r0   r   )ZobjsrÏ   rž   r%   r%   r&   Útest_C_and_pandas_categoricalÝ  s>    þÿþÿþÿþÿrÐ   )NN)<r¶   r³   r<   Únumpyr   rB   r’   r   Zpatsy.design_infor   r   Z
patsy.evalr   Z
patsy.descr   r   r	   Zpatsy.categoricalr
   Zpatsy.contrastsr   Zpatsy.user_utilr   r   Zpatsy.buildr   r   r‘   Z
patsy.utilr   r   r   r   Zpatsy.originr   r   r'   r4   r6   rH   rK   rŠ   r“   r›   r¢   r¥   r¦   r«   r¬   r±   r²   r¹   r»   r¼   r¾   rÄ   rË   rÍ   rÎ   rÐ   r%   r%   r%   r&   Ú<module>   sX   	   ý
? D7	4(
'	