ó
šßÈ[c           @   s  d  Z  d d l Z d d l Z d d l Z d d l Z d d l m Z m Z d d l	 m
 Z
 m Z d d l m Z d d l m Z y d d l Z Wn e k
 r« e Z n Xe Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z e j j d ƒ d „  ƒ Z d „  Z d „  Z d „  Z d S(   s+   
Test the conversion to/from astropy.table
iÿÿÿÿNi   (   t   get_pkg_data_filenamet   get_pkg_data_fileobji   (   t   parset   writeto(   t   tree(   t   zipc         C   sn  t  t d ƒ d t ƒ} | j ƒ  } | j ƒ  } xC | j j j D]2 } t j	 | j
 | | j j
 | k ƒ s@ t ‚ q@ Wt j j | ƒ } | j ƒ  } d i d d 6d d 6f d i d d 6d	 d 6f d
 i d d 6d d 6f d i d d 6d	 d 6f d i d d 6d d 6f d i d d 6f d i d d 6f d i d d 6f d i d d 6f d i d d 6f d i d d 6f d i d d 6d d 6f d i d d 6f d i d d 6d d 6f d i d d 6d d 6f d i d d 6d d 6f d i d d 6f d i d d 6f d i d d 6d d 6f d  i d d 6d! d 6f d" i d d 6f d# i d d 6d d 6f d$ i d d 6f d% i d d 6d& d 6f d' i d d 6f d( i d d 6f d) i d d 6d d 6f d* i d d 6d+ d 6f g } x‚ t | j | ƒ D]n \ } }	 |	 \ } }
 | j | k st ‚ | j |
 d k st ‚ d |
 k rÖ| j |
 d k sDt ‚ qÖqÖWt | t j j t |  ƒ d, ƒ ƒ d  S(-   Ns   data/regression.xmlt   pedantict   string_testt   chart   datatypet   *t	   arraysizet   string_test_2t   10t   unicode_testt   unicodeChart   fixed_unicode_testt   string_array_testt   4t   unsignedBytet   shortt   intt   longt   doublet   floatt   arrays   2*t   bitt   bitarrayt   3x2t   bitvararrayt   bitvararray2s   3x2*t   floatComplext   doubleComplext   doubleComplexArrayt   doubleComplexArrayFixedt   2t   booleant   booleanArrayt   nullst   nulls_arrayt   2x2t
   precision1t
   precision2t   doublearrayt	   bitarray2t   16s   through_table.xml(   R   R    t   Falset   get_first_tablet   to_tableR   t   dtypet   namest   npt   allt   maskt   AssertionErrorR   t   VOTableFilet
   from_tableR   t   fieldst   IDR	   R   R   t   ost   patht   joint   str(   t   tmpdirt   votablet   tablet   astropy_tablet   namet   votable2t   tt   field_typest   fieldt   typet   d(    (    sB   lib/python2.7/site-packages/astropy/io/votable/tests/table_test.pyt
   test_table   sX    	0 c         C   sá   d d l  m } t d d d ƒ" } | j | d d d d	 ƒ} Wd  QXt | ƒ d
 k s^ t ‚ t j j t	 |  ƒ d ƒ } | j
 | d d d d ƒt | d ƒ " } | j | d d d d ƒ} Wd  QXt | ƒ d
 k sÝ t ‚ d  S(   Ni   (   t   Tables   data/regression.xmlt   encodingt   binaryt   formatR@   t   table_idt
   main_tablei   s   table_interface.xmlt   FOOt   rb(   RA   RK   R   t   readt   lenR6   R;   R<   R=   R>   t   writet   open(   R?   RK   t   fdRE   t   fnt   t2(    (    sB   lib/python2.7/site-packages/astropy/io/votable/tests/table_test.pyt!   test_read_through_table_interfaceQ   s    !!c       
   C   sb   d d l  m }  t d d d ƒ" } |  j | d d d d	 ƒ} Wd  QXt | ƒ d
 k s^ t ‚ d  S(   Ni   (   RK   s   data/regression.xmlRL   RM   RN   R@   RO   t
   last_tablei    (   RA   RK   R   RS   RT   R6   (   RK   RW   RE   (    (    sB   lib/python2.7/site-packages/astropy/io/votable/tests/table_test.pyt"   test_read_through_table_interface2b   s    !c          C   s‹   t  d d d ƒ }  t |  ƒ } Wd  QX| j ƒ  j d t ƒ } | j d d d d d	 d
 d d d d d d d d d d d g k s‡ t ‚ d  S(   Ns   data/names.xmlRL   RM   t   use_names_over_idst   Namet   GLONt   GLATt   RAdegt   DEdegt   Jmagt   Hmagt   Kmags   G3.6mags   G4.5mags   G5.8mags   G8.0mags   4.5mags   8.0magt   Emagt   24magt   f_Name(   R   R   R/   R0   t   Truet   colnamesR6   (   RW   R@   RA   (    (    sB   lib/python2.7/site-packages/astropy/io/votable/tests/table_test.pyt   test_names_over_idsk   s    c          C   s\   d d l  m }  t d d d ƒ } |  j | d d ƒ} Wd QXt | ƒ d	 k sX t ‚ d S(
   s   
    Issue #927
    i   (   RK   s   data/names.xmlRL   RM   RN   R@   Ni   (   RA   RK   R   RS   RT   R6   (   RK   RW   RE   (    (    sB   lib/python2.7/site-packages/astropy/io/votable/tests/table_test.pyt#   test_table_read_with_unnamed_tablesw   s    s   not HAS_PATHLIBc          C   si   t  j t d ƒ ƒ }  t |  ƒ j ƒ  j ƒ  } t | ƒ d k sE t ‚ t | d d ƒ d k se t ‚ d S(   sF   
    Testing when votable is passed as pathlib.Path object #4412.
    s   data/names.xmli   i    i   i
  N(	   t   pathlibt   PathR    R   R/   R0   RT   R6   R   (   t   fpathRA   (    (    sB   lib/python2.7/site-packages/astropy/io/votable/tests/table_test.pyt   test_votable_path_objectƒ   s    c          C   sm   d d l  m }  m } |  ƒ  } | d d d d g d d ƒ } | j | ƒ t j ƒ  } | j | d	 d
 ƒd  S(   Ni   (   RK   t   Columnt   datai   i   i   RC   t   aRN   R@   (   RA   RK   Rq   t
   add_columnt   iot   BytesIORU   (   RK   Rq   RE   t   ct   output(    (    sB   lib/python2.7/site-packages/astropy/io/votable/tests/table_test.pyt   test_from_table_without_mask   s    	c          C   s  d d l  m }  m } |  ƒ  } | d d d d g d d ƒ } | j | ƒ t j ƒ  } | j | d	 d
 d d ƒ| j ƒ  } d | k s t ‚ d | k sŸ t ‚ d | k s± t ‚ t j ƒ  } | j | d	 d
 d d ƒ| j ƒ  } d | k sô t ‚ d | k st ‚ d | k st ‚ d  S(   Ni   (   RK   Rq   Rr   i   i   i   RC   Rs   RN   R@   t   tabledata_formatRM   s   VOTABLE version="1.3"t   BINARYt	   TABLEDATAt   binary2t   BINARY2(	   RA   RK   Rq   Rt   Ru   Rv   RU   t   getvalueR6   (   RK   Rq   RE   Rw   Rx   t   obuff(    (    sB   lib/python2.7/site-packages/astropy/io/votable/tests/table_test.pyt   test_write_with_format˜   s     	c          C   s4   t  t d ƒ d t ƒ}  |  j ƒ  } | j ƒ  } d  S(   Ns   data/empty_table.xmlR   (   R   R    R.   R/   R0   (   R@   RA   RB   (    (    sB   lib/python2.7/site-packages/astropy/io/votable/tests/table_test.pyt   test_empty_table­   s
    	(    t   __doc__Ru   R;   t   pytestt   numpyR3   t
   utils.dataR    R   RA   R   R   t    R   t   extern.six.movesR   Rm   t   ImportErrorR.   t   HAS_PATHLIBRi   RJ   RZ   R\   Rk   Rl   t   markt   skipifRp   Ry   R   R‚   (    (    (    sB   lib/python2.7/site-packages/astropy/io/votable/tests/table_test.pyt   <module>   s,   
	6								