
    IR-e                        d Z ddlZddl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mZmZmZmZmZ  ej        dd	
          Z ej        dd
          Z ej        dd
          Z ej        dd
          Z edd
          Z edd
          Z edd
          Z ej        dd
          Z ej        dd
          Z  ej        dd
          Z! ej"        dd
          Z# ej$        g d           ej$        g dg dg dg dg          fZ%eez  eez  z  eez  ez  z   ej$        g d           ej$        ddgddgddgg          ffeez  ez  ez  e e!z  z   ej$        ddg           ej$        ddgddgg          ffeeez  z   ej$        g d           ej$        ddgddgddgg          ffeez  ez  eez  z   ej$        g d           ej$        ddgddgddgg          ffeeez  z  eez  z   ej$        ddg           ej$        dgdgg          ffee ez  z   ej$        ddg           ej$        ddgddgg          ffeeez  z  e%feez  ez  e%feez  ez  e%feez  eez  z   ej$        g d            ej$        g d!g d!g d"g d#g d$g          ffd%
Z&d& Z'd' Z(d( Z)d) Z*ej+        ,                    d*e&-                                          d+             Z.d, Z/dS )-z
Test separability of models.

    N)assert_allclose)custom_modelmodels)ModelDefinitionError)Mapping)_arith_oper_cdot_coord_matrix_cstackis_separableseparability_matrix   shift1)name   sh2scl1scl2)r   r   r   r   map1r   r   r   map2r   r   map3rotationp2p22p1)FFTT)TTFF)FFTF)FFFT)FFTTF)FFTTT)TTFFF)FFTFF)FFFTF)FFFFT)
cm1cm2cm3cm4cm5cm7cm8cm9cm10cm11c                  J   t          t          dd          } t          t          j        ddgddgg          |            t          t          dd          } t          t          j        ddgddgg          |            t          t
          dd          } t          t          j        dgdgg          |            t          t
          dd          } t          t          j        dgg          |            t          t          dd          } t          t          j        dgdgg          |            t          t          dd          } t          t          j        dgdgg          |            t          t          dd          } t          t          j        dgdgdgg          |            t          t          dd          } t          t          j        dgdgg          |            t          t          dd          } t          t          j        dgdgdgg          |            d S )Nleftr   r   r   right   )r
   r   r   nparrayr   sh1r   )cs    Elib/python3.11/site-packages/astropy/modeling/tests/test_separable.pytest_coord_matrixr1   i   s   b&!$$ABHq!fq!f-..222b'1%%ABHq!fq!f-..222b&!$$ABHqcA3Z((!,,,b&!$$ABHqcUOOQ'''c61%%ABHqcA3Z((!,,,c7A&&ABHqcA3Z((!,,,c7A&&ABHqcA3_--q111dFA&&ABHqcA3Z((!,,,dFA&&ABHqcA3_--q11111    c                     t          t          t                    } t          | t	          j        dgg                     t          t          t                    } t          | t	          j        ddgg                     t          t          t                    } t          | t	          j        ddgddgg                     t          t          d          t                    } t          | t	          j        dgdgg                     t          j
        t          d          5  t          t          t                     d d d            d S # 1 swxY w Y   d S )Nr   r   r   z5Models cannot be combined with the \"|\" operator; .*match)r	   r.   r   r   r,   r-   rotr   r   pytestraisesr   r   results    r0   	test_cdotr;   ~   sX   3FFBHqcUOO,,,3^^FFBHq!fX..///3__FFBHq!fq!f%56677776??C((FFBHqcA3Z00111	F
 
 
   	c4	                 s   #EEEc            	         t          t          t                    } t          | t	          j        ddgddgg                     t          t          t                    } t          | t	          j        g dg dg dg                     t          t          t                    } t          | t	          j        g dg dg dg                     d S )Nr   r   )r   r   r   )r   r   r   )r   r   r   r   )r   r.   r   r   r,   r-   r6   r9   s    r0   test_cstackr=      s    S$FFBHq!fq!f%566777S#FFBHiiiIII%FGGHHHS#FFBHiiiIII%FGGHHHHHr2   c                  r   t          t          t                    } t          | t	          j        dgg                     t          t          t                    } t          | t	          j        ddgddgg                     t          t	          j        ddgddgg          t	          j        ddgddgg                    } t          | t	          j        ddgddgg                     t          j        t          d          5  t          t          t                     d d d            d S # 1 swxY w Y   d S )Nr   r   r+      z0Unsupported operands for arithmetic operator: .*r4   )r   r.   r   r   r,   r-   r6   r7   r8   r   r   r9   s    r0   test_arith_operr@      s^   d##FFBHqcUOO,,,c""FFBHq!fq!f%566777 Aq6Aq6"233RX1v1v>N5O5OPPFFBHq!fq!f%566777 
$W
 
 
   	C                 s   D,,D03D0compound_modelr:   c                     t          t          |           |d                    t          t          |           |d                    d S )Nr   r   )r   r   r   rA   s     r0   test_separablerD      sA    L00&)<<<'77CCCCCr2   c                      t           d             }  |             j        sJ t           d             } |            j        rJ t          j        t	           |                      ddgk              sJ d S )Nc                     | S N )xs    r0   model_az,test_custom_model_separable.<locals>.model_a   s    r2   c                     | |z   S rG   rH   )rI   ys     r0   model_cz,test_custom_model_separable.<locals>.model_c   s    1ur2   T)r   	separabler,   allr   )rJ   rM   s     r0   test_custom_model_separablerP      s      \ 799  \ wyy""""6%ggii00T4L@AAAAAAAr2   )0__doc__numpyr,   r7   numpy.testingr   astropy.modelingr   r   astropy.modeling.corer   astropy.modeling.modelsr   astropy.modeling.separabler   r	   r
   r   r   r   Shiftr.   r   Scaler   r   r   r   r   
Rotation2Dr6   Polynomial2Dr   r   Polynomial1Dr   r-   cm_4d_expectedcompound_modelsr1   r;   r=   r@   markparametrizevaluesrD   rP   rH   r2   r0   <module>rb      sI         ) ) ) ) ) ) 1 1 1 1 1 1 1 1 6 6 6 6 6 6 + + + + + +                fl18$$$fl15!!!v|AF###v|AF###w|&)))wyv&&&wvF###f
+++V&&&f!%(((V&&& BH'''((BH&&&&&&''''''		
 
 	s
S3YsS0BH)))**BHtUmdE]UDMBCC	
 	c	C$c)	5%.	!	!828dD\D$<,H#I#IJ
 	sTzBH)))**BHtUmdE]UDMBCC	
 	c	D3:%BH)))**BHtUmdE]UDMBCC	
 	sSy4$;&	5%.	!	!828dVdV,<#=#=>
 	rCx	5$-	 	 ("(T5ME4=+I"J"JK 39~.#IO^,Ci3/c	TD[!BH55566BH555555666666666 	
K4 4n2 2 2*  (I I I  $ 57M7M7O7OPPD D QPD
B B B B Br2   