ó
šßÈ[c           @` sb  d  Z  d d l m Z m Z m Z m Z d d l m Z d d l m	 Z	 m
 Z
 d d l Z d d l Z d d l Z d d l 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 m Z d d l m Z m Z d d l m Z d d l m  Z  m! Z! d d l" m# Z# m$ Z$ y d d l% Z% Wn e& k
 rMe' Z( n Xe) Z( e* e d ƒ rue j+ d k Z, n e j- j. d ƒ Z, d „  Z/ d „  Z0 d „  Z1 e# e2 ƒ d „  ƒ Z3 e' d d „ Z4 e j5 j6 e7 d ƒ ƒ d „  ƒ Z8 e j5 j6 e7 d ƒ ƒ d „  ƒ Z9 e j5 j6 e7 d ƒ ƒ d „  ƒ Z: d f  d „  ƒ  YZ; d f  d „  ƒ  YZ< d  „  Z= d! „  Z> d" f  d# „  ƒ  YZ? d$ e? f d% „  ƒ  YZ@ d& e? f d' „  ƒ  YZA d( e? f d) „  ƒ  YZB d* „  ZC d+ „  ZD e# e ƒ d, „  ƒ ZE d- „  ZF e' d. „ ZG e j5 jH d/ ƒ d0 „  ƒ ZI d1 „  ZJ d2 „  ZK d3 „  ZL d4 „  ZM d5 „  ZN d6 „  ZO d7 „  ZP d8 „  ZQ d9 „  ZR d S(:   u+   
This is a set of regression tests for vo.
i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsi   (   t   six(   t   ranget   zipN(   t   assert_array_equali   (   t   parset   parse_single_tablet   validate(   t   tree(   t   VOTableSpecErrort	   VOWarning(   t   validate_schema(   t   get_pkg_data_filenamet   get_pkg_data_filenames(   t   raisest   catch_warningsu   float_repr_styleu   legacyu   winc         C` sc   t  j j d ƒ r d  Sy t |  | ƒ \ } } } Wn t k
 rF d  SX| d k s_ t d ƒ ‚ d  S(   Nu   wini    u,   File did not validate against VOTable schema(   t   syst   platformt
   startswithR   t   OSErrort   AssertionError(   t   filenamet   versiont   rct   stdoutt   stderr(    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   assert_validate_schema/   s    c          C` sO   t  t d ƒ d t ƒ}  t |  t j ƒ s0 t ‚ t |  j ƒ d k sK t ‚ d  S(   Nu   data/regression.xmlt   pedantici   (	   R	   R   t   Falset
   isinstanceR   t   TableR   t   lent   array(   t   table(    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_parse_single_table;   s
    	c          C` sv   t  t d ƒ d d d t ƒ}  t |  t j ƒ s6 t ‚ t |  j ƒ d k sQ t ‚ t |  j j	 j
 ƒ d k sr t ‚ d  S(   Nu   data/regression.xmlt   table_numberi   R   i   (   R	   R   R   R    R   R!   R   R"   R#   t   dtypet   names(   t   table2(    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_parse_single_table2C   s    	c          C` s"   t  t d ƒ d d d t ƒ}  d  S(   Nu   data/regression.xmlR&   i   R   (   R	   R   R   (   R)   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_parse_single_table3M   s    i   c         C` sa  t  t d ƒ d t d | ƒ} | j ƒ  } t d ƒ t d ƒ f t d ƒ f t d ƒ t d ƒ f t d	 ƒ f t d
 ƒ t d ƒ f t d ƒ t d ƒ f t d ƒ f t d ƒ t d ƒ f t d ƒ f t d ƒ t d ƒ f t d ƒ t d ƒ f t d ƒ t d ƒ f t d ƒ t d ƒ f t d ƒ t d ƒ f t d ƒ t d ƒ f t d ƒ t d ƒ f t d ƒ t d ƒ f t d  ƒ t d ƒ dN f t d# ƒ t d ƒ f t d$ ƒ t d ƒ f t d% ƒ t d& ƒ f t d' ƒ t d( ƒ f t d) ƒ t d ƒ f t d* ƒ t d( ƒ dO f t d+ ƒ t d ƒ f t d, ƒ t d ƒ dP f t d. ƒ t d ƒ f t d/ ƒ t d ƒ dQ f t d0 ƒ t d ƒ f t d1 ƒ t d ƒ f t d2 ƒ t d ƒ f t d3 ƒ t d ƒ dR f g } t j d5 k r/g  } xS | D]K } t | ƒ } | d6 j t d7 ƒ t d8 ƒ ƒ | d6 <| j	 t
 | ƒ ƒ q×W| } n  | j j | k sGt ‚ | j t |  j d9 ƒ ƒ d | ƒt t |  j d9 ƒ ƒ | j ƒ | d6 k r¯d: | j ƒ  _ d; | _ n: | d" k rét | j ƒ  j d< <d= | j ƒ  _ d> | _ n  t t |  j d? ƒ ƒ d@ ƒ  } | j | d | ƒWd  QXt t |  j d? ƒ ƒ | j ƒ t t |  j d? ƒ ƒ dA ƒ  } t  | d t d | ƒ}	 Wd  QXdB |	 j ƒ  _ |	 j t |  j dC ƒ ƒ dD dE d | ƒt t |  j dC ƒ ƒ | j ƒ t j t dF j | j ƒ ƒ dG dH dI ƒ } | j ƒ  }
 Wd  QXt j t |  j dC ƒ ƒ dG dH dI ƒ } | j ƒ  } Wd  QXx? t j |
 | ƒ D]+ } t j j | j dJ ƒ j dK dL ƒ ƒ qeW|
 | k s¦t ‚ |	 j t |  j dM ƒ ƒ dD dE d | ƒt j t |  j dM ƒ ƒ dA ƒ  } | j ƒ  } Wd  QXg  | D] } | j dI ƒ j  ƒ  ^ q} g  |
 D] } | j  ƒ  ^ q3}
 |
 | k s]t ‚ d  S(S   Nu   data/regression.xmlR   t   _debug_python_based_parseru   string testu   string_testu   |O8u   fixed string testu   string_test_2u   |S10u   unicode_testu   unicode testu   fixed_unicode_testu   <U10u   string array testu   string_array_testu   |S4u   unsignedByteu   |u1u   shortu   <i2u   intu   <i4u   longu   <i8u   doubleu   <f8u   floatu   <f4u   arrayu   bitu   |b1u   bitarrayi   i   u   bitvararrayu   bitvararray2u   floatComplexu   <c8u   doubleComplexu   <c16u   doubleComplexArrayu   doubleComplexArrayFixedu   booleanu   booleanArrayi   u   nullsu   nulls_arrayu
   precision1u
   precision2u   doublearrayu	   bitarray2i   u   bigi   u   <u   >u   regression.tabledata.xmlu   binaryu   1.1u   version_1_3_or_lateru   binary2u   1.3u   regression.binary.xmlu   wbu   rbu	   tabledatau   regression.bin.tabledata.xmlt   _astropy_versionu   testingu+   data/regression.bin.tabledata.truth.{0}.xmlu   rtt   encodingu   utf-8u   unicode_escapeu   \nu   
u   regression.bin.tabledata.xml.gz(   i   i   (   i   (   i   (   i   i   (   i   (!   R   R   R   t   get_first_tablet   strR   t	   byteordert   listt   replacet   appendt   tupleR#   R'   R   t   to_xmlt   joinR   R   t   formatt   Truet   _configt   opent   iot	   readlinest   difflibt   unified_diffR   t   writet   encodet   gzipt   GzipFilet   decodet   rstrip(   t   tmpdirt   _python_basedt   binary_modet   votableR$   t   dtypest
   new_dtypesR'   t   fdt   votable2t   trutht   outputt   linet   gzfdt   x(    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   _test_regressionT   s´    	!!!!&	
!
!
		(u   legacy_float_reprc         C` s   t  |  t ƒ d  S(   N(   RS   R   (   RF   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_regressionÂ   s    c         C` s   t  |  t ƒ d  S(   N(   RS   R9   (   RF   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt#   test_regression_python_based_parserÇ   s    c         C` s   t  |  t d ƒ d  S(   Ni   (   RS   R   (   RF   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_regression_binary2Ì   s    t
   TestFixupsc           B` s   e  Z d  „  Z d „  Z RS(   c         C` sF   t  t d ƒ d t ƒj ƒ  |  _ |  j j |  _ |  j j j |  _ d  S(   Nu   data/regression.xmlR   (   R   R   R   R/   R$   R#   t   mask(   t   self(    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   setup_classÒ   s
    c         C` s   t  |  j d |  j d ƒ d  S(   Nu   string_test_2u   fixed string test(   R   R#   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_implicit_idÙ   s    (   t   __name__t
   __module__RZ   R[   (    (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyRW   Ñ   s   	t   TestReferencesc           B` sP   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C` sR   t  t d ƒ d t ƒ|  _ |  j j ƒ  |  _ |  j j |  _ |  j j j |  _ d  S(   Nu   data/regression.xmlR   (   R   R   R   RI   R/   R$   R#   RX   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyRZ   ß   s    c         C` si   |  j  j d j d } t | t j ƒ s/ t ‚ | j ƒ  j d k sJ t ‚ | j ƒ  j	 d k se t ‚ d  S(   Ni   i    u   boolean(
   R$   t   groupst   entriesR    R   t   FieldRefR   t   get_reft   namet   datatype(   RY   t   fieldref(    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_fieldrefç   s    c         C` si   |  j  j d j d } t | t j ƒ s/ t ‚ | j ƒ  j d k sJ t ‚ | j ƒ  j	 d k se t ‚ d  S(   Ni    u   INPUTu   float(
   R$   R_   R`   R    R   t   ParamRefR   Rb   Rc   Rd   (   RY   t   paramref(    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_paramrefí   s    c         C` s2   t  t |  j j d j ƒ  ƒ ƒ d k s. t ‚ d  S(   Ni   i   (   R"   R2   R$   R_   t   iter_fields_and_paramsR   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt&   test_iter_fields_and_params_on_a_groupó   s    c         C` s2   t  t |  j j d j ƒ  ƒ ƒ d k s. t ‚ d  S(   Ni   (   R"   R2   R$   R_   t   iter_groupsR   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_iter_groups_on_a_groupö   s    c         C` s+   t  t |  j j ƒ  ƒ ƒ d k s' t ‚ d  S(   Ni	   (   R"   R2   RI   Rl   R   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_iter_groupsù   s    c         C` sb   t  |  j j ƒ  ƒ } xF t | d j j d | d j j d ƒ D] \ } } t | | ƒ qA Wd  S(   Ni    i   (   R2   RI   t   iter_tablesR   R#   t   dataR   (   RY   t   tablesRR   t   y(    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_ref_tableþ   s    8c         C` s+   t  t |  j j ƒ  ƒ ƒ d k s' t ‚ d  S(   Ni   (   R"   R2   RI   t   iter_coosysR   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_iter_coosys  s    (
   R\   R]   RZ   Rf   Ri   Rk   Rm   Rn   Rs   Ru   (    (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyR^   Þ   s   							c          C` s¹   d d d g }  t  t d ƒ d t d |  ƒj ƒ  } | j } | j j } | d d d k sb t ‚ d d	 d
 g }  x( |  D]  } t j | | ƒ sx t ‚ qx Wt j | d ƒ sµ t ‚ d  S(   Ni    i   i   u   data/regression.xmlR   t   columnsu   string_tests   String & testu   unsignedByteu   bitarrayu   unicode_test(	   R   R   R   R/   R#   RX   R   t   npt   all(   Rv   R$   R#   RX   t   c(    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_select_columns_by_index  s    	c          C` sª   d d d g }  t  t d ƒ d t d |  ƒj ƒ  } | j } | j j } | d d d k sb t ‚ x( |  D]  } t j | | ƒ si t ‚ qi Wt j | d	 ƒ s¦ t ‚ d  S(
   Nu   string_testu   unsignedByteu   bitarrayu   data/regression.xmlR   Rv   i    s   String & testu   unicode_test(	   R   R   R   R/   R#   RX   R   Rw   Rx   (   Rv   R$   R#   RX   Ry   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_select_columns_by_name  s    	t	   TestParsec           B` s:  e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z  d „  Z! d  „  Z" d! „  Z# RS("   c         C` sR   t  t d ƒ d t ƒ|  _ |  j j ƒ  |  _ |  j j |  _ |  j j j |  _ d  S(   Nu   data/regression.xmlR   (   R   R   R   RI   R/   R$   R#   RX   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyRZ   #  s    c         C` sL   t  |  j d j j t j ƒ s% t ‚ t |  j d d d d d d g ƒ d  S(   Nu   string_tests   String & tests   String &amp; testt   XXXXt    (   t
   issubclassR#   R'   t   typeRw   t   object_R   R   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_string_test+  s    
	c         C` sL   t  |  j d j j t j ƒ s% t ‚ t |  j d d d d d d g ƒ d  S(   Nu   string_test_2s
   Fixed strit
   0123456789R}   R~   (   R   R#   R'   R€   Rw   t   string_R   R   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_fixed_string_test3  s
    
c         C` sL   t  |  j d j j t j ƒ s% t ‚ t |  j d d d d d d g ƒ d  S(   Nu   unicode_testu   CeÃ§i n'est pas un pipeu   à®µà®£à®•à¯à®•à®®à¯u   XXXXu    (   R   R#   R'   R€   Rw   R   R   R   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_unicode_test:  s    c         C` sL   t  |  j d j j t j ƒ s% t ‚ t |  j d d d d d d g ƒ d  S(   Nu   fixed_unicode_testu   CeÃ§i n'estu   à®µà®£à®•à¯à®•à®®à¯u
   0123456789u    (   R   R#   R'   R€   Rw   t   unicode_R   R   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_fixed_unicode_testB  s    c         C` si   t  |  j d j j t j ƒ s% t ‚ t |  j d d d d d d g ƒ t j |  j	 d ƒ se t ‚ d  S(   Nu   unsignedBytei€   iÿ   i    (
   R   R#   R'   R€   Rw   t   uint8R   R   t   anyRX   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_unsignedByteJ  s
    c         C` si   t  |  j d j j t j ƒ s% t ‚ t |  j d d d d d d g ƒ t j |  j	 d ƒ se t ‚ d  S(   Nu   shorti   iÿ  i ðÿÿ(
   R   R#   R'   R€   Rw   t   int16R   R   RŠ   RX   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt
   test_shortQ  s
    c         C` so   t  |  j d j j t j ƒ s% t ‚ t |  j d d d d d d g ƒ t |  j d t	 t	 t	 t	 t
 g ƒ d  S(   Nu   inti   iÿÿÿi   ðiÿÿÿiÍ[(   R   R#   R'   R€   Rw   t   int32R   R   RX   R   R9   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_intX  s    
c         C` so   t  |  j d j j t j ƒ s% t ‚ t |  j d d d d d d g ƒ t |  j d t	 t
 t	 t	 t
 g ƒ d  S(   Nu   longIeˆc]ÜF iÍ[I       ðIÿÿÿÿÿÿÿ(   R   R#   R'   R€   Rw   t   int64R   R   RX   R   R9   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt	   test_longa  s    
	c         C` sy   t  |  j d j j t j ƒ s% t ‚ t |  j d d d t j t j	 t j g ƒ t |  j
 d t t t t t g ƒ d  S(   Nu   doubleg    €ÿ!@g        (   R   R#   R'   R€   Rw   t   float64R   R   t   inft   nanRX   R   R9   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_doublek  s     c         C` sx   t  |  j d j j t j ƒ s% t ‚ t |  j d d d t j t j t j	 g ƒ t |  j
 d t t t t t g ƒ d  S(   Nu   floatg      ð?g        (   R   R#   R'   R€   Rw   t   float32R   R   R“   R”   RX   R   R9   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt
   test_floats  s    c         C` sB  t  |  j d j j t j ƒ s% t ‚ g  d d g d d g g d d g d d g d d	 g d
 d g g d d g g d d g g g } xo t |  j d | ƒ D]W \ } } xH t | | ƒ D]7 \ } } t  | j j t j ƒ sß t ‚ t	 | | ƒ qµ Wq™ W|  j j
 d d j d d st ‚ |  j j
 d d j d d s>t ‚ d  S(   Nu   arrayi*   i    i   i"   i8   iN   iW   iA   i+   i   iÿÿÿÿi   i   i   i    i   i   (   R   R#   R'   R€   Rw   R   R   R   R   R   Rp   RX   (   RY   t   matcht   at   bt   a0t   b0(    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt
   test_array{  s    '#%c         C` sL   t  |  j d j j t j ƒ s% t ‚ t |  j d t t	 t t	 t	 g ƒ d  S(   Nu   bit(
   R   R#   R'   R€   Rw   t   bool_R   R   R9   R   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_bitŒ  s    c         C` s'   t  |  j d t t t t t g ƒ d  S(   Nu   bit(   R   RX   R   R9   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_bit_mask’  s    c      
   C` sï   t  |  j d j j t j ƒ s% t ‚ |  j d j d k sA t ‚ t |  j d t	 t
 g t	 t	 g t
 t	 g g t
 t	 g t
 t
 g t	 t	 g g t	 t	 g t	 t
 g t
 t
 g g t
 t
 g t
 t
 g t
 t
 g g t
 t
 g t
 t
 g t
 t
 g g g ƒ d  S(   Nu   bitarrayi   i   i   (   i   i   i   (   R   R#   R'   R€   Rw   Rž   R   t   shapeR   R9   R   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_bitarray–  s&    										c      
   C` s®   t  |  j d t t g t t g t t g g t t g t t g t t g g t t g t t g t t g g t t g t t g t t g g t t g t t g t t g g g ƒ d  S(   Nu   bitarray(   R   RX   R   R9   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_bitarray_mask¯  s     										c         C` s  t  |  j d j j t j ƒ s% t ‚ t t t g t t t t t g t t t t t g g  g  g } x1 t	 |  j d | ƒ D] \ } } t
 | | ƒ qx Wt t t g t t t t t g t t t t t g t t g } x4 t	 |  j d | ƒ D] \ } } t
 | j | ƒ qè Wd  S(   Nu   bitvararray(   R   R#   R'   R€   Rw   R   R   R9   R   R   R   RX   (   RY   R˜   R™   Rš   t
   match_mask(    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_bitvararrayÅ  s    ##c         C` s  t  |  j d j j t j ƒ s% t ‚ g  t t g t t g t t g g t t g t t g t t g g g t t g t t g t t g g g g  g  g } x„ t	 |  j d | ƒ D]l \ } } x] t	 | | ƒ D]L \ } } | j
 d k sè t ‚ t  | j j t j ƒ st ‚ t | | ƒ qÇ Wq« Wd  S(   Nu   bitvararray2i   i   (   i   i   (   R   R#   R'   R€   Rw   R   R   R   R9   R   R¡   Rž   R   (   RY   R˜   R™   Rš   R›   Rœ   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_bitvararray2Õ  s&    							#c         C` s„   t  |  j d j j t j ƒ s% t ‚ t |  j d t j d d d t j d t j d g ƒ t |  j	 d t
 t t t
 t
 g ƒ d  S(   Nu   floatComplexy                i    y              ð¿y                y              ð¿(   R   R#   R'   R€   Rw   t	   complex64R   R   R”   RX   R9   R   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_floatComplexî  s    +c         C` s‹   t  |  j d j j t j ƒ s% t ‚ t |  j d t j d d d t j t j	 d t j d g ƒ t |  j
 d t t t t t g ƒ d  S(   Nu   doubleComplexy                i    y              ð¿y              ð?y                y              ð¿(   R   R#   R'   R€   Rw   t
   complex128R   R   R”   R“   RX   R9   R   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_doubleComplexö  s    
2c         C` sj   t  |  j d j j t j ƒ s% t ‚ g  |  j d D] } t | ƒ ^ q3 d d d d d g k sf t ‚ d  S(   Nu   doubleComplexArrayi    i   (   R   R#   R'   R€   Rw   R   R   R"   (   RY   RR   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_doubleComplexArrayÿ  s    #c         C` sL   t  |  j d j j t j ƒ s% t ‚ t |  j d t t	 t t	 t	 g ƒ d  S(   Nu   boolean(
   R   R#   R'   R€   Rw   Rž   R   R   R9   R   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_boolean  s    c         C` s'   t  |  j d t t t t t g ƒ d  S(   Nu   boolean(   R   RX   R   R9   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_boolean_mask  s    c      
   C` sˆ   t  |  j d j j t j ƒ s% t ‚ t |  j d t t t t g t t t	 t g t t t	 t g t	 t	 t	 t	 g t	 t	 t	 t	 g g ƒ d  S(   Nu   booleanArray(
   R   R#   R'   R€   Rw   Rž   R   R   R9   R   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_boolean_array  s    c      
   C` sc   t  |  j d t t t t g t t t t g t t t t g t t t t g t t t t g g ƒ d  S(   Nu   booleanArray(   R   RX   R   R9   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_boolean_array_mask  s    c         C` sJ   t  |  j d d d d d d g ƒ t  |  j d t t t t t g ƒ d  S(   Nu   nullsi    i÷ÿÿÿi   (   R   R#   RX   R   R9   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt
   test_nulls!  s    c      	   C` sþ   t  |  j d d d g d d g g d d g d d g g d d g d d g g d d g d d g g d d g d d g g g ƒ t  |  j d t t g t t g g t t g t t g g t t g t t g g t t g t t g g t t g t t g g g ƒ d  S(   Nu   nulls_arrayi÷ÿÿÿi    i   i   i   (   R   R#   RX   R9   R   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_nulls_array'  s"    					c      	   C` s¶   t  |  j d j j t j ƒ s% t ‚ t |  j d d ƒ d k sH t ‚ t |  j d d d d t j	 t j	 t j
 d d g ƒ t |  j j d d j t t t t t t t g ƒ d  S(   Nu   doublearrayi    i   iÿÿÿÿ(   R   R#   R'   R€   Rw   R   R   R"   R   R“   R”   Rp   RX   R   R9   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_double_array>  s    #&c         C` sL   t  |  j d d t t t t t t t t t t t t t t t t g ƒ d  S(   Nu	   bitarray2i    (   R   R#   R9   R   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_bit_array2G  s
    c         C` sE   t  j |  j d d ƒ s! t ‚ t  j |  j d d ƒ sA t ‚ d  S(   Nu	   bitarray2i    i   (   Rw   RŠ   RX   R   Rx   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_bit_array2_maskN  s    !c         C` s+   |  j  j d ƒ } | j d k s' t ‚ d  S(   Nu   J2000u   eq_FK5(   RI   t   get_coosys_by_idt   systemR   (   RY   t   coosys(    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_get_coosys_by_idR  s    c         C` sQ   t  |  j j d ƒ ƒ } | d j d k s1 t ‚ | d j j d k sM t ‚ d  S(   Nu   myinti    u   intiüÿÿ(   R2   RI   t   get_fields_by_utypeRc   R   t   valuest   min(   RY   t   fields(    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_get_field_by_utypeV  s    c         C` sg   |  j  j d ƒ } | j d k s' t ‚ |  j  j d k rc |  j  j d ƒ } | j d k sc t ‚ n  d  S(   Nu   QUERY_STATUSu   OKu   1.1u	   ErrorInfou/   One might expect to find some INFO here, too...(   RI   t   get_info_by_idt   valueR   R   (   RY   t   info(    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_get_info_by_id[  s
    c         C` s   d t  |  j ƒ k s t ‚ t  t |  j j ƒ  ƒ d ƒ d k sF t ‚ t  t |  j j ƒ  ƒ ƒ t  |  j j ƒ d k s} t ‚ d  S(   Nu   3 tablesi    u^   <PARAM ID="awesome" arraysize="*" datatype="float" name="INPUT" unit="deg" value="[0.0 0.0]"/>u   [</>](   t   reprRI   R   R2   Rj   Rl   t	   resources(   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt	   test_reprc  s
    ($   R\   R]   RZ   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°   R±   R²   R³   R´   R¸   R½   RÁ   RÄ   (    (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyR|   "  sD   										
																
										t   TestThroughTableDatac           B` s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C` s‘   t  t d ƒ d t ƒ} t j ƒ  |  _ } | j | ƒ | j d ƒ t  | d t ƒ|  _ |  j j	 ƒ  |  _
 |  j
 j |  _ |  j
 j j |  _ d  S(   Nu   data/regression.xmlR   i    (   R   R   R   R<   t   BytesIOt   xmloutR6   t   seekRI   R/   R$   R#   RX   (   RY   RI   t   bio(    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyRZ   o  s    	c         C` s'   t  |  j d t t t t t g ƒ d  S(   Nu   bit(   R   RX   R   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyR    |  s    c         C` s!   t  j |  j d ƒ s t ‚ d  S(   Nu   bitarray(   Rw   RŠ   RX   R   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyR£   €  s    c         C` s!   t  j |  j d ƒ s t ‚ d  S(   Nu	   bitarray2(   Rw   RŠ   RX   R   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyR´   ƒ  s    c         C` sT   t  | j d ƒ ƒ } t | d ƒ  } | j |  j j ƒ  ƒ Wd  QXt | d ƒ d  S(   Nu   test_through_tabledata.xmlu   wbu   1.1(   R0   R7   R;   R@   RÇ   t   getvalueR   (   RY   RF   t   fnt   f(    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_schema†  s    (   R\   R]   RZ   R    R£   R´   RÍ   (    (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyRÅ   n  s
   				t   TestThroughBinaryc           B` s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C` s    t  t d ƒ d t ƒ} d | j ƒ  _ t j ƒ  |  _ } | j | ƒ | j	 d ƒ t  | d t ƒ|  _
 |  j
 j ƒ  |  _ |  j j |  _ |  j j j |  _ d  S(   Nu   data/regression.xmlR   u   binaryi    (   R   R   R   R/   R8   R<   RÆ   RÇ   R6   RÈ   RI   R$   R#   RX   (   RY   RI   RÉ   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyRZ     s    	c         C` s!   t  j |  j d ƒ s t ‚ d  S(   Nu   bit(   Rw   RŠ   RX   R   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyR    ¢  s    c         C` s!   t  j |  j d ƒ s t ‚ d  S(   Nu   bitarray(   Rw   RŠ   RX   R   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyR£   ¥  s    c         C` s!   t  j |  j d ƒ s t ‚ d  S(   Nu	   bitarray2(   Rw   RŠ   RX   R   (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyR´   ¨  s    (   R\   R]   RZ   R    R£   R´   (    (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyRÎ     s   			t   TestThroughBinary2c           B` s   e  Z d  „  Z d „  Z RS(   c         C` s¼   t  t d ƒ d t ƒ} d | _ t | j ƒ  j d <d | j ƒ  _ t j	 ƒ  |  _
 } | j | ƒ | j d ƒ t  | d t ƒ|  _ |  j j ƒ  |  _ |  j j |  _ |  j j j |  _ d  S(   Nu   data/regression.xmlR   u   1.3u   version_1_3_or_lateru   binary2i    (   R   R   R   R   R9   R/   R:   R8   R<   RÆ   RÇ   R6   RÈ   RI   R$   R#   RX   (   RY   RI   RÉ   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyRZ   ­  s    		c         C` s   d  S(   N(    (   RY   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyR¸   ¾  s    (   R\   R]   RZ   R¸   (    (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyRÏ   ¬  s   	c       
   C` s  d d l  m }  m } m } m } |  ƒ  } | ƒ  } | j j | ƒ | | ƒ } | j j | ƒ | j j	 | | d d d d ƒ| | d d d d d	 d
 ƒg ƒ | j
 d ƒ d d d g d d g g f | j d <d d d g d d g g f | j d <t j ƒ  } | j | ƒ d  S(   Ni   (   t   VOTableFilet   ResourceR!   t   Fieldt   IDu   filenameRd   u   charu   matrixu   doublet	   arraysizeu   2x2u	   test1.xmli   i    u	   test2.xmlg      à?g333333Ó?gš™™™™™É?gš™™™™™¹?(   R   RÐ   RÑ   R!   RÒ   RÃ   R4   Rq   R¼   t   extendt   create_arraysR#   R<   t   StringIOR6   (   RÐ   RÑ   R!   RÒ   RI   t   resourceR$   t   out(    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   table_from_scratchÃ  s    "			"%%c          C` sF   x? t  d d d ƒD]+ }  |  j d ƒ r. q n  t |  d t ƒq Wd  S(   Nu   datat   patternu   *.xmlu   custom_datatype.xmlR   (   R   t   endswithR   R   (   R   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_open_filesä  s    c          C` s   t  t d ƒ d t ƒ}  d  S(   Nu   data/too_many_columns.xml.gzR   (   R   R   R   (   RI   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_too_many_columnsë  s    c      
   C` s°  t  j ƒ  } t  j ƒ  } | j j | ƒ t  j | ƒ } | j j | ƒ | j j t  j	 | d d d d ƒt  j	 | d d d d d d ƒg ƒ | j
 d	 ƒ d
 d d g d d g g f | j d <d d d g d d g g f | j d <| j t |  j d ƒ ƒ ƒ t t |  j d ƒ ƒ ƒ } | j ƒ  } t | j j t j t t t g t t g g f t t t g t t g g f g d t d ƒ t d ƒ f t d ƒ t d ƒ d f g ƒƒ d  S(   NRÓ   u   filenameRd   u   charu   matrixu   doubleRÔ   u   2x2i   u	   test1.xmli   i    u	   test2.xmlg      à?g333333Ó?gš™™™™™É?gš™™™™™¹?u   new_votable.xmlR'   u   ?(   i   i   (   R   RÐ   RÑ   RÃ   R4   R!   Rq   R¼   RÕ   RÒ   RÖ   R#   R6   R0   R7   R   R/   R   RX   Rw   R   (   RF   RI   RØ   R$   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_build_from_scratchò  s&    	%%%*!c      	   C` sJ  t  j ƒ  } t d ƒ } |  r0 t j | ƒ } n  t ƒ   t | | d t ƒ} Wd QX| t k sg t ‚ | j	 d ƒ | j
 ƒ  } t  j t d ƒ d d d ƒ } | j
 ƒ  } Wd QX| d	 } | d	 d
 !} xg t j | | ƒ D]S } t j rt j j | j d ƒ j d d ƒ ƒ qÝ t j j | j d d ƒ ƒ qÝ W| | k sFt ‚ d S(   uŠ   
    test_path_object is needed for test below ``test_validate_path_object``
    so that file could be passed as pathlib.Path object.
    u   data/regression.xmlt   xmllintNi    u   data/validation.txtu   rtR.   u   utf-8i   iÿÿÿÿu   unicode_escapeu   \nu   
(   R<   R×   R   t   pathlibt   PathR   R
   R   R   RÈ   R=   R;   R>   R?   R   t   PY2R   R   R@   RA   R3   (   t   test_path_objectRO   t   fpatht   resultRL   RN   RP   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_validate  s0    
	
			u   not HAS_PATHLIBc           C` s   t  d t ƒ d S(   uB   
    Validating when source is passed as path object. (#4412)
    Rä   N(   Rç   R9   (    (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_validate_path_objectF  s    c      
   C` s•   t  t d ƒ d t ƒ} t t |  j d ƒ ƒ d ƒ   } | j | d t d d ƒWd  QXt t |  j d ƒ ƒ d ƒ  } t  | d t ƒ} Wd  QXd  S(	   Nu   data/regression.xmlR   u   regression.compressed.xmlu   wbt
   compressedR-   u   testingu   rb(   R   R   R   R;   R0   R7   R6   R9   (   RF   RI   RL   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_gzip_filehandlesN  s    	!!c       	   C` se   t  t ƒ ; }  y t ƒ  Wn& t k
 rB } |  j t | ƒ ƒ n XWd  QXt |  ƒ d k sa t ‚ d  S(   Ni    (   R   R   t   _run_test_from_scratch_examplet
   ValueErrorR4   R0   R"   R   (   t   warning_linest   e(    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_from_scratch_example_  s    c       
   C` s  d d l  m }  m } m } m } |  ƒ  } | ƒ  } | j j | ƒ | | ƒ } | j j | ƒ | j j	 | | d d d d d d ƒ| | d d	 d d
 d d ƒg ƒ | j
 d ƒ d d d g d d g g f | j d <d d d g d d g g f | j d <| j d d d k st ‚ d  S(   Ni   (   RÐ   RÑ   R!   RÒ   Rc   u   filenameRd   u   charRÔ   u   *u   matrixu   doubleu   2x2u	   test1.xmli   i    u	   test2.xmlg      à?g333333Ó?gš™™™™™É?gš™™™™™¹?(   R   RÐ   RÑ   R!   RÒ   RÃ   R4   Rq   R¼   RÕ   RÖ   R#   R   (   RÐ   RÑ   R!   RÒ   RI   RØ   R$   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyRë   i  s    "			"%%c          C` sŠ   d d l  m }  t d ƒ } |  j | ƒ Y } t j d k rG | ƒ  n9 t j rh t | t	 ƒ s€ t
 ‚ n t | t j ƒ s€ t
 ‚ Wd  QXd  S(   Ni   (   t
   iterparseru   data/regression.xmlu   win32(   t	   utils.xmlRð   R   t   _convert_to_fd_or_read_functionR   R   R   Rã   R    t   fileR   R<   t   FileIO(   Rð   R   RL   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_fileobj‡  s    
	c          C` s›   d d l  m }  t t d ƒ d t ƒ} t | j ƒ  j d j |  j	 ƒ sP t
 ‚ t t d ƒ d t d d ƒ} t | j ƒ  j d j |  j	 ƒ s— t
 ‚ d  S(   Ni   (   t   unitsu   data/nonstandard_units.xmlR   i    t   unit_formatu   generic(   R~   Rö   R   R   R   R    R/   R¼   t   unitt   UnrecognizedUnitR   (   t   uRI   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_nonstandard_units–  s    	%	c          C` s  d d l  m }  |  j ƒ  } |  j ƒ  } | j j | ƒ |  j | ƒ } d | _ |  j | ƒ } d | _ | j j | ƒ | j j | ƒ |  j ƒ  } | j j | ƒ |  j | ƒ } d | _ |  j | ƒ } d | _ | j j | ƒ | j j | ƒ |  j ƒ  } | j j | ƒ |  j | ƒ }	 d |	 _ |  j | ƒ }
 d |
 _ | j j |	 ƒ | j j |
 ƒ t	 j
 ƒ  } | j | ƒ | j d ƒ t | ƒ } t | j ƒ d	 k s­t ‚ x` t t | j ƒ ƒ D]I } | j | } t | j ƒ d
 k sñt ‚ t | j ƒ d k sÃt ‚ qÃWd  S(   Ni    (   R   u   t1u   t2u   t3u   t4u   t5u   t6i   i   (   t   astropy.io.votableR   RÐ   RÑ   RÃ   R4   R!   Rc   Rq   R<   RÆ   R6   RÈ   R   R"   R   R   (   t   vott   vtft   r1t   t1t   t2t   r2t   t3t   t4t   r3t   t5t   t6t   bufft   vtf2t   rt   res(    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_resource_structure©  sF    						c       	   C` s,  t  j ƒ  }  t ƒ    t t d ƒ |  d t ƒ} Wd  QX| t k sI t ‚ |  j d ƒ |  j ƒ  }  t  j	 t d ƒ d d d ƒ } | j ƒ  } Wd  QX| d } |  d d	 !}  xg t
 j | |  ƒ D]S } t j rö t j j | j d
 ƒ j d d ƒ ƒ q¿ t j j | j d d ƒ ƒ q¿ W| |  k s(t ‚ d  S(   Nu   data/no_resource.xmlRà   i    u   data/no_resource.txtu   rtR.   u   utf-8i   iÿÿÿÿu   unicode_escapeu   \nu   
(   R<   R×   R   R
   R   R   R   RÈ   R=   R;   R>   R?   R   Rã   R   R   R@   RA   R3   (   RO   Ræ   RL   RN   RP   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_no_resource_checkØ  s*    
	
			c           C` s   t  d ƒ d  S(   N(    (   R   (    (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_instantiate_vowarningþ  s    c          C` sT   t  t d ƒ d t d i d d 6ƒ}  |  j ƒ  } | j j d t j k sP t ‚ d  S(   Nu   data/custom_datatype.xmlR   t   datatype_mappingu   intu   baru   foo(	   R   R   R   R/   R#   R'   Rw   RŽ   R   (   RI   R$   (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   test_custom_datatype  s    (S   t   __doc__t
   __future__R    R   R   R   t   externR   t   extern.six.movesR   R   R>   R<   R   RB   t   pytestt   numpyRw   t   numpy.testingR   R$   R   R	   R
   R~   R   t
   exceptionsR   R   t   xmlutilR   t
   utils.dataR   R   t   tests.helperR   R   Rá   t   ImportErrorR   t   HAS_PATHLIBR9   t   hasattrt   float_repr_stylet   legacy_float_reprR   R   R   R%   R*   t
   IndexErrorR+   RS   t   markt   xfailR0   RT   RU   RV   RW   R^   Rz   R{   R|   RÅ   RÎ   RÏ   RÚ   RÝ   RÞ   Rß   Rç   t   skipifRè   Rê   Rï   Rë   Rõ   Rû   R  R  R  R  (    (    (    s?   lib/python2.7/site-packages/astropy/io/votable/tests/vo_test.pyt   <module>   sp   "
			
n!!!)		ÿ M!	!		'-		
				/	&	