ó
áp7]c           @   sj  d  Z  d d l m Z d d l Z d d l Z d d l m Z d d l m Z m Z m	 Z	 d d l
 Z d d l m Z m Z d d l j j Z d d l Z d d l m Z m Z d d l m Z m Z m Z m Z d d	 l m Z d
 Z d Z e j  j! e j  j" e# ƒ ƒ Z$ d „  Z% d „  Z& d „  Z' d „  Z( d „  Z) d „  Z* d „  Z+ d „  Z, d „  Z- d „  Z. d S(   s   
Tests for iolib/foreign.py
iÿÿÿÿ(   t   PY3N(   t   datetime(   t   assert_array_equalt   assert_t   assert_equal(   t	   DataFramet   isnull(   t   BytesIOt   asbytes(   t   StataWritert
   genfromdtat   _datetime_to_stata_elapsedt   _stata_elapsed_date_to_datetime(   t	   macrodatai   i   c          C   sM   d d l  m }  t j t ƒ  t t d ƒ } Wd  QXt | |  k t ƒ d  S(   Ni   (   t   macrodata_results'   /../../datasets/macrodata/macrodata.dta(	   t   results.macrodataR   t   pytestt   warnst   FutureWarningR
   t   curdirR   t   True(   t   res2t   res1(    (    sC   lib/python2.7/site-packages/statsmodels/iolib/tests/test_foreign.pyt   test_genfromdta   s    c          C   s’   d d l  m }  t j ƒ  j } t j j t j j t	 ƒ ƒ } t
 j t ƒ  t | d d t ƒ} Wd  QX| j t ƒ } |  | | j t ƒ ƒ d  S(   Niÿÿÿÿ(   t   assert_frame_equals'   /../../datasets/macrodata/macrodata.dtat   pandas(   t   pandas.util.testingR   R   t   load_pandast   datat   ost   patht   dirnamet   abspatht   __file__R   R   R   R
   R   t   astypet   float(   R   t   dtaR   R   (    (    sC   lib/python2.7/site-packages/statsmodels/iolib/tests/test_foreign.pyt   test_genfromdta_pandas(   s    c          C   s  t  ƒ  }  t j d t ƒ j } | j } d t f d t f g | j d } t s g  | D]! \ } } | j	 d ƒ | f ^ qW } n  | j
 t j | ƒ ƒ } t j t ƒ  t |  | ƒ } Wd  QX| j ƒ  |  j d ƒ t j t ƒ  t |  ƒ } Wd  QXt | | ƒ d  S(   Nt	   as_pandast   yeart   quarteri   t   asciii    (   R   R   t   loadt   FalseR   t   dtypet   intt   descrR    t   encodeR"   t   npR   R   R   R	   t
   write_filet   seekR
   R   (   t   bufR$   R,   t   dtt   namet   typt   writert   dta2(    (    sC   lib/python2.7/site-packages/statsmodels/iolib/tests/test_foreign.pyt   test_stata_writer_structured5   s    		#1
c          C   sÚ   t  ƒ  }  t j d t ƒ j } t j | ƒ } g  t d d ƒ D] } d | ^ q= | _ t	 j
 t ƒ  t |  | j ƒ } Wd  QX| j ƒ  |  j d ƒ t	 j
 t ƒ  t |  ƒ } Wd  QX| j d t ƒ } t | | ƒ d  S(   NR&   i   i   s   v%di    t   index(   R   R   R*   R+   R   R   t   from_recordst   ranget   columnsR   R   R   R	   t   valuesR1   R2   R
   t
   to_recordsR   (   R3   R$   t   iR7   R8   (    (    sC   lib/python2.7/site-packages/statsmodels/iolib/tests/test_foreign.pyt   test_stata_writer_arrayI   s    	)
c       
   C   sr  t  ƒ  }  t j t j t j d f g d d t f d t j f d g ƒ} t j t	 ƒ  t
 |  | ƒ } Wd  QX| j ƒ  |  j d ƒ t j t	 ƒ  t |  d t j ƒ} Wd  QXt t | d d ƒ ƒ t t | d d	 ƒ ƒ t | d d
 t d ƒ k ƒ t j t	 ƒ & t t j j t d ƒ d d ƒ} Wd  QXt t j g  t d ƒ D] } | d | d k ^ qJƒ ƒ d  S(   Nt    R,   t   double_misst
   float_misst   string_misst   a1i    t   missing_flti   i   s   results/data_missing.dtaiüÿÿi   (   RE   RF   (   R   R0   t   arrayt   nant   infR#   t   float32R   R   R   R	   R1   R2   R
   R   R   R   R   R   t   joinR   t   allR<   (   R3   R$   R7   R@   (    (    sC   lib/python2.7/site-packages/statsmodels/iolib/tests/test_foreign.pyt   test_missing_roundtripY   s$    		
c          C   s]  t  ƒ  }  t j ƒ  j } | j ƒ  } xB d D]: } | | j t j ƒ | | <| | j t j ƒ | | <q+ Wt	 j
 t ƒ  t |  | ƒ } Wd  QXt j d t ƒ ) } | j ƒ  t | ƒ d k sÅ t ‚ Wd  QX|  j d ƒ t	 j
 t ƒ  t |  ƒ } Wd  QXt j | ƒ } | j d t j d ƒ k r>t j | j ƒ  | ƒ n t j | | | j d ƒ d  S(   NR'   R(   t   recordi    i   t   int64(   R'   R(   (   R   R   R   R   t   copyR"   R0   RP   t   int32R   R   R   R	   t   warningst   catch_warningsR   R1   t   lent   AssertionErrorR2   R
   R   R;   t   dtypesR,   t   ptestingR   t   reset_indexR=   (   R3   R$   t   dta4t   colR7   t   wR8   t   dta5(    (    sC   lib/python2.7/site-packages/statsmodels/iolib/tests/test_foreign.pyt   test_stata_writer_pandasq   s$    	
c           C   s   d  S(   N(    (    (    (    sC   lib/python2.7/site-packages/statsmodels/iolib/tests/test_foreign.pyt   test_stata_writer_unicode   s    c          C   sí  t  d d d d d d ƒ d t  d d	 d ƒ t  d d	 d
 ƒ t  d d	 d	 ƒ t  d d d	 ƒ t  d d	 d	 ƒ t  d d	 d	 ƒ f t  d d d d d d ƒ d t  d d d ƒ t  d d d ƒ t  d d	 d	 ƒ t  d d d	 ƒ t  d d	 d	 ƒ t  d d	 d	 ƒ f g }  t j t ƒ   t t j j t d ƒ ƒ } Wd  QXt	 | d j
 ƒ  |  d ƒ t	 | d	 j
 ƒ  |  d	 ƒ t j d t ƒ < t j t ƒ & t t j j t d ƒ d t ƒ} Wd  QXWd  QXt	 | j d j
 ƒ  |  d ƒ t	 | j d	 j
 ƒ  |  d	 ƒ d  S(   NiÖ  i   i   i   i   i   IªÎ~X  iÚ  i   i   i¶  i   i§  i   i   i   iZléÿi¡  i
   i   iœ  i   i£  s    results/time_series_examples.dtai    RO   R   (   R   R   R   R   R
   R   R   RL   R   R   t   tolistRS   RT   R   t   iloc(   t   resultsR$   (    (    sC   lib/python2.7/site-packages/statsmodels/iolib/tests/test_foreign.pyt   test_genfromdta_datetime’   s(    !'	c          C   s_  d d d d d d d g }  d d d	 d
 d d d d d d d g } d d d d d d d d d d d g } d d d d d d d d d  d! d" d# d g } d d d$ d% d& d d' d( d) d d" g } d d* d+ d, d' d- d. d d. d- d' d, d+ d* d g } d. d d/ d0 d1 d2 d3 g } x- |  D]% } t  t t | d4 ƒ d4 ƒ | ƒ qWx- | D]% } t  t t | d5 ƒ d5 ƒ | ƒ qBWx- | D]% } t  t t | d6 ƒ d6 ƒ | ƒ qrWx- | D]% } t  t t | d7 ƒ d7 ƒ | ƒ q¢Wx- | D]% } t  t t | d8 ƒ d8 ƒ | ƒ qÒWx- | D]% } t  t t | d9 ƒ d9 ƒ | ƒ qWx- | D]% } t  t t | d: ƒ d: ƒ | ƒ q2Wd  S(;   NI€m"§þÿÿg    €„.Ág     jøÀiœÿÿÿg     jø@g    €„.AI€’Ý~X  iPûÿÿiàüÿÿi“þÿÿiÎÿÿÿi    i2   im  i   i°  g     ˆÃÀg      YÀiËÿÿÿiÌÿÿÿiÍÿÿÿi3   i4   i5   g      Y@g     ˆÃ@g     @Àióÿÿÿiôÿÿÿiõÿÿÿi   i   i   id   g     @@iûÿÿÿiüÿÿÿiýÿÿÿi   i   i   i(   i   i
   i   i   iô  iè  iÜ  i·  i  t   tct   tdt   twt   tmt   tqt   tht   ty(   R   R   R   (   t   mst   dayst   weekst   monthsR(   t   halfR'   R@   (    (    sC   lib/python2.7/site-packages/statsmodels/iolib/tests/test_foreign.pyt   test_date_converters¬   s8    ''-'3c          C   sŸ  t  j d t d d d ƒ d f d t d d d ƒ d f d t d d d ƒ d f g d d t f d	 t f d
 t f g ƒ}  t ƒ  } t j t ƒ  t	 | |  i d d	 6ƒ } Wd  QX| j
 ƒ  | j d ƒ t j t ƒ  t | ƒ } Wd  QXt |  | ƒ t j |  ƒ }  t ƒ  } t j t ƒ  t	 | |  i d d	 6ƒ } Wd  QX| j
 ƒ  | j d ƒ t j t ƒ  t | d t ƒ} Wd  QXt j |  | j d d d ƒƒ d  S(   Ni   iÚ  i   i   i   i   R,   t   var1t   var2t   var3Rg   i    R   R:   t   axis(   R0   RH   R   R#   t   objectR   R   R   R   R	   R1   R2   R
   R   R   R;   R   RX   R   t   drop(   R$   R3   R7   R8   (    (    sC   lib/python2.7/site-packages/statsmodels/iolib/tests/test_foreign.pyt   test_datetime_roundtripË   s*    $	
	
(/   t   __doc__t   statsmodels.compatR    R   RS   R   t   numpy.testingR   R   R   t   numpyR0   R   R   R   R   t   utilt   testingRX   R   t   statsmodels.compat.pythonR   R   t   statsmodels.iolib.foreignR	   R
   R   R   t   statsmodels.datasetsR   t	   DECIMAL_4t	   DECIMAL_3R   R   R    R!   R   R   R%   R9   RA   RN   R^   R_   Rc   Rp   Rw   (    (    (    sC   lib/python2.7/site-packages/statsmodels/iolib/tests/test_foreign.pyt   <module>   s2   "									