
    IR-eѪ                     B   d Z ddlZddlmZ ddlZddl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dlmZ dd	lmZ dd
lmZ d Zd ZddgZej                            ej        ej        dddd          Zd ej         D             Z!e!"                    d           ej#        $                    de!          d             Z%ej#        $                    de!          d             Z&ej#        $                    de!          d             Z'ej#        $                    de!          d             Z(ej#        $                    de!          d             Z) G d d          Z* G d d          Z+d Z,d  Z-d! Z.d" Z/d# Z0d$ Z1d% Z2d& Z3d' Z4d( Z5d) Z6d* Z7d+ Z8d, Z9d- Z:d. Z;d/ Z<d0 Z=d1 Z>d2 Z?d3 Z@d4 ZAd5 ZBd6 ZCd7 ZDd8 ZEd9 ZFd: ZGd; ZHd< ZId= ZJd> ZKd? ZLd@ ZMdA ZNdB ZOdC ZPdD ZQdE ZRdF ZSdG ZTdH ZUdI ZVdJ ZWdK ZXdL ZYdM ZZdN Z[dO Z\dP Z]dQ Z^dR Z_dS Z`dT ZadU ZbdV ZcdW ZddX ZedY ZfdS )Zz,Test sky projections defined in WCS Paper II    N)assert_allcloseassert_almost_equal)units)wcs)fits)projections)InputParameterError)assert_quantity_allclose)get_pkg_data_filenamec                      t          t          j                                      t          j        t          j        z             rJ d S )N)setr   	PRJ_CODESsymmetric_differencer   	projcodes_NOT_SUPPORTED_PROJ_CODES     Glib/python3.11/site-packages/astropy/modeling/tests/test_projections.pytest_new_wcslib_projectionsr      sH     3=!!66 EE      r   c                  `    t          j                    } | j        dk    sJ | j        dk    sJ d S )N   )r   Sky2Pix_PlateCarreen_inputs	n_outputs)
projections    r   test_Projection_propertiesr      s>    022J!####1$$$$$$r      r   testsdatamapsc                     g | ]}|fS r   r   ).0xs     r   
<listcomp>r%   '   s    ,,,,,,r   )XPH)codec                    t           j                            t          d|  d          }t	          |          }t
          j                            |dd          }g }t          d          D ])}d|dz    }||v r|	                    ||                    *t          j        |          }ddg|j
        _        d	d	g|j
        _        ddg|j
        _        |j
                            t           gd          }|j
                            |d
         d          d         }	t%          t&          d| z             }
 |
| } ||d         |d                   \  }}t)          t+          j        |          |	ddd	f                    t)          t+          j        |          |	dddf                    t/          |j        t          j                  sJ dS ,Check astropy model eval against wcslib eval1904-66_.hdrFendcardpadding   PV2_           r   worldpixcrdSky2Pix_phithetaN)ospathjoinMAPS_DIRr   r   Headerfromfilerangeappendr   WCScrvalcrpixcdeltp2sPIX_COORDINATESs2pgetattrr   r   npasarray
isinstanceprjprmPrjprmr'   wcs_map	test_fileheaderparamsikeyw	wcsliboutwcs_pixmodeltinvr$   ys                 r   test_Sky2Pixr[   -   s    gll8%:%:%:%:;;G%g..I[!!)UE!JJFF1XX ' 'QUnn&==MM&+&&&A*AEKa&AEKa&AEK		?+Q//Ieii	'*A..x8GKd!233E5&>D4	% )G"455DAq
1wqqq!t}555
1wqqq!t}555dk3:.......r   c                    t           j                            t          d|  d          }t	          |          }t
          j                            |dd          }g }t          d          D ])}d|dz    }||v r|	                    ||                    *t          j        |          }ddg|j
        _        d	d	g|j
        _        ddg|j
        _        |j
                            t           gd          }|d
         }	|d         }
t#          t$          d| z             } || } |t            \  }}t'          t)          j        |          |	           t'          t)          j        |          |
           dS r*   r+   r,   Fr-   r0   r1   r2   r3   r   r7   r8   Pix2Sky_N)r9   r:   r;   r<   r   r   r=   r>   r?   r@   r   rA   rB   rC   rD   rE   rF   rH   r   r   rI   rJ   r'   rO   rP   rQ   rR   rS   rT   rU   rV   wcs_phi	wcs_thetarX   tanprjr7   r8   s                  r   test_Pix2Skyrc   J   s^    gll8%:%:%:%:;;G%g..I[!!)UE!JJFF1XX ' 'QUnn&==MM&+&&&A*AEKa&AEKa&AEK		?+Q//IG'"IKd!233EUF^F)JC
3111
5))955555r   c                 |   t           j                            t          d|  d          }t	          |          }t
          j                            |dd          }g }t          d          D ])}d|dz    }||v r|	                    ||                    *t          j        |          }ddg|j
        _        d	d	g|j
        _        ddg|j
        _        |j
                            t           gd          }|j
                            |d
         d          d         }	t%          t&          d| z             }
 |
| } ||d         t(          j        z  |d         t(          j        z            \  }}t-          ||	ddd	f         t(          j        z             t-          ||	dddf         t(          j        z             dS r)   )r9   r:   r;   r<   r   r   r=   r>   r?   r@   r   rA   rB   rC   rD   rE   rF   rG   rH   r   udegr
   rN   s                 r   test_Sky2Pix_unitrg   f   s    gll8%:%:%:%:;;G%g..I[!!)UE!JJFF1XX ' 'QUnn&==MM&+&&&A*AEKa&AEKa&AEK		?+Q//Ieii	'*A..x8GKd!233E5&>D4	% 15()G*<qu*DEEDAqQ1 5666Q1 566666r   c                    t           j                            t          d|  d          }t	          |          }t
          j                            |dd          }g }t          d          D ])}d|dz    }||v r|	                    ||                    *t          j        |          }ddg|j
        _        d	d	g|j
        _        ddg|j
        _        |j
                            t           gd          }|d
         }	|d         }
t#          t$          d| z             } || } |t           t&          j        z   \  }}t+          ||	t&          j        z             t+          ||
t&          j        z              |t           t&          j        z                      t&          j                   \  }}t+          ||	t&          j        z             t+          ||
t&          j        z              |t           t&          j        z                      t&          j                   \  }}t+          ||	t&          j        z             t+          ||
t&          j        z             dS r]   )r9   r:   r;   r<   r   r   r=   r>   r?   r@   r   rA   rB   rC   rD   rE   rF   rH   r   re   rf   r
   toradarcminr_   s                  r   test_Pix2Sky_unitrl      s    gll8%:%:%:%:;;G%g..I[!!)UE!JJFF1XX ' 'QUnn&==MM&+&&&A*AEKa&AEKa&AEK		?+Q//IG'"IKd!233EUF^F1501JCS'AE/222UI$5666/AE155ae<<=JCS'AE/222UI$5666/AE155ah??@JCS'AE/222UI$566666r   c                     t          t          d| z             } |            } |dd          \  }}t          t          d| z             } |            } |dd          \  }}dS )z0Check astropy model eval with default parametersr6   -   r^   r   N)rH   r   )r'   rX   rY   r$   rZ   s        r   test_projection_defaultro      sl     Kd!233E577D4B<<DAqKd!233E577D41::DAqqqr   c                   *    e Zd ZdZd Zd Zd Zd ZdS )TestZenithalPerspectivez$Test Zenithal Perspective projectionc                 X   d}t           j                            t          d| d          }t	          |          }t
          j                            |dd          }t          j	        |          | _
        t          j        ddg          | j
        j        _        t          j        ddg          | j
        j        _        t          j        ddg          | j
        j        _        d | j
        j                                        D             | _        t%          j        | j         | _        d S )	NAZPr+   r,   Fr-   r3         ?c                     g | ]
}|d          S r   r   r#   kws     r   r%   z7TestZenithalPerspective.setup_class.<locals>.<listcomp>       ===be===r   )r9   r:   r;   r<   r   r   r=   r>   r   rA   wazprI   arrayrC   rB   rD   get_pvpv_kwr   Pix2Sky_ZenithalPerspectiveazpselfIDrO   rP   rQ   s        r   setup_classz#TestZenithalPerspective.setup_class   s    ',,x)<B)<)<)<==)'22	%%i%NNGFOO	 hSz22	 hSz22	 hSz22	==dim&:&:&<&<===
:DJGr   c                 &   | j         j                            ddggd          }|d         }|d         }|                     dd          \  }}t	          t          j        |          |           t	          t          j        |          |           d S Nr   r   r2   r7   r8   rz   r   rE   r   r   rI   rJ   r   rV   r`   ra   r7   r8   s         r   test_AZP_p2sz$TestZenithalPerspective.test_AZP_p2s       IM%%Ryk155	E"g&	XXc2&&
UBJsOOW555BJu--y99999r   c                    | j         j                            ddggd          }| j         j                            |d         d          d         }| j                            |d         |d                   \  }}t          t          j        |          |d d df                    t          t          j        |          |d d df                    d S 	Nr   r   r2   r4   r5   r7   r8   r   	rz   r   rE   rG   r   inverser   rI   rJ   r   rV   rW   r$   rZ   s        r   test_AZP_s2pz$TestZenithalPerspective.test_AZP_s2p       IM%%Ryk155	)-##Ig$6::8Dx	% 0)G2DEE1BJqMM7111a4=999BJqMM7111a4=99999r   c                 D   d}t          j        t          |          5  t          j        d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        d           d d d            d S # 1 swxY w Y   d S )Nz:Zenithal perspective projection is not defined for mu = -1match)pytestraisesr	   r   r~   Sky2Pix_ZenithalPerspective Pix2Sky_SlantZenithalPerspective Sky2Pix_SlantZenithalPerspective)r   MESSAGEs     r   test_validatez%TestZenithalPerspective.test_validate   s   O].g>>> 	8 	83B777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 ].g>>> 	8 	83B777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 ].g>>> 	= 	=8<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= ].g>>> 	= 	=8<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=sE   ?AA%BB
B
,CCC3DDDN)__name__
__module____qualname____doc__r   r   r   r   r   r   r   rq   rq      sY        ..
H 
H 
H: : :: : := = = = =r   rq   c                   *    e Zd ZdZd Zd Zd Zd ZdS )TestCylindricalPerspectivez'Test cylindrical perspective projectionc                 X   d}t           j                            t          d| d          }t	          |          }t
          j                            |dd          }t          j	        |          | _
        t          j        ddg          | j
        j        _        t          j        ddg          | j
        j        _        t          j        ddg          | j
        j        _        d | j
        j                                        D             | _        t%          j        | j         | _        d S )	NCYPr+   r,   Fr-   r3   rt   c                     g | ]
}|d          S rv   r   rw   s     r   r%   z:TestCylindricalPerspective.setup_class.<locals>.<listcomp>   ry   r   )r9   r:   r;   r<   r   r   r=   r>   r   rA   rz   rI   r{   rC   rB   rD   r|   r}   r   Pix2Sky_CylindricalPerspectiver   r   s        r   r   z&TestCylindricalPerspective.setup_class   s    ',,x)<B)<)<)<==)'22	%%i%NNGFOO	 hSz22	 hSz22	 hSz22	==dim&:&:&<&<===
=tzJr   c                 &   | j         j                            ddggd          }|d         }|d         }|                     dd          \  }}t	          t          j        |          |           t	          t          j        |          |           d S r   r   r   s         r   test_CYP_p2sz'TestCylindricalPerspective.test_CYP_p2s   r   r   c                    | j         j                            ddggd          }| j         j                            |d         d          d         }| j                            |d         |d                   \  }}t          t          j        |          |d d df                    t          t          j        |          |d d df                    d S r   r   r   s        r   test_CYP_s2pz'TestCylindricalPerspective.test_CYP_s2p   r   r   c                 p   d}d}d}t          j        t          |          5  t          j        dd           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        dd           d d d            n# 1 swxY w Y   t          j                    }t          j        t          |          5  d|_        d d d            n# 1 swxY w Y   t          j        t          |          5  d|_        d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        dd           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        dd           d d d            n# 1 swxY w Y   t          j                    }t          j        t          |          5  d|_        d d d            n# 1 swxY w Y   t          j        t          |          5  d|_        d d d            d S # 1 swxY w Y   d S )Nz$CYP projection is not defined for .*z.CYP projection is not defined for mu = -lambdaz.CYP projection is not defined for lambda = -mur   r2   r   )r   r   r	   r   r   mulamSky2Pix_CylindricalPerspective)r   r   MESSAGE0MESSAGE1rX   s        r   r   z(TestCylindricalPerspective.test_validate   s   9DD ].g>>> 	> 	>6q"===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>].g>>> 	> 	>6r1===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> :<<].h??? 	 	EH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	].h??? 	 	EI	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ].g>>> 	> 	>6q"===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>].g>>> 	> 	>6r1===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> :<<].h??? 	 	EH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	].h??? 	 	EI	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAA*BBBCC C?DDD9EE"EF##F'*F'G00G47G4H++H/2H/N)r   r   r   r   r   r   r   r   r   r   r   r   r      sY        11
K 
K 
K: : :: : :    r   r   c                     t          j        ddgddggddg          } ddgddgddgddgg}t          | \  }}t          j         | ||                    j        }t          j        |ddgddgddgddggk              sJ d}t          j        t          |          5  g d	g d
g dg| _
        d d d            n# 1 swxY w Y   d}t          j        t          |          5  g d	| _        d d d            n# 1 swxY w Y   t          j        t          |          5  dgdgg| _        d d d            n# 1 swxY w Y   t          j        t          |          5  g d	g| _        d d d            n# 1 swxY w Y   t          j        dgdgdgdgg          }|                                }t          j                            t          dd||g          5 }d}t          j        t"          |          5   | ||           d d d            n# 1 swxY w Y   t          j        t"          |          5   | ||           d d d            n# 1 swxY w Y   |j        dk    sJ 	 d d d            n# 1 swxY w Y   t          j        ddg          }t          j        g d	          }d}t          j        t"          |          5  |                     ||| j
        | j                   d d d            d S # 1 swxY w Y   d S )Nr   r   r2   matrixtranslationr0      z0Expected transformation matrix to be a 2x2 arrayr   )r2   r   r0   )         )r      	   zHExpected translation vector to be a 2 element row or column vector arrayr   vstackT)autospecside_effectzIncompatible input shapesz,Expected input arrays to have the same shape)r   AffineTransformation2DziprI   r   Tallr   r   r	   r   r   r{   ravelmkpatchobject
ValueError
call_countevaluate)	rX   rectr$   rZ   new_rectr   ab	mk_vstacks	            r   test_AffineTransformation2Dr     s#   .AAaV  E
 FQFQFQF+D:DAqyq!%%'H6(1v1v1v1v>>????? BG	*'	:	:	: 9 9!		999iii89 9 9 9 9 9 9 9 9 9 9 9 9 9 9
 	T  
*'	:	:	: & &%II& & & & & & & & & & & & & & &	*'	:	:	: ' 'S1#J' ' ' ' ' ' ' ' ' ' ' ' ' ' '	*'	:	:	: ( (&YYK( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 	1#sQC!%&&A			A	X1a&	I	I )Y.]:W555 	 	E!QKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:W555 	 	E!QKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	#q((((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) 	!QA
A=G	z	1	1	1 > >q!U\5+<===> > > > > > > > > > > > > > > > > >s   B<<C C $
C::C>C> D88D<?D<E55E9<E9I58HI5H	I5H	I57II5I	I5I	I55I9<I9	#K99K= K=c                     t          j        ddgddgg          } d}t          j        t          |          5  | j         d d d            n# 1 swxY w Y   t          j        ddgddggd	d
g          }ddgddgddgddgg}t          | \  }} |j         |||           \  }}t          ||g||gd           t          j        ddgddggt          j	        z  d	d
gt          j	        z            } |j         ||t          j	        z  |t          j	        z             \  }}t          ||g||gd           t          j        ddgddggt          j	        z  d	d
gt          j
        z            }	d}t          j        t          |          5   |	j         |	|t          j	        z  |t          j	        z              d d d            d S # 1 swxY w Y   d S )Nr2   r   zDTransformation matrix is singular; .* model does not have an inverser   g333333?g333333@gffffff@g333333@g333333"@gQ8$@r   r   r0   g|=atolz/matrix and translation must have the same units)r   r   r   r   r	   r   r   r   re   mkmr   )
model1r   model2r   r$   rZ   x_newy_newmodel3model4s
             r   #test_AffineTransformation2D_inverser   N  s   /AA7GHHHFUG	*'	:	:	:                 /c
S#J'c5\  F
 FQFQFQF+D:DAq!6>66!Q<<0LE5QFUEN7777/c
S#J'!#-C<!#;M  F "6>66!ac'1qs7#;#;<LE5QFUEN7777/c
S#J'!#-C<!$;N  F AG	z	1	1	1 2 2q13wAC00112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s#   AAA/GGGc                     t          j        d                              d          } t          j        dd          } || d d df         | d d df                   \  }}t          |g d           t          |g d           d S )	N
   r   r   r   r   r   r2   )r3   gɑ)z;@g,6@g@g|]!@)g	SgB*{RgR_
Rg,262RgykQ)rI   arangereshaper   r   r   )coordsrX   r7   r8   s       r   test_c_projection_stridingr   q  s     Yr]]""6**F3Ar::Evaaad|VAAAqD\22JCLLLMMMOOO    r   c                  4   d\  } }t          j        dd|           }t          j        dd|          }t          j        ||          \  }}t          j                    } |||          \  }}t          |g dg dg           t          |g dg dg           d S )Nr   r   r2   )r3        V@r   r   r   )g     f@g5׾d@g-c@g?Lg)a@g     `@)r   g? pV@g95 `V@g\ PV@EΩ@V@)r   gl	>V@g6	tt8V@g?0V@g:%V@)rI   linspacemeshgridr   Pix2Sky_TANr   )	nxnyr$   rZ   xvyvrX   r7   r8   s	            r   test_c_projections_shapedr     s    FB
Aq"A
Aq"A[AFB#%%Er2JC)))DDD	
   FFFMMM	
    r   c            
         d} d}| t           j        z                      t           j        t          j        dt           j        z  t           j        z                      }|t           j        z                      t           j        t          j        dt           j        z  t           j        z                      }| t           j        z  }|t           j        z  }t          j        ddgddggt           j        z            }d}t          j        t          |          5   |||t          j        dt           j        z  t           j        z            t          j        dt           j        z  t           j        z            d          \  }}	d d d            n# 1 swxY w Y   t          j        ddgddggt           j        z  ddgt           j        z  	          } |||t          j        dt           j        z  t           j        z            t          j        dt           j        z  t           j        z            d          \  }}	t          j        ddgddggddg	          }
 |
|j
        |j
                  \  }}t          ||t           j        z             t          |	|t           j        z             t          j        d
dgdd
gg          }t          j        ddgddgg          }||z  }t          j        |t           j        z  ddgt           j        z  	          }t          j                            |          }t          j        |t           j        z  ddgt           j        z  	          }||_         |||t          j        dt           j        z  t           j        z            t          j        dt           j        z  t           j        z            d          \  }}	|                    ||	t          j        dt           j        z  t           j        z            t          j        dt           j        z  t           j        z            d          \  }}t          ||           t          ||           d S )Nr2   r   g      @)equivalenciesr   zWTo use AffineTransformation with quantities, both matrix and unit need to be quantitiesr   )r$   rZ   r   gd?gj`?gj`gK5 ?gfP< ?r   )re   pixri   rf   pixel_scaler   r   r   r   r   valuer
   rI   r{   linalginvr   )r$   rZ   xdegydegxpixypixqaffr   qx1qy1affx1y1pcrD   r   
inv_matrixinv_qaffs                     r   test_affine_with_quantitiesr    sV   	A	AI>>!%q}S15[15=P/Q/Q>RRDI>>!%q}S15[15=P/Q/Q>RRDqu9Dqu9D -q!fq!f5E5MNNND	  
z	1	1	1 
 
4]3;#677]3;#677 
 
 
S
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 -AA!%'aVae^  D tsQU{QU233sQU{QU233
 
  HC 
,AAaV  C STZ((FBS"qu*---S"qu*--- 
/0 01	

 
B H#$ !$	
 E RZF-~Aq6AE>  D v&&J1AE!1v~  H DLtq15y15011q15y15011
 
  HC \\q15y15011q15y15011
 
   FB R&&&R&&&&&s   A-FFFc                  :   t          j        dd          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J t          |j        | j                   t          |j        d           t          j	        ddd          }t          j	        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S Nr   r   r   r2   d   -q=r   )
r   r~   r   rK   r   r   r   gammarI   r   rX   r   r$   rZ   r   r   s         r   (test_Pix2Sky_ZenithalPerspective_inverser    s7   3Ar::EmGg{FGGGGG:&&&&Q&&&&&&GM5;///GM2&&&
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                  :   t          j        dd          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J t          |j        | j                   t          |j        d           t          j	        ddd          }t          j	        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )
r   r   r   rK   Pix2Sky_AZPr   r   r  rI   r   r  s         r   (test_Sky2Pix_ZenithalPerspective_inverser    s7   3Ar::EmGg{677777:&&&&Q&&&&&&GM5;///GM2&&&
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                  F   t          j        ddd          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J t          |j        | j                   t          |j        | j                   t          j
        ddd          }t          j
        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S 	Nr   r   (   r   r2   r  r  r   )r   r   r   rK   r   r   r   phi0theta0rI   r   r  s         r   -test_Pix2Sky_SlantZenithalPerspective_inverser    ;   8BCCEmGg{KLLLLL:&&&&Q&&&&&&GL%*---GNEL111
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                  F   t          j        ddd          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J t          |j        | j                   t          |j        | j                   t          j
        ddd          }t          j
        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   r   r   rK   r   r   r   r  r  rI   r   r  s         r   -test_Sky2Pix_SlantZenithalPerspective_inverser  (  r  r   c                  6   t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } | | ||           \  }}t          ||d           t          ||d           d S Nr   r2   r  r  r   )r   Pix2Sky_Gnomonicr   rK   Sky2Pix_GnomonicrI   r   r   r  s         r   test_Pix2Sky_Gnomonic_inverser  :  s    (**EmGg{;<<<<<
Aq#A
Aq#A7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                  6   t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d           d S r  )r   r  r   rK   r  rI   r   r   r  s         r   test_Sky2Pix_Gnomonic_inverser  F  s    (**EmGg{;<<<<<
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%%%r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   Pix2Sky_Stereographicr   rK   Sky2Pix_StereographicrI   r   r   r  s         r   "test_Pix2Sky_Stereographic_inverser  R      -//EmGg{@AAAAA
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   r  r   rK   r  rI   r   r   r  s         r   "test_Sky2Pix_Stereographic_inverser"  a  r   r   c                     t          j        dd          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J |j        | j        cxk    rdk    sn J t          j        ddd          }t          j        ddd          } | | ||           \  }}t          ||d           t          ||d           d S Nr   r   r   r2   r  g:0yE>r   )
r   Pix2Sky_SlantOrthographicr   rK   Sky2Pix_SlantOrthographicxietarI   r   r   r  s         r   &test_Pix2Sky_SlantOrthographic_inverser)  p  s    1!R88EmGg{DEEEEE:&&&&Q&&&&&&;%)))))r))))))
Aq#A
Aq#A7EE!QKK DAqAqt$$$$Aqt$$$$$$r   c                     t          j        dd          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J |j        | j        cxk    rdk    sn J t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d           d S r$  )
r   r&  r   rK   r%  r'  r(  rI   r   r   r  s         r   &test_Sky2Pix_SlantOrthographic_inverser+  ~  s    1!R88EmGg{DEEEEE:&&&&Q&&&&&&;%)))))r))))))
Aq#A
Aq#A5''!Q-- DAqAqt$$$$Aqt$$$$$$r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   Pix2Sky_ZenithalEquidistantr   rK   Sky2Pix_ZenithalEquidistantrI   r   r   r  s         r   (test_Pix2Sky_ZenithalEquidistant_inverser/        355EmGg{FGGGGG
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   r.  r   rK   r-  rI   r   r   r  s         r   (test_Sky2Pix_ZenithalEquidistant_inverser2    r0  r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   Pix2Sky_ZenithalEqualArear   rK   Sky2Pix_ZenithalEqualArearI   r   r   r  s         r   &test_Pix2Sky_ZenithalEqualArea_inverser6        133EmGg{DEEEEE
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   r5  r   rK   r4  rI   r   r   r  s         r   &test_Sky2Pix_ZenithalEqualArea_inverser9    r7  r   c                     t          j        d          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S Nr   r   r2   r  r  r   )	r   Pix2Sky_Airyr   rK   Sky2Pix_Airytheta_brI   r   r   r  s         r   test_Pix2Sky_Airy_inverser?       $R((EmGg{788888?em1111r111111
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                     t          j        d          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r;  )	r   r=  r   rK   r<  r>  rI   r   r   r  s         r   test_Sky2Pix_Airy_inverserB    r@  r   c                     t          j        dd          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J |j        | j        cxk    rdk    sn J t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )
r   r   r   rK   r   r   r   rI   r   r   r  s         r   +test_Pix2Sky_CylindricalPerspective_inverserD    :   6q"==EmGg{IJJJJJ:&&&&Q&&&&&&;%)))))r))))))
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                     t          j        dd          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J |j        | j        cxk    rdk    sn J t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )
r   r   r   rK   r   r   r   rI   r   r   r  s         r   +test_Sky2Pix_CylindricalPerspective_inverserG    rE  r   c                      t          j        d          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J d S )Ng/$?)r   Pix2Sky_CylindricalEqualArear   rK   Sky2Pix_CylindricalEqualArear   rX   r   s     r   )test_Pix2Sky_CylindricalEqualArea_inverserL  
  a    4U;;EmGg{GHHHHH;%),,,,u,,,,,,,,r   c                      t          j        d          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J d S )Ng{Gz?)r   rJ  r   rK   rI  r   rK  s     r   )test_Sky2Pix_CylindricalEqualArea_inverserO    rM  r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   Pix2Sky_PlateCarreer   rK   r   rI   r   r   r  s         r    test_Pix2Sky_PlateCarree_inverserR        +--EmGg{>?????
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   r   r   rK   rQ  rI   r   r   r  s         r    test_Sky2Pix_PlateCarree_inverserU  '  rS  r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   Pix2Sky_Mercatorr   rK   Sky2Pix_MercatorrI   r   r   r  s         r   test_Pix2Sky_Mercator_inverserY  6      (**EmGg{;<<<<<
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   rX  r   rK   rW  rI   r   r   r  s         r   test_Sky2Pix_Mercator_inverser\  E  rZ  r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   Pix2Sky_SansonFlamsteedr   rK   Sky2Pix_SansonFlamsteedrI   r   r   r  s         r   $test_Pix2Sky_SansonFlamsteed_inverser`  T      /11EmGg{BCCCCC
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   r_  r   rK   r^  rI   r   r   r  s         r   $test_Sky2Pix_SansonFlamsteed_inverserc  c  ra  r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   Pix2Sky_Parabolicr   rK   Sky2Pix_ParabolicrI   r   r   r  s         r   test_Pix2Sky_Parabolic_inverserg  r      )++EmGg{<=====
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   rf  r   rK   re  rI   r   r   r  s         r   test_Sky2Pix_Parabolic_inverserj    rh  r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   Pix2Sky_Molleweider   rK   Sky2Pix_MolleweiderI   r   r   r  s         r   test_Pix2Sky_Molleweide_inversern        *,,EmGg{=>>>>>
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   rm  r   rK   rl  rI   r   r   r  s         r   test_Sky2Pix_Molleweide_inverserq    ro  r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   Pix2Sky_HammerAitoffr   rK   Sky2Pix_HammerAitoffrI   r   r   r  s         r   !test_Pix2Sky_HammerAitoff_inverseru        ,..EmGg{?@@@@@
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   rt  r   rK   rs  rI   r   r   r  s         r   !test_Sky2Pix_HammerAitoff_inverserx    rv  r   c                  :   t          j        dd          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J t          |j        | j                   t          |j        d           t          j	        ddd          }t          j	        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )
r   Pix2Sky_ConicPerspectiver   rK   Sky2Pix_ConicPerspectivesigmar   deltarI   r   r  s         r   %test_Pix2Sky_ConicPerspective_inverser~    7   0B77EmGg{CDDDDD=EK,,,,1,,,,,,GM5;///GM2&&&
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                  :   t          j        dd          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J t          |j        | j                   t          |j        d           t          j	        ddd          }t          j	        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )
r   r{  r   rK   rz  r|  r   r}  rI   r   r  s         r   %test_Sky2Pix_ConicPerspective_inverser    r  r   c                  :   t          j        dd          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J t          |j        | j                   t          |j        d           t          j	        ddd          }t          j	        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )
r   Pix2Sky_ConicEqualArear   rK   Sky2Pix_ConicEqualArear|  r   r}  rI   r   r  s         r   #test_Pix2Sky_ConicEqualArea_inverser    7   .q"55EmGg{ABBBBB=EK,,,,1,,,,,,GM5;///GM2&&&
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                  :   t          j        dd          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J t          |j        | j                   t          |j        d           t          j	        ddd          }t          j	        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )
r   r  r   rK   r  r|  r   r}  rI   r   r  s         r   #test_Sky2Pix_ConicEqualArea_inverser    r  r   c                  :   t          j        dd          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J t          |j        | j                   t          |j        d           t          j	        ddd          }t          j	        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )
r   Pix2Sky_ConicEquidistantr   rK   Sky2Pix_ConicEquidistantr|  r   r}  rI   r   r  s         r   %test_Pix2Sky_ConicEquidistant_inverser    r  r   c                  :   t          j        dd          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J t          |j        | j                   t          |j        d           t          j	        ddd          }t          j	        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )
r   r  r   rK   r  r|  r   r}  rI   r   r  s         r   %test_Sky2Pix_ConicEquidistant_inverser  &  r  r   c                  :   t          j        dd          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J t          |j        | j                   t          |j        d           t          j	        ddd          }t          j	        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )
r   Pix2Sky_ConicOrthomorphicr   rK   Sky2Pix_ConicOrthomorphicr|  r   r}  rI   r   r  s         r   &test_Pix2Sky_ConicOrthomorphic_inverser  8  7   1!R88EmGg{DEEEEE=EK,,,,1,,,,,,GM5;///GM2&&&
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                  :   t          j        dd          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J t          |j        | j                   t          |j        d           t          j	        ddd          }t          j	        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )
r   r  r   rK   r  r|  r   r}  rI   r   r  s         r   &test_Sky2Pix_ConicOrthomorphic_inverser  J  r  r   c                     t          j        d          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S Nr   r   r2   r  r  r   )	r   Pix2Sky_BonneEqualArear   rK   Sky2Pix_BonneEqualAreatheta1rI   r   r   r  s         r   #test_Pix2Sky_BonneEqualArea_inverser  \     .q11EmGg{ABBBBB>U\....Q......
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                     t          j        d          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )	r   r  r   rK   r  r  rI   r   r   r  s         r   #test_Sky2Pix_BonneEqualArea_inverser  l  r  r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   Pix2Sky_Polyconicr   rK   Sky2Pix_PolyconicrI   r   r   r  s         r   test_Pix2Sky_Polyconic_inverser  |  rh  r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   r  r   rK   r  rI   r   r   r  s         r   test_Sky2Pix_Polyconic_inverser    rh  r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   Pix2Sky_TangentialSphericalCuber   rK   Sky2Pix_TangentialSphericalCuberI   r   r   r  s         r   ,test_Pix2Sky_TangentialSphericalCube_inverser        799EmGg{JKKKKK
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   r  r   rK   r  rI   r   r   r  s         r   ,test_Sky2Pix_TangentialSphericalCube_inverser    r  r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S Nr   r2   r  gMbP?r   )r   Pix2Sky_COBEQuadSphericalCuber   rK   Sky2Pix_COBEQuadSphericalCuberI   r   r   r  s         r   *test_Pix2Sky_COBEQuadSphericalCube_inverser        577EmGg{HIIIII
Aq#A
Aq#A5''!Q-- DAqAqt$$$$Aqt$$$$7EE!QKK DAqAqt$$$$Aqt$$$$$$r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   r  r   rK   r  rI   r   r   r  s         r   *test_Sky2Pix_COBEQuadSphericalCube_inverser    r  r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   Pix2Sky_QuadSphericalCuber   rK   Sky2Pix_QuadSphericalCuberI   r   r   r  s         r   &test_Pix2Sky_QuadSphericalCube_inverser    r7  r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   r  r   rK   r  rI   r   r   r  s         r   &test_Sky2Pix_QuadSphericalCube_inverser    r7  r   c                     t          j        dd          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J |j        | j        cxk    rdk    sn J t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )
r   Pix2Sky_HEALPixr   rK   Sky2Pix_HEALPixHXrI   r   r   r  s         r   test_Pix2Sky_HEALPix_inverser    :   '2..EmGg{:;;;;;9$$$$1$$$$$$9%%%%2%%%%%%
Aq#A
Aq#A5''!Q-- DAqAqu%%%%Aqu%%%%7EE!QKK DAqAqu%%%%Aqu%%%%%%r   c                     t          j        dd          } | j        }t          |t           j                  sJ |j        | j        cxk    rdk    sn J |j        | j        cxk    rdk    sn J t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )
r   r  r   rK   r  r  r  rI   r   r   r  s         r   test_Sky2Pix_HEALPix_inverser    r  r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   Pix2Sky_HEALPixPolarr   rK   Sky2Pix_HEALPixPolarrI   r   r   r  s         r   !test_Pix2Sky_HEALPixPolar_inverser    rv  r   c                     t          j                    } | j        }t          |t           j                  sJ t          j        ddd          }t          j        ddd          } |  |||           \  }}t          ||d           t          ||d            | | ||           \  }}t          ||d           t          ||d           d S r  )r   r  r   rK   r  rI   r   r   r  s         r   !test_Sky2Pix_HEALPixPolar_inverser  %  rv  r   )gr   r9   unittest.mockmockr   numpyrI   r   numpy.testingr   r   astropyr   re   r   
astropy.ior   astropy.modelingr   astropy.modeling.parametersr	   astropy.tests.helperr
   astropy.utils.datar   r   r   rF   r:   r;   pardirr<   r   parsremovemarkparametrizer[   rc   rg   rl   ro   rq   r   r   r   r   r   r  r  r  r  r  r  r  r  r"  r)  r+  r/  r2  r6  r9  r?  rB  rD  rG  rL  rO  rR  rU  rY  r\  r`  rc  rg  rj  rn  rq  ru  rx  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   <module>r     s   3 2 				            > > > > > > > >                   ( ( ( ( ( ( ; ; ; ; ; ; 9 9 9 9 9 9 4 4 4 4 4 4  % % % )7<<	29eWffMM,,k+,,, H    D))/ / *)/8 D))6 6 *)66 D))7 7 *)74 D))7 7 *)7B D))  *)+= += += += += += += +=\9 9 9 9 9 9 9 9x/> /> />d 2  2  2F     6S' S' S'l& & &$& & &$& & &$& & &$	& 	& 	&	& 	& 	&& & && & &% % %% % %& & && & && & && & && & & & & & & & &"& & &"- - -- - -& & && & && & && & && & && & && & && & && & && & && & && & && & &$& & &$& & &$& & &$& & &$& & &$& & &$& & &$& & & & & & & & && & && & && & &% % %% % %& & && & && & &"& & &"& & && & & & &r   