ó
šßÈ[c           @` s  d  d l  m Z m Z m Z m Z d  d l Z d  d l m Z d  d l Z d  d l	 Z
 d  d l m Z d d l m Z d d l m Z 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 „  Z! e j" j# d e
 j$ d d d g ƒ d g ƒ d „  ƒ Z% d „  Z& d „  Z' d „  Z( d  „  Z) d! „  Z* d" „  Z+ d# „  Z, d$ „  Z- d% „  Z. d& „  Z/ d d' l0 m1 Z1 d( e1 f d) „  ƒ  YZ2 d* „  Z3 d+ „  Z4 d, „  Z5 d- „  Z6 d S(.   i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsN(   t   OrderedDict(   t   assert_array_equali   (   t   NDData(   t   NDUncertaintyt   StdDevUncertaintyi   (   t   units(   t   NumpyRNGContextt   FakeUncertaintyc           B` s;   e  Z e d  „  ƒ Z d „  Z d „  Z d „  Z d „  Z RS(   c         C` s   d S(   Nu   fake(    (   t   self(    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   uncertainty_type   s    c         C` s   d  S(   N(    (   R   t   datat
   final_data(    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   _propagate_add   s    c         C` s   d  S(   N(    (   R   R   R   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   _propagate_subtract   s    c         C` s   d  S(   N(    (   R   R   R   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   _propagate_multiply!   s    c         C` s   d  S(   N(    (   R   R   R   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   _propagate_divide$   s    (   t   __name__t
   __module__t   propertyR   R   R   R   R   (    (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyR      s
   			t   FakeNumpyArrayc           B` sA   e  Z d  Z d „  Z d „  Z d „  Z d „  Z e d „  ƒ Z RS(   us   
    Class that has a few of the attributes of a numpy array.

    These attributes are checked for by NDData.
    c         C` s   t  t |  ƒ j ƒ  d  S(   N(   t   superR   t   __init__(   R   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyR   .   s    c         C` s   d  S(   N(    (   R   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   shape1   s    c         C` s   d  S(   N(    (   R   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   __getitem__4   s    c         C` s   d  S(   N(    (   R   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt	   __array__7   s    c         C` s   d S(   Nu   fake(    (   R   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   dtype:   s    (	   R   R   t   __doc__R   R   R   R   R   R   (    (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyR   (   s   				t   MinimalUncertaintyc           B` s&   e  Z d  Z d „  Z e d „  ƒ Z RS(   uL   
    Define the minimum attributes acceptable as an uncertainty object.
    c         C` s   | |  _  d  S(   N(   t   _uncertainty(   R   t   value(    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyR   C   s    c         C` s   d S(   Nu   totally and completely fake(    (   R   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyR   F   s    (   R   R   R   R   R   R   (    (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyR   ?   s   	t   BadNDDataSubclassc           B` s    e  Z d d d d d d  „ Z RS(   c         C` s:   | |  _  | |  _ | |  _ | |  _ | |  _ | |  _ d  S(   N(   t   _dataR    t   _maskt   _wcst   _unitt   _meta(   R   R   t   uncertaintyt   maskt   wcst   metat   unit(    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyR   M   s    					N(   R   R   t   NoneR   (    (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyR"   K   s   	c          C` sÈ   t  d d d g ƒ }  t d ƒ } | |  _ |  j | k s? t ‚ t d ƒ |  _ |  j j |  k sf t ‚ t  |  ƒ }  t |  j t ƒ sŠ t ‚ d |  _ t |  j t ƒ s¬ t ‚ |  j j d k sÄ t ‚ d  S(   Ni   i   i   i   i
   (   R   R   R(   t   AssertionErrorR   t   parent_nddatat
   isinstancet   array(   t   ndt   good_uncertainty(    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   test_uncertainty_setterX   s    		c          C` s„   t  d d d g ƒ }  t |  _ |  j s- t ‚ t |  _ |  j sF t ‚ t  |  d t ƒ}  |  j sg t ‚ t |  _ |  j s€ t ‚ d  S(   Ni   i   i   R)   (   R   t   TrueR)   R.   t   False(   R2   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   test_mask_setteri   s    			c           C` s!   t  j t ƒ  t ƒ  Wd  QXd  S(   N(   t   pytestt   raisest	   TypeErrorR   (    (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   test_nddata_emptyx   s    c          C` sC   d d d g }  t  |  ƒ } t j |  ƒ | j k j ƒ  s? t ‚ d  S(   Ni   i   i   (   R   t   npR1   R   t   allR.   (   t   inpR2   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   test_nddata_init_data_nonarray}   s    c          C` sh  t  d ƒ  t t j j d ƒ ƒ }  Wd  QX|  j j d k sC t ‚ |  j j d k s[ t ‚ |  j j t j t	 ƒ k s| t ‚ t t j
 d d d g d d d	 g g ƒ ƒ }  |  j j d	 k sÁ t ‚ |  j j t j t ƒ k sâ t ‚ t j d ƒ } t | ƒ } d
 | d <| j d d
 k s t ‚ t j d ƒ } t | d t ƒ} d
 | d <| j d d
 k sdt ‚ d  S(   Ni{   i
   id   i   i   i   i   i   i   i    t   copy(   i
   i
   (   i
   i
   (   i
   i
   (   i    i    (   i    i    (   i
   i
   (   i    i    (   i    i    (   R
   R   R<   t   randomR   R   R.   t   sizeR   t   floatR1   t   intt   onesR5   (   R2   t   at   nd_ref(    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   test_nddata_init_data_ndarrayƒ   s     !-!

c       
   C` ss  t  d ƒ 3 t t j j d ƒ d t j j d ƒ d k ƒWd  QXt  d ƒ 2 t j j d ƒ }  t j j |  d k |  ƒ } Wd  QXt | ƒ } t | j | j ƒ t | j	 | j	 ƒ | j d | j d <d | j	 d	 <t | j | j ƒ t | j	 | j	 ƒ t | d
 t
 ƒ} | j d | j d <d | j	 d	 <| j d | j d k sOt ‚ | j	 d	 | j	 d	 k sot ‚ d  S(   NiÈ  i
   R)   g      à?i90  id   i    iÍ[i   R@   (   i
   i
   (   i
   i
   (   R
   R   R<   RA   t   randnt   mat   masked_whereR   R)   R   R5   R.   (   RF   t   marrR2   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt!   test_nddata_init_data_maskedarray   s$    ! u   datai   i   c         C` sÒ   |  t  j } t | ƒ } | j | j k s1 t ‚ t | j t j | j	 ƒ ƒ | j j
 d k rÎ d | j	 d <| j d | j	 d k sŒ t ‚ t | d t ƒ} d | j	 d <| j d | j	 d k sÎ t ‚ n  d  S(   Ni   id   R@   i   (   t   ut   aduR   R,   R.   R   R   R<   R1   R!   RB   R5   (   R   t   quantityt   ndd(    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   test_nddata_init_data_quantity¸   s     c          C` s³   t  j d d g ƒ }  |  t j } t } t  j j | d | ƒ} t | ƒ } t | j |  ƒ | j	 t j k st t
 ‚ t | j t j ƒ s t
 ‚ t  j j | j t  j | ƒ ƒ d  S(   Ni   i   R)   (   R<   R1   RN   t   mR6   RJ   R   R   R   R,   R.   R0   t   Quantityt   testingR)   (   RF   t   qRS   t   mqR2   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt%   test_nddata_init_data_masked_quantityË   s    c          C` sÄ  t  t j d g ƒ ƒ }  t  |  ƒ } | j |  j k s< t ‚ | j |  j k sT t ‚ | j |  j k sl t ‚ | j |  j k s„ t ‚ | j |  j k sœ t ‚ t  t j	 d ƒ ƒ }  t  |  ƒ } |  j
 | j
 k sÕ t ‚ t  |  d t ƒ} d |  j
 d <|  j
 d | j
 d k st ‚ t  t j d g ƒ d t d d d	 t j d
 i d d 6d d ƒ}  t  |  ƒ } | j
 |  j
 k sxt ‚ | j |  j k st ‚ | j j |  j j k s®t ‚ | j |  j k sÆt ‚ | j |  j k sÞt ‚ | j |  j k söt ‚ t  |  d t d d d	 t j d
 i d d 6d d ƒ} | j
 |  j
 k sBt ‚ | j |  j k sZt ‚ | j j |  j j k sxt ‚ | j |  j k st ‚ | j |  j k s¨t ‚ | j |  j k sÀt ‚ d  S(   Ni   i   R@   i
   i   i   R)   R(   R,   R+   u   mordoru   destR*   iÈ   u   MEu   observeri   (   i   i   (   i   i   (   i   i   (   i   i   (   R   R<   R1   R*   R.   R(   R)   R,   R+   RE   R   R5   R6   RN   t   st   km(   t   nd1t   nd2t   nd3(    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   test_nddata_init_data_nddataÙ   s<     *c       	   C` s  t  t t d d d d ƒ }  t j t ƒ  t |  ƒ Wd  QXt  t j d d g ƒ t d d i d d 6t	 j
 ƒ } t | ƒ } | j | j k s“ t ‚ | j | j k s« t ‚ | j j | j k sÆ t ‚ | j | j k sÞ t ‚ | j | j k sö t ‚ | j | j k st ‚ d  S(   Ni   i   u   gollumid   i   u   black knightu   enemy(   R"   R6   R5   R8   R9   R:   R   R<   R1   RN   RZ   R,   R.   R+   R(   R)   R*   R   (   t   bndt   bnd_goodR2   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt%   test_nddata_init_data_nddata_subclass  s    c          C` sd   t  j t ƒ  t i d d 6ƒ Wd  QXd t f d „  ƒ  Y}  t  j t ƒ  t |  ƒ  ƒ Wd  QXd  S(   Nu   dictu   at   Shapec           B` s   e  Z d  „  Z d „  Z RS(   c         S` s   d |  _  d  S(   Ni   (   R   (   R   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyR     s    c         S` s   d S(   Nu   7(    (   R   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   __repr__  s    (   R   R   R   Rc   (    (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyRb     s   	(   R8   R9   R:   R   t   object(   Rb   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   test_nddata_init_data_fail  s
    c          C` sO   t  t ƒ  ƒ }  t |  j t ƒ s' t ‚ t  |  ƒ } t | j t ƒ sK t ‚ d  S(   N(   R   R   R0   R   R.   (   t   ndd1t   ndd2(    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   test_nddata_init_data_fakes&  s    c          C` sª   t  d t j d ƒ ƒ }  t t j d ƒ d |  ƒ} | j j | k sK t ‚ t  d t j d ƒ d ƒ } t | d | ƒ} | j | k sŽ t ‚ | j j | k s¦ t ‚ d  S(   NR1   i   R(   i   (   i   i   (   i   i   (   i   i   (   R   R<   RE   R   R(   R/   R.   (   RN   t   dt   u2t   d2(    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   test_param_uncertainty1  s    c          C` sU   t  d g d d ƒ}  |  j d k s* t ‚ t  |  d d ƒ} | j d k sQ t ‚ d  S(   Ni   R*   i   i   (   R   R*   R.   (   R2   R\   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   test_param_wcs=  s    c          C` s,  t  j t ƒ  t d g d d ƒWd  QXt d d d g d i  ƒ}  t |  j ƒ d k s_ t ‚ t d d d g ƒ }  t |  j t ƒ sŒ t ‚ t |  j ƒ d k s§ t ‚ t |  d i d d 6ƒ} t | j ƒ d k sÛ t ‚ t | d i d d 6ƒ} t | j ƒ d k st ‚ | j d d k s(t ‚ d  S(	   Ni   R+   i   i   i    u   sunu   imageu   moon(	   R8   R9   R:   R   t   lenR+   R.   R0   R   (   R2   R\   R]   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   test_param_metaF  s    c          C` sÏ   t  d g d t ƒ}  |  j s% t ‚ t  |  d t ƒ} | j sF t ‚ t  t j j d g d t ƒd t ƒ} | j s| t ‚ t j j t j d d g ƒ t j	 d t ƒ} t  | d t ƒ} | j sË t ‚ d  S(   Ni   R)   i   i   (
   R   R6   R)   R.   R5   R<   RJ   R1   RN   RS   (   R2   R\   R]   RW   t   nd4(    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   test_param_maskW  s    '.c          C` s2  t  j t ƒ  t t j d ƒ d d ƒWd  QXt d d d g d d ƒt j d d d g ƒ t j }  t |  d d ƒ} | j	 |  j	 k s‘ t
 ‚ | j	 t j k s© t
 ‚ t j j t j d d g ƒ t j d	 t ƒ} t | d t j ƒ} | j	 t j k st
 ‚ t | d d
 ƒ} | j	 t j k s.t
 ‚ d  S(   Ni   R,   u   NotAValidUniti   i   i   u   meteru   cmR)   u   km(   i   i   (   R8   R9   t
   ValueErrorR   R<   RE   R1   RN   RS   R,   R.   t   cmRJ   R6   RY   RZ   (   RV   R2   RW   R\   R]   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   test_param_unitg  s    .(   t   MetaBaseTestt   TestMetaNDDatac           B` s#   e  Z e Z e j d  g g ƒ Z RS(   g      ð?(   R   R   R   t
   test_classR<   R1   t   args(    (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyRv     s   c          C` sê   t  t j d d d g ƒ ƒ }  t |  ƒ d k s6 t ‚ t  t j d d g d d g g ƒ ƒ } t | ƒ t j d d ƒ k s‚ t ‚ t  t j d d g d d g g d d g d	 d
 g g g ƒ ƒ } t | ƒ t j d d ƒ k sæ t ‚ d  S(   Ni   i   i   u   [1 2 3]i   u   
        [[1 2]
         [3 4]]i   i   i   i   uD   
        [[[1 2]
          [3 4]]

         [[5 6]
          [7 8]]](   R   R<   R1   t   strR.   t   textwrapt   dedent(   t   arr1dt   arr2dt   arr3d(    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   test_nddata_str…  s    '?c          C` sê   t  t j d d d g ƒ ƒ }  t |  ƒ d k s6 t ‚ t  t j d d g d d g g ƒ ƒ } t | ƒ t j d d ƒ k s‚ t ‚ t  t j d d g d d g g d d g d	 d
 g g g ƒ ƒ } t | ƒ t j d d ƒ k sæ t ‚ d  S(   Ni   i   i   u   NDData([1, 2, 3])i   u1   
        NDData([[1, 2],
                [3, 4]])i   i   i   i   uh   
        NDData([[[1, 2],
                 [3, 4]],

                [[5, 6],
                 [7, 8]]])(   R   R<   R1   t   reprR.   Rz   R{   (   R|   R}   R~   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   test_nddata_repr—  s    '?c          C` s7   t  t j d ƒ ƒ }  t j t ƒ  |  d Wd  QXd  S(   Ni   i    (   i   i   (   R   R<   RE   R8   R9   R:   (   RQ   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   test_slicing_not_supportedª  s    c          C` s7   t  t j d ƒ ƒ }  t j t ƒ  |  |  Wd  QXd  S(   Ni   (   i   i   (   R   R<   RE   R8   R9   R:   (   RQ   (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   test_arithmetic_not_supported°  s    (7   t
   __future__R    R   R   R   Rz   t   collectionsR   R8   t   numpyR<   t   numpy.testingR   t   nddataR   t   nduncertaintyR   R   t    R	   RN   t   utilsR
   R   Rd   R   R   R"   R4   R7   R;   R?   RH   RM   t   markt   parametrizeR1   RR   RX   R^   Ra   Re   Rh   Rl   Rm   Ro   Rq   Rt   t   utils.tests.test_metadataRu   Rv   R   R   R‚   Rƒ   (    (    (    s?   lib/python2.7/site-packages/astropy/nddata/tests/test_nddata.pyt   <module>   sH   "						6		)												