ó
šxŠ\c           @   sÄ   d  d l  m  Z  d  d l Z d  d l m Z d  d l Z d  d l Z d  d l m Z m Z m	 Z	 m
 Z
 m Z d  d l j j Z d  d l m Z m Z d e f d „  ƒ  YZ d e f d	 „  ƒ  YZ d S(
   iÿÿÿÿ(   t   datetimeN(   t   nan(   t	   DataFramet   DatetimeIndext   Seriest   compatt
   date_range(   t   assert_frame_equalt   assert_series_equalt   TestSeriesCombinec           B   sÞ  e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e j	 j
 d d d g d	 e j d
 d d g d d	 ƒf d d g d e j d
 d d g ƒ f d d g e e j d d d g ƒ f d d g e e j d
 d d g d e ƒf d d g d	 e j d
 d d g d d	 ƒf d d g d e j d
 d d g ƒ f d d g e e j d d d g ƒ f d d g e e j d
 d d g d e ƒf d d g d	 e j d d d g ƒ f d d g d e j d d d g ƒ f d d g e e j d d d g ƒ f d d g e e j d
 d d g d e ƒf d d g d	 e j d
 d d g ƒ f d d g d e j d
 d d g ƒ f d d  g e e j d d! d g ƒ f d" d# g e e j d
 d$ d g ƒ f g ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z RS(%   c         C   sÄ   | j  | ƒ } xy t j | ƒ D]h \ } } | | j k rS | | | k s‡ t ‚ q | | j k r{ | | | k s‡ t ‚ q t d ƒ ‚ q Wd } t j t d | ƒ | j  | d t ƒWd  QXd  S(   Ns   orphaned index!s    Indexes have overlapping values:t   matcht   verify_integrity(	   t   appendR   t	   iteritemst   indext   AssertionErrort   pytestt   raisest
   ValueErrort   True(   t   selft   datetime_seriest   string_seriest   object_seriest   appendedSeriest   idxt   valuet   msg(    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt   test_append   s    c         C   sF   | d  | d d !| d g } | d j  | d ƒ } t | | ƒ d  S(   Ni   i
   i    i   (   R   R   (   R   R   t   piecest   result(    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt   test_append_many    s    c      	   C   s€  t  j d d d g ƒ } t  j d d d g ƒ } t  j d d d d d d g d d d d d d d g ƒ} t j | j | ƒ | ƒ t j t  j | | g ƒ | ƒ t  j d d d d d d g ƒ } t j | j | d	 t ƒ| d
 t ƒt j t  j | | g d	 t ƒ| d
 t ƒd } t j t	 d | ƒ | j | d t ƒWd  QXt j t	 d | ƒ t  j | | g d t ƒWd  QXd  S(   Ni   i   i   i   i   i   R   i    t   ignore_indext   check_index_types    Indexes have overlapping values:R
   R   (
   t   pdR   t   tmR   R   t   concatR   R   R   R   (   R   t   s1t   s2t   expR   (    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt   test_append_duplicates'   s    9!c         C   sß   t  j g  t d ƒ D] } | d ^ q ƒ } | j d d „  ƒ } t  j g  t d ƒ D] } | d d ^ qT ƒ } t j | | ƒ | j d d „  ƒ } t  j g  t d ƒ D] } t | d d ƒ ^ q© ƒ } t j | | ƒ d  S(   Ni   i
   i   c         S   s   |  | S(   N(    (   t   xt   y(    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt   <lambda>A   s    i   c         S   s   t  |  | ƒ S(   N(   t   min(   R)   R*   (    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyR+   E   s    (   R"   R   t   ranget   combineR#   R   R,   (   R   t   it   sR   t   expected(    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt   test_combine_scalar<   s    ,05c   
      C   s  t  j d ƒ j j t ƒ } t | d t  j d ƒ ƒ} | d } t j | d  d  d … <| j | ƒ } t  j	 | | ƒ | j | ƒ } t j
 | ƒ j ƒ  sŸ t ‚ t  j	 | d  d  d … | d  d  d … ƒ t  j	 | d d  d … | d d  d … ƒ t  j d ƒ } t t  j d ƒ d | ƒ} t t  j d ƒ d | d  d  d … ƒ} | j | ƒ } t  j	 | | j | d  d  d … ƒ t  j	 | d d  d … j t ƒ | j | d d  d … ƒ t d d d g d d d d g ƒ} | j t g  d g  ƒƒ }	 t	 | |	 ƒ d  S(	   Ni   R   i   i   i
   g      ð?i   i    (   R#   t   makeIntIndext   valuest   astypet   floatR   t   npt   NaNt   combine_firstR   t   isfinitet   allR   t   makeStringIndext   randnt   loct   object(
   R   R4   t   seriest   series_copyt   combinedR   t   floatst   stringsR0   R   (    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt   test_combine_firstI   s(    
**($$c         C   s  t  d t d d t g ƒ } t  t d t d g ƒ } | j | ƒ t  d d d d t j g ƒ } t | | ƒ t i d d 6i d d 6d	 d
 6g ƒ } t j | d <| d j t  d g d d g ƒƒ t d t j d g d d t j g g d d d
 d g ƒ} t | | ƒ d  S(   Ng      ø?g      @g      @g      @g      @i   t   ai   i   t   bt   ct   fooR   i    g       @t   columns(   R   R   t   updateR7   R   R   R   (   R   R0   R&   R1   t   df(    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt   test_updatel   s    '#'s   other, dtype, expectedi=   i?   t   int32i
   i   t   dtypet   int64g      $@g     €N@g      (@g     €O@gÍÌÌÌÌŒN@gÍÌÌÌÌŒO@c         C   sQ   t  d d d g d | ƒ} t  | d d d g ƒ} | j | ƒ t | | ƒ d  S(   Ni
   i   i   RO   R   i   i   (   R   RK   R   (   R   t   otherRO   R1   R0   (    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt   test_update_dtypes}   s    c            s?  t  t j d d d d d d g ƒ } xn | D]f } t j t d | ƒ g ƒ j | k s[ t ‚ t j t d | ƒ t d | ƒ g ƒ j | k s+ t ‚ q+ Wd „  ‰ d	 „  ‰  ‡  ‡ f d
 †  } x | D]w } xn | D]f } | | k rå qÍ n  | | | ƒ } t j t d | ƒ t d | ƒ g ƒ j } | j | k sÍ t ‚ qÍ WqÀ Wd  S(   Nt   float64t   int8t   uint8t   bools   m8[ns]s   M8[ns]RO   c         S   s‹   |  j  | j  h } t | d d d h ƒ rN |  j  d k sJ | j  d k rN d St | d d h ƒ r‡ |  j  d k sƒ | j  d k r‡ d Sd  S(   NR/   t   uRG   (   t   kindt   lent   None(   RO   t   dtype2t   typs(    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt   int_result_type¦   s    )&c         S   sR   |  j  | j  h } t | d d d h ƒ rN |  j  d k sJ | j  d k rN d Sd  S(   Nt   fR/   RW   (   RX   RY   RZ   (   RO   R[   R\   (    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt   float_result_type°   s
    )c            sB   ˆ  |  | ƒ } | d  k	 r | Sˆ |  | ƒ } | d  k	 r> | Sd S(   Nt   O(   RZ   (   RO   R[   R   (   R_   R]   (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt   get_result_type·   s    (   t   mapR7   RO   R"   R$   R   R   RX   (   R   t   dtypesRO   Ra   R[   R1   R   (    (   R_   R]   sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt*   test_concat_empty_series_dtypes_roundtrips›   s     *(	
		*c         C   sÂ   t  j t  j d d d g d | ƒd d ƒ} t  j t  j d d d	 g d | ƒd
 d d d g d d ƒ} | j | ƒ } t  j d d d d d	 g d | ƒ} t  j | d d ƒ} t | | ƒ d  S(   Nt   20150101t   20150102t   20150103t   tzt   namet   ser1t   20160514t   20160515t   20160516R   i   i   i   t   ser2(   R"   R   R   R9   R   (   R   t   tz_naive_fixtureRj   Rn   R   t   exp_valsR'   (    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt   test_combine_first_dt_tz_valuesÊ   s    				c         C   s©  t  j t d t j ƒ t d t j ƒ g ƒ j t j k s? t ‚ t  j t d t j ƒ t d t j ƒ g ƒ j t j	 k s~ t ‚ t  j t d d ƒ t d t j
 ƒ g ƒ j t j	 k sº t ‚ t  j t d d ƒ t d t j ƒ g ƒ j t j	 k sö t ‚ t  j t d d ƒ t d t j
 ƒ g ƒ j t j	 k s2t ‚ t  j t d d ƒ t d t j ƒ g ƒ j t j	 k snt ‚ t  j t d d ƒ t d t j ƒ t d t j ƒ g ƒ j t j	 k s¹t ‚ t  j t d d ƒ t d d ƒ g ƒ j d k sït ‚ t  j t t j g  ƒ d d ƒt d d ƒ g ƒ j d k s1t ‚ t  j t d d ƒ t d d ƒ g ƒ j d k sgt ‚ t  j t d d ƒ j ƒ  t d d ƒ j ƒ  g ƒ } | j d k s¯t ‚ | j d k sÄt ‚ t  j t d d ƒ j ƒ  t d d ƒ g ƒ } t  j j j j t j ƒ } | j | k s!t ‚ | j d k s6t ‚ t  j t d d ƒ j ƒ  t d d ƒ g ƒ } t  j j j j d ƒ } | j | k st ‚ | j d	 k s¥t ‚ d  S(
   NRO   s   m8[ns]s   M8[ns]t   categoryRS   R?   s   Sparse[float64]s   float64:sparses   object:sparse(   R"   R$   R   R7   t   bool_RN   RO   R   t   float32t   object_RV   RP   t   arrayt	   to_sparset   ftypet   coret   sparset   apit   SparseDtypeRS   (   R   R   R1   (    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt   test_concat_empty_series_dtypesØ   sF    *******$$$c         C   sè   d d l  m } | t d t j g ƒ ƒ } | t t j d g ƒ ƒ } | j | ƒ } | t d d g ƒ ƒ } t | | ƒ | t d t j g ƒ ƒ } t t j d g ƒ } | j | ƒ } t t d d d ƒ d g ƒ } t | | ƒ d  S(   Niÿÿÿÿ(   t   to_datetimet   2010t   2011iÚ  i   (   t   pandas.core.tools.datetimesR~   R   R7   R8   R9   R   R    (   R   R~   t   s0R%   t   rst   xp(    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt   test_combine_first_dt64  s    (   i=   (   i?   (   i=   (   i=   (   i?   (   i=   (   i=   (   i?   (   i=   (   i=   (   i?   (   i=   (   t   __name__t
   __module__R   R   R(   R2   RE   RM   R   t   markt   parametrizeR"   R   R6   R?   RR   Rd   Rq   R}   R…   (    (    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyR	      s6   					#	*$$**$$*$$$*$$$6
	/		3t   TestTimeseriesc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c   
      C   sˆ  t  d d d d d ƒ} t t j j t | ƒ ƒ | ƒ } t t j j t | ƒ d ƒ d | ƒ} | j | ƒ } | j | ƒ } t t j	 | j
 d ƒ ƒ } t j | j | ƒ t j | j | ƒ | j | ƒ } t j | | ƒ | j | | g ƒ } t t j	 | j
 d	 ƒ ƒ } t j | | ƒ | j ƒ  } | j ƒ  }	 d
 | _ d |	 _ | j | ƒ j d
 k sft ‚ | j |	 ƒ j d  k s„t ‚ d  S(   Ns   5/8/2012 1:45t   periodsi
   t   freqt   5Ti   R   i   i   RI   t   bar(   R   R   R7   t   randomR=   RY   R   R   R   t   tileR4   R#   t   assert_index_equalR   t   copyRi   R   RZ   (
   R   t   rngt   tsRL   R   t	   result_dft   ex_indext   appendedt   rng1t   rng2(    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt   test_append_concat  s&    !'		c         C   sQ  t  d d d d d d d ƒ} t  d d d d d d d ƒ} t  d d d	 d d d d ƒ} t t j j t | ƒ ƒ | ƒ } t t j j t | ƒ d
 ƒ d | ƒ} t t j j t | ƒ ƒ | ƒ } t t j j t | ƒ d
 ƒ d | ƒ} | j | ƒ } | j | ƒ }	 t j	 | j
 | ƒ t j	 |	 j
 | ƒ | j | ƒ }
 t j	 |
 | ƒ d  S(   Ns   5/8/2012 1:45R‹   i
   RŒ   R   Rh   s
   US/Easterns   5/8/2012 2:35i   i   R   (   R   R   R7   R   R=   RY   R   R   R#   R‘   R   (   R   R“   R™   t   rng3R”   RL   t   ts2t   df2R   R•   R—   (    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt   test_append_concat_tz6  s     			!'!'c      	   C   ss  d d l  m } t d d d d d d | d	 ƒ ƒ} t d
 d d d d d | d	 ƒ ƒ} t d d d d d d | d	 ƒ ƒ} t t j j t | ƒ ƒ | ƒ } t t j j t | ƒ d ƒ d | ƒ} t t j j t | ƒ ƒ | ƒ } t t j j t | ƒ d ƒ d | ƒ} | j	 | ƒ }	 | j	 | ƒ }
 t
 j |	 j | ƒ t
 j |
 j | ƒ | j	 | ƒ } t
 j | | ƒ d  S(   Niÿÿÿÿ(   t   timezones   5/8/2012 1:45R‹   i
   RŒ   R   Rh   s
   US/Easterns   5/8/2012 2:35i   i   R   (   t   pytzRŸ   R   R   R7   R   R=   RY   R   R   R#   R‘   R   (   R   RŸ   R“   R™   R›   R”   RL   Rœ   R   R   R•   R—   (    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt#   test_append_concat_tz_explicit_pytzK  s"    !'!'c         C   sQ  t  d d d d d d d ƒ} t  d d d d d d d ƒ} t  d d d	 d d d d ƒ} t t j j t | ƒ ƒ | ƒ } t t j j t | ƒ d
 ƒ d | ƒ} t t j j t | ƒ ƒ | ƒ } t t j j t | ƒ d
 ƒ d | ƒ} | j | ƒ } | j | ƒ }	 t j	 | j
 | ƒ t j	 |	 j
 | ƒ | j | ƒ }
 t j	 |
 | ƒ d  S(   Ns   5/8/2012 1:45R‹   i
   RŒ   R   Rh   s   dateutil/US/Easterns   5/8/2012 2:35i   i   R   (   R   R   R7   R   R=   RY   R   R   R#   R‘   R   (   R   R“   R™   R›   R”   RL   Rœ   R   R   R•   R—   (    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt   test_append_concat_tz_dateutilb  s     			!'!'(   R†   R‡   Rš   Rž   R¡   R¢   (    (    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyRŠ     s   			(   R    t   numpyR7   R   R   t   pandasR"   R   R   R   R   R   t   pandas.util.testingt   utilt   testingR#   R   R   R?   R	   RŠ   (    (    (    sF   lib/python2.7/site-packages/pandas/tests/series/test_combine_concat.pyt   <module>   s   (ÿ 