
p7]c           @   s  d  Z  d d l m Z m Z d d l Z d d l Z d d l m Z d d l	 m
 Z
 m Z m Z 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 d d	 l m Z e j d
  d    Z d e f d     YZ d   Z d e f d     YZ d e f d     YZ  d   Z! d   Z" d   Z# d   Z$ d   Z% d   Z& d   Z' d e f d     YZ( d e f d     YZ) d   Z* d   Z+ d    Z, d!   Z- d S("   s!   
Test functions for models.tools
i(   t   lranget   rangeN(   t   standard_normal(   t   assert_equalt   assert_array_equalt   assert_almost_equalt   assert_string_equal(   t   assert_frame_equalt   assert_series_equal(   t   longley(   t   tools(   t   pinv_extendedt   modulec          C   s   t  j d d !t  j d d !t  j d d !t  j d d !t  j d d !g }  |  d 9}  t j t |    }  t j |  d d } | S(	   Ni    i   i
   i   i   i   t   namet
   string_var(   t   stringt   ascii_lowercaset   npt   asarrayt   sortedt   pdt   Series(   R   t   series(    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR      s    
t	   TestToolsc           B   s}   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z RS(   c         C   s_   t  d d  } t j |  } t j d d d d g d d d d g g  j } t | |  d  S(   Ni   i   i   i   g      @(   R    R
   t   add_constantR   R   t   TR   (   t   selft   xt   y(    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_add_constant_list$   s    0c         C   sb   t  j d d  } t j |  } t  j d d d d g d d d d g g  j } t | |  d  S(   Ni   i   i   i   g      @(   R   t   arangeR
   R   R   R   R   (   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_add_constant_1d*   s    0c         C   s   t  j d  } t j | d d } t | t  j d   t j t   t j | d d Wd  QXt t j | d d t  j d	   d  S(
   Ni   t   has_constantt   skipi   t   raiset   addi   (   i   i   (   i   i   (   R   t   onesR
   R   R   t   pytestt   raisest
   ValueError(   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt    test_add_constant_has_constant1d0   s    c         C   s   t  j d d d d g d d d d g g  j } t j | d d } t | |  t j t   t j | d d Wd  QXt t j | d d t  j	 t  j
 d	  | f   d  S(
   Ni   i   i   g      @R    R!   R"   R#   i   (   R   R   R   R
   R   R   R%   R&   R'   t   column_stackR$   (   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt    test_add_constant_has_constant2d;   s    0c         C   s   t  j d t f d d t  j f d t  j f g  } t  j d d d g |  } | j t  j  } t j	 |  } t
 | d t  j d d d g   x4 | j j D]& } | | j | | j k s t  q Wd  S(   Nt    s   <S4i   t   abcdg      ?g       @i   g      @i   g       @t   const(   R+   s   <S4(   i   R,   g      ?g       @(   i   R,   g       @g      @(   i   R,   g       @g       @(   R   t   dtypet   intt   float32t   float64t   arrayt   viewt   recarrayR
   R   R   t   fieldst   AssertionError(   R   t   dtR   R   t   f(    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_add_constant_recarrayF   s    3	#c         C   sZ   t  j d d d g  } t j |  } t  j d d d g d d } t | | d  d  S(   Ng      ?g       @g      @R   R-   (   R   R   R
   R   R   (   R   t   st   outputt   expected(    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_add_constant_seriesQ   s    c         C   s   t  j d d d g d d d g d d d	 g g  } t j |  } t  j d d d g d
 d } t | | d  | j   } | j d d t j	 d   t
 | |  d  S(   Ng      ?t   ai   g       @t   bci	   g      @t   defi   R   R-   i    i   (   R   t	   DataFrameR
   R   R   R   t   copyt   insertR   R$   R   (   R   t   dfR;   R<   t   dfc(    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_add_constant_dataframeW   s    3c         C   s  t  j d  } t j |  } t | d  d   d f t  j d   t j d d d g  } t j |  } t j d d d g d d } t | | d  t j	 d d d g d d	 d
 g d d d g g  } t j |  } | j
   } | j d d t  j d   t | |  t j	 d d d g d d	 d g d d d g g  } t j |  } | j
   } | j d d t  j d   t | |  d  S(   Nid   i    g        g      ?R   R-   R>   i   R?   i	   R@   i   i   (   R   t   zerosR
   R   R   R$   R   R   R   RA   RB   RC   R   (   R   R>   R;   R:   R<   RD   RE   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_add_constant_zeros`   s"    &33c         C   s\   t  j d d g d d g g  } t j |  } t | t  j d d g d d g g   d  S(   Ni   i   ii    g      ?(   R   R2   R
   t   reciprR   (   R   t   Xt   Y(    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_reciprv   s    !c         C   s\   t  j d d g d d g g  } t j |  } t | t  j d d g d d g g   d  S(   Ni   i   ii    g      ?g      п(   R   R2   R
   t   recipr0R   (   R   RJ   RK   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_recipr0{   s    !c         C   sf   t  d  } t j j |  } t j j | d d  } t |  \ } } t | |  t | |  d  S(   Ni(   i
   i    (   i(   i
   (   R   R   t   linalgt   pinvt   svdR   R   (   R   RJ   t   np_invt   np_sing_valst   sm_invt	   sing_vals(    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_extendedpinv   s    c         C   s   t  d  } | d  d   d f | d  d   d f | d  d   d f <t j j |  } t j j | d d  } t |  \ } } t | |  t | |  d  S(   Ni(   i
   i   i   i   i    (   i(   i
   (   R   R   RO   RP   RQ   R   R   (   R   RJ   RR   RS   RT   RU   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_extendedpinv_singular   s    :c         C   s   d d  l  } | j    | j d  t d  } | d  d   d f | d  d   d f | d  d   d f <t j |  } t | j d  | d  d   d	 f | d  d   d
 f | d  d   d f <t j |  } t | j d  | j d  Wd  QXd  S(   Nit   ignorei(   i
   i   i   i    i	   i   i   i   i   (   i(   i
   (   i(   i	   (   i(   i   (   t   warningst   catch_warningst   simplefilterR   R
   t   fullrankR   t   shape(   R   RY   RJ   RK   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_fullrank   s    ::(   t   __name__t
   __module__R   R   R(   R*   R9   R=   RF   RH   RL   RN   RV   RW   R^   (    (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR   "   s   														c    
      C   s  t  j j d  }  d
 \ } } |  j d | | f  } |  j d d | f  } t j } | | |  sl t  | t  j |  |  s t  x, t  j |  D] } | | |  s t  q Wt  j d  } | d d g |  s t  | d d g |  s t  | d d g |  st  | t  j d  |  s:t  |  j d | d f  } t  j	 | | g  } | t  j	 t  j d  t  j
 d  g  |  st  | t  j	 t  j
 d  t  j d  g  |  st  | t  j	 t  j d  t  j d  g  |  st  | j   } | t  j	 t  j d  t  j d  g  |  sMt  |  j d | d f  } xF t d d	  D]5 }	 t j t   | t  j |	 f  |  Wd  QXquWt j t   | t  j d	  |  Wd  QXd  S(   Ni3i(   i
   t   sizei   i   i    i   i   (   i(   i
   (   i(   i   (   i   i   (   i   i   (   R   t   randomt   RandomStatet   normalR
   t   isestimableR6   t   eyeR$   t   hstackRG   t   tolistR   R%   R&   R'   (
   t   rngt   Nt   PRJ   t   CRe   t   rowt   halfXt   XLt   n(    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_estimable   s6    	7766#t   TestCategoricalNumericalc           B   sO  e  Z e d     Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z e j j d d d e d e  d    Z e j j d d d e d e  d    Z e j j d d d e d e  d    Z e j j d d d e d e  d    Z RS(   c         C   s  d } t  j j d d  |  _ t  j t  j d d d d d  |  _ t  j d  } d | d  d  d	 f <d | d d  d f <d | d d
  d f <d | d
 d  d f <d | d d  d f <| |  _ t  j d d d d d d g } |  j d  d   d	 f d  d   d  f | d <|  j d  d   d f d  d   d  f | d <|  j d  d   d  f | d <| d	 d !| d d !| d d
 !| d
 d !| d d !g } | d 9} t  j
 t |   |  _ |  j d  d   d  f | d <| |  _ | j t  j  |  _ d  S(   Nt   abcdefghijklmnopqrstuvwxyi   i   i
   i<   t   stepi   i   i    i   i   i   i   R.   t   var1t   f4t   var2t
   instrumentt	   str_instrt   a10(   i   i   (   i   i   (   Ru   Rv   (   Rw   Rv   (   Rx   Rv   (   Ry   Rz   (   R   Rb   t   randnt   dest   floorR   t   instrRG   t   dummyt   NoneR2   R   R   t	   structdesR3   R4   t   recdes(   t   clst	   stringabcR   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   setup_class   s.    (	--
	c         C   st   t  j |  j |  j |  j f  } t j | d d } t | d  d   d d   f |  j  t | j	 d d  d  S(   Nt   coli   ii   i
   (
   R   R)   R|   R~   R
   t   categoricalR   R   R   R]   (   R   R|   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_array2d   s    !&c         C   sP   t  j |  j  } t | d  d   d d   f |  j  t | j d d  d  S(   Nii   i   (   R
   R   R~   R   R   R   R]   (   R   R|   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_array1d   s    &c      
   C   s=   t  j t d d " t j |  j d i d d 6Wd  QXd  S(   Nt   matchs   col must be a str, int or NoneR   i   R>   (   R%   R&   t	   TypeErrorR
   R   R~   (   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_array1d_col_error   s    c         C   sz   t  j |  j |  j |  j f  } t j | d d d t } t | d  d   d d   f |  j  t	 | j
 d d  d  S(   NR   i   t   dropii   i	   (   R   R)   R|   R~   R
   R   t   TrueR   R   R   R]   (   R   R|   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_array2d_drop   s    !&c         C   s@   t  j |  j d t } t | |  j  t | j d d  d  S(   NR   i   i   (   R
   R   R~   R   R   R   R   R]   (   R   R|   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_array1d_drop   s    c         C   su   t  j |  j d d } t j g  | j j d D] } | | ^ q/  } t | |  j  t	 t
 | j j  d  d  S(   NR   Rx   ii	   (   R
   R   R   R   R)   R.   t   namesR   R   R   t   len(   R   R|   t   _t   test_des(    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_recarray2d   s    0c         C   sL   t  j |  j |  j f } t j t d d  t j | d d  Wd  QXd  S(   NR   s   col is None and the inputR   (	   R   t   c_R   R%   R&   t
   IndexErrorR
   R   R   (   R   t   arr(    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_recarray2d_error   s    c         C   su   t  j |  j d d } t j g  | j j d D] } | | ^ q/  } t | |  j  t	 t
 | j j  d  d  S(   NR   i   ii	   (   R
   R   R   R   R)   R.   R   R   R   R   R   (   R   R|   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_recarray2dint  s    0c         C   s   |  j  d j t j  } t j |  } t j g  | j j d D] } | | ^ q?  } t	 | |  j
  t t | j j  d  d  S(   NRx   ii   (   R   R3   R   R4   R
   R   R)   R.   R   R   R   R   R   (   R   R~   t   dumR   t   test_dum(    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_recarray1d
  s
    0c         C   s   |  j  d j t j  } t j | d t } t j g  | j j	 D] } | | ^ qA  } t
 | |  j  t t | j j	  d  d  S(   NRx   R   i   (   R   R3   R   R4   R
   R   R   R)   R.   R   R   R   R   R   (   R   R~   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_recarray1d_drop  s
    ,c         C   s{   t  j |  j d d d t } t j g  | j j d D] } | | ^ q5  } t | |  j	  t
 t | j j  d  d  S(   NR   Rx   R   ii   (   R
   R   R   R   R   R)   R.   R   R   R   R   R   (   R   R|   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_recarray2d_drop  s    0c         C   su   t  j |  j d d } t j g  | j j d D] } | | ^ q/  } t | |  j  t	 t
 | j j  d  d  S(   NR   Rx   ii	   (   R
   R   R   R   R)   R.   R   R   R   R   R   (   R   R|   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_structarray2d  s    0c         C   su   t  j |  j d d } t j g  | j j d D] } | | ^ q/  } t | |  j  t	 t
 | j j  d  d  S(   NR   i   ii	   (   R
   R   R   R   R)   R.   R   R   R   R   R   (   R   R|   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_structarray2dint$  s    0c         C   s   |  j  d j d d g  } t j |  } t j g  | j j d D] } | | ^ qB  } t | |  j	  t
 t | j j  d  d  S(   NRx   R.   Ru   Rv   ii   (   Ru   Rv   (   R   R3   R
   R   R   R)   R.   R   R   R   R   R   (   R   R~   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_structarray1d*  s
    0c         C   s{   t  j |  j d d d t } t j g  | j j d D] } | | ^ q5  } t | |  j	  t
 t | j j  d  d  S(   NR   Rx   R   ii   (   R
   R   R   R   R   R)   R.   R   R   R   R   R   (   R   R|   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_structarray2d_drop1  s    0c         C   s   |  j  d j d d g  } t j | d t } t j g  | j j D] } | | ^ qD  } t	 | |  j
  t t | j j  d  d  S(   NRx   R.   Ru   Rv   R   i   (   Ru   Rv   (   R   R3   R
   R   R   R   R)   R.   R   R   R   R   R   (   R   R~   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_structarray1d_drop7  s
    ,t   reasons   Call to tools.categorical raises AttributeError.  Previously this was commented-out with the comment 'comment out until we have type coercion'.t   strictR&   c         C   sb   t  j |  j j   d d } | d  d   d d   f } t | |  j  t | j d d  d  S(   NR   i   ii   i	   (   R
   R   R   Rh   R   R   R   R]   (   R   R|   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_arraylike2d>  s    c         C   sf   |  j  d j   } t j |  } | d  d   d d   f } t | |  j  t | j d d  d  S(   NRx   ii   i   (   R   Rh   R
   R   R   R   R   R]   (   R   R~   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_arraylike1dI  s
    c         C   sh   t  j |  j j   d d d t } | d  d   d d   f } t | |  j  t | j d d  d  S(   NR   i   R   ii   i   (	   R
   R   R   Rh   R   R   R   R   R]   (   R   R|   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_arraylike2d_dropU  s    $c         C   sP   |  j  d j   } t j | d t } t | |  j  t | j d d  d  S(   NRx   R   i   i   (	   R   Rh   R
   R   R   R   R   R   R]   (   R   R~   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_arraylike1d_drop`  s    (   R_   R`   t   classmethodR   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R%   t   markt   xfailR   t   AttributeErrorR   R   R   R   (    (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyRr      s2   																t   TestCategoricalStringc           B   sm  e  Z e j j d  d  d    Z e j j d  d  d    Z e j j d  d  d    Z d   Z d   Z	 d   Z
 d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z e j j d  d d e d e  d    Z e j j d  d d e d e  d    Z e j j d  d d e d e  d    Z e j j d  d d e d e  d    Z RS(   R   sw   No idea!  But xfailing instead of leaving this commented out with the comment 'comment out until we have type coercion'c         C   st   t  j |  j |  j |  j f  } t j | d d } t | d  d   d d   f |  j  t | j	 d d  d  S(   NR   i   ii   i
   (
   R   R)   R|   R~   R
   R   R   R   R   R]   (   R   R|   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR   n  s    !&c         C   sP   t  j |  j  } t | d  d   d d   f |  j  t | j d d  d  S(   Nii   i   (   R
   R   R~   R   R   R   R]   (   R   R|   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR   w  s    &c         C   sz   t  j |  j |  j |  j f  } t j | d d d t } t | d  d   d d   f |  j  t	 | j
 d d  d  S(   NR   i   R   ii   i	   (   R   R)   R|   R~   R
   R   R   R   R   R   R]   (   R   R|   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR     s    !&c         C   s@   t  j |  j d t } t | |  j  t | j d d  d  S(   NR   i   i   (   R
   R   R   R   R   R   R   R]   (   R   R|   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR     s    c         C   su   t  j |  j d d } t j g  | j j d D] } | | ^ q/  } t | |  j  t	 t
 | j j  d  d  S(   NR   Ry   ii	   (   R
   R   R   R   R)   R.   R   R   R   R   R   (   R   R|   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR     s    0c         C   su   t  j |  j d d } t j g  | j j d D] } | | ^ q/  } t | |  j  t	 t
 | j j  d  d  S(   NR   i   ii	   (   R
   R   R   R   R)   R.   R   R   R   R   R   (   R   R|   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR     s    0c         C   s   |  j  d j t j  } t j |  } t j g  | j j d D] } | | ^ q?  } t	 | |  j
  t t | j j  d  d  S(   NRy   ii   (   R   R3   R   R4   R
   R   R)   R.   R   R   R   R   R   (   R   R~   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR     s
    0c         C   s   |  j  d j t j  } t j | d t } t j g  | j j	 D] } | | ^ qA  } t
 | |  j  t t | j j	  d  d  S(   NRy   R   i   (   R   R3   R   R4   R
   R   R   R)   R.   R   R   R   R   R   (   R   R~   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR     s
    ,c         C   s{   t  j |  j d d d t } t j g  | j j d D] } | | ^ q5  } t | |  j	  t
 t | j j  d  d  S(   NR   Ry   R   ii   (   R
   R   R   R   R   R)   R.   R   R   R   R   R   (   R   R|   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR     s    0c         C   su   t  j |  j d d } t j g  | j j d D] } | | ^ q/  } t | |  j  t	 t
 | j j  d  d  S(   NR   Ry   ii	   (   R
   R   R   R   R)   R.   R   R   R   R   R   (   R   R|   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR     s    0c         C   su   t  j |  j d d } t j g  | j j d D] } | | ^ q/  } t | |  j  t	 t
 | j j  d  d  S(   NR   i   ii	   (   R
   R   R   R   R)   R.   R   R   R   R   R   (   R   R|   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR     s    0c         C   s   |  j  d j d d g  } t j |  } t j g  | j j d D] } | | ^ qB  } t | |  j	  t
 t | j j  d  d  S(   NRy   R.   Ru   Rz   ii   (   Ru   Rz   (   R   R3   R
   R   R   R)   R.   R   R   R   R   R   (   R   R~   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR     s
    0c         C   s{   t  j |  j d d d t } t j g  | j j d D] } | | ^ q5  } t | |  j	  t
 t | j j  d  d  S(   NR   Ry   R   ii   (   R
   R   R   R   R   R)   R.   R   R   R   R   R   (   R   R|   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR     s    0c         C   s   |  j  d j d d g  } t j | d t } t j g  | j j D] } | | ^ qD  } t	 | |  j
  t t | j j  d  d  S(   NRy   R.   Ru   Rz   R   i   (   Ru   Rz   (   R   R3   R
   R   R   R   R)   R.   R   R   R   R   R   (   R   R~   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR     s
    ,s-   Test has not been implemented for this class.R   R&   c         C   s
   t   d  S(   N(   t   NotImplementedError(   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR     s    c         C   s
   t   d  S(   N(   R   (   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR     s    c         C   s
   t   d  S(   N(   R   (   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR     s    c         C   s
   t   d  S(   N(   R   (   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR     s    (   R_   R`   R%   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR   l  s,   													c          C   s}   t  j j d g d g g d d }  t j |   } t  j j d
 d g d d t f d t f d	 t f g } t | |  d  S(   Ni
   i   R   t   groupg      ?g        R.   t   group_10t   group_11(   i
   g      ?g        (   i   g        g      ?(	   R   t   rect   fromrecordsR
   R   R2   R/   t   floatR   (   R   t   actualR<   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_rec_issue302  s
    $$c          C   s   t  j j d d g d d g g d d d g }  t j |  d d g } t  j j d d g d d t f d t f d t f d t f g } t | |  d  S(   Ni
   i   i   i   R   R   t   whateverR   g      ?g        R.   R   R   (   i
   i   g      ?g        (   i   i   g        g      ?(	   R   R   R   R
   R   R2   R/   R   R   (   R   R   R<   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_issue302  s    0c          C   s`   t  j   }  |  j d } t j | d t } t d | j d  t | j	 d  d d  d  S(   Nt   GNPt   prependR-   i   i    (
   R	   t   load_pandast   exogR
   R   t   FalseR   t   columnsR   t   var(   t   dtaR   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_pandas_const_series  s
    c          C   s`   t  j   }  |  j d } t j | d t } t d | j d  t | j	 d  d d  d  S(   NR   R   R-   i    (
   R	   R   R   R
   R   R   R   R   R   R   (   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt    test_pandas_const_series_prepend  s
    c          C   sV   t  j   j }  t j |  d t }  t d |  j d  t |  j	 d  d d  d  S(   NR   R-   ii    (
   R	   R   R   R
   R   R   R   R   R   R   (   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_pandas_const_df   s    c          C   sp   t  j   j }  |  d c |  d j   :<t j |  d t }  t d |  j d  t	 |  j
 d  d d  d  S(   Nt   UNEMPR   R-   i    (   R	   R   R   t   stdR
   R   R   R   R   R   R   (   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_pandas_const_df_prepend  s
    c          C   s   t  j d d  j d d  }  t  j d d  j d d  } t  j d d  j d d  } t t j |  | |  t  j d g d	 g d
 g g   d  S(   Ni   i   i   i   i   i   i   i  i  i|  (   R   R   t   reshapeR   R
   t	   chain_dotR2   (   t   At   BRl   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_chain_dot  s    t
   TestNanDotc           B   sq   e  Z e d     Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z d
   Z RS(   c         C   s   t  j } t  j | d g d d g g  |  _ t  j | | g d d g g  |  _ t  j d d g d d g g  |  _ t  j d d g d d g g  |  _ t  j d d g d d g g  |  _ t  j d d g d d g g  |  _ d  S(   Ng      ?g       @g      @g        g      @(	   R   t   nanR2   t   mx_1t   mx_2t   mx_3t   mx_4t   mx_5t   mx_6(   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR     s    	$$$$$c         C   sS   t  j |  j |  j  } t j t j t j g t j d g g  } t | |  d  S(   Ng      &@(   R
   t   nan_dotR   R   R2   R   R   (   R   t   test_rest   expected_res(    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_11!  s    *c         C   sS   t  j } t j |  j |  j  } t  j | | g | | g g  } t | |  d  S(   N(   R   R   R
   R   R   R   R2   R   (   R   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_12&  s    	!c         C   sS   t  j } t j |  j |  j  } t  j d d g d d g g  } t | |  d  S(   Ng        (   R   R   R
   R   R   R   R2   R   (   R   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_13,  s    	!c         C   sS   t  j } t j |  j |  j  } t  j | d g d d g g  } t | |  d  S(   Ng        g      @(   R   R   R
   R   R   R   R2   R   (   R   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_142  s    	!c         C   sS   t  j } t j |  j |  j  } t  j | d g | d g g  } t | |  d  S(   Ng      ?(   R   R   R
   R   R   R   R2   R   (   R   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_418  s    	!c         C   sS   t  j } t j |  j |  j  } t  j d d g d d g g  } t | |  d  S(   Ng        (   R   R   R
   R   R   R   R2   R   (   R   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_23>  s    	!c         C   sS   t  j } t j |  j |  j  } t  j d d g d d g g  } t | |  d  S(   Ng        (   R   R   R
   R   R   R   R2   R   (   R   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_32D  s    	!c         C   sS   t  j } t j |  j |  j  } t  j | d g d d g g  } t | |  d  S(   Ng        g      @(   R   R   R
   R   R   R   R2   R   (   R   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_24J  s    	!c         C   sS   t  j } t j |  j |  j  } t  j d | g d d g g  } t | |  d  S(   Ng        g      @(   R   R   R
   R   R   R   R2   R   (   R   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_25P  s    	!c         C   sS   t  j } t j |  j |  j  } t  j d d g d d g g  } t | |  d  S(   Ng      @g      $@g      .@g      6@(   R   R   R
   R   R   R2   R   (   R   R   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_66V  s    	!(   R_   R`   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR     s   
									t   TestEnsure2dc           B   s2   e  Z e d     Z d   Z d   Z d   Z RS(   c         C   sh   t  j d  j d
  } t j | d d d d d g |  _ |  j j d  d   d	 f |  _ | |  _ d  S(   Ng      y@id   i   R   R>   t   bt   ct   di    (   id   i   (	   R   R   R   R   RA   RD   t   ilocR   t   ndarray(   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR   ]  s    $c         C   s   t  j |  j t  } t | d |  j  t | d |  j j  t  j |  j t  } t | d |  j d  d   d g f  t | d |  j j d  d  S(   Ni    i   (   R
   t
   _ensure_2dRD   R   R   R   R   R   (   R   t   results(    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_enfore_numpyd  s    'c         C   s   t  j |  j t  } t | d |  j  t | d |  j j  t  j |  j t  } t | d |  j j d  d   d g f  t	 | d |  j j d  d  S(   Ni    i   (
   R
   R   RD   R   R   R   R   R   R   R   (   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_pandasl  s    *c         C   s   t  j |  j  } t | d |  j  t | d d   t  j |  j d  d   d f  } t | d |  j d  d   d g f  t | d d   d  S(   Ni    i   (   R
   R   R   R   R   R   (   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt
   test_numpyu  s    "'(   R_   R`   R   R   R   R   R   (    (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyR   \  s   			c      	   C   s   t  j t d d  t j |  d  Wd  QXt j |   } t  j t d d  t j | d   Wd  QXt  j t d d  t j | d  Wd  QXd  S(   NR   s   data.name does not match colt   unknowns   col must be a str or ints"   Column 'unknown' not found in data(	   R%   R&   R'   R
   R   R   RA   R   R   (   R   RD   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_categorical_pandas_errors  s    c         C   s  t  j |  d t } t j t j |    } t | |  t  j |  d t } t | j	  | _	 t | j
 d  d   d  d  f |  t | j
 d  d   d f |   t  j |  d t d t \ } } xN t t j |   j  D]4 \ } } | | k s t  | | | k s t  q Wd  S(   NR   i   t	   dictnames(   R
   R   R   R   t   get_dummiest   CategoricalR   R   t   listR   R   R   t	   enumeratet
   categoriesR6   (   R   t   designt   dummiesR   R   t   iR   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_categorical_series  s    & !%c         C   s   t  j |   } t j | d d t } t  j t  j |    } t | |  t  j i |  d 6|  d 6 } t j | d d t } t | |  d  S(   NR   R   t   applet   ban(   R   RA   R
   R   R   R   R   R   (   R   RD   R   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_categorical_dataframe  s    c      
   C   sc   t  j t d d  t j |  d  Wd  QXt  j t d d  t j |  i d d 6 Wd  QXd  S(   NR   s   Can only convert one columni    i   s   data.name does not match colR>   (   i    i   (   R%   R&   R'   R
   R   (   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   test_categorical_errors  s    (.   t   __doc__t   statsmodels.compat.pythonR    R   R   t   numpyR   t   numpy.randomR   t   numpy.testingR   R   R   R   t   pandasR   t   pandas.util.testingR   R   R%   t   statsmodels.datasetsR	   t   statsmodels.toolsR
   t   statsmodels.tools.toolsR   t   fixtureR   t   objectR   Rq   Rr   R   R   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    sA   lib/python2.7/site-packages/statsmodels/tools/tests/test_tools.pyt   <module>   s:   "	 w								F#			