ó
šßÈ[c           @   só   d  d l  Z  d  d l m Z d  d l Z d d l m Z d d l m	 Z
 d d l m Z d d l m Z d d l m Z d d	 l m Z m Z d
 d l m Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   iÿÿÿÿN(   t   OrderedDicti   (   t	   cStringIO(   t   units(   t   time(   t   coordinates(   t   table(   t   data_info_factoryt   dtype_info_namei   (   t   simple_tablec   	   
   C   s‰  t  j d d d g d d ƒ} t  j d d d g d d ƒ} t  j d d d	 g d d
 ƒ} |  j | | | g d d d d g ƒ} | j d d) ƒ } |  j j d k r® d g n g  } | j d d d d d d d d d g	 k sä t ‚ t  j | d d d d g k ƒ st ‚ t  j | d d d t	 d ƒ g k ƒ s:t ‚ | rit  j | d d g d k ƒ sit ‚ n  d d d g t
 j | d <d | d _ d | d _ t j d d d g d d ƒ| d	 <d | d	 j _ t j d d d g d d d g d d ƒ| d <d  | d j _ | j d d) ƒ } t  j | d d! j ƒ  k ƒ sDt ‚ t  j | d d d t	 d ƒ d" d# d# g k ƒ s{t ‚ t  j | d d$ d$ d$ d% d$ d& g k ƒ s¬t ‚ t  j | d d d$ d$ d$ d$ d$ g k ƒ sÝt ‚ t  j | d d$ d$ d$ d d d  g k ƒ st ‚ | j j } t  j | d | | | | d' d( g k ƒ sKt ‚ t ƒ  } | j d | ƒ t | j ƒ | j ƒ  k s…t ‚ d) S(*   sQ   
    Test the info() method of printing a summary of table column attributes
    i   i   i   t   dtypet   int32t   float32t   at   ct   es   |S1t   namest   bt   outt   MyTablet   classt   namet   shapet   unitt   formatt   descriptiont   n_badt   lengtht   S1t   MyColumnt   dt   quantitys   %02dt   mjdR   t   degt   ft   skycoords   a b c d e ft   float64t   objectt    t   ms   deg,degt   Timet   SkyCoordN(   t   npt   arrayt   Tablet   infot   Nonet   __name__t   colnamest   AssertionErrort   allR   t   uR&   R   R   R   R'   R   R(   t   splitt   ColumnClasst   StringIOt   reprt   getvalue(	   t   table_typesR   R   R   t   tt   tinfot   subclst   clsR   (    (    s<   lib/python2.7/site-packages/astropy/table/tests/test_info.pyt   test_table_info_attributes   s>    '!(.)".%1111	c         C   sÂ  t  j d d d d g d d ƒ} t  j d d d d g d d ƒ} t  j d d d d	 g d d
 ƒ} t j d d d d g d d ƒ} |  j | | | | g d d d d d g ƒ} | j rÀ d n d } t ƒ  } | j d d | ƒd j | j	 j
 | ƒ } | d d d d d d g }	 | j ƒ  j ƒ  |	 k s3t ‚ | j d d g d d6 ƒ}
 |
 j d d d d d d d  d! d" d# d$ d% d& g k sŠt ‚ t  j |
 d! d' d' d( d( g k ƒ sµt ‚ t  j |
 d" d) d) d( d( g k ƒ sàt ‚ t  j |
 d# d* d+ d( d+ g k ƒ st ‚ t  j |
 d$ d, d- d( d- g k ƒ s6t ‚ t ƒ  } | j d d | ƒ| d d d d d d g }	 | j ƒ  j ƒ  |	 k s‹t ‚ t d d. d/ g d0 t  j d1 „  g ƒ } t ƒ  } | j d | g d d6 ƒ}
 |
 j d d d d d d d  d. d/ d% d& g k st ‚ t  j |
 d d d d d g k ƒ s7t ‚ t  j |
 d d d t d2 ƒ d3 g k ƒ sht ‚ t  j |
 d. d4 d5 d( d( g k ƒ s“t ‚ t  j |
 d/ d* d+ d d+ g k ƒ s¾t ‚ d6 S(7   sQ   
    Test the info() method of printing a summary of table column statistics
    i   i   R	   R
   R   R   R   R   R!   s   |S1R   R   R   R   R   s   masked=True R%   t   statsR   s   <{0} {1}length=4>s   name mean std min maxs   ---- ---- --- --- ---s      a  1.5 0.5   1   2s      b  1.5 0.5 1.0 2.0s      c   --  --  --  --s      d   --  -- 1.0 2.0t
   attributesR   R   R   R   R   t   meant   stdt   mint   maxR   R   s   1.5s   --s   0.5t   1s   1.0t   2s   2.0t   sumt   firstt   funcsc         S   s   |  d S(   Ni    (    (   t   col(    (    s<   lib/python2.7/site-packages/astropy/table/tests/test_info.pyt   <lambda>n   s    R   R$   t   6s   6.0N(   R)   R*   R   R'   R+   t   maskedR5   R,   R   t	   __class__R.   R7   t
   splitlinesR0   R-   R/   R1   R   RF   R   (   R8   R   R   R   R   R9   RL   R   t   table_header_linet   expR:   t   custom(    (    s<   lib/python2.7/site-packages/astropy/table/tests/test_info.pyt   test_table_info_stats@   sX    !!!!-		$++++			+1+c          C   s–  t  j d d t j g d d d d d d ƒt  j d d d g d d d d d d d t t t g ƒg }  x)|  D]!} | j d	 d% ƒ } | t	 d& d' d( d) d* d+ d t
 | ƒ j f d, d- g	 ƒ k sÇ t ‚ t ƒ  } | j d	 | ƒ d d d d d j t
 | ƒ j ƒ d d g } | j ƒ  j ƒ  | k s+t ‚ t | j ƒ | j ƒ  k sLt ‚ | j d d	 d% ƒ} | t	 d. d/ d0 d1 d2 d3 d4 g ƒ k sm t ‚ qm Wd% S(5   s.   
    Test getting info for just a column.
    g      ð?g       @R   R   R   s   m/sg      @t   maskR   R	   R#   R   R%   s   m / sR   R   R   i   R   i   s   name = names   dtype = float64s   unit = m / ss   description = descriptions   class = {0}s	   n_bad = 1s
   length = 3R>   R@   s   1.5RA   s   0.5RB   s   1.0RC   s   2.0N(   R   R   (   R	   R#   (   R   R%   (   R   s   m / s(   R   R%   (   R   R   (   R   i   (   R   i   (   R   R   (   R@   s   1.5(   RA   s   0.5(   RB   s   1.0(   RC   s   2.0(   R   i   (   R   i   (   R   t   ColumnR)   t   nant   MaskedColumnt   Falset   TrueR,   R-   R    t   typeR.   R0   R5   R   R7   RN   R6   (   t   colsR   t   cinfoR   RP   (    (    s<   lib/python2.7/site-packages/astropy/table/tests/test_info.pyt   test_data_infoy   sF    			!	c          C   sš   d t  j f d „  ƒ  Y}  xz g  d d g f D]f } |  | d d ƒ} | j d d  ƒ } | t d d d d d d d d t | ƒ f g ƒ k s, t ‚ q, Wd  S(   NRT   c           B   s   e  Z d  Z RS(   sI   
        Confusingly named Column on purpose, but that is legal.
        (   R.   t
   __module__t   __doc__(    (    (    s<   lib/python2.7/site-packages/astropy/table/tests/test_info.pyRT   ª   s   i   i   R	   t   int64R   R   R%   R   R   R   R   R   i    R   (   R	   R_   (   R   R%   (   R   R%   (   R   R%   (   R   R%   (   R   RT   (   R   i    (   R   RT   R,   R-   R    t   lenR0   (   RT   t   dataR   R[   (    (    s<   lib/python2.7/site-packages/astropy/table/tests/test_info.pyt   test_data_info_subclass©   s    	c          C   sM   t  j d ƒ }  |  j d d ƒ } | d d k s7 t ‚ d | k sI t ‚ d S(   s1   
    Make sure info works with scalar values
    s   2000:001R   R   i    R   N(   R   R'   R,   R-   R0   (   R   R[   (    (    s<   lib/python2.7/site-packages/astropy/table/tests/test_info.pyt   test_scalar_info¼   s    c          C   sS   t  j ƒ  }  t ƒ  } |  j d | ƒ d d g } | j ƒ  j ƒ  | k sO t ‚ d  S(   NR   s   <Table length=0>s   <No columns>(   R   R+   R5   R,   R7   RN   R0   (   R9   R   RP   (    (    s<   lib/python2.7/site-packages/astropy/table/tests/test_info.pyt   test_empty_tableÆ   s
    	c          C   sÀ   d g t  j d g t  j g }  d d d d d g } d d	 d
 d d g } xo t j | f t j | f f D]O \ } } | |  ƒ } t ƒ  } | j d | ƒ | j ƒ  j ƒ  | k si t	 ‚ qi Wd S(   s]   
    Test that class info column is suppressed only for identical non-mixin
    columns.
    i   i   s   <Table length=1>s   name  dtype  units   ---- ------- ----s   col0 float64    ms   col1 float64    ms   <QTable length=1>s   name  dtype  unit  class  s   ---- ------- ---- --------s   col0 float64    m Quantitys   col1 float64    m QuantityR   N(
   R2   R&   R   R+   t   QTableR5   R,   R7   RN   R0   (   t   valst   texpt   qexpt	   table_clsRP   R9   R   (    (    s<   lib/python2.7/site-packages/astropy/table/tests/test_info.pyt   test_class_attributeÎ   s"     			c          C   sh   t  j t j t j g g ƒ }  t j d t ƒ 2 } |  j d d d  ƒt	 | ƒ d k s^ t
 ‚ Wd  QXd  S(   Nt   recordR>   R   i    (   R   R+   R)   RU   t   warningst   catch_warningsRX   R,   R-   R`   R0   (   R9   t   warns(    (    s<   lib/python2.7/site-packages/astropy/table/tests/test_info.pyt   test_ignore_warningsé   s    c          C   sJ   t  ƒ  }  t j d t ƒ ) } |  j ƒ  t | ƒ d k s@ t ‚ Wd  QXd  S(   NRk   i    (   R   Rl   Rm   RX   R,   R`   R0   (   R9   Rn   (    (    s<   lib/python2.7/site-packages/astropy/table/tests/test_info.pyt   test_no_deprecation_warningð   s    	
(   Rl   t   collectionsR    t   numpyR)   t   extern.six.movesR   R5   R%   R   R2   R   R   R   t   utils.data_infoR   R   t   table_helpersR   R=   RR   R\   Rb   Rc   Rd   Rj   Ro   Rp   (    (    (    s<   lib/python2.7/site-packages/astropy/table/tests/test_info.pyt   <module>   s$   	,	9	0		
			