U
    Ãmœdl
  ã                   @   sF   d dl Zd dlmZ d dlZd dlmZ d dlmZ G dd„ dƒZ	dS )é    N)Úassert_allclose)ÚWLS)Ú_MinimalWLSc                   @   sP   e Zd Zedd„ ƒZej dddg¡dd„ ƒZej de	j
e	jg¡d	d
„ ƒZdS )ÚTestMinimalWLSc                 C   s–   t j d¡}| dd¡| _| j d¡| d¡ | _dt  t  d¡d t j	 ¡ | _
| dd¡| _d	| j ¡  | d¡ | _dt  t  dd
¡¡ | _d S )NiÒ  éÈ   é   é   g      ð?g      i@g      Y@é2   g333333Ó?g     €I@)ÚnpÚrandomZRandomStateZrandnÚexog1ÚsumÚendog1ÚsinZarangeÚpiÚweights1Úexog2ZravelÚendog2ÚlogÚweights2)ÚclsÚrs© r   ú`/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/regression/tests/test_tools.pyÚsetup_class
   s     zTestMinimalWLS.setup_classÚcheckTFc                 C   s0  t | j| jƒ ¡ }t| j| j||d� ¡ }t|j|jƒ t|j|jƒ t | j| j	ƒ ¡ }t| j| j	||d� ¡ }t|j|jƒ t|j|jƒ t | j| j| j
d� ¡ }t| j| j| j
||d� ¡ }t|j|jƒ t|j|jƒ t | j| j	| jd� ¡ }t| j| j	| j||d� ¡ }t|j|jƒ t|j|jƒ d S )N©Úcheck_endogÚcheck_weights)Úweights)r   r   r   )r   r   r   Úfitr   r   ÚparamsZresidr   r   r   r   )Úselfr   ÚresZminresr   r   r   Útest_equivalence_with_wls   s8    
 ÿ

 ÿ
 ÿ
 ÿ
z(TestMinimalWLS.test_equivalence_with_wlsÚ	bad_valuec              	   C   s�   t jtdd��2 | j ¡ }||d< t|| j| jddd� ¡  W 5 Q R X t jtdd��2 | j ¡ }||d< t| j| j|ddd� ¡  W 5 Q R X d S )Nz(detected in endog, estimation infeasible)Úmatchr   Tr   z*detected in weights, estimation infeasibleéÿÿÿÿ)	ÚpytestZraisesÚ
ValueErrorr   Úcopyr   r   r   r    )r"   r%   Zendogr   r   r   r   Útest_inf_nan.   s(    þ
 ÿþ
 ÿzTestMinimalWLS.test_inf_nanN)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r(   ÚmarkZparametrizer$   r
   ÚnanÚinfr+   r   r   r   r   r   	   s   
	
r   )
Únumpyr
   Znumpy.testingr   r(   Z#statsmodels.regression.linear_modelr   Zstatsmodels.regression._toolsr   r   r   r   r   r   Ú<module>   s
   