
    IR-eA              
           d Z ddlmZmZ ddlZddlmZ ddl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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 ej        D             Zg dd ej        D             z   d ej        D             z   Zd ej        D             Z ej         d           ej!        d           e             ej"        d           ej#        g d           ej$        g dg dg          gZ%g dZ&g dZ' ej(        ddd            ej)        ddd            ej*        ddd d!           ej+        g d"d!#           ej,        g d"d!           ej"        d          gZ- ej.                    d$             Z/ ej.                    d%             Z0ej1        2                    e d&'          ej1        3                    d(ej                  d)                         Z4ej1        3                    d(e          d*             Z5ej1        2                    e d&'          ej1        3                    d+e%          d,                         Z6d- Z7d. Z8ej1        3                    d(ej                  d/             Z9ej1        3                    d(e&          d0             Z:ej1        3                    d(e'          d1             Z;d2 Z<d3 Z=ej1        3                    d(ej                  d4             Z>ej1        3                    d(e          d5             Z?ej1        3                    d+e-          d6             Z@ej1        2                    e d&'          d7             ZAdS )8z Tests that models are picklable.    )dumpsloadsN)assert_allclose)units)	HAS_SCIPY)functional_models)mappings)math_functions)physical_models)
polynomial)	powerlaws)projections)	rotations)spline)tabular)ArctanhUfuncc              #   &   K   | ]}|d k    |V  dS )r   N .0funcs     Blib/python3.11/site-packages/astropy/modeling/tests/test_pickle.py	<genexpr>r      s,      TT4T^=S=S$=S=S=S=STT    )
ProjectionPix2SkyProjectionSky2PixProjectionZenithalConicCylindricalPseudoCylindricalPseudoConicQuadCubeHEALPixAffineTransformation2D	projcodesPix2Sky_ZenithalPerspectivec                     g | ]}d | S )Pix2Sky_r   r   codes     r   
<listcomp>r,   ,   !    ;;;T$;;;r   c                     g | ]}d | S )Sky2Pix_r   r*   s     r   r,   r,   -   r-   r   c              #   ,   K   | ]}|t           v|V  d S N)PROJ_TO_REMOVEr   s     r   r   r   0   s,      RRt>7Q7Qt7Q7Q7Q7QRRr   )   r         )r3   r4         )lookup_table)            )Chebyshev1D	Hermite1D
Legendre1DPolynomial1D)Chebyshev2D	Hermite2D
Legendre2D
InverseSIP   "   xyz)rE   r5   rF   )
axes_orderc                      dS )N)g333333?g?r   r   r   r   inputsrJ   H   s    8r   c                      dS )N)r3   g      r   r   r   r   inputs_mathrL   M   s    7r   zrequires scipy)reasonmodelc                     t          t          |                      }t          t          |                    }|j        dk    r0t           || d                    || d                              d S t           ||   ||             d S Nr3   r   )getattrr   r   r   n_inputsr   )rJ   rN   mmps       r   test_pickle_functionalrU   R   s     	*!5))++A	uQxxBzQ&)bbmm444446
BBK00000r   c                     t          t          |                      }t          t          |                    }|j        dk    r0t           || d                    || d                              d S t           ||   ||             d S rP   )rQ   r
   r   r   rR   r   )rL   rN   rS   rT   s       r   test_pickle_math_functionsrW   ]   s    &&&((A	uQxxBzQ+a.))22k!n+=+=>>>>>;[)9:::::r   rS   c                     t          t          |                    }|j        dk    r0t           || d                    || d                              d S t           ||   ||             d S rP   r   r   rR   r   rJ   rS   rT   s      r   test_pickle_otherr[   g   sp     
uQxxBzQ&)bbmm444446
BBK00000r   c                    t          j        t          j        d ff          }t	          t          |                    }t           || d         t          j        z             || d         t          j        z                       d S )Nr   )r	   UnitsMappingurS   r   r   r   kmrZ   s      r   test_pickle_units_mappingr`   q   sk    T{n--A	uQxxBAAfQi!$&''F1I,<)=)=>>>>>r   c                     t          j        ddgddggddg          }d|j        _        t	          t          |                    }t           ||   ||             |j        j        du sJ d S )Nr3   )matrixtranslationT)r   r%   rb   fixedr   r   r   rZ   s      r   $test_pickle_affine_transformation_2Dre   w   s|    *Aq6Aq62BQRTUPVWWWAAHN	uQxxBAAvJF,,,8>T!!!!!!r   c                     t          t          |                      }t          t          |                    }|j        dk    r0t           || d                    || d                              d S t           ||   ||             d S rP   )rQ   r   r   r   rR   r   rJ   rN   rS   m1s       r   test_pickle_physical_modelsri      s    '''))A	uQxxBzQ&)bbmm444446
BBK00000r   c                     t          t          |          } |d          }t          t          |                    }t	           || d                    || d                              d S )Nr4   r3   r   rQ   r   r   r   r   rg   s       r   test_pickle_1D_polynomialsrl      s]    
E""A	!A	uQxxBAAfQiLL""VAY--00000r   c                     t          t          |          } |dd          }t          t          |                    }t	           ||   ||             d S )Nr4   r6   rk   rg   s       r   test_pickle_2D_polynomialsrn      sS    
E""A	!QA	uQxxBAAvJF,,,,,r   c                     t           j        } |d          }t          t          |                    }t	           ||   ||             d S )Nr4   )r   Polynomial2Dr   r   r   rJ   rS   rh   s      r   test_pickle_polynomial_2Drr      sL     	A	!A	uQxxBAAvJF,,,,,r   c                     t           j        } |ddd          }t          t          |                    }t	           ||   ||             d S )N)   r5   r4   r6   )r   SIPr   r   r   rq   s      r   test_pickle_siprv      sO    A	(AqA	uQxxBAAvJF,,,,,r   c                     t          t          |                      }t          t          |                    }|j        dk    r0t           || d                    || d                              d S t           ||   ||             d S rP   )rQ   r   r   r   rR   r   rg   s       r   test_pickle_powerlawsrx      s    !	5!!##A	uQxxBzQ&)bbmm444446
BBK00000r   c                      t          t          |                      }t          t          |                    }t	           ||   ||             d S r1   )rQ   r   r   r   r   rg   s       r   test_pickle_projectionsrz      sL    #U##%%A	uQxxBAAvJF,,,,,r   c                     t          t          |                    }|j        dk    rt           ||   ||             d S t           || d         g| R   || d         g| R             d S )Nr4   r   rY   rZ   s      r   test_pickle_rotationsr|      s    	uQxxBzQ6
BBK00000&)-f---rr&)/Ef/E/E/EFFFFFr   c                    d }t           j                            d          }t          j        ddd          } |||          }t	          j                    }t	          j        d          } ||||          }t          t          |                    }t           || d                    || d                              d S )Nc                 >    t          j        | dz             d|z  z   S )Nr4   g?)npexp)xnoises     r   r   z test_pickle_spline.<locals>.func   s    v1gu,,r   2   r6   )degreer   )
r   randomrandnlinspacer   SplineInterpolateFitterSpline1Dr   r   r   )	rJ   r   r   r   yfittersplrS   rT   s	            r   test_pickle_spliner      s    - - - IOOBE
B2AQA+--F
/
#
#
#CsAqA	uQxxBAAfQiLL""VAY--00000r   )B__doc__pickler   r   numpyr   numpy.testingr   pytestastropyr   r^   "astropy.utils.compat.optional_depsr   astropy.modelingr   r	   r
   r   r   r   r   r   r   r   astropy.modeling.math_functionsr   __all__MATH_FUNCTIONSr&   r2   PROJECTIONSMappingIdentity
Rotation2D	Tabular1D	Tabular2DOTHER_MODELSPOLYNOMIALS_1DPOLYNOMIALS_2DRotateCelestial2NativeRotateNative2CelestialEulerAngleRotationRotationSequence3DSphericalRotationSequence	ROTATIONSfixturerJ   rL   markskipifparametrizerU   rW   r[   r`   re   ri   rl   rn   rr   rv   rx   rz   r|   r   r   r   r   <module>r      s|   & &             ) ) ) ) ) )        8 8 8 8 8 8 . . . . . . % % % % % % + + + + + + , , , , , , ' ' ' ' ' ' & & & & & & ( ( ( ( ( ( & & & & & & # # # # # # $ $ $ $ $ $ 8 8 8 8 8 8TT>#9TTT   <;[%:;;;<  <;[%:;;;!< ( SR 3RRR HVHaLNNIG<<<000GLLL,,,#?@@@ LKKIII %I$RR00$I$RR00 I RU33 I %@@@'I'e<<I	       	M*:;;"3";<<1 1 =< <;1 .11; ; 21; 	M*:;;l++1 1 ,+ <;1? ? ?" " " /"9::1 1 ;:1 .111 1 211 .11- - 21-- - -- - - )"3441 1 541 +..- - /.- i((G G )(G 	M*:;;1 1 <;1 1 1r   