ó
šxŠ\c           @   s˜   d  d l  Z  d  d l Z d  d l Z d  d l m Z d  d l Z d  d l j	 j
 Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(	   iÿÿÿÿN(   t   PerformanceWarningt   TestSparseArrayConcatc           B   sP   e  Z e j j d  d d g ƒ d „  ƒ Z e j j d  d d g ƒ d „  ƒ Z RS(   t   kindt   integert   blockc         C   sª   t  j d d d d g d | ƒ} t  j d d d d g d | ƒ} t  j j | | g ƒ } t j d d d d d g d d ƒ} t j | j | ƒ | j | k s¦ t	 ‚ d  S(   Ni   i    i   R   t   dtypet   int64(
   t   pdt   SparseArrayt   _concat_same_typet   npt   arrayt   tmt   assert_numpy_array_equalt	   sp_valuesR   t   AssertionError(   t   selfR   t   at   bt   resultt   expected(    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyt
   test_basic   s    !!$c         C   sÂ   | d k r d n d } t  j d d d d g d | ƒ} t  j d d d d g d | ƒ} t  j j | | g ƒ } t j d d d d d g d d ƒ} t j | j | ƒ | j | k s¾ t	 ‚ d  S(	   NR   R   i   i    i   R   R   R   (
   R   R   R	   R
   R   R   R   R   R   R   (   R   R   t   otherR   R   R   R   (    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyt   test_uses_first_kind   s    !!$(   t   __name__t
   __module__t   pytestt   markt   parametrizeR   R   (    (    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyR      s   $t   TestSparseSeriesConcatc           B   st   e  Z e j j d  d d g ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z	 e j j d  d d g ƒ d „  ƒ Z
 RS(	   R   R   R   c         C   s›  t  j d d t  j t  j d t  j g ƒ } t  j d t  j d d d g ƒ } t j | d d d | ƒ} t j | d d	 d | ƒ} t j | | g ƒ } t j t j | ƒ t j | ƒ g ƒ } t j | d | ƒ} t j | | d
 t	 ƒt j | d d d d d | ƒ} t j | d d d d	 d | ƒ} t j | | g ƒ } t j t j | ƒ t j | ƒ g ƒ } t j | d d d | ƒ} t j | | d
 t	 ƒd  S(   Ni   i   i    i   i   t   namet   xR   t   yt   consolidate_block_indicest
   fill_value(
   R
   R   t   nanR   t   SparseSeriest   concatt   SeriesR   t   assert_sp_series_equalt   True(   R   R   t   val1t   val2t   sparse1t   sparse2t   rest   exp(    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyt   test_concat)   s    *!'!!'c         C   sò   t  j d d t  j t  j d t  j g ƒ } t  j d t  j d d d g ƒ } t j | d d ƒ} t j | d d ƒ} t j | | g d	 d ƒ} t j t j | d d ƒt j | d d ƒg d	 d ƒ} t j | ƒ } t j	 | | d
 t
 ƒd  S(   Ni   i   i    i   i   R   R   R    t   axisR!   (   R
   R   R#   R   R$   R%   R&   t   SparseDataFrameR   t   assert_sp_frame_equalR(   (   R   R)   R*   R+   R,   R-   R.   (    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyt   test_concat_axis1A   s    *!!c      	   C   s–  t  j d d t  j t  j d t  j g ƒ } t  j d t  j d d d g ƒ } xDd d g D]6} t j | d d	 d
 | ƒ} t j | d d d
 | d d ƒ} t j t ƒ  t j | | g ƒ } Wd  QXt j t j	 | ƒ t j	 | ƒ g ƒ } t j | d
 | ƒ} t j
 | | ƒ t j t ƒ  t j | | g ƒ } Wd  QXt j t j	 | ƒ t j	 | ƒ g ƒ } t j | d
 | d d ƒ} t j
 | | ƒ qX Wd  S(   Ni   i   i    i   i   R   R   R   R   R   R    R"   (   R
   R   R#   R   R$   R   t   assert_produces_warningR    R%   R&   R'   (   R   R)   R*   R   R+   R,   R-   R.   (    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyt   test_concat_different_fillN   s    *!!''c         C   s  t  j d d t  j t  j d t  j g ƒ } t  j d t  j d d d g ƒ } t j | d d ƒ} t j | d d d	 d ƒ} t j | | g d
 d ƒ} t j t j | d d ƒt j | d d ƒg d
 d ƒ} t | t j ƒ sç t	 ‚ t
 j | j ƒ  | ƒ d  S(   Ni   i   i    i   i   R   R   R    R"   R0   (   R
   R   R#   R   R$   R%   R&   t
   isinstanceR1   R   R   t   assert_frame_equalt   to_dense(   R   R)   R*   R+   R,   R-   R.   (    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyt    test_concat_axis1_different_filld   s    *!!c         C   sS  t  j d d t  j t  j d t  j g ƒ } t  j d t  j d d d g ƒ } t j | d d d d	 ƒ} t j | d d
 d d ƒ} t j | | g ƒ } t j t j | ƒ t j | ƒ g ƒ } t j | d | j ƒ} t j	 | | ƒ t j | | g ƒ } t j t j | ƒ t j | ƒ g ƒ } t j | d | j ƒ} t j	 | | d t
 ƒd  S(   Ni   i   i    i   i   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.   (    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyt   test_concat_different_kindq   s    *!''c         C   sx  t  j d d t  j t  j d t  j g ƒ } t  j d t  j d d d g ƒ } t j | d d d | ƒ} t j | d d	 ƒ} t j | | g ƒ } t j t j t j | ƒ | g ƒ d | ƒ} t j | | ƒ t j | | | g ƒ } t j | t j | ƒ | g ƒ } t j t j	 | d | ƒd
 | j
 d | j ƒ} t j | | ƒ t j | d d d | d d ƒ} t j | d d	 ƒ} t j | | g ƒ } t j t j | ƒ | g ƒ } t j t j	 | d | d d ƒd
 | j
 d | j ƒ} t j | | ƒ t j | | | g ƒ } t j | t j | ƒ | g ƒ } t j t j	 | d | d d ƒd
 | j
 d | j ƒ} t j | | ƒ d  S(   Ni   i   i    i   i   R   R   R   R    t   indexR"   (   R
   R   R#   R   R$   R&   R%   R   R'   R   R;   R   t   assert_series_equal(   R   R   R)   R*   t   sparset   denseR-   R.   (    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyt   test_concat_sparse_dense‚   s<    *!-!	!	!	(   R   R   R   R   R   R/   R3   R5   R9   R:   R?   (    (    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyR   '   s   				t   TestSparseDataFrameConcatc           B   s  e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 e j j d	 e j d d
 d e j g d
 d g d d
 g ƒ ƒ d „  ƒ Z e j j d	 e j d d
 d e j g d
 d g d d
 g ƒ ƒ e j j d d d e ƒ d „  ƒ ƒ Z RS(   c         C   sW  t  j i d d d t j g d 6d d d d g d 6t j t j t j t j g d 6d d d d g d	 6ƒ |  _ t  j i d
 d d d g d 6t j d d d g d 6d
 d t j t j g d 6t j t j t j t j g d	 6ƒ |  _ t  j i d
 d d d g d 6t j d d d g d 6d
 d t j t j g d 6t j t j t j t j g d 6ƒ |  _ d  S(   Ng        g      ð?g       @t   At   Bt   Cg      @g      @t   Dg      @g      @g      @g       @t   Et   Ft   Gt   H(   R   t	   DataFrameR
   R#   t   dense1t   dense2t   dense3(   R   t   method(    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyt   setup_method¶   s    (c         C   sô  |  j  j ƒ  } |  j j ƒ  } t j | | g ƒ } t j |  j  |  j  g ƒ j ƒ  } t j | | d t ƒt j | | g ƒ } t j |  j |  j g ƒ j ƒ  } t j | | d t ƒt j | | g ƒ } t j |  j  |  j g ƒ j ƒ  } t j | | d t ƒt j | | g ƒ } t j |  j |  j  g ƒ j ƒ  } t j | | d t ƒ|  j  j d d ƒ } |  j j d d ƒ } t j | | g ƒ } t j |  j  |  j  g ƒ j d d ƒ } t j	 | _
 t j | | d t ƒt j | | g ƒ } t j |  j |  j g ƒ j d d ƒ } t j	 | _
 t j | | d t ƒt j | | g ƒ } t j |  j  |  j g ƒ j d d ƒ } t j	 | _
 t j | | d t ƒt j | | g ƒ } t j |  j |  j  g ƒ j d d ƒ } t j	 | _
 t j | | d t ƒd  S(   NR!   R"   i    (   RJ   t	   to_sparseRK   R   R%   R   R2   R(   R
   R#   t   _default_fill_value(   R   R=   R,   R-   R.   (    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyR/   Ç   s@    !!!!''''c         C   sþ   |  j  j ƒ  } |  j j d d ƒ } t j t ƒ  t j | | g ƒ } Wd  QXt j |  j  |  j g ƒ j ƒ  } t j | | d t	 ƒt j t ƒ  t j | | g ƒ } Wd  QXt j |  j |  j  g ƒ j d d ƒ } t
 j | _ t j | | d t	 ƒd  S(   NR"   i    R!   (   RJ   RO   RK   R   R4   R    R   R%   R2   R(   R
   R#   RP   (   R   R=   R,   R-   R.   (    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyt    test_concat_different_fill_valueô   s    !'c         C   s    |  j  j ƒ  } |  j j ƒ  } t j t ƒ  t j | | g ƒ } Wd  QXt j t ƒ   t j |  j  |  j g ƒ } Wd  QX| j ƒ  } t j | | d t	 ƒd  S(   Nt
   check_kind(
   RJ   RO   RL   R   R4   t   FutureWarningR   R%   R2   t   False(   R   R=   t   sparse3R-   R.   (    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyt(   test_concat_different_columns_sort_warns  s    !c         C   sÞ   |  j  j ƒ  } |  j j ƒ  } t j | | g d t ƒ} t j |  j  |  j g d t ƒj ƒ  } t j | | d t ƒt j | | g d t ƒ} t j |  j |  j  g d t ƒj ƒ  } t	 j
 | _ t j | | d t ƒd  S(   Nt   sortRR   (   RJ   RO   RL   R   R%   R(   R   R2   RT   R
   R#   RP   (   R   R=   RU   R-   R.   (    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyt   test_concat_different_columns  s    ''c         C   sÇ   d d l  m } t j i t j t j t j g d d ƒd 6ƒ } t j i g  d 6ƒ } t j | | g d t ƒd g } t j	 i t j t j t j g d | t
 d ƒ ƒd 6ƒ } t j | | ƒ d  S(	   Niÿÿÿÿ(   t   SparseDtypeR"   i    RA   RB   RW   R   (   t   pandas.core.sparse.apiRY   R   R1   R   R
   R#   R%   RT   RI   t   floatR   R7   (   R   RY   R   R    R-   R.   (    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyt   test_concat_bug  s    !"!c         C   s  |  j  j d d ƒ } |  j j d d ƒ } t j | | g d t ƒ} t j |  j  |  j g d t ƒj d d ƒ } t j | _ t	 j
 | | d t d t ƒt j | | g d t ƒ} t j |  j |  j  g d t ƒj d d ƒ } t j | _ t	 j
 | | d t d t ƒ|  j  j ƒ  } |  j j d d ƒ } t j | | g d t ƒ} t j |  j  |  j g d t ƒ} t | t j ƒ s‚t ‚ t	 j | j ƒ  | ƒ t j | | g d t ƒ} t j |  j |  j  g d t ƒ} t | t j ƒ sìt ‚ t	 j | j ƒ  | ƒ d  S(   NR"   i    RW   RR   R!   (   RJ   RO   RL   R   R%   R(   R
   R#   RP   R   R2   RT   R6   R1   R   R7   R8   (   R   R=   RU   R-   R.   (    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyt#   test_concat_different_columns_buggy(  s0    $	$	!!c         C   s  |  j  j ƒ  } |  j j ƒ  } x¼ d d g D]® } t j | | | g ƒ } t j |  j  |  j | g ƒ j ƒ  } t j | | d t ƒt j | | | g ƒ } t j |  j | |  j  g ƒ j ƒ  } t j | | d t ƒq+ W|  j  j d d ƒ } |  j j d d ƒ } xú d d g D]ì } t j | | | g ƒ } t j |  j  |  j | g ƒ j d d ƒ } t j	 | _
 t j | | d t d t ƒt j | | | g ƒ } t j |  j | |  j  g ƒ j d d ƒ } | d | d <t j	 | _
 t j | | d t d t ƒqWd  S(   NRA   RD   RR   R"   i    RC   R!   (   RJ   RO   RK   R   R%   R   R2   RT   R
   R#   RP   R(   (   R   R=   R,   t   colR-   R.   (    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyt   test_concat_seriesI  s2    %%c         C   s¼  |  j  j ƒ  } |  j j ƒ  } t j | | g d d ƒ} t j |  j  |  j g d d ƒj ƒ  } t j | | ƒ t j | | g d d ƒ} t j |  j |  j  g d d ƒj ƒ  } t j | _	 t j | | ƒ |  j  j d d ƒ } |  j j d d ƒ } t j | | g d d ƒ} t j |  j  |  j g d d ƒj d d ƒ } t j | _	 t j | | ƒ t j | | g d d ƒ} t j |  j |  j  g d d ƒj d d ƒ } t j | _	 t j | | ƒ |  j  j ƒ  } |  j j d d ƒ } t j | | g d d ƒ} t j |  j  |  j g d d ƒ} t
 | t j ƒ s8t ‚ t j | j ƒ  | ƒ t j | | g d d ƒ} t j |  j |  j  g d d ƒ} t
 | t j ƒ s¢t ‚ t j | j ƒ  | ƒ d  S(   NR0   i   R"   i    (   RJ   RO   RL   R   R%   R   R2   R
   R#   RP   R6   R1   R   R7   R8   (   R   R=   RU   R-   R.   (    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyR3   k  s>    ''!!s   fill_value,sparse_idx,dense_idxi    i   c   
      C   sÓ   |  j  |  j g } | | | | j d | ƒ g } | | | | g } x† t d ƒ D]x } t j | ƒ } t j | ƒ }	 t | t j ƒ s t ‚ t	 j
 | j ƒ  |	 ƒ | d  d  d … } | d  d  d … } qS Wd  S(   NR"   i   iÿÿÿÿ(   RJ   RK   RO   t   rangeR   R%   R6   R1   R   R   R7   R8   (
   R   R"   t
   sparse_idxt	   dense_idxt   framest   sparse_framet   dense_framet   _R-   R.   (    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyt   test_concat_sparse_dense_rows—  s    t   reasons(   The iloc fails and I can't make expectedt   strictc         C   s¢  d d l  m } |  j |  j g } | | | | j d | ƒ g } | | | | g } xEt d ƒ D]7} t j | d d ƒ}	 t j | d d ƒ}
 g  t |	 j	 ƒ D] \ } } | | ƒ r£ | ^ q£ } xC | D]; } |
 j
 d  d  … | f j d ƒ |
 j
 d  d  … | f <qÎ WxT | | j D]E } | | k rHt j |	 | |
 | ƒ qt j |	 | |
 | ƒ qWt j |	 |
 ƒ | d  d  d … } | d  d  d … } qc Wd  S(   Niÿÿÿÿ(   t	   is_sparseR"   i   R0   i   t   Sparse(   t   pandas.core.dtypes.commonRj   RJ   RL   RO   R`   R   R%   t	   enumeratet   dtypest   iloct   astypet   columnsR   R7   R<   (   R   R"   Ra   Rb   Rj   Rc   Rd   Re   Rf   R-   R.   t   iR   t   colsR^   t   column(    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyt   test_concat_sparse_dense_cols¬  s$    49N(   R   R   RN   R/   RQ   RV   RX   R\   R]   R_   R3   R   R   R   t	   itertoolst   productt   NoneR
   R#   Rg   t   xfailRT   Ru   (    (    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyR@   ´   s&   		-				
	!	"	,		(   Rv   t   numpyR
   R   t   pandas.errorsR    t   pandasR   t   pandas.util.testingt   utilt   testingR   t   objectR   R   R@   (    (    (    sF   lib/python2.7/site-packages/pandas/tests/sparse/test_combine_concat.pyt   <module>   s   