ó
šßÈ[c           @` së  d  d l  m Z m Z m Z 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 m Z m Z m Z m Z m Z m Z m Z d d l m Z d d	 l m Z d d
 l m Z d d l m Z y d  d l Z e  Z! Wn e" k
 r	e# Z! n Xd< d= d> d? d@ dA g Z$ dB dC dD dE dF dG g Z% e& d d ƒ e& d d ƒ e& d d ƒ e& d d ƒ e& d d ƒ e& d d ƒ g Z' d Z( dH dI dJ dK g Z) d „  Z* d „  Z+ e j, j- d  e) ƒ d! „  ƒ Z. d" „  Z/ d# „  Z0 d$ „  Z1 d% „  Z2 d& „  Z3 d' „  Z4 d( „  Z5 d) „  Z6 e j, j- d* d+ d, d- g ƒ d. „  ƒ Z7 d/ „  Z8 d0 „  Z9 d1 „  Z: e j, j- dL e e$ e% ƒ ƒ d4 „  ƒ Z; e j, j< d5 ƒ d6 e= f d7 „  ƒ  Yƒ Z> e j, j< d5 ƒ d8 e= f d9 „  ƒ  Yƒ Z? d: e= f d; „  ƒ  YZ@ d S(M   i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsN(   t   assert_allclosei   (   t   assert_quantity_allclosei   (	   t   extract_arrayt	   add_arrayt   subpixel_indicest   block_reducet   block_replicatet   overlap_slicest   NoOverlapErrort   PartialOverlapErrort   Cutout2D(   t   WCS(   t   SkyCoord(   t   units(   t   zipg
×£p=
%@gö(\Âõ@g{®Gáz@gq=
×£ð)@g®GázT?@g…ëQ¸Å?@gq=
×£pÝ?g®Gázî?g33333s4@g=
×£p=(@g…ëQ¸E@gìQ¸…k8@i   i   i   iÿÿÿÿiüÿÿÿi   c       	   C` sG   t  j t ƒ  }  t d	 d
 d ƒ Wd QXd t |  j ƒ k sC t ‚ d S(   u>   Overlap from arrays with different number of dim is undefined.i   i   i   i   i   i    Nu   the same number of dimensions(   i   i   i   (   i   i   (   i    i    (   t   pytestt   raisest
   ValueErrorR   t   strt   valuet   AssertionError(   t   e(    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_slices_different_dim)   s    c       
   C` sG   t  j t ƒ  }  t d	 d
 d ƒ Wd QXd t |  j ƒ k sC t ‚ d S(   u&   Position must have same dim as arrays.i   i   i   i   i    i   Nu   the same number of dimensions(   i   i   (   i   i   (   i    i    i   (   R   R   R   R   R   R   R   (   R   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_slices_pos_different_dim0   s    u   posc         C` s*   t  j t ƒ  t d d |  ƒ Wd QXd S(   uA   If there is no overlap between arrays, an error should be raised.i   i   N(   i   i   (   i   i   (   R   R   R   R   (   t   pos(    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_slices_no_overlap7   s    c          C` sÿ   t  d d d ƒ }  |  t d d d
 ƒ f t d d d
 ƒ f f k sH t ‚ t  d d d d d ƒ}  |  t d d d
 ƒ f t d d d
 ƒ f f k s– t ‚ xb d d g D]T } t j t ƒ " } t  d d | f d d	 ƒ}  Wd
 QXd t | j ƒ k s£ t ‚ q£ Wd
 S(   u1   Compute a slice for partially overlapping arrays.i   i   i    i   i   t   modeu   partiali   u   strictNu   Arrays overlap only partially.(   i   (   i   (   i    (   i   (   i   (   i    (   i   (   i   (	   R   t   slicet   NoneR   R   R   R   R   R   (   t   tempR   R   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_slices_partial_overlap>   s    66!c       
   C` sM   t  j t ƒ  }  t d d	 d
 d d ƒWd QXd t |  j ƒ k sI t ‚ d S(   u+   Call overlap_slices with non-existing mode.i   i   i    R   u   fullNu   Mode can be only(   i   (   i   (   i    (   R   R   R   R   R   R   R   (   R   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_slices_overlap_wrong_modeL   s    c       
   C` sV   t  j t ƒ & }  t t j d ƒ d d	 d d ƒWd QXd t |  j ƒ k sR t ‚ d S(
   u*   Call extract_array with non-existing mode.i   i   i    R   u   fullNu0   Valid modes are 'partial', 'trim', and 'strict'.(   i   (   i    (	   R   R   R   R   t   npt   arangeR   R   R   (   R   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_extract_array_wrong_modeS   s    %c          C` sô   t  j t t  j d ƒ d
 d d d ƒt  j d d g ƒ k ƒ sE t ‚ x] d d d g D]L }  t  j t t  j d ƒ d |  f ƒ t  j |  d |  g ƒ k ƒ sU t ‚ qU Wt  j t t  j d ƒ d d d t  j ƒt  j d t  j g ƒ k ƒ sð t ‚ d	 S(   u[   Extract 1 d arrays.

    All dimensions are treated the same, so we can test in 1 dim.
    i   i   i    t
   fill_valueiÿÿÿi   i   g      @N(   i   (   i    (   i   (   i   (   i   (   R$   t   allR   R%   t   arrayR   t   inf(   t   i(    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_extract_array_1d_evenZ   s    EJc          C` s¨  t  j t t  j d ƒ d d d d ƒt  j d d d g ƒ k ƒ sH t ‚ t  j t t  j d ƒ d d d d ƒt  j d d d g ƒ k ƒ s t ‚ xa d d g D]S }  t  j t t  j d ƒ d |  f ƒ t  j |  d |  |  d g ƒ k ƒ s t ‚ q Wt  j t t  j d ƒ d d d d ƒt  j d d d g ƒ k ƒ s<t ‚ t  j d	 ƒ } t | d d ƒ } | d d k sst ‚ t  j | d ƒ sŒt ‚ | j | j k s¤t ‚ d
 S(   u  Extract 1 d arrays.

    All dimensions are treated the same, so we can test in 1 dim.
    The first few lines test the most error-prone part: Extraction of an
    array on the boundaries.
    Additional tests (e.g. dtype of return array) are done for the last
    case only.
    i   i   iÿÿÿÿR'   iÿÿÿi    i   i   g      @N(   i   (   iÿÿÿÿ(   i   (   i    (   i   (   i   (   i   (   i   (   i   (   R$   R(   R   R%   R)   R   t   isnant   dtype(   R+   t   arrayint	   extracted(    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_extract_array_1d_odde   s    	HHQHc           C` s”   t  j t t  j d ƒ d d d d ƒt  j d d d g ƒ k ƒ sH t ‚ t  j t t  j d ƒ d d d d ƒt  j d d d g ƒ k ƒ s t ‚ d S(	   u(   In 1d, shape can be int instead of tuplei   i   iÿÿÿÿR'   iÿÿÿi    N(   iÿÿÿÿ(   R$   R(   R   R%   R)   R   (    (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_extract_array_1dz   s    Hc          C` sf   x_ t  j d d d ƒ D]H }  t  j t t  j d ƒ d |  ƒ t  j d d d g ƒ k ƒ s t ‚ q Wd S(	   u   integer is at bin centerg®Gáz@gìQ¸…ë@gš™™™™™¹?i   i   i   i   N(   R$   R%   R(   R   R)   R   (   t   a(    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_extract_Array_float€   s    c          C` sî   t  j t t  j d ƒ d
 d d d ƒt  j d g ƒ k ƒ sB t ‚ xc d d d g D]R }  t  j t t  j d ƒ d |  f d d ƒt  j |  d |  g ƒ k ƒ sR t ‚ qR Wt  j t t  j d ƒ d d d d ƒt  j d g ƒ k ƒ sê t ‚ d	 S(   u[   Extract 1 d arrays.

    All dimensions are treated the same, so we can test in 1 dim.
    i   i   i    R   u   trimi   i   g      @N(   i   (   i    (   i   (   i   (   i   (   R$   R(   R   R%   R)   R   (   R+   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_extract_array_1d_trim†   s    BPu   modeu   partialu   trimu   strictc         C` sq   t  j d ƒ } t  j d ƒ } | | d d … d d … f <t | d	 d
 d |  ƒ} t  j | | k ƒ sm t ‚ d S(   uq   
    Test extract_array utility function.

    Test by extracting an array of ones out of an array of zeros.
    i   i   i   i   R   N(   i   i   (   i   i   (   i   i   (   i   i   (   R$   t   zerost   onesR   R(   R   (   R   t   large_test_arrayt   small_test_arrayt   extracted_array(    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_extract_array_easy‘   s
    c       	   C` s<  t  j d ƒ }  xP t  j d d ƒ D]< } t |  d | d d d t ƒ\ } } | d k s" t ‚ q" Wxk t d	 d
 d g d	 d d g ƒ D]H \ } } t |  d | f d d d t ƒ\ } } | | f k s„ t ‚ q„ Wxe t t  j d d ƒ d ƒ D]H \ } } t |  d | f d d d t ƒ\ } } | | f k sì t ‚ qì Wd S(   u·   Check that the return position is calculated correctly.

    The result will differ by mode. All test here are done in 1d because it's
    easier to construct correct test cases.
    i   iÿÿÿÿi   i   R   u   partialt   return_positioni   g×£p=
×÷?g)\Âõ(ø?gR¸…ëQà?i   u   stricti    u   trimN(   i   (   i   (   iÿÿÿÿi    i   i   i   i   i   (   i   (   R$   R%   R   t   TrueR   R   (   R8   R+   R0   t   new_post   expected(    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_extract_array_return_posŸ   s    .(c          C` s}   t  j d ƒ }  t  j d ƒ } |  j ƒ  } | d d … d d … f c | 7<t |  | d ƒ } t  j | | k ƒ sy t ‚ d S(	   ui   
    Test add_array utility function.

    Test by adding an array of ones out of an array of zeros.
    i   i   i   i   N(   i   i   (   i   i   (   i   i   (   R$   R6   R7   t   copyR   R(   R   (   R8   R9   t   large_test_array_reft   added_array(    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_add_array_odd_shape¶   s    "c          C` s“   t  j d ƒ }  t  j d ƒ } |  j ƒ  } | d d … d d … f c | d d … d d … f 7<t |  | d ƒ } t  j | | k ƒ s t ‚ d S(	   ul   
    Test add_array_2D utility function.

    Test by adding an array of ones out of an array of zeros.
    i   i   i    i   N(   i   i   (   i   i   (   i    i    (   R$   R6   R7   RA   R   R(   R   (   R8   R9   RB   RC   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_add_array_even_shapeÅ   s    8u   positionu   subpixel_indexc         C` s(   t  j t |  t ƒ | k ƒ s$ t ‚ d S(   u   
    Test subpixel_indices utility function.

    Test by asserting that the function returns correct results for
    given test values.
    N(   R$   R(   R   t   subsamplingR   (   t   positiont   subpixel_index(    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_subpixel_indicesÔ   s    	u   not HAS_SKIMAGEt   TestBlockReducec           B` sG   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C` sR   t  j d ƒ } t  j d d g ƒ } t | d ƒ } t  j | | k ƒ sN t ‚ d S(   u   Test 1D array.i   i   i   i   N(   R$   R%   R)   R	   R(   R   (   t   selft   dataR?   t   result(    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_1dâ   s    c         C` sh   t  j d ƒ } d } t | | d t  j ƒ| } t | | d t  j ƒ} t  j | | k ƒ sd t ‚ d S(   u    Test 1D array with func=np.mean.i   g       @t   funcN(   R$   R%   R	   t   sumt   meanR(   R   (   RK   RL   t
   block_sizeR?   t   result_mean(    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_1d_meané   s
    c         C` s^   t  j d ƒ j d d ƒ } t  j d g g ƒ } t | d ƒ } t  j | | k ƒ sZ t ‚ d S(   u   Test 2D array.i   i   i   N(   R$   R%   t   reshapeR)   R	   R(   R   (   RK   RL   R?   RM   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_2dñ   s    c         C` sx   t  j d ƒ j d d ƒ } d } t | | d t  j ƒ| d } t | | d t  j ƒ} t  j | | k ƒ st t ‚ d S(   u    Test 2D array with func=np.mean.i   i   g       @RO   N(   R$   R%   RU   R	   RP   RQ   R(   R   (   RK   RL   RR   R?   RM   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_2d_meanø   s    c         C` st   t  j d ƒ j d d ƒ } t | d ƒ } | d d … d d … f } t | d ƒ } t  j | | k ƒ sp t ‚ d S(   ug   
        Test trimming of 2D array when size is not perfectly divisible
        by block_size.
        i   i   i   i   i    i   N(   R$   R%   RU   R	   R(   R   (   RK   t   data1t   result1t   data2t   result2(    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_2d_trim  s
    c         C` sX   t  j d ƒ j d d ƒ } t | d ƒ } t | d ƒ } t  j | | k ƒ sT t ‚ d S(   u$   Test scalar block_size broadcasting.i   i   i   N(   i   i   (   R$   R%   RU   R	   R(   R   (   RK   RL   RY   R[   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_block_size_broadcasting  s    c      	   C` s6   t  j d ƒ } t j t ƒ  t | d ƒ Wd QXd S(   u   Test block_size length.i   N(   i   i   (   i   i   i   (   R$   R7   R   R   R   R	   (   RK   RL   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_block_size_len  s    (	   t   __name__t
   __module__RN   RT   RV   RW   R\   R]   R^   (    (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyRJ   à   s   							t   TestBlockReplicatec           B` s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C` sX   t  j d ƒ } t  j d d d d g ƒ } t | d ƒ } t  j | | k ƒ sT t ‚ d S(   u   Test 1D array.i   i    g      à?N(   R$   R%   R)   R
   R(   R   (   RK   RL   R?   RM   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyRN     s    c         C` s\   t  j d ƒ } d } t | | ƒ | } t | | d t ƒ} t  j | | k ƒ sX t ‚ d S(   u&   Test 1D array with conserve_sum=False.i   g       @t   conserve_sumN(   R$   R%   R
   t   FalseR(   R   (   RK   RL   RR   R?   RM   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_1d_conserve_sum$  s
    c         C` s|   t  j d ƒ j d d ƒ } t  j d d g d d g d d g d d g g ƒ } t | d ƒ } t  j | | k ƒ sx t ‚ d S(   u   Test 2D array.i   i   i    g      Ð?N(   R$   R%   RU   R)   R
   R(   R   (   RK   RL   R?   RM   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyRV   ,  s    3c         C` sl   t  j d ƒ j d d ƒ } d } t | | ƒ | d } t | | d t ƒ} t  j | | k ƒ sh t ‚ d S(   u&   Test 2D array with conserve_sum=False.i   i   i   g       @Rb   N(   R$   R%   RU   R
   Rc   R(   R   (   RK   RL   RR   R?   RM   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_2d_conserve_sum3  s
    c         C` sX   t  j d ƒ j d d ƒ } t | d ƒ } t | d ƒ } t  j | | k ƒ sT t ‚ d S(   u$   Test scalar block_size broadcasting.i   i   N(   i   i   (   R$   R%   RU   R
   R(   R   (   RK   RL   RY   R[   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyR]   ;  s    c         C` s6   t  j d ƒ } t j t ƒ  t | d ƒ Wd QXd S(   u   Test block_size length.i   i   N(   i   i   (   R$   R%   R   R   R   R
   (   RK   RL   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyR^   B  s    (   R_   R`   RN   Rd   RV   Re   R]   R^   (    (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyRa     s   					t   TestCutout2Dc           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 RS(   c         C` s  t  j d ƒ j d d ƒ |  _ t d d d ƒ|  _ t d d ƒ } t  j d	 } d } | t  j | ƒ | t  j	 | ƒ g | t  j	 | ƒ | t  j | ƒ g g | j
 _ d d g | j
 _ |  j j j t j ƒ |  j j j t j ƒ g | j
 _ d d g | j
 _ | |  _
 d  S(   Ng      4@i   i   u   13h11m29.96s -01d19m18.7st   frameu   icrst   naxisi   g      @gš™™™™™©?g      ¬@u   RA---TANu   DEC--TANi   g2.‘ZŠ í>(   R$   R%   RU   RL   R   RG   R   t   pit   cost   sint   wcst   cdt   ctypet   rat   to_valuet   ut   degt   dect   crvalt   crpix(   RK   Rl   t   rhot   scale(    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   setup_classJ  s    $/!c         C` sÔ  d d t  j d d t  j d t  j f d d t  j f d g } x| D]…} d } t |  j | | ƒ } | j j d k s€ t ‚ | j d d k s™ t ‚ | j d k s® t ‚ | j d k sÃ t ‚ | j	 | k sØ t ‚ t
 | j d ƒ | j d k sý t ‚ | j d k st ‚ | j d k s't ‚ | j d k s<t ‚ | j d d f k sWt ‚ | j d d f k srt ‚ | j t d d ƒ t d d ƒ f k sŸt ‚ | j t d	 d ƒ t d	 d ƒ f k sG t ‚ qG Wd  S(    Ni   g      @g333333@gffffff
@gÍÌÌÌÌÌ @gffffffþ?i   i
   i    gš™™™™™ñ?gÍÌÌÌÌÌì?g       @g      ð?i   i   (   i   i   (   g333333@gffffff
@(   gÍÌÌÌÌÌ @gffffffþ?(   i   i   (   i   i   (   i   i   (   i    i    (   gš™™™™™ñ?gÍÌÌÌÌÌì?(   g       @g       @(   g      ð?g      ð?(   g       @g       @(   g      ð?g      ð?(   i   i   (   i   i   (   i    i   (   i    i   (   Rq   t   pixelt   pixR   RL   t   shapeR   t   origin_originalt   origin_cutoutt   input_position_originalR   t   input_position_cutoutt   position_originalt   position_cutoutt   center_originalt   center_cutoutt   bbox_originalt   bbox_cutoutt   slices_originalR   t   slices_cutout(   RK   t   sizest   sizeRG   t   c(    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_cutoutX  s&    7	-c      
   C` s-   t  j t ƒ  t |  j d d ƒ Wd  QXd  S(   Ni   i   (   i   i   (   i   i   i   (   R   R   R   R   RL   (   RK   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_size_lengthm  s    c      	   C` sX   xQ d t  j d d t  j f g D]/ } t j t ƒ  t |  j d | ƒ Wd  QXq! Wd  S(   Ni   i   (   i   i   (   Rq   t   cmt   KR   R   R   R   RL   (   RK   R‰   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_size_unitsq  s    'c         C` sÃ   d t  j d t  j t  j } t |  j d
 | ƒ } | j j d k sL t ‚ | j d d k se t ‚ | j t d d ƒ t d d ƒ f k s’ t ‚ | j	 t d d ƒ t d d ƒ f k s¿ t ‚ d	 S(   u4   
        Check size in derived pixel units.
        g333333Ó?gš™™™™™¹?i   i   i    i   i   i   N(   i   i   (   i   i   (   i    i    (
   Rq   t   arcsecRy   R   RL   R{   R   R†   R   R‡   (   RK   R‰   RŠ   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_size_pixelv  s    -c         C` s´   t  |  j d d t j d |  j ƒ} | j j d	 k s= t ‚ | j d
 d k sV t ‚ | j t d d ƒ t d d ƒ f k sƒ t ‚ | j	 t d d ƒ t d d ƒ f k s° t ‚ d  S(   Ni   gš™™™™™¹?Rl   i    i   i   i   (   i   i   (   i   i   (   i    i    (
   R   RL   Rq   R   Rl   R{   R   R†   R   R‡   (   RK   RŠ   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_size_angle  s
    %-c      
   C` s:   t  j t ƒ % t |  j d d d t j f ƒ Wd  QXd  S(   Ni   i   (   i   i   (   R   R   R   R   RL   Rq   R   (   RK   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_size_angle_without_wcsˆ  s    c         C` sª   t  |  j d d d d ƒ} | j j d k s3 t ‚ | j d	 d k sL t ‚ | j t d d ƒ t d d ƒ f k sy t ‚ | j t d d ƒ t d d ƒ f k s¦ t ‚ d  S(
   Ni    i   R   u   trimi   (   i    i    (   i   i   (   i   i   (   i    i    (   R   RL   R{   R   R†   R   R‡   (   RK   RŠ   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_cutout_trim_overlapŒ  s
    -c         C` sª   t  |  j d d d d ƒ} | j j d	 k s3 t ‚ | j d
 d k sL t ‚ | j t d d ƒ t d d ƒ f k sy t ‚ | j t d d ƒ t d d ƒ f k s¦ t ‚ d  S(   Ni    i   R   u   partiali   i   (   i    i    (   i   i   (   i   i   (   i   i   (   R   RL   R{   R   R†   R   R‡   (   RK   RŠ   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_cutout_partial_overlap“  s
    -c         C` su   d } t  |  j d d	 d d d | ƒ} | j j d
 k s? t ‚ | j d d k sX t ‚ | j d | k sq t ‚ d  S(   Niÿÿÿi    i   R   u   partialR'   i   (   i    i    (   i   i   (   i   i   (   i   i   (   i    i    (   R   RL   R{   R   (   RK   R'   RŠ   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt&   test_cutout_partial_overlap_fill_valueš  s    	c         C` sÉ   t  j |  j ƒ } t | d d ƒ } d	 } d } | | j | <| j | ƒ } | d  d  d … } | | | k su t ‚ t  j |  j ƒ } t |  j d
 d d t ƒ} | | j | <| | | k sÅ t ‚ d  S(   Ni   i   i    g      Y@iÿÿÿÿRA   (   i   i   (   i   i   (   i    i    (   i   i   (   i   i   (   R$   RA   RL   R   t   to_original_positionR   R=   (   RK   RL   RŠ   t   xyR   t   xy_origt   yxt   c2(    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt	   test_copy¢  s    c         C` sJ   d } t  |  j | d ƒ } d } | j | j | ƒ ƒ } t | | ƒ d  S(   Ni   i   i    (   i   i   (   i   i   (   i    i    (   R   RL   t   to_cutout_positionR—   R   (   RK   RG   RŠ   R˜   RM   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_to_from_large±  s
    c      	   C` s0   t  j t ƒ  t |  j |  j d ƒ Wd  QXd  S(   Ni   (   i   i   (   R   R   R   R   RL   RG   (   RK   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_skycoord_without_wcs¸  s    c         C` s   t  |  j |  j d d |  j ƒ} |  j j | j d | j d |  j ƒ } |  j j | j d | j d | j ƒ } t | j | j ƒ t | j	 | j	 ƒ d  S(   Ni   Rl   i   i    (   i   i   (
   R   RL   RG   Rl   t
   from_pixelR‚   Rƒ   R   Ro   Rs   (   RK   RŠ   t   skycoord_originalt   skycoord_cutout(    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_skycoord¼  s    !
c         C` s£   t  |  j |  j d d |  j d d ƒ} |  j j | j d | j d |  j ƒ } |  j j | j d | j d | j ƒ } t | j | j ƒ t | j	 | j	 ƒ d  S(   Ni   Rl   R   u   partiali   i    (   i   i   (
   R   RL   RG   Rl   R    R‚   Rƒ   R   Ro   Rs   (   RK   RŠ   R¡   R¢   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_skycoord_partialÆ  s    	
c         C` so   d } d } t  |  j |  j | | f d |  j ƒ} | j j d | k sO t ‚ | j j d | k sk t ‚ d  S(   Ni   i   Rl   i    i   (   R   RL   RG   Rl   t   _naxisR   (   RK   t   xsizet   ysizeRŠ   (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   test_naxis_updateÑ  s
    '(   R_   R`   Rx   R‹   RŒ   R   R‘   R’   R“   R”   R•   R–   Rœ   Rž   RŸ   R£   R¤   R¨   (    (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyRf   I  s    														
	(   g
×£p=
%@gö(\Âõ@(   g{®Gáz@gq=
×£ð)@(   g®GázT?@g…ëQ¸Å?@(   gq=
×£pÝ?g®Gázî?(   g33333s4@g=
×£p=(@(   g…ëQ¸E@gìQ¸…k8@(   i    i   (   i    i   (   i   i   (   i   i   (   i   i   (   i   i   (   iÿÿÿÿiüÿÿÿ(   iÿÿÿÿi    (   i   i   (   i   i   (   u   positionu   subpixel_index(A   t
   __future__R    R   R   R   R   t   numpyR$   t   numpy.testingR   t   tests.helperR   t   utilsR   R   R   R	   R
   R   R   R   R   Rl   R   t   coordinatesR   t    R   Rq   t   extern.six.movesR   t   skimageR=   t   HAS_SKIMAGEt   ImportErrorRc   t   test_positionst   test_position_indicesR   t   test_slicesRF   t   test_pos_badR   R   t   markt   parametrizeR   R"   R#   R&   R,   R1   R2   R4   R5   R;   R@   RD   RE   RI   t   skipift   objectRJ   Ra   Rf   (    (    (    s>   lib/python2.7/site-packages/astropy/nddata/tests/test_utils.pyt   <module>   sZ   "@

												'			:-