U
    mdQ                     @   s   d dl Z d dlZd dlmZ d dlmZ d dlmZ ddl	m
Z ejdejfejdejfejd	ejfgZejd
fejdfejd
fejd
fgZdejejgZe jdee jdedd Ze jdedd ZdS )    N)assert_allclose)norms)_approx_fprime_scalar   )results_norms)g      ?g      @g       @)   )gQ? )gffffff?intdtypecasec              
      s~  | \}}}|t jfkr$|tjkr$d S || tjddddddddd	g	|d
}|}|}|}|}	t	||jddd t	||jddd t	||jddd t	|	|jddd t
|d}
|j|
kst|j|
kst|j|
kst|	j|
kstt|j}t	||jddd t|j}t	||jddd ddddg}|D ]*  fdd|D }t	|t|  qNd S )Nr   r         	   r
   g-q=g#B;ZrtolZatolfloatư>:0yE>weightsrhopsi	psi_derivc                    s   g | ]}t  |qS r   )getattr).0ximethnormr   \/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/robust/tests/test_norms.py
<listcomp>F   s     ztest_norm.<locals>.<listcomp>)r   HuberTnp
complex128arrayr   r   r   r   r   Zpromote_typesr
   AssertionErrorr   r   )r   r
   nclsargsresxr   r   r   r   Zdtype2psidpsiddmethodsZresmr   r   r"   	test_norm   s4    
 



	r0   c              
   C   s   | \}}|| }t jddddddddd	g	td
}||}||}||}||}|d dkshtt t 	|dd  dkstt t 	|d d dkstt
||d |d  ddd t||j}	t
||	ddd t||j}
t
||
ddd d S )Nr   r   r   r   r   r   r   r   r   r   r   gJz5r   r   r   )r%   r'   r   r   r   r   r   r(   alldiffr   r   )r   r)   r*   r!   r,   r   r   r   r   r-   r.   r   r   r"   test_norms_consistentJ   s     



  r3   )Zpytestnumpyr%   Znumpy.testingr   Zstatsmodels.robustr   Zstatsmodels.tools.numdiffr   resultsr   Zres_rZHampelZ
res_hampelZTukeyBiweightZres_biweightr$   Z	res_huberZcasesZLeastSquaresZTrimmedMeanZ
AndrewWaveZRamsayEZnorms_otherZfloat64r&   ZdtypesmarkZparametrizer0   r3   r   r   r   r"   <module>   s(   *