
    ,ho                        S SK rS SKrS SKJr  S SKJrJr  S SKJ	r	  S SK
JrJrJr  S SKJr  S SKJr  S SKJrJr  S S	KJrJr  S S
KJrJrJrJr  S SKJrJrJ r J!r!  S SK"J#r#  \(       a  S SK$r$S r%0 S S4S jr&0 S S4S jr'  S%S jr(\4S jr)S r*S r+S r,S r-S r.S r/S r0S r1S r2S r3S r4S r5S r6S  r7S! r8S" r9S# r:S$ r;g)&    N
PatsyError)DesignMatrix
DesignInfo)EvalEnvironment)	ModelDescTerm	INTERCEPT)C)Helmert)balancedLookupFactor)design_matrix_buildersbuild_design_matrices)dmatrix	dmatricesincr_dbuilderincr_dbuilders)have_pandashave_pandas_categoricalhave_pandas_categorical_dtypepandas_Categorical_from_codes)Originc                    [         R                  " X$5      (       d   eUR                  R                  U:X  d   eUb:  [         R                  " X5      (       d   eUR                  R                  U:X  d   eO
Ub   eUb   eU (       a  Uc  [	        UR                  /U5      u  nO][	        UR                  UR                  /U5      u  p[         R                  " X5      (       d   eU	R                  R                  U:X  d   e[         R                  " X5      (       d   eUR                  R                  U:X  d   eg UR                  R
                  b   eUb  UR                  R
                  b   eg g N)npallclosedesign_infocolumn_namesr   terms)
expect_full_designslhsrhsdataexpected_rhs_valuesexpected_rhs_namesexpected_lhs_valuesexpected_lhs_namesnew_rhsnew_lhss
             gC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\patsy/test_highlevel.pycheck_resultr,      sP    ;;s0000??''+====
{{34444++/AAAA"***!)));./@$GJW4#//2D G ;;w,,,,&&337IIII{{7((((""//3EEEE$$,,,{coo33;;;;{    matrixc                 N    Sn[        U[        5      (       a  US-  n[        XX#S9$ N	dataframe   return_type)
isinstanceintr   formula_liker$   depthr4   s       r+   dmatrix_pandasr:   B   s*    K%
<uFFr-   c                 N    Sn[        U[        5      (       a  US-  n[        XX#S9$ r0   )r5   r6   r   r7   s       r+   dmatrices_pandasr<   I   s*    K%
\HHr-   c                   ^ [        U[        5      (       a  US-  nU4S jn[        U [        [        [        45      (       d>  [        U [
        5      (       a  [        U S   [        5      (       d  [        U S5      (       aN  Uc  [        XU5      n	S n
[        U	/T5      u  nO[        XU5      n[        UT5      u  p[        UU
UTUUUU5        O@[        R                  " [        [        X5        [        R                  " [        [        X5        [        /n[        /n[         (       a*  UR#                  [$        5        UR#                  [&        5        Uc>  U H  nU" U TU5      n[        US UTUUUU5        M!     U H  n U" U TU5        [(        e   g U H  n U" U TU5        [(        e   U H!  nU" U TU5      u  p[        UU
UTUUUU5        M#     g ! [         a     Md  f = f! [         a     M\  f = f)Nr2   c                     > [        T /5      $ r   iterr$   s   r+   data_iter_makert.<locals>.data_iter_maker]   s    TF|r-   r   __patsy_get_model_desc__)r5   r6   strr   r   tuplehasattrr   r   r   r,   pytestraisesr   r   r   r   appendr:   r<   AssertionError)r8   r$   r9   r!   r%   r&   r'   r(   rB   builderr"   r#   builders
one_mat_fs
two_mat_fsfs    `              r+   trQ   P   s    %
 	<#y*!=>>|U++
<?J0W0W<!;<<&#L5IGC*G9d;FS%lUKH,Xt<HC		
 	j.,Pj-OJJ{.)*+"AL$.C##"#"	  A%,e, %$  A%,e, %$  A<u5JS##"#"	     s$   ?
G
G#
G G #
G10G1c                     [        U[        5      (       a  US-  n[        [        /n[        (       a  U[
        [        /-  nU H  n U" XU5        [        e   g ! U a     M  f = f)Nr2   )r5   r6   r   r   r   r:   r<   rK   )r8   r$   r9   excfsrP   s         r+   	t_invalidrU      sl    %

9	B{
~/00	!l%( !    		s   	AA#"A#c                  f  ^ [        / SQ/ SQ/0 SS/ SQ/ SQ// SQ5        [        S / SQ/ SQ/40 SS/ SQ/ SQ// SQ5        [        [        R                  " / SQ/ SQ/5      0 SS/ SQ/ SQ// SQ5        [        S [        R                  " / SQ/ SQ/5      40 SS/ SQ/ SQ// SQ5        [        / SQ/ SQ/SS9n [        U 0 SS/ SQ/ SQ// SQ5        [        S U 40 SS/ SQ/ SQ// SQ5        [        S	S
// SQ/ SQ/40 SS/ SQ/ SQ// SQS	/S
//S/5        [        S	/S
/// SQ/ SQ/40 SS/ SQ/ SQ// SQS	/S
//S/5        [        [        R                  " S	S
/5      [        R                  " / SQ/ SQ/5      40 SS/ SQ/ SQ// SQS	/S
//S/5        [        [        R                  " S	/S
//5      [        R                  " / SQ/ SQ/5      40 SS/ SQ/ SQ// SQS	/S
//S/5        [        / SQ/ SQ/SS9n[        S	S
/SS9n[        X!40 SS/ SQ/ SQ// SQS	/S
//S/5        [	        / SQ/ SQ/ SQ/40 S5        [	        / SQ/40 S5        [	        / SQ// SQ// SQ/40 S5        [
        (       Ga  [        [        R                  " S/ SQ05      0 SSS	/S
/S//S/5        [        [        R                  " / SQSS90 SSS	/S
/S//S/5        [        [        R                  " S/ SQ05      [        R                  " S/ SQ05      40 SSS	/S
/S//S/S/S/S//S/5        [        [        R                  " / SQSS9[        R                  " / SQSS940 SSS	/S
/S//S/S/S/S//S/5        [        [        R                  " / SQ/5      [        R                  " / SQ// SQS940 SS/ SQ// SQ/ SQ// SQ5        [        [        R                  " / SQ5      0 SSS	/S
/S//S/5        [	        [        R                  " S	//S	/S9[        R                  " S	//S
/S940 S5         " S S[        5      nU" 5       n[        US	S
/S	S
/SS//S.SSS	S
/SS//S S!/S	/S
//S"/5         " S# S$[        5      n[	        U" 5       0 S5        [        S%S	S
/SS/S&.SSS	S/S	S//S'S/S	/S
//S/5        [        S(S	S
/SS/S&.SSS	S/S	S//S'S/5        [        S)S	S
/SS/S&.SS/ S*Q/ S+Q// S,Q5        [        / [        [        S5      /5      /5      n[        US/ S-Q0SSS./S//S0//S/5        [        / [        / 5      [        [        S5      /5      /5      n[        US/ S-Q0SSS	S./S	S//S	S0//S'S/5        [        [        [        S5      /5      /[        / 5      [        [        S5      /5      /5      n[        U/ S-Q/ S1QS2.SSS	S./S	S//S	S0//S'S/S3/S4/S5//S/5        / [        [        S5      /5      /[        / 5      [        [        S5      /5      /4n[        US6 SS79n[        US   US
   4S/ S1Q0SSS	S3/S	S4/S	S5//S'S/5        [        US
   S/ S1Q0SSS	S3/S	S4/S	S5//S'S/5        [        US	   US
   4S/ S1Q0SSS	S3/S	S4/S	S5//S'S/S3/S4/S5//S/5        / SQn	[        S80 SSS	S	/S	S
/S	S//S'S9/5        [        S8S9/ S1Q0SSS	S3/S	S4/S	S5//S'S9/5        [	        S80 S	[        [        4S:9  S; n
U
" 5         [         R"                  " S	5      m[	        S80 T[        [        4S:9  [         R"                  " S5      mU4S< jnU" 5         g )=Nr2                  r   F)x0x1x2foo)default_column_prefix)foo0foo1foo2r2   rX   y0barbar0xrY   asdf)nameyr[   r\   r]   )      	   )columns)x7x8x9)rf   y1y2r^   )indexc                       \ rS rSrS rSrg).test_formula_likes.<locals>.ForeignModelSourceiN  c                 j    [        [        [        S5      /5      /[        [        S5      /5      /5      $ )NYX)r   r	   r   selfr$   s     r+   rD   Gtest_formula_likes.<locals>.ForeignModelSource.__patsy_get_model_desc__O  s/    dL$5#6784cAR@S;T:UVVr-    N__name__
__module____qualname____firstlineno__rD   __static_attributes__r   r-   r+   ForeignModelSourcerx   N  s    	Wr-   r   )rz   r{   TX[0]X[1]rz   c                       \ rS rSrS rSrg)1test_formula_likes.<locals>.BadForeignModelSourcei^  c                     U$ r   r   r|   s     r+   rD   Jtest_formula_likes.<locals>.BadForeignModelSource.__patsy_get_model_desc___  s    Kr-   r   Nr   r   r-   r+   BadForeignModelSourcer   ^  s    	r-   r   y ~ x)rl   ri   	Interceptz~ xx + y)r2   rY   r2   )r2   r[   rX   )r   ri   rl   )      ?      @      @r   r   r   
         ri   rl   r   r   r   c                  "    [        S/ SQ0/5      $ )Nri   rW   r?   r   r-   r+   <lambda>$test_formula_likes.<locals>.<lambda>  s    4#y!1 23r-   )eval_env
~ x_in_envx_in_env)rS   c            
      >    Sn [        S0 SSSS/SS/SS//SS/5        g )	Nrj   r   r2   TrX   rY   r   r   rQ   )r   s    r+   check_nested_call-test_formula_likes.<locals>.check_nested_call  s9    	VaVaV$*%	
r-   c            
      @   > Sn [        S0 TSSS/SS/SS//SS/5        g )	Nrj   r   Tr2   rX   rY   r   r   r   )r   es    r+   check_nested_call_2/test_formula_likes.<locals>.check_nested_call_2  s:    	VaVaV$*%	
r-   )rQ   r   asarrayr   rU   r   pandas	DataFrameSeriesobjectr   r	   r   r   	NameErrorr   r   capture)dmx_dmy_dmr   foreign_modelr   desc	termlistsrM   r   r   r   r   s               @r+   test_formula_likesr      s   y)b!UY	,BDVW		9%&
		I 


Iy)*
		I 	rzz9i012
		I 
y),E	JBb"aI.0HItRj"aI 68PQ 
Q)Y'(
		I
qc
		 #si+,
		I
qc
		 	QF	RZZI(>?@
		I
qc
		 	aS1#J	Y	,B!CD
		I
qc
		 I.eLDAe<D	
		I 
qc
		 y9i012q9 	{nb!$	{YK)5r1= {	&

C+
,b!UaS1#sOcUS	MM)&1S1#sOH	
 	
sI./1A1A3	BR1STS1#sOES1#sOE		
 	
]]93/ys1STS1#sOES1#sOE		
 	
  )-  )i@ KK	
 	
&--	
"B5A3aS/D6JseA3/1A1AA3%PQs1ST	
WV W '(M!fQFQF+,	
Q!Q	
qc
		  #%r1- !fAq6"	
Q!Q	c
qc
		 eAq6A'DAq6Aq62B[RUDVW!fAq6"		I R$S 12345DdS/"AtsecUSE-BSEJR$r(D,s*;)<$=>?D	o	
SAs8aX&	c dL-./048T<PSCTBU=V2WXDL1	
SAs8aX&	c
tbT		 		|C !	"#	b4c*+,-I
 &3aH 	!hqk"	l	
R1b'Ar7#	c 	l	
R1b'Ar7#	c 	!hqk"	l	
R1b'Ar7#	c
tbT		 HlB41a&1a&1a&!9K;TU	\"	
R1b'Ar7#	j! lB	:'>?	
 "AlB	:'>?"A	
 r-   c            	      
   [         (       d  g [        R                  " / SQS/ SQS9n [        R                  " / SQS/ SQS9n[        SSS	9n[        R
                  " US
S
/S
S/S
S//5      (       d   e[        R                  " UR                  SS/5      (       d   eUR                  R                  SS/:X  d   e[        R                  " UR                  / SQ5      (       d   e[        SSS	9u  p4[        R
                  " US/S/S//5      (       d   e[        R                  " UR                  S/5      (       d   eUR                  R                  S/:X  d   e[        R                  " UR                  / SQ5      (       d   e[        R
                  " US
S
/S
S/S
S//5      (       d   e[        R                  " UR                  SS/5      (       d   eUR                  R                  SS/:X  d   e[        R                  " UR                  / SQ5      (       d   e[        U SS	9n[        R
                  " US
/S/S//5      (       d   e[        R                  " UR                  S/5      (       d   eUR                  R                  S/:X  d   e[        R                  " UR                  / SQ5      (       d   e[        X4SS	9u  pg[        R
                  " US/S/S//5      (       d   e[        R                  " UR                  S/5      (       d   eUR                  R                  S/:X  d   e[        R                  " UR                  / SQ5      (       d   e[        R
                  " US
/S/S//5      (       d   e[        R                  " UR                  S/5      (       d   eUR                  R                  S/:X  d   e[        R                  " UR                  / SQ5      (       d   e[        U / SQ4SS	9u  p[        R                  " UR                  U R                  5      (       d   e[        R                  " U	R                  U R                  5      (       d   e[        / SQU 4SS	9u  p[        R                  " U
R                  U R                  5      (       d   e[        R                  " UR                  U R                  5      (       d   eSS KnUR                  R                   n SUR                  l         [        R                  " [         [        SSS
/0SSS	9  [        R                  " [         [        SS
/S/S.SSS	9  XR                  l         g ! XR                  l         f = f)NrW   AAr   )rk   rv   rZ   BBs1r1   r3   r2   rX   rY   r   zs2 ~ s1r[   r\   r]   s2)r         r   Fri   r   r   )r   r   r   r   r   r   array_equalrp   r   r   rv   r   patsy.highlevel	highlevelrH   rI   r   )r   r   df1df2df3df4df5df6df7df8df9df10patsy
had_pandass                 r+   test_return_pandasr     s[   ;	yt<	@B	yt<	@B
$K
0C;;saVaVaV45555>>#++T':;;;;??''K+>>>>>>#))\2222<HC;;saS1#sO,,,,>>#++v....??''D6111>>#))\2222;;saVaVaV45555>>#++T':;;;;??''K+>>>>>>#))\2222
"+
.C;;saS1#sO,,,,>>#++v....??''D6111>>#))\2222"{;HC;;saS1#sO,,,,>>#++v....??''D6111>>#))\2222;;saS1#sO,,,,>>#++v....??''D6111>>#))\2222"l+EHC>>#))RXX....>>#))RXX....<,+FIC>>#))RXX....>>$**bhh////,,J1&+#j'3qc
A;W#QC #	
 '1#j#s   3AU U1c                  8   [        SSS9n [        SU 5      nUR                  R                  / SQ:X  d   eUR                  R                  SS/:X  d   e[        UR                  R                  5      S:X  d   eUR                  R                  S   [        :X  d   eg )NrX   aba:b)r   b[T.b2]za[T.a2]:b[b1]za[T.a2]:b[b2]r   r   )r   r   r   r   
term_nameslenr    r
   )r$   r#   s     r+   test_term_infor   #  s    a1D
%
C??'' ,    ??%%+u)====s$$%***??  #y000r-   c                  f   / SQ/ SQ[         R                  " / SQ[         R                  S9/ SQ/ SQ[        / SQ5      [        / SQ5      [         R                  " / SQ[
        S9S.n [        SU S	S
S/S/S//S/5        [        SU S	S
S/S/S//S/5        [        SU S	S
S/S/S//S/5        [        SU S	S
S	S/SS	/S	S//SS/5        [        SU S	S
/ SQ/ SQ/ SQ// SQ5        [        SU S	S
/ SQ/ SQ/ SQ// SQ5        [        SU S	S
/ SQ/ SQ/ SQ// SQ5        [        SU S	S
/ SQ/ SQ/ SQ// S Q5        g )!NrW   )g      ?g       @g      @)dtype)TFT)ra   rg   baz)ra   r2   )r2   hi)r   r   cdr   rP   ghz~ 0 + ar   Tr2   rX   rY   r   z~ 0 + br   z~ 0 + cr   z~ 0 + dzd[False]zd[True]z~ 0 + e)r   r   r2   )r2   r   r   )r   r2   r   )ze[bar]ze[baz]ze[foo]z~ 0 + f)zf[1]zf[2]zf[3]z~ 0 + g)zg[bar]zg[baz]zg[foo]z~ 0 + h)zh[1]zh[foo]zh[(1, 'hi')])r   r   float32r   arrayr   rQ   rA   s    r+   test_data_typesr   1  s\   ZZ	4 "y\$%XX+6:	D iq$!qcA3#7iq$!qcA3#7iq$!qcA3#7iq$!Q!Q!Q 8:y:QR		Iy)& 		Iy)  		Iy)& 		Iy)*r-   c                  `   [        SSS9n [        SU SSSS/SS/SS/SS//SS/5        [        S	U SSSS/SS/SS/SS//SS
/5        [        SU SSSS/SS/SS/SS//SS/5        [        SU SS/ SQ/ SQ/ SQ/ SQ// SQ5        [        SU SS/ SQ/ SQ/ SQ/ SQ// SQ5        [        SU SS/ SQ/ SQ/ SQ/ SQ// SQ5        [        U S   [        5      U S'   [        SU SSSS/SS/SS/SS//SS/5        [        SU SSSS/SS/SS/SS//SS/5        [        SU SSSS/SS/SS/SS//SS/5        g ) NrX   r   z~ C(a)r   Tr2   r   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)r2   r   r   r   )r2   r   r2   r   )r2   r2   r   r   )r2   r2   r2   r2   )r   a[T.a2]r   za[T.a2]:b[T.b2]z0 + a:b)r   r   r2   r   )r   r2   r   r   )r   r   r   r2   )za[a1]:b[b1]za[a2]:b[b1]za[a1]:b[b2]za[a2]:b[b2]z1 + a + a:b)r2   r2   r   r2   )r   r   z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   rQ   r   r   rA   s    r+   test_categoricalr   c  s   a1D 	
Q!Q!Q!Q(	l# %	
Q!Q!Q!Q(	78 )	
Q!Q!Q!Q(	;< 		|\<@> 		|\<@D 		|\<@B $s)W%DIc4DAr7QGaVaV<{I>VW	
Q!Q!Q!Q(	-. c4DAr7QGaVaV<{I>VWr-   c                      / SQ/ SQ/ SQS.n [        SU SSS/S	/S
/S/S/S//S/5        [        SU SSSS/SS/SS//SS/5        [        SU SSSS/SS/SS//SS/5        g )NrW   rZ   r   )ri   rl   za b cz0 + I(x + y)r   Tr2   rX   rY   r[   r\   r]   zI(x + y)z
Q('a b c')r   r   r   r   z	center(x)r   r   rA   s    r+   test_builtinsr     s    \BDndAtqcA3aS1#s%Cj\R	
R1b'Ar7#	l# k4DAr7QFQF";k;=WXr-   c            
        ^ / SQ/ SQS./ SQ/ SQS./m[         R                  " / SQ5      n [         R                  " U [         R                  " U 5      -
  5      nU[         R                  " U5      -
  nU4S jn[	        SU5      n[        UTS	   5      u  pVUR                  R                  S
/:X  d   eUR                  R                  / SQ:X  d   e[         R                  " US	/S	/S	//5      (       d   e[         R                  " U[         R                  " / SQ/ SQUSS  45      5      (       d   e[        SU5      n[        U/TS	   5      u  nUR                  R                  / SQ:X  d   e[         R                  " US	/S	/S	//5      (       d   e[         R                  " U[         R                  " / SQ/ SQUSS  45      5      (       d   e[        R                  " [        [        SU5        [        R                  " [        [        SU5        g )N)a2r   r   rW   )r   ri   )r   r   a1rZ   )r2   rX   rY   r[   r\   r]   c                     > [        T 5      $ r   r?   )datass   r+   rB   )test_incremental.<locals>.data_iter_maker  s    E{r-   z!1 ~ a + center(np.sin(center(x)))r2   r   )r   r   zcenter(np.sin(center(x))))r2   r2   r2   )r2   r2   r   rY   z~ a + center(np.sin(center(x)))zx ~ xri   )r   r   sinmeanr   r   r   r   r   column_stackr   rH   rI   r   )	ri   sin_center_xx_colrB   rM   r"   r#   rL   r   s	           @r+   test_incrementalr     s    !y1 y1E 	

%&A66!bggaj.)L277<00E A?SH$XuQx8HC??''K=888??'' ,   
 ;;saS1#sO,,,,;;sBOOY	59,MNOOOO=OG"G9eAh7FS??'' ,   
 ;;saS1#sO,,,,;;sBOOY	59,MNOOOO
MM*mWoF
MM*nc?Cr-   c                      [        SS/ SQ0SSS[        R                  " S5      /S[        R                  " S5      /S[        R                  " S5      //S	S
/5        g )Nz~ np.sin(x)ri   rW   r   Tr2   rX   rY   r   z	np.sin(x))rQ   r   r   r   r-   r+   test_env_transformr     sQ    	i	
RVVAY!RVVAY!RVVAY8	k"r-   c                     ^ [        SSS9m[        R                  " SSS5      TS'   TS   S-  TS'   U4S jn U " S	/ S
Q5        U " S/ SQ5        U " S/ S
Q5        U " S/ SQ5        U " S/ SQ5        U " S/ SQ5        g )NrX   r   r   r2   r[   r_   r`   c                 V   > [        U T5      nUR                  R                  U:X  d   eg r   )r   r   r   )formulaordermr$   s      r+   t_terms test_term_order.<locals>.t_terms  s'    GT"}}''5000r-   za + b + x1 + x2)r   r   r   r_   r`   zb + a + x2 + x1)r   r   r   r`   r_   z0 + x1 + a + x2 + b + 1z0 + a:b + a + b + 1)r   r   r   r   za + a:x1 + x2 + x1 + b)r   r   r   r_   a:x1r`   z@0 + a:x1:x2 + a + x2:x1:b + x2 + x1 + a:x1 + x1:x2 + x1:a:x2:a:b)r   zx1:x2za:x1:x2zx2:x1:bz	x1:a:x2:br`   r_   r   )r   r   linspace)r   r$   s    @r+   test_term_orderr     s    a1DQ1%DJdqDJ1 BCBC%'JK!#AB$&QRJMr-   c                     SSS.n[        SUS5      nU (       a!  [        R                  " US//5      (       d   eg [        R                  " US//5      (       d   eg )Nr\   rX   r   z0 + I(x / y)r2   r   )r   r   r   )expect_true_divisionr$   r   s      r+   _check_divisionr     sU     Da(A{{1ug&&&&{{1se$$$$r-   c            	          SS/SS/SS//SS/SS//S.n [        SU S	S
/ SQ/ SQ// SQ5        [        SU S	S
/ SQ/ SQ// SQ5        g )Nr   r   r2   rX   rY   r[   )r   r{   rz   zX*Yr   T)	r2   r2   rX   r2   rY   r2   rX   rY   r]   )	r2   rY   r[   rX   r[   r]   rn   r      )	r   r   r   Y[0]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 + Y)r2   r2   r   rX   r   r2   rY   )r2   r   rY   r   r[   rX   r[   )r   z
a[a1]:X[0]z
a[a2]:X[0]z
a[a1]:X[1]z
a[a2]:X[1]r  r  r   rA   s    r+   test_multicolumnr    sz    D\!fq!f!fq!fD
 	77	

	
* 		 56	
r-   c                  $   / SQn / SQn[         R                  " [        S5      SS/SS/SS//5      (       d   e[        S5      u  p#[         R                  " US/S	/S
//5      (       d   e[         R                  " USS/SS/SS//5      (       d   eg )NrW   rZ   ri   r2   rX   rY   r   r[   r\   r]   )r   r   r   r   )ri   rl   r"   r#   s       r+   test_dmatrix_dmatrices_no_datar  @  s    AA;;ws|q!fq!fq!f%=>>>>!HC;;saS1#sO,,,,;;saVaVaV45555r-   c                      [        S/ SQ/ SQ/ SQS.5      u  pU R                  R                  5       S:X  d   eUR                  R                  5       S:X  d   eg )Nz	y ~ x + arW   rZ   )r   r   a3)rl   ri   r   rl   z	1 + a + x)r   r   describe)r"   r#   s     r+   test_designinfo_describer  I  sS    99;MNHC ??##%,,,??##%444r-   c            	      v   S n Sn [        U/ SQ/ SQS.5         e! [         a6  nUR                  [        USUR	                  S5      5      :X  d   e S nAOS nAff = f [        SS	0 05         e! [
         a>  n[        U[        5      (       d   eUR                  [        SS
S5      :X  d   e S nAg S nAff = f)Nc                     [        S5      e)NWHEEEEEEr   )ri   s    r+   raise_patsy_error2test_evalfactor_reraise.<locals>.raise_patsy_errorU  s    $$r-   zraise_patsy_error(X) + YrW   rZ   )r{   rz   r    z1 + x[1]ri   r[   rn   )r   r   originr   rv   	Exceptionr5   )r  r   r   s      r+   test_evalfactor_reraiser  Q  s    % )Gyy9: 	u  Bxx6'1gmmC.@AAAAB
S"I&
 	u	  4!Z((((xx6*a33334s,    
A,AA A0 0
B8:4B33B8c            
      l   SSS[         R                  /[         R                  SSS/S.n S/n[        (       a  UR                  S	5        U GHe  n[	        S
XS9n[         R
                  " U/ SQ/ SQ/5      (       d   eUS	:X  a8  UR                  R                  [        R                  " SS/5      5      (       d   e[        R                  " [        [        S
U USS9  [        SXS9u  pE[         R
                  " US/S//5      (       d   e[         R
                  " USS/SS//5      (       d   eUS	:X  ap  UR                  R                  [        R                  " SS/5      5      (       d   eUR                  R                  [        R                  " SS/5      5      (       d   e[        R                  " [        [        SU USS9  [        SXS9u  pE[         R
                  " US/S/S//5      (       d   e[         R
                  " US/S/S//5      (       d   eUS	:X  ap  UR                  R                  [        R                  " / SQ5      5      (       d   eUR                  R                  [        R                  " / SQ5      5      (       d   e[        R                  " [        [        SU USS9  GMh     g )Nr2   rX   rY   r   r   (   r   r.   r1   r   )r$   r4   )r2   rX   r   )r2   rY   r   raise)r$   r4   	NA_actionr   zy ~ 1rW   )r   nanr   rJ   r   r   rv   equalsr   IndexrH   rI   r   r   )r$   return_typesr4   matlmatrmats         r+   test_dmatrix_NA_actionr   k  sO   Q266""&&"b")=>D:L{K(#gDB~~cJ
#;<<<<+%99##FLL!Q$89999#	
 wTK
~~dbTB4L1111~~daVaV$45555+%::$$V\\1a&%9::::::$$V\\1a&%9::::#	
 wTK
~~dbTB4"$67777~~daS1#sO4444+%::$$V\\)%<====::$$V\\)%<====#	
K $r-   c                     SSSS.n S/ SQ/4S/ SQ/44 H  u  p[        X5      n[        R                  " X25      (       d   e[        R                  " [        UR                  /U 5      S	   U5      (       d   e[
        (       d  Mp  [        R                  " U 5      n[        R                  " [        X5      U5      (       d   e[        R                  " [        UR                  /U5      S	   U5      (       a  M   e   g )
N皙?333333?r   )r_   r`   r   zx1 + x2)r2   r"  r#  zC(a, levels=('a1', 'a2')) + x1)r2   r   r"  r   )r   r   r   r   r   r   r   r   )data_0dr   expectedr  data_seriess        r+   test_0d_datar'    s    $/G 
]O$	)K=9 g'{{3)))){{!3??"3W=a@(
 
 	
 
 ; --0K;;ww<hGGGG;;%s&7EaH(   r-   c                      / SQn [        S0 5      n/ SQn [        UR                  0 5      n[        R                  " X5      (       d   eg )NrW   r   r   )r   r   r   r   )r   design_matrixdesign_matrix2s      r+   test_env_not_saved_in_builderr+    s?    HJ+MH]66;N;;}5555r-   c                  F   [         (       d  g [        / SQSS/5      /n [        (       a(  U R                  [        R
                  " U S   5      5        U  H  nSU0n[        R                  " [        SU5      SS/SS/SS//5      (       d   e[        R                  " [        SU5      SS/SS/SS//5      (       d   e[        R                  " [        SU5      SS/SS/SS//5      (       d   e[        R                  " [        S	U5      SS/SS/SS//5      (       a  M   e   g )
N)r2   r   r2   r   r   r   objr2   zC(obj)zC(obj, levels=['b', 'a'])zC(obj, levels=['a', 'b']))	r   r   r   rJ   r   r   r   r   r   )objsr-  r   s      r+   test_C_and_pandas_categoricalr/    s*   ""))c3Z@AD$$FMM$q'*+CL{{75!,1v1v1v.FGGGG{{78Q/1a&1a&1a&1IJJJJ{{/3q!fq!fq!f5M
 
 	
 
 {{/3q!fq!fq!f5M
 
 	
 
 r-   )NN)<numpyr   rH   r   r   patsy.design_infor   r   
patsy.evalr   
patsy.descr   r	   r
   patsy.categoricalr   patsy.contrastsr   patsy.user_utilr   r   patsy.buildr   r   r   r   r   r   r   
patsy.utilr   r   r   r   patsy.originr   r   r,   r:   r<   rQ   rU   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r   r'  r+  r/  r   r-   r+   <module>r:     s       6 & 1 1  # 2 E M M    <F ')x G )+! I Yx .8 ! gT	:1z1/dCXLY$DN*(	%*Z6543
l.6
r-   