U
    ÃmœdU  ã                   @   sÊ  d dl Zd dlmZ d dlm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mZmZmZ d dlmZ G dd„ dƒZG d	d
„ d
eƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ dƒZG dd„ deƒZG dd„ dƒZdd„ Zejj dd„ ƒZ!G dd„ dƒZ"G dd „ d ƒZ#G d!d"„ d"ƒZ$G d#d$„ d$ƒZ%d%d&„ Z&ejj ej 'd'i d(d)d*œg¡ej 'd+d,d-g¡ej 'd.d,d-g¡ej 'd/dd0d1d2d3g¡d4d5„ ƒƒƒƒƒZ(ejj d6d7„ ƒZ)dS )8é    N)Úassert_equal)Ústats)Úgofplots)ÚProbPlotÚqqlineÚqqplotÚqqplot_2samples)Ú_import_mplc                   @   s8  e Zd Zdd„ Zejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZ	ejjd	d
„ ƒZ
ejjdd„ ƒZejjdd„ ƒZejjdd�ejjdd„ ƒƒZejjdd„ ƒZejjdd„ ƒZejjdd�ejjdd„ ƒƒZejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZejjdd „ ƒZejjd!d"„ ƒZejjd#d$„ ƒZd%d&„ Zd'S )(ÚBaseProbplotMixinc                 C   sn   z dd l m} | ¡ \| _| _W n tk
r4   Y nX tjj| j	j
jd�| _t| jƒ| _tddddd�| _d S )Nr   ©ÚsizeÚdÚcornflowerblueÚwhiteç      à?)ÚmarkerÚmarkerfacecolorÚmarkeredgecolorÚalpha)Úmatplotlib.pyplotÚpyplotÚsubplotsÚfigÚaxÚImportErrorÚnpÚrandomÚnormalÚprbpltÚdataÚshapeÚother_arrayr   Úother_prbplotÚdictÚplot_options©ÚselfÚplt© r(   úa/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/graphics/tests/test_gofplots.pyÚsetup_method   s    üzBaseProbplotMixin.setup_methodc                 C   s"   | j jf | j| jdœ| j—Ž d S ©N©r   Úline©r   r   r   r-   r$   ©r&   Úclose_figuresr(   r(   r)   Útest_qqplot#   s    zBaseProbplotMixin.test_qqplotc                 C   s   | j j| j| jd� d S r+   ©r   Úppplotr   r-   r/   r(   r(   r)   Útest_ppplot'   s    zBaseProbplotMixin.test_ppplotc                 C   s"   | j jf | j| jdœ| j—Ž d S r+   ©r   Úprobplotr   r-   r$   r/   r(   r(   r)   Útest_probplot+   s    zBaseProbplotMixin.test_probplotc                 C   s$   | j jf | jd| jdœ| j—Ž d S )NT)r   Zexceedr-   r5   r/   r(   r(   r)   Útest_probplot_exceed/   s      ÿÿz&BaseProbplotMixin.test_probplot_exceedc                 C   s&   | j jf | j| j| jdœ| j—Ž d S ©N)r   r-   Úother)r   r   r   r-   r!   r$   r/   r(   r(   r)   Útest_qqplot_other_array5   s    ýüz)BaseProbplotMixin.test_qqplot_other_arrayc                 C   s&   | j jf | j| j| jdœ| j—Ž d S r9   )r   r3   r   r-   r!   r$   r/   r(   r(   r)   Útest_ppplot_other_array>   s    ýüz)BaseProbplotMixin.test_ppplot_other_arrayT)Ústrictc                 C   s&   | j jf | j| j| jdœ| j—Ž d S r9   )r   r6   r   r-   r!   r$   r/   r(   r(   r)   Útest_probplot_other_arrayG   s    ýüz+BaseProbplotMixin.test_probplot_other_arrayc                 C   s&   | j jf | j| j| jdœ| j—Ž d S r9   )r   r   r   r-   r"   r$   r/   r(   r(   r)   Útest_qqplot_other_prbpltQ   s    ýüz*BaseProbplotMixin.test_qqplot_other_prbpltc                 C   s&   | j jf | j| j| jdœ| j—Ž d S r9   )r   r3   r   r-   r"   r$   r/   r(   r(   r)   Útest_ppplot_other_prbpltZ   s    ýüz*BaseProbplotMixin.test_ppplot_other_prbpltc                 C   s&   | j jf | j| j| jdœ| j—Ž d S r9   )r   r6   r   r-   r"   r$   r/   r(   r(   r)   Útest_probplot_other_prbpltc   s    ýüz,BaseProbplotMixin.test_probplot_other_prbpltc                 C   s&   | j jf | j| jdddœ| j—Ž d S ©NzCustom X-LabelzCustom Y-Label)r   r-   ÚxlabelÚylabelr.   r/   r(   r(   r)   Útest_qqplot_custom_labelsm   s    üûz+BaseProbplotMixin.test_qqplot_custom_labelsc                 C   s&   | j jf | j| jdddœ| j—Ž d S rB   )r   r3   r   r-   r$   r/   r(   r(   r)   Útest_ppplot_custom_labelsw   s    üûz+BaseProbplotMixin.test_ppplot_custom_labelsc                 C   s&   | j jf | j| jdddœ| j—Ž d S rB   r5   r/   r(   r(   r)   Útest_probplot_custom_labels�   s    üûz-BaseProbplotMixin.test_probplot_custom_labelsc                 C   s    | j j| j| jddddd� d S ©Nr   r   r   r   )r   r-   r   r   r   r   )r   r   r   r-   r/   r(   r(   r)   Útest_qqplot_pltkwargs‹   s    úz'BaseProbplotMixin.test_qqplot_pltkwargsc                 C   s    | j j| j| jddddd� d S rH   r2   r/   r(   r(   r)   Útest_ppplot_pltkwargs–   s    úz'BaseProbplotMixin.test_ppplot_pltkwargsc                 C   s    | j j| j| jddddd� d S rH   )r   r6   r   r-   r/   r(   r(   r)   Útest_probplot_pltkwargs¡   s    úz)BaseProbplotMixin.test_probplot_pltkwargsc                 C   s4   | j jd | j jkst‚| j jd | j jks0t‚d S )Néþÿÿÿéÿÿÿÿ)r   Ú
fit_paramsÚlocÚAssertionErrorÚscale©r&   r(   r(   r)   Útest_fit_params¬   s    z!BaseProbplotMixin.test_fit_paramsN)Ú__name__Ú
__module__Ú__qualname__r*   ÚpytestÚmarkÚ
matplotlibr1   r4   r7   r8   r;   r<   Zxfailr>   r?   r@   rA   rE   rF   rG   rI   rJ   rK   rS   r(   r(   r(   r)   r
      sH   








	
	
	





r
   c                       s   e Zd Z‡ fdd„Z‡  ZS )ÚTestProbPlotLongelyNoFitc                    sv   t j d¡ tjj ¡ | _tj| jj	dd�| j_	t 
| jj| jj	¡ ¡ | _t| jjtjddd�| _d| _tƒ  ¡  d S )Né   F©Úprepend©é   ©ÚdistÚdistargsÚfitÚr©r   r   ÚseedÚsmÚdatasetsÚlongleyÚloadr   Úadd_constantÚexogÚOLSÚendogrc   Úmod_fitr   Úresidr   Útr   r-   Úsuperr*   rR   ©Ú	__class__r(   r)   r*   ²   s       ÿz%TestProbPlotLongelyNoFit.setup_method©rT   rU   rV   r*   Ú__classcell__r(   r(   rs   r)   rZ   ±   s   rZ   c                       s   e Zd Z‡ fdd„Z‡  ZS )ÚTestProbPlotLongelyWithFitc                    sv   t j d¡ tjj ¡ | _tj| jj	dd�| j_	t 
| jj| jj	¡ ¡ | _t| jjtjddd�| _d| _tƒ  ¡  d S )Nr[   Fr\   r^   Tr`   rd   re   rR   rs   r(   r)   r*   ¿   s       ÿz'TestProbPlotLongelyWithFit.setup_methodru   r(   r(   rs   r)   rw   ¾   s   rw   c                       s   e Zd Z‡ fdd„Z‡  ZS )ÚTestProbPlotRandomNormalMinimalc                    sD   t j d¡ t jjdddd�| _t| jƒ| _d | _tt	| ƒ 
¡  d S )Nr[   ç     € @ç      
@é%   ©rO   rQ   r   )r   r   rf   r   r   r   r   r-   rr   rx   r*   rR   rs   r(   r)   r*   Ì   s
    z,TestProbPlotRandomNormalMinimal.setup_methodru   r(   r(   rs   r)   rx   Ë   s   rx   c                       s   e Zd Z‡ fdd„Z‡  ZS )ÚTestProbPlotRandomNormalWithFitc                    sH   t j d¡ t jjdddd�| _t| jdd�| _d| _tt	| ƒ 
¡  d S )	Nr[   ry   rz   r{   r|   T)rc   Úq)r   r   rf   r   r   r   r   r-   rr   r}   r*   rR   rs   r(   r)   r*   Õ   s
    z,TestProbPlotRandomNormalWithFit.setup_methodru   r(   r(   rs   r)   r}   Ô   s   r}   c                       s4   e Zd Z‡ fdd„Zdd„ Zdd„ Zdd„ Z‡  ZS )	Ú TestProbPlotRandomNormalFullDistc                    sN   t j d¡ t jjdddd�| _t| jtjddd�d	�| _d
| _	t
ƒ  ¡  d S )Nr[   ry   rz   r{   r|   ç      !@ç      @©rO   rQ   ©ra   Ú45)r   r   rf   r   r   r   r   Únormr   r-   rr   r*   rR   rs   r(   r)   r*   Þ   s
    z-TestProbPlotRandomNormalFullDist.setup_methodc                 C   s   | j jdkst‚d S )Nr€   ©r   rO   rP   rR   r(   r(   r)   Útest_loc_setå   s    z-TestProbPlotRandomNormalFullDist.test_loc_setc                 C   s   | j jdkst‚d S )Nr�   ©r   rQ   rP   rR   r(   r(   r)   Útest_scale_setè   s    z/TestProbPlotRandomNormalFullDist.test_scale_setc              	   C   sÄ   t  t¡�  t| jtjddd�dd� W 5 Q R X t  t¡�  t| jtjddd�dd� W 5 Q R X t  t¡�  t| jtjddd�dd� W 5 Q R X t  t¡�  t| jtjddd�dd	� W 5 Q R X d S )
Nr€   r�   r‚   T)ra   rc   )r€   r�   ©ra   rb   )ra   rO   )ra   rQ   )rW   ÚraisesÚ
ValueErrorr   r   r   r…   rR   r(   r(   r)   Útest_exceptionsë   s    $ý$z0TestProbPlotRandomNormalFullDist.test_exceptions)rT   rU   rV   r*   r‡   r‰   r�   rv   r(   r(   rs   r)   r   Ý   s   r   c                   @   s4   e Zd Zdd„ Zejjdd„ ƒZejjdd„ ƒZdS )ÚTestCompareSamplesDifferentSizec                 C   s@   t j d¡ tt jjdddd�ƒ| _tt jjdddd�ƒ| _d S )Nr[   ry   rz   r{   r|   é7   )r   r   rf   r   r   Údata1Údata2rR   r(   r(   r)   r*   û   s    z,TestCompareSamplesDifferentSize.setup_methodc              	   C   s:   | j j| jd� t t¡� | jj| j d� W 5 Q R X d S ©N)r:   )r�   r   r‘   rW   r‹   rŒ   r/   r(   r(   r)   r1      s    z+TestCompareSamplesDifferentSize.test_qqplotc                 C   s$   | j j| jd� | jj| j d� d S r’   )r�   r3   r‘   r/   r(   r(   r)   r4     s    z+TestCompareSamplesDifferentSize.test_ppplotN)	rT   rU   rV   r*   rW   rX   rY   r1   r4   r(   r(   r(   r)   rŽ   ú   s
   
rŽ   c                       s<   e Zd Z‡ fdd„Zdd„ Zdd„ Zdd„ Zd	d
„ Z‡  ZS )Ú$TestProbPlotRandomNormalLocScaleDistc                    sJ   t j d¡ t jjdddd�| _t| jddd�| _d	| _tt	| ƒ 
¡  d S )
Nr[   ry   rz   r{   r|   é   é   r‚   r„   )r   r   rf   r   r   r   r   r-   rr   r“   r*   rR   rs   r(   r)   r*     s
    z1TestProbPlotRandomNormalLocScaleDist.setup_methodc                 C   s   | j jdkst‚d S )Nr”   r†   rR   r(   r(   r)   r‡     s    z1TestProbPlotRandomNormalLocScaleDist.test_loc_setc                 C   s   | j jdkst‚d S )Nr•   rˆ   rR   r(   r(   r)   r‰     s    z3TestProbPlotRandomNormalLocScaleDist.test_scale_setc                 C   s   | j j ¡ dkst‚d S )Ng       @)r   ra   ZmeanrP   rR   r(   r(   r)   Útest_loc_set_in_dist  s    z9TestProbPlotRandomNormalLocScaleDist.test_loc_set_in_distc                 C   s   | j j ¡ dkst‚d S )Ng      "@)r   ra   ÚvarrP   rR   r(   r(   r)   Útest_scale_set_in_dist  s    z;TestProbPlotRandomNormalLocScaleDist.test_scale_set_in_dist)	rT   rU   rV   r*   r‡   r‰   r–   r˜   rv   r(   r(   rs   r)   r“     s
   r“   c                   @   sT   e Zd Zdd„ Zejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZ	ejjd	d
„ ƒZ
dS )ÚTestTopLevelc                 C   s„   t jj ¡ | _t j| jjdd�| j_t  | jj| jj¡ 	¡ | _
| j
j| _t| j
jtjdd�| _tjj| jjjd�| _t| jƒ| _d S )NFr\   r^   rŠ   r   )rg   rh   ri   rj   r   rk   rl   rm   rn   rc   ro   rp   Úresr   r   rq   r   r   r   r   r    r!   r"   rR   r(   r(   r)   r*   "  s    
zTestTopLevel.setup_methodc                 C   s   t | jdd� d S ©Nrd   ©r-   ©r   rš   r/   r(   r(   r)   r1   +  s    zTestTopLevel.test_qqplotc                 C   s   t | jdddddd� d S )Nrd   r   r   r   r   )r-   r   r   r   r   r�   r/   r(   r(   r)   rI   /  s    úz"TestTopLevel.test_qqplot_pltkwargsc                 C   s    dD ]}t | j| j|d� qd S ©N)rd   r~   r„   Úsrœ   ©r   r   r"   ©r&   r0   r-   r(   r(   r)   Ú&test_qqplot_2samples_prob_plot_objects:  s    z3TestTopLevel.test_qqplot_2samples_prob_plot_objectsc                 C   s    dD ]}t | j| j|d� qd S rž   ©r   rš   r!   r¡   r(   r(   r)   Útest_qqplot_2samples_arraysA  s    z(TestTopLevel.test_qqplot_2samples_arraysN)rT   rU   rV   r*   rW   rX   rY   r1   rI   r¢   r¤   r(   r(   r(   r)   r™   !  s   	



r™   c              	   C   sn   t j d¡ tjj ¡ }tj|jdd�|_t 	|j
|j¡ ¡ }tjtdd�� t|jtjdd� W 5 Q R X d S )Nr[   Fr\   zdist\(0, 1, 4, loc=0, scale=1\))Úmatch)r   é   r_   )rb   )r   r   rf   rg   rh   ri   rj   rk   rl   rm   rn   rc   rW   r‹   Ú	TypeErrorr   rp   r   rq   )r0   r   ro   r(   r(   r)   Útest_invalid_dist_configI  s    r¨   c                  C   sð   t j d¡} |  d¡}|  d¡}t||ƒ}t||ƒ}| ¡ d  ¡ d  ¡ \}}| ¡ d  ¡ d  ¡ \}}t j 	||¡ t j 	||¡ t
| ¡ d  ¡ ƒ}	t
| ¡ d  ¡ ƒ}
|	|
ks¼t‚tjjdd„ ƒ}tjjdd„ ƒ}tjjdd	„ ƒ}d S )
Nr   éd   éÈ   c                 S   s   t | jdd� d S r›   r�   r/   r(   r(   r)   r1   b  s    z(test_qqplot_unequal.<locals>.test_qqplotc                 S   s    dD ]}t | j| j|d� qd S rž   r    r¡   r(   r(   r)   Ú"test_qqplot_2samples_prob_plot_objf  s    z?test_qqplot_unequal.<locals>.test_qqplot_2samples_prob_plot_objc                 S   s    dD ]}t | j| j|d� qd S rž   r£   r¡   r(   r(   r)   r¤   m  s    z8test_qqplot_unequal.<locals>.test_qqplot_2samples_arrays)r   r   ÚRandomStateZstandard_normalr   Úget_axesÚget_childrenÚget_dataÚtestingZassert_allcloseÚlenrP   rW   rX   rY   )Úrsr�   r‘   Zfig1Zfig2Úx1Úy1Zx2Úy2Znumobj1Znumobj2r1   r«   r¤   r(   r(   r)   Útest_qqplot_unequalS  s$    





r¶   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestCheckDistc                 C   s    t  tjd¡ t  tjd¡ d S )NÚppfÚcdf)r   Ú
_check_forr   r…   rR   r(   r(   r)   Ú	test_goodv  s    zTestCheckDist.test_goodc              	   C   sH   t  t¡� t dd¡ W 5 Q R X t  t¡� t dd¡ W 5 Q R X d S )NÚjunkr¸   r¹   )rW   r‹   ÚAttributeErrorr   rº   rR   r(   r(   r)   Útest_badz  s    zTestCheckDist.test_badN)rT   rU   rV   r»   r¾   r(   r(   r(   r)   r·   u  s   r·   c                   @   s„   e Zd Zdd„ Zejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZ	ejjd	d
„ ƒZ
ejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZdS )Ú
TestDoPlotc              	   C   sˆ   z dd l m} | ¡ \| _| _W n tk
r4   Y nX dddddddd	d
g	| _dddddddddg	| _ddddddœ| _dddœ| _	d S )Nr   gš™™™™™É?g333333ã?ç       @g      @g      $@g      I@g     ÀT@gfffffÆX@gÍÌÌÌÌìX@ç333333ó?gffffffö?g333333û?gÍÌÌÌÌÌ @gš™™™™™	@gš™™™™™@gffffff@g333333@rŸ   r   Z	firebrickg      ô?z--)r   r   r   ZmarkeredgewidthÚ	linestyleú-Úmid)rÂ   Úwhere)
r   r   r   r   r   r   ÚxÚyÚfull_optionsÚstep_optionsr%   r(   r(   r)   r*   ‚  s    ûzTestDoPlot.setup_methodc                 C   sZ   t ƒ }t | j| j¡\}}t||jƒs*t‚t||jƒs:t‚| j	|k	sHt‚| j
|k	sVt‚d S )N)r	   r   Ú_do_plotrÆ   rÇ   Ú
isinstanceÚFigurerP   ÚAxesr   r   ©r&   r0   r'   r   r   r(   r(   r)   Útest_baseline•  s    zTestDoPlot.test_baselinec                 C   s`   t ƒ }tj| j| j| jd�\}}t||jƒs0t‚t||j	ƒs@t‚| j
|ksNt‚| j|ks\t‚d S )N)r   )r	   r   rÊ   rÆ   rÇ   r   rË   rÌ   rP   rÍ   r   rÎ   r(   r(   r)   Útest_with_axž  s    zTestDoPlot.test_with_axc                 C   s&   t j| j| jf| jddœ| j—Ž d S )NF©r   Ústep©r   rÊ   rÆ   rÇ   r   rÈ   r/   r(   r(   r)   Útest_plot_full_options§  s    þüûz!TestDoPlot.test_plot_full_optionsc                 C   s&   t j| j| jf| jddœ| j—Ž d S ©NTrÑ   )r   rÊ   rÆ   rÇ   r   rÉ   r/   r(   r(   r)   Útest_step_baseline±  s    þüûzTestDoPlot.test_step_baselinec                 C   s&   t j| j| jf| jddœ| j—Ž d S rÕ   rÓ   r/   r(   r(   r)   Útest_step_full_options»  s    þüûz!TestDoPlot.test_step_full_optionsc                 C   s   t j| j| j| jdd� d S )Nrd   r,   ©r   rÊ   rÆ   rÇ   r   r/   r(   r(   r)   Útest_plot_qq_lineÅ  s    zTestDoPlot.test_plot_qq_linec                 C   s   t j| j| j| jddd� d S )NTrd   )r   rÒ   r-   rØ   r/   r(   r(   r)   Útest_step_qq_lineÉ  s    zTestDoPlot.test_step_qq_lineN)rT   rU   rV   r*   rW   rX   rY   rÏ   rÐ   rÔ   rÖ   r×   rÙ   rÚ   r(   r(   r(   r)   r¿   �  s   


	
	
	
r¿   c                   @   s  e Zd Zdd„ Zejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZ	ejjd	d
„ ƒZ
ejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZejjdd „ ƒZejjd!d"„ ƒZd#S )$Ú
TestQQLinec                 C   s¢   t j d¡ t  t jjdddd�¡| _t  t jjdddd�¡| _z4dd lm} | 	¡ \| _
| _| j | j| jd¡ W n tk
rˆ   Y nX d	d
ddœ| _d| _d S )Nr   g333333@rÁ   r{   r|   r�   gš™™™™™ñ?Úkoé   )é
   r¦   r•   r_   Úgreen)Z	linewidthÚdashesÚcolorzbo-)r   r   rf   Úsortr   rÆ   rÇ   r   r   r   r   r   Zplotr   ÚlineoptionsÚfmtr%   r(   r(   r)   r*   Ï  s    ýzTestQQLine.setup_methodc              	   C   s&   t  t¡� t| jdƒ W 5 Q R X d S )Nr¼   ©rW   r‹   rŒ   r   r   rR   r(   r(   r)   Útest_badlineâ  s    zTestQQLine.test_badlinec              	   C   s,   t  t¡� t| jd| jd� W 5 Q R X d S )NrŸ   )rÇ   )rW   r‹   rŒ   r   r   rÇ   r/   r(   r(   r)   Útest_non45_no_xç  s    zTestQQLine.test_non45_no_xc              	   C   s,   t  t¡� t| jd| jd� W 5 Q R X d S )NrŸ   )rÆ   )rW   r‹   rŒ   r   r   rÆ   r/   r(   r(   r)   Útest_non45_no_yì  s    zTestQQLine.test_non45_no_yc              	   C   s&   t  t¡� t| jdƒ W 5 Q R X d S )NrŸ   rå   r/   r(   r(   r)   Útest_non45_no_x_no_yñ  s    zTestQQLine.test_non45_no_x_no_yc                 C   s4   t | j ¡ ƒ}t| jdƒ t | j ¡ ƒ|ks0t‚d S )Nr„   )r±   r   r®   r   rP   ©r&   r0   Z	nchildrenr(   r(   r)   Útest_45ö  s    zTestQQLine.test_45c                 C   s   t | jd| jd� d S )Nr„   )rä   )r   r   rä   r/   r(   r(   r)   Útest_45_fmtü  s    zTestQQLine.test_45_fmtc                 C   s    t | jdfd| ji| j—Ž d S )Nr„   rä   )r   r   rä   rã   r/   r(   r(   r)   Útest_45_fmt_lineoptions   s    z"TestQQLine.test_45_fmt_lineoptionsc                 C   s>   t | j ¡ ƒ}t| jd| j| jd� t | j ¡ ƒ|ks:t‚d S )Nrd   ©rÆ   rÇ   ©r±   r   r®   r   rÆ   rÇ   rP   rê   r(   r(   r)   Útest_r  s    zTestQQLine.test_rc                 C   s   t | jd| j| j| jd� d S ©Nrd   ©rÆ   rÇ   rä   ©r   r   rÆ   rÇ   rä   r/   r(   r(   r)   Ú
test_r_fmt
  s    zTestQQLine.test_r_fmtc                 C   s(   t | jdf| j| j| jdœ| j—Ž d S rñ   ©r   r   rÆ   rÇ   rä   rã   r/   r(   r(   r)   Útest_r_fmt_lineoptions  s     ÿ  ÿÿz!TestQQLine.test_r_fmt_lineoptionsc                 C   s>   t | j ¡ ƒ}t| jd| j| jd� t | j ¡ ƒ|ks:t‚d S )NrŸ   rî   rï   rê   r(   r(   r)   Útest_s  s    zTestQQLine.test_sc                 C   s   t | jd| j| j| jd� d S ©NrŸ   rò   ró   r/   r(   r(   r)   Ú
test_s_fmt  s    zTestQQLine.test_s_fmtc                 C   s(   t | jdf| j| j| jdœ| j—Ž d S rø   rõ   r/   r(   r(   r)   Útest_s_fmt_lineoptions  s     ÿ  ÿÿz!TestQQLine.test_s_fmt_lineoptionsc                 C   sB   t | j ¡ ƒ}t| jdtj| j| jd� t | j ¡ ƒ|ks>t‚d S )Nr~   )ra   rÆ   rÇ   )	r±   r   r®   r   r   r…   rÆ   rÇ   rP   rê   r(   r(   r)   Útest_q$  s    zTestQQLine.test_qc                 C   s"   t | jdtj| j| j| jd� d S ©Nr~   )ra   rÆ   rÇ   rä   )r   r   r   r…   rÆ   rÇ   rä   r/   r(   r(   r)   Ú
test_q_fmt*  s    zTestQQLine.test_q_fmtc                 C   s,   t | jdftj| j| j| jdœ| j—Ž d S rü   )r   r   r   r…   rÆ   rÇ   rä   rã   r/   r(   r(   r)   Útest_q_fmt_lineoptions.  s    þúùz!TestQQLine.test_q_fmt_lineoptionsN)rT   rU   rV   r*   rW   rX   rY   ræ   rç   rè   ré   rë   rì   rí   rð   rô   rö   r÷   rù   rú   rû   rý   rþ   r(   r(   r(   r)   rÛ   Î  sB   














rÛ   c                   @   sl   e Zd Zdd„ Zdd„ Zejjdd„ ƒZejjdd„ ƒZ	ejjd	d
„ ƒZ
ejjdd„ ƒZejjdd„ ƒZdS )ÚTestPlottingPositionc                 C   s   d| _ t | j ¡| _d S )Né   )ÚNr   Zaranger   rR   r(   r(   r)   r*   <  s    z!TestPlottingPosition.setup_methodc                 C   s:   t j| j||d�}tjj| j||d�}tj||dd� d S )N©ÚaÚb)r   Úbetar[   )Údecimal)	r   Zplotting_posr  r   ZmstatsZplotting_positionsr   ÚnptestZassert_array_almost_equal)r&   r   r  ZsmppZspppr(   r(   r)   Údo_test@  s      ÿzTestPlottingPosition.do_testc                 C   s   |   dd¡ d S )Nr   ©r  r/   r(   r(   r)   Útest_weibullH  s    z!TestPlottingPosition.test_weibullc                 C   s   |   dd¡ d S )Nr   r¦   r	  r/   r(   r(   r)   Útest_lininterpL  s    z#TestPlottingPosition.test_lininterpc                 C   s   |   dd¡ d S )Nr   r	  r/   r(   r(   r)   Útest_piecewiseP  s    z#TestPlottingPosition.test_piecewisec                 C   s   |   dd¡ d S )NgUUUUUUÕ?r	  r/   r(   r(   r)   Útest_approx_med_unbiasedT  s    z-TestPlottingPosition.test_approx_med_unbiasedc                 C   s   |   dd¡ d S )Ngš™™™™™Ù?r	  r/   r(   r(   r)   Útest_cunnaneX  s    z!TestPlottingPosition.test_cunnaneN)rT   rU   rV   r*   r  rW   rX   rY   r
  r  r  r  r  r(   r(   r(   r)   rÿ   ;  s   



rÿ   c                  C   sÊ  t  ddddg¡} tt  d¡t dd¡d�}t|j| ƒ tt  d¡tjddd�ƒ}t|j| ƒ tt  d¡tjddd	�ƒ}t|j| ƒ t  ddd
dg¡} tt  d¡t ddd
¡ƒ}t|j| ƒ tt  d¡tjddd
d�ƒ}t|j| ƒ t  ddd
dg¡} tt  d¡t ddd
d¡ƒ}t|j| ƒ tt  d¡tjddd
dd�ƒ}t|j| ƒ tt  d¡tjddd
dd�ƒ}t|j| ƒ tt  d¡tjddd
dd�ƒ}t|j| ƒ tt  d¡tjddd
dd�ƒ}t|j| ƒ d S )NrÀ   r•   r   r¦   r©   rÝ   rƒ   )r  r  r_   )r  r  rO   r[   )rQ   r‚   )r  rO   rQ   )r  r  rO   rQ   )r   Úarrayr   Úemptyr   r  r   rN   )ÚexpectedÚppr(   r(   r)   Útest_param_unpacking]  s.    r  ÚlabelsÚXÚY)rC   rD   Úx_sizeé   é2   Úy_sizer-   r„   rŸ   rd   r~   c                 C   sê   t j d¡}|jdd|d�}|jd|d�}t |¡}	t |¡}
t|	|
fd|i|—Ž}| ¡ d }| 	¡ }| 
¡ }||k r°|s–d|ksˆt‚d	|ks®t‚qæd
|ks¢t‚d|ksæt‚n6|sÎd	|ksÀt‚d|ksæt‚nd|ksÚt‚d
|ksæt‚d S )NiJ´– r   gš™™™™™¹?r|   r•   r   r-   Z2ndZ1str  r  )r   r   r¬   r   Z
standard_trg   r   r   r­   Z
get_xlabelZ
get_ylabelrP   )r0   Zreset_randomstater-   r  r  r  r²   rÆ   rÇ   Zpp_xZpp_yr   r   Zx_labelZy_labelr(   r(   r)   Útest_correct_labelsy  s(    

r  c           	      C   s$  t j ddd¡}t j ddd¡}t||ddƒ}| ¡ d }t  | ¡ ¡d }t  | ¡ ¡d }||k sjt‚t j ddd¡}t||ddƒ}| ¡ d }t  | ¡ ¡d }t  | ¡ ¡d }||k sÄt‚t j ddd¡}t||ddƒ}| ¡ d }t  | ¡ ¡d }t  | ¡ ¡d }||k �s t‚d S )	NrÞ   r¦   )r©   g{®Gáz„?rÆ   rÇ   r   )iè  )	r   r   r   r   r­   ÚdiffZget_ylimZget_xlimrP   )	r0   ZxxZxyr   r   Zy_rangeZx_rangeZxx_longZxy_longr(   r(   r)   Útest_axis_orderš  s&    r  )*Únumpyr   Znumpy.testingr°   r  r   rW   Zscipyr   Zstatsmodels.apiÚapirg   Zstatsmodels.graphicsr   Zstatsmodels.graphics.gofplotsr   r   r   r   Zstatsmodels.graphics.utilsr	   r
   rZ   rw   rx   r}   r   rŽ   r“   r™   r¨   rX   rY   r¶   r·   r¿   rÛ   rÿ   r  Zparametrizer  r  r(   r(   r(   r)   Ú<module>   sD     		(

!Mm"