U
    Kvf                     @   sN   d dl Zd dlmZ d dlmZ d dlmZmZ d dlm	Z	 G dd dZ
dS )    N)assert_raises)StepFunctionmonotone_fn_inverter)ECDFDiscretec                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestDistributionsc                 C   s`   t d}t d}t||}|t ddgddgddgg}t|dd	gd
dgddgg d S )N   皙	@      @         @      @         r      nparanger   arraynptassert_almost_equalselfxyfvals r   M/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/distributions/tests/test_ecdf.pytest_StepFunction
   s
    


 z#TestDistributions.test_StepFunctionc                 C   sH   t d}t d}ttt|| t d}t d}ttt|| d S )Nr      )r   r   )r   r   r   
ValueErrorr   zeros)r   r   r   r   r   r   test_StepFunctionBadShape   s    



z+TestDistributions.test_StepFunctionBadShapec                 C   sd   t d}t d}t||dd}|t ddgddgdd	gg}t|d
dgddgd
dgg d S )Nr   rightZsider   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   test_StepFunctionValueSideRight   s
    

 z1TestDistributions.test_StepFunctionValueSideRightc              
   C   s   ddddddddddg
}dddd	d
dddddg
}t ||}t|dddddgddd
ddg t ||dd}t|dddddgdd
dddg d S )N   r   r   r               	   
                  r   r%   r&   )r   r   r   )r   r   r   r   f2r   r   r   test_StepFunctionRepeatedValues    s    
$z1TestDistributions.test_StepFunctionRepeatedValuesc              
   C   sl   ddddddddd	d
g
}dd }|t |}t||}t|j|d d d  t|j|d d d  d S )Nr*   r+   r,   r-   r.   r/   r0   r1   r2   r3   c                 S   s   d|  S )Ng      ?r   )r   r   r   r   <lambda>*       z=TestDistributions.test_monotone_fn_inverter.<locals>.<lambda>)r   r   r   r   assert_array_equalr   r   )r   r   fnr   r   r   r   r   test_monotone_fn_inverter(   s    
z+TestDistributions.test_monotone_fn_inverterc                 C   s   ddddg}t |}t|jtj dddg t|jddddg t dddddg}t ddddgd	dddgd
}t|j|j t|j|j d S )Nr   r(   r   r   g      ?g      ?g      @g      ?r   )Zfreq_weights)r   r   r9   r   r   infr   )r   r   ee1e2r   r   r   test_ecdf_discrete0   s    z$TestDistributions.test_ecdf_discreteN)	__name__
__module____qualname__r    r$   r'   r5   r;   r@   r   r   r   r   r      s   r   )Znumpyr   Znumpy.testingZtestingr   r   Zstatsmodels.distributionsr   r   r   r   r   r   r   r   <module>   s
   