
    !gI                         d dl Zd dlmZ d dlZd dlmZmZ d dlm	Z
 e
j                  Z G d d      Z G d de      Z G d de      Z G d	 d
e      Zej"                  j%                  dg d      d        Zy)    N)assert_allcloseassert_equalc                       e Zd Zd Zy)KDETestBasec                    d}t         j                  j                  d       t         j                  j                  dd|df      | _        t         j                  j                  dd|df      | _        t         j                  j                  |df      | _        t         j                  j                  dd|df      | _        t         j                  j                  dd|df      | _	        t         j                  j                  |df      | _
        d	}d
}d}||| j                  z  z   || j                  z  z   | j                  z   | _        ||| j                  z  z   || j                  z  z   | j                  z   | j                  z   | _        g d| _        g d| _        g d| _        g d| _        t         j                  j                  |      | _        y )N<   i@    gffffff?   size   
   333333?333333?皙@)2g&1!@g/$(@gC,#@grh< @gS%@gv/@g-F!@g;O@g+@glq@g/$@gS@gX9v@gK7A`@gn@g-@gʡE	@gv@goʡ@g+@g@gK7	!@g/$'@gV-"@g
ףp=
 @gS@g(\u@gET!@g㥛 @g-'@g/$@g/$@g(\@gzG@g!rhm@g㥛 @gMb@gQ@gx@gGz@gʡ@gh|?5@gS"@gQ(@gn#@g)\ @g/ݤ@gQ8@gvo!@g@)2  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     r   r   r   r   r   r   r   )2gC\g5V~?gNp?g/ٺ̗?g\vc?gP]L?g$	tܧ?g1	?V`?gV:֢?gA?gQ,bg?gbnW?g:>f^g0
?gB]	gmU?gw?gw}8l?g1ݱ?gqw\?gs ?gp,?gNB


?go- g2?g2lM?g'ei?gr@n?g7*e?g^e?g행ǊggaJEߴ{?gInfWΜ?gM R?gDI?gc+&>^?g:m?gĺeEܭ?g+)pR?g5 H?gMfk?g5|?g6?g_7|?gt^c:g8䨒2?gH¾D?g)"*n)2r   r   r
   r
   r   r   r
   r   r   r   r   r   r
   r   r   r   r   r   r   r
   r   r   r   r   r   r
   r
   r
   r   r
   r   r   r   r   r   r
   r   r   r
   r   r
   r   r
   r   r   r   r   r   r   r   )nprandomseedbinomialoo2normalc1c2c3noiseyy2	Italy_gdp
Italy_yeargrowthoecdweights)selfnobsb0b1b2s        p/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pysetup_methodzKDETestBase.setup_method   s   
		v##As$#;))$$Q4)$<))""q	"2))""2qay"9))""2qay"9YY%%D!9%5
b477l"R$''\1DJJ>rDGG|#b477l2TVV;djjH	 		+ 			A 		 		
 yy''-    N)__name__
__module____qualname__r-    r.   r,   r   r      s    3.r.   r   c                   $    e Zd Zd Zd Zd Zd Zy)TestKDEUnivariatec                    t         j                  | j                        }|j                  dd       |j                  }t        d      D cg c]
  }|d|z      }}g d}|j                  dt        j                  d      z     }|j                  |      }t        j                  ||d       t        j                  ||d       y c c}w )	NFscott)fftbw   r   )gh.&?g9r?gȃ?g_Vo?gjga?g<?ư>atol)nparamKDEUnivariater   fitsupportrangedensityr   arangeevaluatenptr   r'   kdegriditestxkde_expected	kde_vals0kde_valss           r,   test_pdf_non_fftz"TestKDEUnivariate.test_pdf_non_fftD   s    ""4::.Eg& {{%*1X.bd... KKRYYq\ 12	<<&Hl!%	'I|!%	' /s   Cc                    t         j                  | j                        }|j                  | j                  dd       |j
                  }t        d      D cg c]
  }|d|z      }}g d}|j                  dt        j                  d      z     }|j                  |      }t        j                  ||d       t        j                  ||d       y c c}w )	NFr6   )r&   r7   r8   r9   r   )gX?g/=W6?gbWw?gp5e?g:*?g
x?r:   r;   )r=   r>   r   r?   r&   r@   rA   rB   r   rC   rD   rE   r   rF   s           r,   test_weighted_pdf_non_fftz+TestKDEUnivariate.test_weighted_pdf_non_fft^   s    ""4::.%G<{{%*1X.bd..- KKRYYq\ 12	<<&Hl!%	'I|!%	' /s   Cc                     t        j                  d      }t        j                  |      }t	        j
                  t        d      5  |j                          d d d        y # 1 sw Y   y xY w)Nd   zSelected KDE bandwidth is 0)match)r   onesr=   r>   pytestraisesRuntimeErrorr?   )r'   xrG   s      r,   !test_all_samples_same_location_bwz3TestKDEUnivariate.test_all_samples_same_location_bwv   sL    GGCL""1%]]</LM 	GGI	 	 	s   A  A)c                 :   t         j                  j                  ddd      }t        j	                  |      }|j                          t        j	                  |j                  d            }|j                          t        |j                  |j                         y )Nr   rR   i  r   double)	r   r   randintr=   r>   r?   astyper   r8   )r'   reset_randomstaterX   rG   
kde_doubles        r,   test_intzTestKDEUnivariate.test_int|   sk    IIa40""1%	))!((8*<=

.r.   N)r/   r0   r1   rN   rP   rY   r`   r2   r.   r,   r4   r4   B   s    '4'0/r.   r4   c                      e Zd Zej                  j
                  d        Zej                  j
                  d        Zd Zej                  j
                  d        Z	d Z
ej                  j
                  d        ZddZdd	Zej                  j
                  d
        Zej                  j
                  d        Zej                  j
                  d        Zd Zy)TestKDEMultivariatec                     t         j                  | j                  | j                  | j                  gdd      }t        j                  |j                  g dd       y )Ncoocv_lsdatavar_typer8   )g*-?gd]?gK,?r:   r;   r=   KDEMultivariater   r   r   rE   r   r8   )r'   dens_us     r,   test_pdf_mixeddata_CV_LSz,TestKDEMultivariate.test_pdf_mixeddata_CV_LS   sL    ''dggtvvtww-G167 ( DFII'K!%	'r.   c                 B   t         j                  | j                  | j                  | j                  gdd      }t         j                  | j                  | j                  | j                  gdd      }t        j                  |j                  |j                  dd       y )Nrd   re   rf   cv_mlr         ?r<   rtolri   )r'   dens_lsdens_mls      r,   test_pdf_mixeddata_LS_vs_MLz/TestKDEMultivariate.test_pdf_mixeddata_LS_vs_ML   s~    ((tww.H27G ) E((tww.H27G ) EGJJ

Er.   c                     t         j                  | j                  | j                  | j                  gdd      }g d}t        j                  |j                  |dd       y )Ncocrn   rf   )gۼqRX?gsW=g>۴ct?皙?rp   )r=   rj   r   r   r   rE   r   r8   )r'   rs   R_bws      r,   test_pdf_mixeddata_CV_MLz,TestKDEMultivariate.test_pdf_mixeddata_CV_ML   sO    ((tww.H27G ) E2GJJ3SAr.   c                     t         j                  | j                  | j                  gdd      }t	        j
                  |j                         dd       }g d}t        j                  ||d       y )	Nccre   rf   r      )gw`t?gyYS?g5?ga@g0v?MbP?r;   )	r=   rj   r$   r"   r   squeezepdfrE   r   r'   dens	sm_resultR_results       r,   test_pdf_continuousz'TestKDEMultivariate.test_pdf_continuous   sc     %%DKK+H/3 & A JJtxxz!A/	J 	Ixd;r.   c                     t         j                  | j                  gdd      }t        j                  |j                         dd       }g d}t        j                  ||d       y )	Nr   re   rf   r   r|   )X S(?r   PY?r   r   rw   r;   )r=   rj   r%   r   r~   r   rE   r   r   s       r,   test_pdf_orderedz$TestKDEMultivariate.test_pdf_ordered   sP    %%DII;%QJJtxxz!A/	JIxd;r.   c                     t         j                  | j                  | j                  gdd      }ddg}t	        j
                  |j                  |d       y )Ncure   rf   g+[dQu?g@KH?g{Gz?r;   )r=   rj   r$   r%   rE   r   r8   )r'   r   r   s      r,   test_unordered_CV_LSz(TestKDEMultivariate.test_unordered_CV_LS   sL    %%DKK+C/3 & Az*DGGXD9r.   Nc                     t         j                  | j                  | j                  gdd      }|j	                         dd }g d}t        j                  ||d       y )	Nr{   rn   rf   r   r|   )g%a?gUs+?g'&mn?g&m?gͱe?r}   r;   )r=   rj   r"   r$   cdfrE   r   r'   data_predictr   r   r   s        r,   test_continuous_cdfz'TestKDEMultivariate.test_continuous_cdf   sV    %%DNNDKK+H/3 & AHHJqO	.Ixd;r.   c                     t         j                  | j                  | j                  gdd      }|j	                         dd }g d}t        j                  ||d       y )	Nr   rn   rf   r   r|   )gPZ?gY?g*T?gKjpt?g|sꐼ/?r}   r;   )r=   rj   r"   r%   r   rE   r   r   s        r,   test_mixeddata_cdfz&TestKDEMultivariate.test_mixeddata_cdf   sT    %%DNNDII+F/3 & AHHJqO	OIxd;r.   c           	         d}t         j                  j                  d       t         j                  j                  |f      }t         j                  j                  dd|f      }dd|z  z   d|z  z
  }t        j                  ||gd	d
t        j                  dd            }t        j                  ddg      }t        j                  ||j                  dd       y )N  90  r   r	   r
   r   r   ?r{   re   TrR   	efficientn_subrg   rh   r8   defaultsgӼ?g&S?rw   皙?rp   r   r   r   r   r=   rj   EstimatorSettingsarrayrE   r   r8   r'   r(   C1C2Ydens_efficientr8   s          r,   test_continuous_cvls_efficientz2TestKDEMultivariate.test_continuous_cvls_efficient   s    
		uYYD8,YYa$2rMC"H$//aWt--C-H 0 J XXvv&'B 1 1#Fr.   c           	         d}t         j                  j                  d       t         j                  j                  |f      }t         j                  j                  dd|f      }dd|z  z   d|z  z
  }t        j                  ||gd	d
t        j                  dd            }t        j                  ddg      }t        j                  ||j                  dd       y )Nr   r   r   r	   r
   r   r   r   r{   rn   TrR   r   r   gQI?g_vO?rw   r   rp   r   r   s          r,   test_continuous_cvml_efficientz2TestKDEMultivariate.test_continuous_cvml_efficient   s    
		uYYD8,YYa$2rMC"H$//aWt!9!9D@C ": "E 0 F XXvv&'B 1 1CHr.   c           
         d}t         j                  j                  d       t         j                  j                  |f      }t         j                  j                  dd|f      }dd|z  z   d|z  z
  }t        j                  ||gd	d
t        j                  ddd            }t        j                  ||gd	d
      }t        j                  |j                  |j                  dd       y )Nr   r   r   r	   r
   r   r   r   r{   rn   TFrR   r   	randomizer   r   rf   rw   r   rp   )
r   r   r   r   r=   rj   r   rE   r   r8   )r'   r(   r   r   r   r   r   s          r,   test_efficient_notrandomz,TestKDEMultivariate.test_efficient_notrandom   s    
		uYYD8,YYa$2rMC"H$//aWt!9!9DDI@C ": "E 0 F %%Ar7Tg%NDGG^%6%6SMr.   c           
      x   d}t         j                  j                  d       t         j                  j                  |f      }t         j                  j                  dd|f      }ddg}t        j                  ||gd|t        j                  d	d
d            }t        j                  |j                  |       y Nr   r   r   r	   r
   gq=
ףp?gG$Ar{   TFrR   r   r   
r   r   r   r   r=   rj   r   rE   r   r8   r'   r(   r   r   bw_userr   s         r,    test_efficient_user_specified_bwz4TestKDEMultivariate.test_efficient_user_specified_bw      
		uYYD8,YYa$2y!%%B8d!9!9DDI@C ": "E & F 	'*r.   )N)r/   r0   r1   rU   markslowrl   rt   ry   r   r   r   r   r   r   r   r   r   r2   r.   r,   rb   rb      s    [[' '& [[F FB [[< <$< [[: :<< [[G G [[I I  [[N N+r.   rb   c                   B   e Zd Zej                  j
                  d        Zd Zej                  j
                  d        Zd Z	ej                  j
                  d        Z
d Zd Zej                  j
                  d        Zej                  j
                  d	        Zd
 Zy)TestKDEMultivariateConditionalc                     t         j                  | j                  g| j                  gddd      }t	        j
                  |j                  ddgd       y )	Ncr   re   endogexogdep_type
indep_typer8   g N1?gQ"Vk?h㈵>r;   )r=   KDEMultivariateConditionalr"   r#   rE   r   r8   r'   rr   s     r,   test_mixeddata_CV_LSz3TestKDEMultivariateConditional.test_mixeddata_CV_LS  sP    334>>:J:>//9J=@?Bw 4 P
 	GJJZ(@tLr.   c                     t         j                  | j                  g| j                  gddd      }t	        j
                  |j                  ddgd       y )Nr   rn   r   gn;F{?geq?r}   r;   )r=   r   r"   r$   rE   r   r8   )r'   rs   s     r,   test_continuous_CV_MLz4TestKDEMultivariateConditional.test_continuous_CV_ML$  sO    334>>:J:>++=@?Bw 4 P
 	GJJJ(?dKr.   c                 d    t         j                  | j                  g| j                  gddd      }y )Nur   re   r   )r=   r   r%   r$   r   s     r,   r   z3TestKDEMultivariateConditional.test_unordered_CV_LS,  s1    33499+:>++=@?Bw 4 Pr.   c                    t        j                  ddg      }t        j                  | j                  g| j
                  gdd|      }t        j                  |j                         dd       }g d}t        j                  ||d	       y )
Ngnl?gfffgAr   r   r   r|   )g_'@gz6>w)@gu*@g=!7*@g1t(@r}   r;   )
r   r   r=   r   r$   r"   r~   r   rE   r   )r'   bw_cv_mlr   r   r   s        r,   r   z2TestKDEMultivariateConditional.test_pdf_continuous4  sy     88Xz2300}7;~~6F:=#4< 1 > JJtxxz!A/	EIxd;r.   c                     t         j                  | j                  g| j                  gddd      }t	        j
                  |j                         dd       }g d}t        j                  ||dd	       y )
Nr   r   re   r   r   r|   )gܗT?g\ʓ?g[Z0?gk?gL5?r   rp   )	r=   r   r"   r#   r   r~   r   rE   r   r'   r   r   expecteds       r,   test_pdf_mixeddataz1TestKDEMultivariateConditional.test_pdf_mixeddata@  si    007G7;6G:=#4; 1 = JJtxxz!A/	L 	IxadCr.   c                    t         j                  | j                  g| j                  gddd      }|j                  }ddg}t        j                  ||d       t         j                  | j                  g| j                  gddd       }t        |j                  |j                  d	       t        |j                  d       t        |       y )
Nr   normal_referencer   g[X?goVq?rw   r;   g|=)rq   )
r=   r   r"   r$   r8   rE   r   r   
_bw_methodrepr)r'   dens_nmr   r   dens_nm2s        r,   test_continuous_normal_refz9TestKDEMultivariateConditional.test_continuous_normal_refS  s    334>>:J:>++=@?B7I	 4 K
 JJ	j)Ixd; 44DNN;K:>++=@?B7;	 5 =
 	WZZe<X((*<=Xr.   c                     t         j                  | j                  g| j                  gddd      }|j	                         dd }g d}t        j                  ||d       y )	Nr   r   r   r   r|   )g0??gWW>j?g?g[<?g1Պ>8?r}   r;   )r=   r   r"   r$   r   rE   r   )r'   r   r   r   s       r,   r   z2TestKDEMultivariateConditional.test_continuous_cdfj  s^    334>>:J:>++=@?B7I	 4 K
 KKM!A&	OIxd;r.   c                     t         j                  | j                  g| j                  gddd      }|j	                         dd }g d}t        j                  ||dd	       y )
Nr   r   re   r   r   r|   )gUPe?geOB?g$x?gtCg?gB_0?r   rp   )r=   r   r"   r#   r   rE   r   r   s       r,   r   z1TestKDEMultivariateConditional.test_mixeddata_cdft  s_    007G7;6G:=<?4;	 1 =
 HHJqO	OIxadCr.   c                    d}t         j                  j                  d       t         j                  j                  dd|f      }t         j                  j	                  |f      }t         j                  j	                  |f      }d}d}d}|||z  z   ||z  z   |z   }t
        j                  |g|gd	d	d
t
        j                  dd            }	t        j                  ddg      }
t        j                  |	j                  |
dd       y )Ni  r   r	   ro   r   r   r   r   r   rn   T2   r   )r   r   r   r   r8   r   g$0{?gё\C?r   r}   rp   )r   r   r   r   r   r=   r   r   r   rE   r   r8   )r'   r(   ovalsr   r   r)   r*   r+   r   r   bw_expecteds              r,   r   z=TestKDEMultivariateConditional.test_continuous_cvml_efficient  s    
		u		""1c"9YYD8,		  th /RK"U("e+::!--B-G ; I hh12N--{Nr.   c           
      x   d}t         j                  j                  d       t         j                  j                  |f      }t         j                  j                  dd|f      }ddg}t        j                  ||gd|t        j                  d	d
d            }t        j                  |j                  |       y r   r   r   s         r,   r   z?TestKDEMultivariateConditional.test_efficient_user_specified_bw  r   r.   N)r/   r0   r1   rU   r   r   r   r   r   r   r   r   r   r   r   r   r2   r.   r,   r   r     s    [[M ML [[P P
< [[D D$.< [[	D 	D [[O O*+r.   r   kernel)biwcosepagautritriwunic                 P   t         j                  j                  d      }t        j                  t	        |      t        |      d      }t        j                  j                  |      }|j                  dd       t        |j                  |      t         j                        sJ y )N   r   r   F)r   r7   )r   r   r   linspaceminmaxsmnonparametricr>   r?   
isinstancerD   ndarray)r   r^   rg   x_gridrB   s        r,   test_all_kernelsr     sz     99%D[[TCIs3F,,T2GKKu%K(g&&v.

;;;r.   )numpyr   numpy.testingtestingrE   rU   r   r   statsmodels.apiapir   r   r=   r   r4   rb   r   r   parametrizer   r2   r.   r,   <module>r      s       7 			4. 4.nB/ B/JP++ P+fG+[ G+T  $: ;<;<r.   