ó
šßÈ[c           @   s  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
 d d l m Z d d l m Z d d l m Z d	 e f d
 „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z d „  Z d „  Z d „  Z d „  Z d S(   iÿÿÿÿN(   t   OrderedDicti   (   t   MetaDatat   MergeConflictErrort   merget   enable_merge_strategies(   t   common_dtypei   (   t   metadata(   t   fitst   OrderedDictSubclassc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyR      s   t   MetaBaseTestc           B   s  e  Z e j Z d  „  Z e j j d e	 d g ƒ e
 d g ƒ e d g ƒ g ƒ d „  ƒ Z e j j d d d d d d g g ƒ d	 „  ƒ Z e j j d e	 d g ƒ e
 d g ƒ e d g ƒ g ƒ d
 „  ƒ Z e j j d d d d d d g g ƒ d „  ƒ Z d „  Z RS(   c         C   sI   |  j  |  j Œ  } t | j t ƒ s* t ‚ t | j ƒ d k sE t ‚ d  S(   Ni    (   t
   test_classt   argst
   isinstancet   metaR    t   AssertionErrort   len(   t   selft   d(    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyt	   test_none   s    R   t   ai   c         C   sV   |  j  d | |  j Œ } t | j ƒ t | ƒ k s9 t ‚ | j d d k sR t ‚ d  S(   NR   R   i   (   R   R   t   typeR   R   (   R   R   R   (    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyt   test_mapping_init   s    !s   ceci n'est pas un metag333333ó?i   i   c         C   s0   t  j t ƒ  |  j d | |  j Œ Wd  QXd  S(   NR   (   t   pytestt   raisest	   TypeErrorR   R   (   R   R   (    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyt   test_non_mapping_init#   s    c         C   sV   |  j  d | |  j Œ } t | j ƒ t | ƒ k s9 t ‚ | j d d k sR t ‚ d  S(   NR   R   i   (   R   R   R   R   R   (   R   R   R   (    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyt   test_mapping_set(   s    !c         C   s2   t  j t ƒ  |  j d | |  j Œ } Wd  QXd  S(   NR   (   R   R   R   R   R   (   R   R   R   (    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyt   test_non_mapping_set0   s    c         C   sd   t  j j ƒ  } | j d d ƒ | j d d ƒ |  j d | |  j Œ } | j d d k s` t ‚ d  S(   Nt   observers   Edwin Hubblet   exptimet   3600R   t   OBSERVER(   R   t   headert   Headert   setR   R   R   R   (   R   R"   R   (    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyt   test_meta_fits_header5   s
    (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R   i   (   R	   R
   t   abct   ABCMetat   __metaclass__R   R   t   markt   parametrizet   dictR    R   R   R   R   R   R%   (    (    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyR      s   		00t   ExampleDatac           B   s   e  Z e ƒ  Z d d  „ Z RS(   c         C   s   | |  _  d  S(   N(   R   (   R   R   (    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyt   __init__C   s    N(   R	   R
   R   R   t   NoneR-   (    (    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyR,   @   s   	t   TestMetaExampleDatac           B   s   e  Z e Z d  Z RS(   (    (   R	   R
   R,   R   R   (    (    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyR/   G   s   c       	   C   s{   t  ƒ  }  t  ƒ  } i d d 6d d 6|  j d <i d d 6d d 6| j d <t j t ƒ  t |  j | j d d ƒWd QXd S(	   s¢   Regression test for issue #3294.

    Ensure that an exception is raised when a metadata conflict exists
    and ``metadata_conflicts='error'`` has been set.
    i   t   xt   yt   somekeyiç  t   metadata_conflictst   errorN(   R,   R   R   R   R   R   (   t   data1t   data2(    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyt(   test_metadata_merging_conflict_exceptionL   s    		c          C   s  i i d d g d 6d d 6d 6d d 6d d 6}  i i d g d 6d 6d d 6d d 6} t  |  | d d	 ƒ} | i i d d 6d d d g d 6d 6d d 6d d 6d d 6k s® t ‚ i t j d d g ƒ d 6}  i t j d g ƒ d 6} t  |  | d d	 ƒ} t j | d t j d d d g ƒ k ƒ s)t ‚ i d d g d 6}  i t j d g ƒ d 6} t j | d t j d d d g ƒ k ƒ s†t ‚ i d d 6}  i d d 6} t j t ƒ  t  |  | d d	 ƒWd  QXi t j d d g ƒ d 6}  i t j d g g ƒ d 6} t j t ƒ  t  |  | d d	 ƒWd  QXi t j d d g ƒ d 6}  i t j d
 g ƒ d 6} t j t ƒ  t  |  | d d	 ƒWd  QXi t j d d g ƒ d 6}  i t j d
 g ƒ d 6} t  |  | d d ƒ} t j | d t j d
 g ƒ k ƒ sýt ‚ d  S(   Ni   i   t   k1t   k2t   k4i   t   k3R3   R4   t   3t   silent(   i   i   (   i   (   i   i   i   (   R   R   t   npt   arrayt   allR   R   R   (   t   meta1t   meta2t   out(    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyt   test_metadata_mergingZ   sH    

11c          C   sÕ  t  t j ƒ }  d t j f d „  ƒ  Y} d t j f d „  ƒ  Y} i d d 6d d 6} i d	 d 6d
 d 6} t | | ƒ 8 | j sˆ t ‚ | j s— t ‚ t | | d d ƒ} Wd  QX| d d d	 g k sÎ t ‚ | d d k sä t ‚ | j sô t ‚ | j st ‚ t	 j
 t ƒ  t | | d d ƒWd  QXt t j ƒ 8 | j sLt ‚ | j s[t ‚ t | | d d ƒ} Wd  QX| d d d	 g k s’t ‚ | d d k s¨t ‚ | j s¸t ‚ | j sÈt ‚ |  t _ d  S(   Nt   MergeNumbersAsListc           B   s5   e  Z d  Z e e f e e f f Z e d „  ƒ Z RS(   sB   
        Scalar float or int values are joined in a list.
        c         S   s
   | | g S(   N(    (   t   clst   leftt   right(    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyR   —   s    (   R	   R
   t   __doc__t   intt   floatt   typest   classmethodR   (    (    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyRE   ‘   s   t   MergeConcatStringsc           B   s    e  Z d  Z e e f Z e Z RS(   s7   
        Scalar string values are concatenated
        (   R	   R
   RI   t   strRL   t   Falset   enabled(    (    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyRN   ›   s   i   R8   R   R9   i   t   bR3   R4   t   ab(   t   listR   t   MERGE_STRATEGIESt   MergeStrategyt	   MergePlusR   RQ   R   R   R   R   R   (   t   original_merge_strategiesRE   RN   RA   RB   RC   (    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyt"   test_metadata_merging_new_strategyŽ   s0    
c          C   s¯   t  j d g ƒ }  t  j d g ƒ } t  j d g ƒ } t  j d g ƒ } t |  | g ƒ j d ƒ si t ‚ t | | g ƒ j d ƒ sŠ t ‚ t | | g ƒ j d ƒ s« t ‚ d  S(   Nu   123u   1234t   123t   12345t   U4t   U5t   S5(   R>   R?   R   t   endswithR   (   t   u3t   u4t   b3t   b5(    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyt   test_common_dtype_stringÁ   s    !!c          C   s«   t  j d d t  j ƒ}  t  j d d t  j ƒ} t  j d ƒ } t j t ƒ  t |  | g ƒ Wd  QXt |  |  g ƒ j d ƒ s† t	 ‚ t |  | g ƒ j d ƒ s§ t	 ‚ d  S(   Ni   t   dtypeu   123t   i8t   f8(
   R>   R?   t   int64t   float64R   R   R   R   R_   R   (   Rf   Rg   R`   (    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyt   test_common_dtype_basicË   s    !(   R&   t   collectionsR    R   t   numpyR>   R   R   R   R   R   R   t   utilst   ioR   R   t   objectR   R,   R/   R7   RD   RY   Rd   Rj   (    (    (    s@   lib/python2.7/site-packages/astropy/utils/tests/test_metadata.pyt   <module>   s    ".		4	3	
