ó
šßÈ[c           @   s´   d  d l  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 d
 l m Z d d l m Z d e f d „  ƒ  YZ d S(   iÿÿÿÿNi   (   t   FitsTestCasei   (   t   writeto(   t
   PrimaryHDUt   hdulist(   t   fitsdiffi   (   t   catch_warnings(   t   AstropyDeprecationWarning(   t   versiont   TestFITSDiff_scriptc           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 RS(   c         C   s>   t  j t ƒ  } t j ƒ  Wd  QX| j j d k s: t ‚ d  S(   Ni   (   t   pytestt   raisest
   SystemExitR   t   maint   valuet   codet   AssertionError(   t   selft   e(    (    sB   lib/python2.7/site-packages/astropy/io/fits/tests/test_fitsdiff.pyt   test_noargs   s    c         C   sD   t  j t ƒ  } t j d g ƒ Wd  QX| j j d k s@ t ‚ d  S(   Nt   file1i   (   R	   R
   R   R   R   R   R   R   (   R   R   (    (    sB   lib/python2.7/site-packages/astropy/io/fits/tests/test_fitsdiff.pyt   test_oneargargs   s    c         C   s¨   t  j d ƒ j d d ƒ } t d | ƒ } | j ƒ  } t d | ƒ } |  j d ƒ } |  j d ƒ } | j | ƒ | j | ƒ t j | | g ƒ } | d k s¤ t	 ‚ d  S(   Nid   i
   t   datas
   testa.fitss
   testb.fitsi    (
   t   npt   aranget   reshapeR   t   copyt   tempR   R   R   R   (   R   t   at   hdu_at   bt   hdu_bt   tmp_at   tmp_bt   numdiff(    (    sB   lib/python2.7/site-packages/astropy/io/fits/tests/test_fitsdiff.pyt   test_nodiff   s    c         C   s²   t  j d ƒ j d d ƒ } t d | ƒ } | j ƒ  } d | d	 <t d | ƒ } |  j d ƒ } |  j d ƒ } | j | ƒ | j | ƒ t j | | g ƒ } | d k s® t	 ‚ d  S(
   Nid   i
   R   i   i   i    s
   testa.fitss
   testb.fits(   i   i    (
   R   R   R   R   R   R   R   R   R   R   (   R   R   R   R   R   R   R    R!   (    (    sB   lib/python2.7/site-packages/astropy/io/fits/tests/test_fitsdiff.pyt   test_onediff(   s    
c         C   sG  t  j d ƒ j d d ƒ } t d | ƒ } | d } t d | ƒ } |  j d ƒ } |  j d ƒ } | j | ƒ | j | ƒ t j | | g ƒ } | j ƒ  \ }	 }
 | d k s´ t	 ‚ |	 j
 ƒ  d d d	 d
 d g k sÜ t	 ‚ t j d d | | g ƒ } | j ƒ  \ }	 }
 | d k st	 ‚ |	 j
 ƒ  d d d d
 d g k sCt	 ‚ d  S(   Nid   i
   R   i   s
   testa.fitss
   testb.fitsiüÿÿÿs           a> 9s           b> 10s        ...s4        100 different pixels found (100.00% different).s   -nt   1s           a> 0s           b> 1(   R   R   R   R   R   R   R   R   t
   readouterrR   t
   splitlines(   R   t   capsysR   R   R   R   R   R    R!   t   outt   err(    (    sB   lib/python2.7/site-packages/astropy/io/fits/tests/test_fitsdiff.pyt   test_manydiff5   s0    
c   
      C   s  t  j d ƒ j d d ƒ } t d | ƒ } | j ƒ  } d | d <t d | ƒ } |  j d ƒ } |  j d ƒ } | j | ƒ | j | ƒ t j d	 |  j d
 ƒ | | g ƒ } | d k s½ t	 ‚ t
 |  j d
 ƒ ƒ  } | j ƒ  }	 Wd  QX|	 j ƒ  d d d d d g k st	 ‚ d  S(   Nid   i
   R   i   i   i    s
   testa.fitss
   testb.fitss   -os   diff.txtiüÿÿÿs        Data differs at [1, 2]:s           a> 10s           b> 12s0        1 different pixels found (1.00% different).(   i   i    (   R   R   R   R   R   R   R   R   R   R   t   opent   readR&   (
   R   R   R   R   R   R   R    R!   t   fR(   (    (    sB   lib/python2.7/site-packages/astropy/io/fits/tests/test_fitsdiff.pyt   test_outputfileQ   s$    
$c         C   sî   t  j d d t ƒj d d ƒ } t d | ƒ } | j ƒ  } d | d <t d | ƒ } |  j d ƒ } |  j d	 ƒ } | j | ƒ | j | ƒ t j	 d
 d | | g ƒ } | d k sº t
 ‚ t j	 d d
 d | | g ƒ } | d k sê t
 ‚ d  S(   Nid   t   dtypei
   R   i   i   i    s
   testa.fitss
   testb.fitss   -aR$   s   --exact(   i   i    (   R   R   t   floatR   R   R   R   R   R   R   R   (   R   R   R   R   R   R   R    R!   (    (    sB   lib/python2.7/site-packages/astropy/io/fits/tests/test_fitsdiff.pyt	   test_atolf   s    !
c         C   s¾   t  j d d t ƒj d d ƒ } t d | ƒ } | j ƒ  } d | d <t d | ƒ } |  j d ƒ } |  j d	 ƒ } | j | ƒ | j | ƒ t j	 d
 d | | g ƒ } | d k sº t
 ‚ d  S(   Nid   R/   i
   R   i   i   i    s
   testa.fitss
   testb.fitss   -rs   1e-1(   i   i    (   R   R   R0   R   R   R   R   R   R   R   R   (   R   R   R   R   R   R   R    R!   (    (    sB   lib/python2.7/site-packages/astropy/io/fits/tests/test_fitsdiff.pyt	   test_rtolw   s    !
c         C   s  t  j d d t ƒj d d ƒ } t d | ƒ } | j ƒ  } d | d <t d | ƒ } |  j d ƒ } |  j d	 ƒ } | j | ƒ | j | ƒ t j	 d
 d | | g ƒ } | d k sº t
 ‚ | j ƒ  \ }	 }
 |	 d j t | | ƒ k sí t
 ‚ |
 d k sÿ t
 ‚ d  S(   Nid   R/   i
   R   i   i   i    s
   testa.fitss
   testb.fitss   -rs   1e-2sC  
 fitsdiff: {}
 a: {}
 b: {}
 Maximum number of different data values to be reported: 10
 Relative tolerance: 0.01, Absolute tolerance: 0.0

Primary HDU:

   Data contains differences:
     Data differs at [1, 2]:
        a> 10.0
         ?  ^
        b> 11.0
         ?  ^
     1 different pixels found (1.00% different).
t    (   i   i    (   R   R   R0   R   R   R   R   R   R   R   R   R%   t   formatR   (   R   R'   R   R   R   R   R   R    R!   R(   R)   (    (    sB   lib/python2.7/site-packages/astropy/io/fits/tests/test_fitsdiff.pyt   test_rtol_diff„   s    !
c         C   s   t  j d ƒ j d d ƒ } t d | ƒ } | j ƒ  } t d | ƒ } |  j d ƒ } |  j d ƒ } | j | ƒ | j | ƒ t t ƒ ^ } t	 j
 d d d d	 | | g ƒ | d
 j t k sÄ t ‚ t | d
 j ƒ d k sã t ‚ Wd  QX| j ƒ  \ }	 }
 |	 d j t | | ƒ k st ‚ d  S(   Nid   i
   R   s
   testa.fitss
   testb.fitss   -rs   1e-4s   -ds   1e-2i    s‘   "-d" ("--difference-tolerance") was deprecated in version 2.0 and will be removed in a future version. Use "-r" ("--relative-tolerance") instead.s£   
 fitsdiff: {}
 a: {}
 b: {}
 Maximum number of different data values to be reported: 10
 Relative tolerance: 0.01, Absolute tolerance: 0.0

No differences found.
(   R   R   R   R   R   R   R   R   R   R   R   t   categoryR   t   strt   messageR%   R4   R   (   R   R'   R   R   R   R   R   R    t   warning_linesR(   R)   (    (    sB   lib/python2.7/site-packages/astropy/io/fits/tests/test_fitsdiff.pyt!   test_fitsdiff_script_both_d_and_r¡   s     c         C   sZ   |  j  d ƒ } t j t ƒ  } t j | d d g ƒ Wd  QX| j j d k sV t ‚ d  S(   Nt	   tmp_file1t   *t   ACMEi   (	   R   R	   R
   R   R   R   R   R   R   (   R   t   tmp1R   (    (    sB   lib/python2.7/site-packages/astropy/io/fits/tests/test_fitsdiff.pyt   test_wildcard¼   s    c         C   sí   t  j d ƒ j d d ƒ } t d | ƒ } | j ƒ  } t d | ƒ } |  j d ƒ } |  j d ƒ } | j | ƒ | j | ƒ t j | | g ƒ } | d k s¤ t	 ‚ | j
 ƒ  \ }	 }
 |	 d j t | | ƒ k s× t	 ‚ |
 d k sé t	 ‚ d  S(	   Nid   i
   R   s
   testa.fitss
   testb.fitsi    s¢   
 fitsdiff: {}
 a: {}
 b: {}
 Maximum number of different data values to be reported: 10
 Relative tolerance: 0.0, Absolute tolerance: 0.0

No differences found.
R3   (   R   R   R   R   R   R   R   R   R   R   R%   R4   R   (   R   R'   R   R   R   R   R   R    R!   R(   R)   (    (    sB   lib/python2.7/site-packages/astropy/io/fits/tests/test_fitsdiff.pyt   test_not_quietÂ   s    c         C   sá   t  j d ƒ j d d ƒ } t d | ƒ } | j ƒ  } t d | ƒ } |  j d ƒ } |  j d ƒ } | j | ƒ | j | ƒ t j d | | g ƒ } | d k s§ t	 ‚ | j
 ƒ  \ }	 }
 |	 d k sË t	 ‚ |
 d k sÝ t	 ‚ d  S(	   Nid   i
   R   s
   testa.fitss
   testb.fitss   -qi    R3   (   R   R   R   R   R   R   R   R   R   R   R%   (   R   R'   R   R   R   R   R   R    R!   R(   R)   (    (    sB   lib/python2.7/site-packages/astropy/io/fits/tests/test_fitsdiff.pyt
   test_quietØ   s    c         C   s_  t  j |  j d ƒ ƒ |  j d ƒ } |  j d ƒ } |  j d ƒ } t j | ƒ  } | j | ƒ Wd  QXt | t j d ƒ j	 d d ƒ ƒ t
 j d |  j | g ƒ d k s± t ‚ t
 j d | |  j g ƒ d k sØ t ‚ |  j d ƒ } t
 j d |  j | g ƒ d k st ‚ t
 j d | |  j g ƒ d k s5t ‚ t
 j d |  j |  j g ƒ d	 k s_t ‚ |  j d
 ƒ } t
 j | | g ƒ | j ƒ  \ } }	 d |	 k s¥t ‚ t
 j d |  j d |  j g ƒ d	 k sÓt ‚ t
 j d |  j d | g ƒ d	 k sþt ‚ |  j d ƒ }
 t
 j d |
 |  j g ƒ d	 k s4t ‚ t
 j d |  j |
 g ƒ d	 k s[t ‚ d  S(   Ns   sub/s   sub/ascii.fitss   sub/group.fitss
   group.fitsid   i
   s   -qi   i    s   arange.fitss   'arange.fits' has no match ins   /*.fitss   /g*.fitss   tb.fits(   t   ost   mkdirR   R   R   t   fitsopenR   R   R   R   R   R   t   data_dirR   R%   (   R   R'   R    t   tmp_gt   tmp_hR   t   tmp_dt   tmp_cR(   R)   t   tmp_f(    (    sB   lib/python2.7/site-packages/astropy/io/fits/tests/test_fitsdiff.pyt	   test_pathç   s,    "''''*.+'(   t   __name__t
   __module__R   R   R"   R#   R*   R.   R1   R2   R5   R:   R?   R@   RA   RK   (    (    (    sB   lib/python2.7/site-packages/astropy/io/fits/tests/test_fitsdiff.pyR      s   													(   t   numpyR   R	   RB   R3   R    t   convenienceR   t   hduR   R   t   scriptsR   t   tests.helperR   t   utils.exceptionsR   R   R   (    (    (    sB   lib/python2.7/site-packages/astropy/io/fits/tests/test_fitsdiff.pyt   <module>   s   