U
    Kvf                     @   s   d Z ddlZddlmZmZ ddlZddlmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ dd Zee
eegZe	eeegZejdeeedd	 Z d
d Z!dd Z"dS )z5
Created on Tue Nov 08 22:28:48 2011

@author: josef
    N)assert_almost_equalassert_equal)aic	aic_sigmaaicc
aicc_sigmabiasbic	bic_sigmahqic
hqic_sigmaiqrmaxabsmeanabs	medianabs
medianbiasmsermsermspevarec               	   C   sJ  t ddd} t d}tt| |dt d  tt| |dddt d  tt| |d dd tt| |t d	d
dddg tt| |ddt ddddg tt	| |t dddddg tt	| |ddt ddddg | | }t 
| dk}||  | |   < t j|t 
| dk< t t |d dd }tt| || d|t 
t |< t t |d dd }tt| |dd| tt| |t dd d!d"d#g tt| |ddt dd$d%d#g tt| |t d&d'd(d)d*g tt| |ddt d+d,d-d!g tt| |ddt d&d'd(d)d*g tt| |t d.d'd(d)d*g tt| |ddt d/d,d-d!g tt| |t d.d'd(d)d*g tt| |ddt d/d,d-d!g tt| |t d.d'd(d)d*g tt| |ddt d/d,d-d!g tt| |t d0d0d0d0d0g tt| |ddt d1d1d1d1g d S )2N         )r   r      Zaxis   	   g     `R@g     U@g     Y@g     `^@g     a@g      @g      C@g     ^@g      p@gO6Q|%!@g{JR"@gLW,UX$@gUt֟&@g2n'@gn]z?g$\@g+Z.&@g0@r   d   g        )zerosg      ,@g      .@g      0@g      1@g      2@g       @g      *@g      @g      @g      !@g      #@g      %@gffffff?g      @g      &@g      @      ?g     @?@       @)npZarangeZreshapeZonesr   r   r   arrayr   r   wherenansqrtZnanmeanr   isnanr   r   r   r   r   r   )xyerrlocexpected r,   N/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/tools/tests/test_eval_measures.pytest_eval_measures!   sN    
 " " "$ " " " r.   z	ic,ic_sigc                 C   s   | t dddjtkst|t dddjtks8tt| dt d ddd |ddddd t|t ddddd|ddddd d S )	Nr   
   g      r       decimalT)Zislog)r!   r"   ZdtypefloatAssertionErrorr   log)ZicZic_sigr,   r,   r-   test_ic_equivalenceZ   s     
  
 r6   c                  C   s   d} d}t tdddd| dd t tdddtd| |d| |d  | | d   dd t tdddt| | dd t tddddtt|  | dd d S )Nr/   r   r   r0   r1   r   )r   r   r   r	   r!   r5   r   )nkr,   r,   r-   test_icj   s    
& r9   c                    s   t jd t jdt d d}t   }t|| t dd}|jdks^t fddtdD }t	|t 
| t dd}|jdkst fd	dtdD }t	|t 
| t||kstd S )
N)r   r   r   r   )r   c                    s.   g | ]&}t  d d |f d d |f qS Nr   .0ix1Zx2r,   r-   
<listcomp>   s     z!test_iqr_axis.<locals>.<listcomp>r   r   c                    s.   g | ]&}t  |d d f |d d f qS r:   r;   r<   r?   r,   r-   rA      s     )r!   randomZstandard_normalr   Zravelr   shaper4   ranger   r"   any)Zreset_randomstateZax_noneZax_none_directZax_0Zax_0_directZax_1Zax_1_directr,   r?   r-   test_iqr_axis{   s    
rF   )#__doc__Znumpyr!   Znumpy.testingr   r   ZpytestZstatsmodels.tools.eval_measuresr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r.   ZicsZics_sigmarkZparametrizezipr6   r9   rF   r,   r,   r,   r-   <module>   s   P5
