
p7]c           @   s  d  d l  m Z d  d l Z d  d l m Z m Z d  d l Z d  d l m	 Z	 d  d l
 m Z m Z m Z m Z y d  d l j Z Wn e k
 r n Xe	 j d e  Z e j d d  d f j e  Z e j d d  d d  f Z e j j d	    Z e j j e j j d
     Z e j j e j j d     Z e j j e j j d     Z  e j j e j j d     Z! e j j e j j d     Z" e j j d    Z# e j j e j j d     Z$ d   Z% d   Z& e j j d    Z' d S(   i(   t   rangeN(   t   assert_equalt   assert_almost_equal(   t   elnino(   t
   hdrboxplott	   banddeptht   fboxplott   rainbowplott	   as_pandasi    i   c         C   s  y" t  t d t d d \ } } Wn t k
 rB t j d  n Xt | j  d k s^ t  d d d d	 d
 d d d d d d d g } t	 | j
 | d d t j | j | j | j g  } t j d d d d d d d d d d d d g d  d! d" d# d$ d% d& d' d( d) d* d+ g d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 g d8 d# d9 d: d; d< d= d> d? d@ dA dB g dC dD dE dF dG dH dI dJ d( dK dL dM g dN dO dP dQ dR dS dT dU dV dW dX dY g dZ dG d[ d\ d] d^ d_ d` da db dc dd g de df dg dh di dj dk dl dm dn do dp g g  } t	 | | d d t j t j t | j  j t j  dq dr } t | } t ds dt du dv g |  t t | j |  d  S(w   Nt   labelst   seedi90  s0   Multiprocess randomly crashes in Windows testingi    gZd;?8@g     9@gX99@g9v8@gS7@gZd;OM6@gB`";5@gV-]4@g^I+4@gvo4@g#~j5@gCL6@t   decimali   g\(\8@gQk9@gffffff9@g(\8@g(\58@gY7@g     6@gp=
5@g
ףp=
6@gzG6@gR8@gp=
9@g     @;@g{G:<@g<@gR<@gQ^<@gGzn;@g{G9@gzG7@g(\B6@gQ86@g(\56@gq=
ף07@g333337@gGz:@gQ+;@g=
ףp:@gQ:@gfffff&:@gףp=
9@g333338@gq=
ף8@gp=
ף8@g9@gGz;@gQ<@g=
ףp==@g33333s<@g\(\;@gq=
ף09@g\(7@gQE6@g(\O5@gQ^5@g5@g(\6@g{Gz9@g=
ףp:@g(\;@g
ףp=
;@g{G::@gq=
ף8@gq=
ף7@gQ6@gp=
ף6@gGzT7@gq=
ףp8@g\(7@g     8@g)\8@gq=
ףp7@g=
ףp5@gGz4@gGz3@gףp=
2@g(\2@g=
ףp2@g)\3@g\(4@gףp=
8@gQ:@gGz9@gQ8@gR7@g(\u6@g33333s5@g(\B5@gR5@gp=
#6@g)\h7@gQ7@g9@gףp=
W9@gQ88@g=
ףp6@gQ5@gffffff4@g(\3@gzG3@gQ3@gQ^4@g(\5@t   axisi   i  i  i  i  (   R   t   dataR	   t   WindowsErrort   pytestt   xfailt   lent   extra_quantilest   AssertionErrorR   t   mediant   npt   vstackt   outlierst   hdr_90t   hdr_50t   allt   in1dt   reshapet   shapeR   t   outliers_idx(   t   close_figurest   _t   hdrt   median_tt   quantt   quant_tt
   labels_posR   (    (    sI   lib/python2.7/site-packages/statsmodels/graphics/tests/test_functional.pyt   test_hdr_basic   s>    "!'	
c         C   s   y( t  t d d d t d t \ } } Wn t k
 rH t j d  n Xt | j  d k sd t	  d d d	 d
 d d d d d d d d g } t
 | j | d d d  S(   Nt   ncompi   R	   t	   use_brutes0   Multiprocess randomly crashes in Windows testingi    gZd;?8@g     9@gX99@g9v8@gS7@gZd;OM6@gB`";5@gV-]4@g^I+4@gvo4@g#~j5@gCL6@R   (   R   R   R	   t   TrueR   R   R   R   R   R   R   R   (   R   t   reset_randomstateR    R!   R"   (    (    sI   lib/python2.7/site-packages/statsmodels/graphics/tests/test_functional.pyt   test_hdr_basic_brute?   s    (c      
   C   s   t  j   } | j d  } y, t t d t j   d | d d d d Wn t k
 rg t j	 d  n X| j
 d	  | j d
  | j t j d d d d  | j d d d d d g  | j d d g  d  S(   Nio   R	   t   axt	   thresholdi   R
   i90  s0   Multiprocess randomly crashes in Windows testings   Month of the years   Sea surface temperature (C)i   t   stepi   t    t   Mart   Junt   Sept   Decgɿgffffff&@(   t   pltt   figuret   add_subplotR   R   R	   t   tolistR   R   R   t
   set_xlabelt
   set_ylabelt
   set_xticksR   t   aranget   set_xticklabelst   set_xlim(   R   t   figR,   (    (    sI   lib/python2.7/site-packages/statsmodels/graphics/tests/test_functional.pyt   test_hdr_plotO   s    ! c         C   s   y% t  t d d g d d \ } } Wn t k
 rE t j d  n Xt j d d d d	 d
 d d d d d d d g d d d d d d d d d d d d g g  } t | j | d d d  S(    Nt   alphagffffff?R
   i90  s0   Multiprocess randomly crashes in Windows testingg9@g     :@g      ;@gffffff:@gffffff9@g8@g      7@g      6@g333335@g6@g333336@g7@gffffff7@g8@g      9@gfffff7@gffffff6@g5@g      4@gL3@g3333333@gffffff3@g4@gL5@R   i    (	   R   R   R   R   R   R   R   R   R   (   R   R    R!   t   extra_quant_t(    (    sI   lib/python2.7/site-packages/statsmodels/graphics/tests/test_functional.pyt   test_hdr_alphab   s    %c         C   s  y( t  t d d d g d d \ } } Wn t k
 rH t j d  n Xd d d	 d
 d d d d d d d d g d d d d d d d d d d d d g d d  d! d" d# d$ d% d& d' d( d) d* g d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 g g } t | j t j |  d7 d8 d  S(9   NR@   g?gq=
ףp?R
   i90  s0   Multiprocess randomly crashes in Windows testinggʡE9@gZd;O;@gt;@g333333;@gx):@gh|?8@g$7@gT㥛`6@g     @6@gp=
ף6@gFx7@g/$8@g+6@g-阮8@gS㥛8@g+W7@g r5@gHz4@g     3@g3@gZd;2@gw/2@gQ3@g(\4@gn8@g r:@g"~j:@g/$9@g+N8@gMbX6@gv5@g 4@gS{4@g/5@gK7A5@gp=
6@gsh|7@g"^9@gn9@g/ݤ8@gZd;O-7@g?5^I5@g"~4@gp=
4@gOn3@g~jt3@gZd;4@gS5@R   i    (	   R   R   R   R   R   R   R   R   R   (   R   R    R!   RA   (    (    sI   lib/python2.7/site-packages/statsmodels/graphics/tests/test_functional.pyt   test_hdr_multiple_alphaq   s$    (c         C   s   y+ t  t d d g d d d d \ } } Wn t k
 rK t j d  n Xt j t j t | j  j	 t j
  d d	 } t | } t d
 d d d d g |  d  S(   NR@   g?R-   g(\?R
   i90  s0   Multiprocess randomly crashes in Windows testingR   i   i  i  i  i  i  (   R   R   R   R   R   R   R   R   R   R   R   R	   R   (   R   R    R!   R%   R   (    (    sI   lib/python2.7/site-packages/statsmodels/graphics/tests/test_functional.pyt   test_hdr_threshold   s    '	
c         C   s   y" t  t d d d d \ } } Wn t k
 rB t j d  n Xd d d d	 d
 d d d d d d d g } t | j | d d d  S(   Nt   bwt   cv_mlR
   i90  s0   Multiprocess randomly crashes in Windows testingg     @8@gp=
ף9@g=
ףp9@g
ףp=
9@g(\µ7@gzGa6@g(\O5@gq=
ףp4@g=
ףp=4@g(\4@gq=
ף05@R   i   (   R   R   R   R   R   R   R   (   R   R    R!   R"   (    (    sI   lib/python2.7/site-packages/statsmodels/graphics/tests/test_functional.pyt   test_hdr_bw   s    "c         C   s   y" t  t d d d d \ } } Wn t k
 rB t j d  n Xd d d d	 d
 d d d d d d d g } t | j | d d d  S(   NR'   i   R
   i90  s0   Multiprocess randomly crashes in Windows testinggGzT8@g(\µ9@g
ףp=
:@gGz9@g=
ףp7@gffffff6@gRQ5@g33333s4@g     @4@gHz4@g3333335@gp=
c6@R   i   (   R   R   R   R   R   R   R   (   R   R    R!   R"   (    (    sI   lib/python2.7/site-packages/statsmodels/graphics/tests/test_functional.pyt   test_hdr_ncomp   s    "c          C   s   t  j d  d }  d d t  j |   } d t  j |  t  j d  } d t  j |  t  j d  } d d t  j |  t  j d  } t  j | | | | g  } t | d	 d
 } d d d d d d g } t | |  d  S(   Ni  g     b@i   g      ?g333333?i   g      it   methodt   BD2g      @(   R   R;   t   sint   pit   cost   asarrayR   R   (   t   xxt   y1t   y2t   y3t   y4R   t   deptht   expected_depth(    (    sI   lib/python2.7/site-packages/statsmodels/graphics/tests/test_functional.pyt   test_banddepth_BD2   s    "c          C   s   t  j d  d }  t  j |  j  } d |  d } t  j |  j  d } t  j |  j  d } t  j | | | | g  } t | d d } d	 d
 d d d d d d
 d d
 d d d d
 g } t | | d d d  S(   Ni  g     @i   i   g      ?g      пRI   t   MBDg      @i   g      ?g      @i   i   g      @R   i   g      @(   R   R;   t   zerosR   t   onesRN   R   R   (   RO   RP   RQ   RR   RS   R   RT   RU   (    (    sI   lib/python2.7/site-packages/statsmodels/graphics/tests/test_functional.pyt   test_banddepth_MBD   s    :c         C   sW  d   } t  j j d  t  j d d t  j d  } g  t d  D] } | |  ^ qB } t j   } | j d  } t	 | d d d	 | \ } } } }	 t  j
 d
 d d d d d d d d d d d d d d d d d d d g  }
 t | |
  t  j
 d d d d g  } t |	 |  t  j | d j  } t | d | d | d t j j } d  S(   Nc         S   s   t  t j j   d k  } t j j   d } t j j   d } d t j j   d } d t j j   d } d | | t j |   | t j |   | | t j |   | t j |   } | S(   s3   Test function, combination of a few harmonic terms.g?g?g333333?g?i   g?g?(   t   intR   t   randomRK   RM   (   t   tt   cit   a1it   a2it   b1it   b2it   func(    (    sI   lib/python2.7/site-packages/statsmodels/graphics/tests/test_functional.pyt   harmfunc   s    ))i i    i   i   i   io   t   wfactorR,   i   i   i   i   i   i   i   i   i	   i   i   i   i   i   i   i   i
   i   t   xdataRT   t   cmap(   R   R\   R
   t   linspaceRL   R    R4   R5   R6   R   t   arrayR   R;   t   sizeR   t   cmt   rainbow(   R   Rd   R]   R    R   R>   R,   RT   t   ix_deptht   ix_outlierst   ix_expectedt   ix_expected2Rf   (    (    sI   lib/python2.7/site-packages/statsmodels/graphics/tests/test_functional.pyt   test_fboxplot_rainbowplot   s    	%$-((   t   statsmodels.compat.pythonR    t   numpyR   t   numpy.testingR   R   R   t   statsmodels.datasetsR   t   statsmodels.graphics.functionalR   R   R   R   t   matplotlib.pyplott   pyplotR4   t   ImportErrort   loadt   FalseR   t   raw_datat   astypeR[   R	   t   markt
   matplotlibR&   t   slowR+   R?   RB   RC   RD   RG   RH   RV   RZ   Rq   (    (    (    sI   lib/python2.7/site-packages/statsmodels/graphics/tests/test_functional.pyt   <module>   s:   "")								