
     h                         d dl Z d dlZd dlZd dlmZmZmZmZm	Z	 d dlm
Z d dlmZmZmZmZmZ d dlmZ ej                            dg d          Z G d d	          Z G d
 d          Z G d d          ZdS )    N)assert_allcloseassert_equalassert_warnsassert_array_almost_equalassert_array_equal)raises)RegularGridInterpolatorinterpnRectBivariateSplineNearestNDInterpolatorLinearNDInterpolator)matrixmethod)linearnearestslinearcubicquinticpchipc                      e Zd Zd Zd Zd Zd Zed             Ze	j
                            dg d          d             Ze	j
                            d	e ej        g d
g dg dg          fe ej        g d          fg          d             Zed             Zd Zd Zd Ze	j
                            d ej        g d          df ej        g d          df ej        g d          df ej        g d          df ej        g d          dfg          d             Zd Zd Zd  Zd! Zd" Zd# Zd$ Zd% Ze	j
                            dd&d'g          d(             Zd) Zd* Zd+ Z e	j
                            d,d-ej!        ej"        g          e	j
                            dd'd&g          d.                         Z#e	j
                            dd&d'g          d/             Z$e	j
                            dd&d'g          d0             Z%ed1             Z&d2 Z'ed3             Z(ed4             Z)ee	j
                            d5d6d7g          d8                         Z*d9 Z+e	j
                            d:ej,        ej-        ej.        ej/        g          e	j
                            d;ej,        ej-        g          d<                         Z0d-S )=TestRegularGridInterpolatorc                    dgdz  }t          j        g d          }|d d t           j        t           j        t           j        f         }|t           j        d d t           j        t           j        f         }|t           j        t           j        d d t           j        f         }|t           j        t           j        t           j        d d f         }||dz  z   |dz  z   |dz  z   }||fS )N              ?      ?   
   d     npasarraynewaxisselfpointsvaluesvalues0values1values2values3s          \/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/scipy/interpolate/tests/test_rgi.py_get_sample_4dz*TestRegularGridInterpolator._get_sample_4d   s    !#LLL))BJ
BJ>?QQQ
BJ>?RZBJ>?RZQQQ>?GbL(7S=87T>Iv~    c                    dgdz  dgdz  z   }t          j        g d          }|d d t           j        t           j        t           j        f         }|t           j        d d t           j        t           j        f         }|t           j        t           j        d d t           j        f         }|t           j        t           j        t           j        d d f         }||dz  z   |dz  z   |dz  z   }||fS Nr      )r         @      $@r   r   r    r!   r%   s          r-   _get_sample_4d_2z,TestRegularGridInterpolator._get_sample_4d_2    s    !#}o&99LLL))BJ
BJ>?QQQ
BJ>?RZBJ>?RZQQQ>?GbL(7S=87T>Iv~r/   c                    dgdz  }t          j        g d          }|d d t           j        t           j        t           j        f         }|t           j        d d t           j        t           j        f         }|t           j        t           j        d d t           j        f         }|t           j        t           j        t           j        d d f         }||dz  z   |dz  z   |dz  z   }||fS )Nr   r   r         ?       @      @      @r   r   r   r    r!   r%   s          r-   _get_sample_4d_3z,TestRegularGridInterpolator._get_sample_4d_3+   s    56:???@@BJ
BJ>?QQQ
BJ>?RZBJ>?RZQQQ>?GbL(7S=87T>Iv~r/   c                    dgdz  }t          j        ddg          }|d d t           j        t           j        t           j        f         }|t           j        d d t           j        t           j        f         }|t           j        t           j        d d t           j        f         }|t           j        t           j        t           j        d d f         }||dz  z   |dz  z   |dz  z   }||fS )N)r   r   r   r   r   r   r   r    r!   r%   s          r-   _get_sample_4d_4z,TestRegularGridInterpolator._get_sample_4d_46   s    !S#J''BJ
BJ>?QQQ
BJ>?RZBJ>?RZQQQ>?GbL(7S=87T>Iv~r/   c                 J   |                                  \  }}t          j        g dg dg dg          }t          ||                                |          } ||                                          }t          |||          } ||          }t          ||           d S )N皙?rA   r   ?皙?rA   g?g?r   r   r   r   r   )r<   r"   r#   r	   tolistr   )r&   r   r'   r(   sampleinterpv1v2s           r-   test_list_inputz+TestRegularGridInterpolator.test_list_inputA   s    ..00///1D1D1D///1 2 2 ))/068 8 8 VFMMOO$$()/068 8 8 VF^^Br/   r   )r   r   r   c                    |                                  \  }}d}t          j        t          |          5  t	          |||           d d d            n# 1 swxY w Y   t	          ||          }t          j        g dg dg dg          }t          j        t          |          5   |||           d d d            d S # 1 swxY w Y   d S )Nzpoints in dimensionmatchrF   r@   rC   rE   )r>   pytestr   
ValueErrorr	   r"   r#   )r&   r   r'   r(   rO   rI   rH   s          r-   test_spline_dim_errorz1TestRegularGridInterpolator.test_spline_dim_errorR   s~   ..00% ]:U333 	C 	C#FF6BBBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C )88///1D1D1D///1 2 2]:U333 	* 	*F6&))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s#   AAA'CC	Czpoints_values, sampler@   rC   rE   rA   rA   r4         "@c                      ||           \  }}t          ||d          } ||          }t          ||d          } ||          }t          ||           d S )Nr   rF   r   )r	   r   )r&   points_valuesrH   r'   r(   rI   rJ   rK   s           r-   test_linear_and_slinear_closez9TestRegularGridInterpolator.test_linear_and_slinear_closeb   so     't,,(IIIVF^^(	JJJVF^^Br/   c                 h   |                                  \  }}|d|z  z
  }t          j        g dg dg dg          }t          |||          }t          ||j        |          }t          ||j        |          } ||          } ||          d ||          z  z   }	t          ||	           d S )N               @r@   rC   rE   rF                 ?)r<   r"   r#   r	   realimagr   )
r&   r   r'   r(   rH   rI   rinterpiinterprJ   rK   s
             r-   test_complexz(TestRegularGridInterpolator.test_complexx   s    ..00"V)#///1D1D1D///1 2 2 )GGG)&&+fMMM)&&+fMMMVF^^WV__r''&//11Br/   c                    g dg d}}t          j        ||d          \  }} d ||          }t          ||f|d          }t          ||f|d          } |dd	g          } |dd	g          }	t          j        ||	d
d          rJ d S )N)   r2      r   ij)indexingc                     | dz  |dz  z  S )Nr    xys     r-   <lambda>zATestRegularGridInterpolator.test_cubic_vs_pchip.<locals>.<lambda>   s    q!tad{ r/   r   rF   r   r8   r2   +=r   )atolrtol)r"   meshgridr	   allclose)
r&   rh   ri   xgygr(   r   r   
vals_cubic
vals_pchips
             r-   test_cubic_vs_pchipz/TestRegularGridInterpolator.test_cubic_vs_pchip   s    ||\\\1QD111B***B33'AwGGG'AwGGGUC8__
UC8__
;z:EJJJJJJJJr/   c                     |                                  \  }}t          ||          }t          j        g d          }d}t	           ||          |           d S )NrS   H@r5   r	   r"   r#   r   r&   r'   r(   rI   rH   wanteds         r-   test_linear_xi1dz,TestRegularGridInterpolator.test_linear_xi1d   s_    ..00(88///00!&&..&99999r/   c                     |                                  \  }}t          ||          }t          j        g dg dg dg          }t          j        g d          }t	           ||          |           d S )Nr@   rC   rE   rv   gq@g     \@r.   r	   r"   r#   r   rx   s         r-   test_linear_xi3dz,TestRegularGridInterpolator.test_linear_xi3d   s    ,,..(88///1D1D1D///1 2 222233!&&..&99999r/   zsample, wanted)rA   rA   rB   rB   g     0@)rA   rA   rA   rA   r   r   r   r   r   r   r   r   r        \@)rA   皙?g333333?rB   g     |@c                     |                                  \  }}t          ||d          }t           ||          |           d S )Nr   rF   )r.   r	   r   )r&   rH   ry   r'   r(   rI   s         r-   test_nearestz(TestRegularGridInterpolator.test_nearest   sK     ,,..(	JJJ!&&..&99999r/   c                     |                                  \  }}t          ||          }t          j        g dg dg          }t          j        ddg          }t	           ||          |           d S )Nr   r   r   r   r}   rx   s         r-   test_linear_edgesz-TestRegularGridInterpolator.test_linear_edges   sy    ,,..(88---/?/?/?@AARK((!&&..&99999r/   c                    ddg}t          j        g d          }|d d t           j        f         }|t           j        d d f         }||dz  z   }t          t          t
          ||           ddg}t          t          t
          ||           ddg}t          t          t
          ||           g d}t          t          t
          ||           ddg}t          t          t
          ||d           d S )	Nr   )r   r   r   r   )r   )r   r   g      ?r   )r   r   r   undefmethodrF   )r"   r#   r$   assert_raisesrQ   r	   )r&   r'   r(   r)   r*   s        r-   test_valid_createz-TestRegularGridInterpolator.test_valid_create   s    -LLL))BJ'QQQ'GbL(j"966JJJ"L1j"966JJJ#\2j"966JJJ;;;j"966JJJ-j"966*	, 	, 	, 	, 	, 	,r/   c                 v   |                                  \  }}t          ||          }t          j        g dg dg          }t	          t
          ||d           t          j        g dg dg          }t	          t
          ||           t          j        g dg dg          }t	          t
          ||           d S )Nr   r   r   )r   r   r   )r   r   r   )r   r   r   皙?)r.   r	   r"   r#   r   rQ   )r&   r'   r(   rI   rH   s        r-   test_valid_callz+TestRegularGridInterpolator.test_valid_call   s    ,,..(88---/?/?/?@AAj&&-@@@\\\<<<899j&&111---/@/@/@ABBj&&11111r/   c                 ^   |                                  \  }}t          ||dd           }t          j        g dg dg dg dg          }t          j        g d          }t	           ||d	          |           t          j        g d
          }t	           ||d	          |           d S )NFbounds_error
fill_value皙r   r   r   r   r   r   r       @皙ir   r   r   r   )r   r         &@r   r   rF   )gfffff[gfffff@g     gr   r}   rx   s         r-   test_out_of_bounds_extrapz5TestRegularGridInterpolator.test_out_of_bounds_extrap   s    ,,..(e48: : :1113G3G3G1113I3I3IK L L11122!&&	"B"B"BFKKK>>>??!&&"A"A"A6JJJJJr/   c                 ^   |                                  \  }}t          ||dd           }t          j        g dg dg dg dg          }t          j        g d          }t	           ||d	          |           t          j        g d
          }t	           ||d	          |           d S )NFr   r   r   r   r   )r   r   r   r   r   rF   )g333333(g33333`@g     gyXr   rw   rx   s         r-   test_out_of_bounds_extrap2z6TestRegularGridInterpolator.test_out_of_bounds_extrap2   s    ..00(e48: : :1113G3G3G1113I3I3IK L L///00!&&	"B"B"BFKKK999::!&&"A"A"A6JJJJJr/   c                    |                                  \  }}t          ||dt          j                  }t          j        g dg dg dg          }t          j        t          j        t          j        t          j        g          }t           ||d          |           t           ||d          |           t          j        g d	g d
g dg          }t          j        g d          }t           ||          |           d S )NFr   r   r   r   r   rF   r   r@   rC   rE   r|   )r.   r	   r"   nanr#   r   rx   s         r-   test_out_of_bounds_fillz3TestRegularGridInterpolator.test_out_of_bounds_fill   s&   ,,..(e46F< < <1113G3G3G3335 6 6RVRVRV455!&&	"B"B"BFKKK!&&"A"A"A6JJJ///1D1D1D///1 2 222233!&&..&99999r/   c                 |   |                                  \  }}t          ||d          }t          j        | }d |D             }t	          j        |          }|                    d          }t          ||          }t	          j        g dg dg dg          }t           ||           ||                     d S )Nr   rF   c                     g | ]}|S rf   rf   .0ps     r-   
<listcomp>zJTestRegularGridInterpolator.test_nearest_compare_qhull.<locals>.<listcomp>       000a000r/   r@   rC   rE   )	r.   r	   	itertoolsproductr"   r#   reshaper   r   r&   r'   r(   rI   points_qhullvalues_qhullinterp_qhullrH   s           r-   test_nearest_compare_qhullz6TestRegularGridInterpolator.test_nearest_compare_qhull   s    ,,..(	JJJ (&100<000z,//~~b)),\<HH///1D1D1D///1 2 2!&&..,,v2F2FGGGGGr/   c                 x   |                                  \  }}t          ||          }t          j        | }d |D             }t	          j        |          }|                    d          }t          ||          }t	          j        g dg dg dg          }t           ||           ||                     d S )Nc                     g | ]}|S rf   rf   r   s     r-   r   zITestRegularGridInterpolator.test_linear_compare_qhull.<locals>.<listcomp>  r   r/   r   r@   rC   rE   )	r.   r	   r   r   r"   r#   r   r   r   r   s           r-   test_linear_compare_qhullz5TestRegularGridInterpolator.test_linear_compare_qhull  s    ,,..(88 (&100<000z,//~~b))+L,GG///1D1D1D///1 2 2!&&..,,v2F2FGGGGGr/   r   r   c                 *   t          j        ddd          }t          j        ddd          }t          d          }t          ||f||          } |dd	g          }t          ||f|j        |          } |dd	g          }t          ||           d S )
Nr   r2      ra      r   r   rF   r   ffffff?)r"   linspaceMyValuer	   _vr   )r&   r   rh   ri   r(   rI   rJ   rK   s           r-   test_duck_typed_valuesz2TestRegularGridInterpolator.test_duck_typed_values  s    K1a  K1a  (!QGGGVS#J(!Q6JJJVS#JBr/   c                 D   t           j                            d           t          j        ddd          }t          j        ddd          }t           j                            dd          }t          ||f|d           t          t          t
          ||f|d           d S )	N  r   r2   r   ra   r   r   y      ?       @)r"   randomseedr   randr	   r   rQ   )r&   rh   ri   r(   s       r-   test_invalid_fill_valuez3TestRegularGridInterpolator.test_invalid_fill_value  s    
	tK1a  K1a  1%% 	 A1==== 	j"9!ff	7 	7 	7 	7 	7 	7r/   c                     t          j        dd          }d |j        D             }t          ||           t          ||d           d S )Nr         z>f4dtypec                 6    g | ]}t          j        |          S rf   )r"   arange)r   ns     r-   r   zCTestRegularGridInterpolator.test_fillvalue_type.<locals>.<listcomp>.  s     5551")A,,555r/   r   r   )r"   onesshaper	   )r&   r(   r'   s      r-   test_fillvalue_typez/TestRegularGridInterpolator.test_fillvalue_type+  sV    U33355555///2>>>>>>r/   c           
         d }t          j        ddd          }t          j        ddd          } |t          j        ||dd           }t          ||f|ddd	
          }t	           |t          j        ddgddgddgg                    g dd           t	           |t          j        ddgddgddgg                    g dd           t	           |t          j        ddg                    |j        d           d |_        t	           |ddgddgg          ddgd           t	           |ddgddgg          ddgd           t          ||f|ddd 
          }t	           |ddgddgg          dd gd           d S )!Nc                     | |z   S Nrf   rg   s     r-   fz;TestRegularGridInterpolator.test_length_one_axis.<locals>.f7  s    q5Lr/   ra   r   rc   Trd   sparser   Fe   r   r   r   r   )r2         rk   rl   gffffff?333333@)333333@333333@r   r   r   333333?g      '@g?g      )@V瞯<r8   gffffff?r   g?gffffff@rb   r   )r"   r   rn   r	   r   arrayr   )r&   r   rh   ri   datarI   s         r-   test_length_one_axisz0TestRegularGridInterpolator.test_length_one_axis3  s:   	 	 	K1a  K2r""q"+aT$???@(!Qh6;M M M 	rx!Q!Q!R(ABBCC"

"	$ 	$ 	$ 	$
 	rx!SAs8aW(EFFGG&"	$ 	$ 	$ 	$
 	rxc
3344)"	$ 	$ 	$ 	$
 !C1d)455d%	1 	1 	1 	1 	c
S$K899d%	1 	1 	1 	1 )!Qi6;N N Nc
RI677A"	$ 	$ 	$ 	$ 	$ 	$r/   r   Nc                    |d|d}t          j        ddt           j        z  d          }t          j        |          }t	          |f|d d          fi |}t	          |dgf|d d d f         fi |}t          j        ddt           j        z  dz   d          } ||          }	t          j        d          }
 |t          j        ||
g          j                  }t          ||	           t          j	        d          }
 |t          j        ||
g          j                  }|t          ||	           d S t          ||           d S )	NFr   r   r   r   r2   r   r   ra   r   )
r"   r   pisinr	   zerosvstackTr   r   )r&   r   r   optionsrh   zfafbx1azay1bzbs               r-   test_length_one_axis2z1TestRegularGridInterpolator.test_length_one_axis2^  sT    ",U#% % K1RU7B''F1II$aT1QQQ4;;7;;$a!XqDzEEWEEk"agai--RWW hsmmR	3*%%'((B gcllR	3*%%'((B#####B
+++++r/   c                 Z   t          g dfg ddd|          }t          j         |t          j        g                    sJ t          j                            d          }|                    d          d	z  }|                    d          d
k    }t          j        ||<   t          j        d          5   ||          }d d d            n# 1 swxY w Y   t          ||         t          j                   t          ||           |||                               g d}dg}t          j        d          }t          ||f|dd|          }t          j         |t          j        dg                    sJ t          j         |dt          j        g                    sJ d S )N)ra   r2   rb   r   ra   Fr      lJ r   sizer   r   ignoreinvalid)rb   ra   )	r	   r"   isnanr   r   default_rngerrstater   r   )	r&   r   r   rngrh   iresri   r   s	            r-   test_nan_x_1dz)TestRegularGridInterpolator.test_nan_x_1dz  s    $YYYL,,,116vG G Gx26($$$$$ i##J//JJCJ  "JJCJ  3&v![*** 	 	
 !A$$C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	SVRV$$$S!Waa1"hh''' IIEwv#QFDQ16vG G Gx261+'''''x1bf+'''''''s   :CCCc                 ^   t          j        g d          t          j        g d          }}d }t          j        ||dd          \  }} |||          }t          ||f||d          }t          j        d	
          5   |dt           j        gddgg          }	d d d            n# 1 swxY w Y   t          |	d         dd           t          j        |	d                   sJ t           j        	                    d          }
|
                    d          dz  dz
  }|
                    d          dz  }|
                    d          dk    }|
                    d          dk    }||z  }t           j        ||<   t           j        ||<   t          j        ||g          j
        }t          j        d	
          5   ||          }	d d d            n# 1 swxY w Y   t          |	|         t           j                   t          |	|           |||                               d S )N)r   ra   r2   )ra   rb   r   c                     | dz  |dz  z   S Nr2   rf   rg   s     r-   r   z4TestRegularGridInterpolator.test_nan_x_2d.<locals>.f  s    a4!Q$;r/   rc   Tr   Fr   r   r   r   r8   ra   r2   rk   r   r   r   r   r   r      r   )r"   r   rn   r	   r   r   r   r   r   r   r   r   )r&   r   rh   ri   r   rp   rq   r   rI   r   r   i1i2r   r   s                  r-   test_nan_x_2dz)TestRegularGridInterpolator.test_nan_x_2d  s   x			""BHYYY$7$71	 	 	 QD>>>BqRyy(!Q06UL L L [*** 	2 	2&3-!Q011C	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2A....xA i##J//JJCJ  "1$JJCJ  "ZZSZ!!C'ZZSZ!!C'G""HaV[*** 	 	
 &))C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	SVRV$$$S!WffQrUmm,,,,,s$   B))B-0B-GG"Gc                    d }t          j        ddd          }t          j        ddd          }t          j        ddd          }|||f} |t          j        |d	d
d }t          |||          }t          j        g dg dg          }	 ||	          }
|d d d         }|d d d         }|d d d         }|||f} |t          j        |d	d
d }t          |||          } ||	          }t          |
|           d S )Nc                 *    d| dz  z  d|dz  z  z   |z
  S Nr2   rb   rf   )rh   ri   r   s      r-   val_func_3dzGTestRegularGridInterpolator.test_descending_points.<locals>.val_func_3d  s"    qAv:AF
*Q..r/   ra   r   r   r      	   !   rc   Tr   rF   )r   @g @)ffffff
@@gffffff@r   )r"   r   rn   r	   r   r   )r&   r   r  rh   ri   r   r'   r(   my_interpolating_functionptscorrect_resultx_descendingy_descendingz_descendingpoints_shuffledvalues_shuffledtest_results                    r-   test_descending_pointsz2TestRegularGridInterpolator.test_descending_points  sc   	/ 	/ 	/ K1b!!K1b!!K1b!!Q[&4===?$;F<BCI%K %K %K! h9::22377 2w2w2w'|D%+[/DFFFH$;_V%= %= %=!//44>;77777r/   c                 "   d }t          j        g d          }t          j        g d          }||f} |t          j        |ddd }d}t          j        t
          |          5  t          ||           d d d            d S # 1 swxY w Y   d S )	Nc                 $    d| dz  z  d|dz  z  z   S r  rf   rg   s     r-   val_func_2dzJTestRegularGridInterpolator.test_invalid_points_order.<locals>.val_func_2d  s    qAv:AF
**r/   r   r9   r         @      @r   r9   r;   r"  r#  rc   Tr   (must be strictly ascending or descendingrN   )r"   r   rn   rP   r   rQ   r	   )r&   r   rh   ri   r'   r(   rO   s          r-   test_invalid_points_orderz5TestRegularGridInterpolator.test_invalid_points_order  s    	+ 	+ 	+ H***++H***++Qbk6D157 7 7 8:]:U333 	4 	4#FF333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   &BBBc                     t          t          j        d          gt          j        d          |d          }t          j         |dg                    sJ d S )Nr   Fr  r   )r	   r"   r   r   r   )r&   r   rI   s      r-   test_fill_valuez+TestRegularGridInterpolator.test_fill_value  sZ    (")A,,06UL L Lxt%%%%%%%r/   c                 .   dgdz  dgdz  z   }t           j                            d          }|                    d          }|                    d          }t          |||d          } ||          }t	          |j        d	|
           g }t          d          D ];}	t          ||d|	f         |d          }|                     ||                     <t          j        |          	                    ddd          }
t          ||
d|           d S )Nr   r   r   r8   r9   r:   r2   r   r3   r4         .@r         9@r   r   r   r   r   r  r   rb   r   Fr  r   rb   r  err_msgr  .ra   r   rk   rl   r2  )r"   r   r   r	   r   r   rangeappendr   	transposer   )r&   r   r'   r   r(   rH   rI   vvsjrK   s              r-   test_nonscalar_valuesz1TestRegularGridInterpolator.test_nonscalar_values  s>    11A5,9
9  i##D))O,,I&&(6;= = =F6NNQWi8888q 	& 	&A,VVCF^4::?A A AF IIffVnn%%%%Xb\\##Aq!,,2E6::::::r/   flip_pointsFTc           	         g d}|rd |D             }t           j                            d          }d}|                    ddddg|R           }|                    d	          }t          |||d
          } ||          }	|	j        dg|R k    sJ t          j        |j        dd                    }
t          |j        d                   D ]K}t          |j        d                   D ].}t          ||d||f         |d
          } ||          |
||f<   /Lt          j        |
d          }t          |	|d|           d S )Nr*  r7   )r   r3   r4   r,  r   r-       A@      B@)	r   r3   r4   r,  r   r-  r>  r?  /   c                 F    g | ]}t          t          |                    S rf   )tuplereversedr   s     r-   r   zGTestRegularGridInterpolator.test_nonscalar_values_2.<locals>.<listcomp>  s&    999QeHQKK((999r/   r   rb   r2   r   r   r  r  r   Fr  ra   r   .r   axisrk   r3  	r"   r   r   r	   r   emptyr4  expand_dimsr   )r&   r   r;  r'   r   trailing_pointsr(   rH   rI   r7  r8  r   r9  rK   s                 r-   test_nonscalar_values_2z3TestRegularGridInterpolator.test_nonscalar_values_2	  s   
D D D  	:99&999Fi##D)) Q1a:/::;;A(6;= = =F6NN w1/////// Xv|BCC(**v|B'(( 	* 	*A6<+,, * *0Q	9J8>>CE E E "6&>>1a4	*
 ^BQ'''2E6::::::r/   c           	      p   d}ddg}t           j                            d          }d}|                    ddg|R           }|                    d          }t          |||d	
          } ||          }|j        dg|R k    sJ t          j        |j        dd                    }	t          |j        d                   D ]K}
t          |j        d                   D ].}t          ||d|
|f         |d	
          } ||          |	|
|f<   /Lt          j        |	d          }t          ||d|           d S )Nr   r*  r7   r   )rb   r   r   r   r2   Fr  ra   rE  r   .r   rF  rk   r3  rH  )r&   r   r'   r   rK  r(   rH   rI   r7  r8  r   r9  rK   s                r-   test_nonscalar_values_linear_2Dz;TestRegularGridInterpolator.test_nonscalar_values_linear_2D0  s|   059 i##D)) Q4O4455A(6;= = =F6NN w1/////// Xv|BCC(**v|B'(( 	* 	*A6<+,, * *0Q	9J8>>CE E E "6&>>1a4	*
 ^BQ'''2E6::::::r/   r   xi_dtypec                 r   d }t          j        ddd          }t          j        ddd          }t          j        ||dd	          \  }} |||          }|                    |          }t	          ||f|          }	t          j        d
dgddgg|          }
t           |	|
          ddgd           d S )Nc                 $    d| dz  z  d|dz  z  z   S r  rf   rg   s     r-   r   z:TestRegularGridInterpolator.test_float32_values.<locals>.fV  s    q!t8a!Q$h&&r/   ra   r   r   r   r  rc   Tr   r   r  r  r  r   g Y`@g{,c@gHz>r   )r"   r   rn   astyper	   r   r   )r&   r   rO  r   rh   ri   rp   rq   r   rI   r  s              r-   test_float32_valuesz/TestRegularGridInterpolator.test_float32_valuesO  s    	' 	' 	' K1b!!K1b!!QD>>>BqRyy{{5!!(!Q66hc
c
$+35 5 5 	slL%AMMMMMMr/   )1__name__
__module____qualname__r.   r5   r<   r>   parametrize_rgi_interp_methodsrL   rP   markparametrizerR   r"   r#   rW   r_   rt   rz   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r	  r  r&  r(  r:  rL  rN  float32float64	complex64
complex128rS  rf   r/   r-   r   r      s
       	 	 		 	 		 	 		 	 	 $    $#   [X'D'D'DEE* * FE* [ 
)))***)))+  zrz*?*?*?@@A
	
       $    $# 
K 
K 
K: : :: : : [RZ,,,--v6RZ,,,--s3RZ,,,--s3RZ,,,--v6RZ,,,--v6	
	 	: :	 	:
: : :, , ,$2 2 2	K 	K 	K	K 	K 	K: : :
H 
H 
H
H 
H 
H [X	8'<==    >= 7 7 7? ? ?)$ )$ )$V [\D"&"%+@AA[X)'<==, , >= BA,4 [X	8'<==( ( >=(< [X	8'<=="- "- >="-H $8 8 $#8:4 4 4 $& & $#&
 $; ; $#;2 $[]UDM::#; #; ;: $##;J; ; ;> [	RZr}=  [Z"*bj)ABBN N CB	 
N N Nr/   r   c                   *    e Zd ZdZd Zd Zd Zd ZdS )r   z"
    Minimal indexable object
    c                     d| _         || _        t          j        t          j        |                                        |          | _        d S r  )ndimr   r"   r   prodr   r   )r&   r   s     r-   __init__zMyValue.__init__q  s;    	
)BGENN++33E::r/   c                     | j         |         S r   )r   )r&   idxs     r-   __getitem__zMyValue.__getitem__v  s    ws|r/   c                     d S r   rf   r&   s    r-   __array_interface__zMyValue.__array_interface__y  s    tr/   c                      t          d          )NzNo array representation)RuntimeErrorrg  s    r-   	__array__zMyValue.__array__|  s    4555r/   N)rT  rU  rV  __doc__rb  re  rh  rk  rf   r/   r-   r   r   l  sZ         ; ; ;
    6 6 6 6 6r/   r   c                      e Zd Zd Zd Zed             Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zed             Zed             Zed             Zd Zed             Zd Zej                            dddg          d             Zed             Zd Zd Zd Zd Zd Zd Zd Z ej                            ddd g          d!             Z!d"S )#TestInterpNc           	          t          j        g d          }t          j        g d          }t          j        g dg dg dg dg dg dg          }|||fS )N)r   r9   r;   r"  r#  g      @)ra   r2   ra   r2   ra   ra   )ra   r2   rb   r2   ra   ra   )ra   r2   r2   r2   ra   ra   )r"   r   )r&   rh   ri   r   s       r-   _sample_2d_datazTestInterpN._sample_2d_data  s    H...//H...//H""""""""""""""""""	
 	
 !Qwr/   c           	      ,   |                                  \  }}}t          |||          }t          j        g dg dg          j        }t          t          ||f||d          |                    |d d df         |d d df                              d S )Nra   ffffff@r   r   r  333333?rb   ra   r  rt  r"  r3   r   rb   	splinef2drF   r   ra   )rp  r   r"   r   r   r   r
   ev)r&   rh   ri   r   lutxis         r-   test_spline_2dzTestInterpN.test_spline_2d  s    &&((1a!!Q**X6666668 9 99: 	!'1a&!R"L"L"L"%&&AAAqD2aaad8"<"<	> 	> 	> 	> 	>r/   c                 |   |                                  \  }}}t          j        g dg dg          j        }t	          ||f|||          }t	          |                                |                                f|                                |                                |          }t          |||           d S )Nrr  ru  rF   r1  )rp  r"   r   r   r
   rG   r   )r&   r   rh   ri   r   ry  rJ   rK   s           r-   rL   zTestInterpN.test_list_input  s    &&((1aX6666668 9 99: 	 aVQ6222XXZZ$ahhjj"))++f
 
 
 	B//////r/   c           
         t          j        g d          }t          j        g d          }t          j        g dg dg dg dg dg          }t          |||          }t          j        g dg dg          j        }t	          ||f||ddd	
          }|                    |d d df         |d d df                   }d	|dd<   t          ||           t          t          t          ||f||ddd 
           d S )Nr$  ra   r2   ra   r2   ra   ra   r2   rb   r2   ra   ra   r2   r2   r2   ra   ra   rs  r   r   r  rt  rb   ra   r  rt  g      r3   r   rb   rv  FR?@r   r   ra   r2   r   )	r"   r   r   r   r
   rw  r   r   rQ   )r&   rh   ri   r   rx  ry  actualexpecteds           r-   test_spline_2d_outofboundsz&TestInterpN.test_spline_2d_outofbounds  sJ   H***++H***++Hooo%oo8 9 9!!Q**X6667779 : ::; 	!QB{&+@ @ @66"QQQT(Bqqq!tH--1!&(333 	j'Aq61b#(T	; 	; 	; 	; 	; 	;r/   c                    dgdz  dgdz  z   }t          j        g d          }|d d t           j        t           j        t           j        f         }|t           j        d d t           j        t           j        f         }|t           j        t           j        d d t           j        f         }|t           j        t           j        t           j        d d f         }||dz  z   |dz  z   |dz  z   }||fS r1   r!   r%   s          r-   _sample_4d_datazTestInterpN._sample_4d_data  s    !#}o&99LLL))BJ
BJ>?QQQ
BJ>?RZBJ>?RZQQQ>?GbL(7S=87T>Iv~r/   c                     |                                  \  }}t          ||          }t          j        g dg          }t	          |||d          }t           ||          |           d S )NrS   r   rF   r  r	   r"   r#   r
   r   r&   r'   r(   	interp_rgrH   ry   s         r-   test_linear_4dzTestInterpN.test_linear_4d  su    --//+FF;;	000122AAA!))F"3"3V<<<<<r/   c                     |                                  \  }}t          j        g dg          }d}t          |||ddd          }t	          ||           d S )NrA   r   g333333$@rT   r  r   Fr   r  r"   r#   r
   r   r&   r'   r(   rH   ry   r  s         r-   test_4d_linear_outofboundsz&TestInterpN.test_4d_linear_outofbounds  so    --//222344&+@ @ @!&&11111r/   c                     |                                  \  }}t          ||d          }t          j        g dg          }t	          |||d          }t           ||          |           d S )Nr   rF   rS   r  r  s         r-   test_nearest_4dzTestInterpN.test_nearest_4d  sz    --//+FF9MMM	000122	BBB!))F"3"3V<<<<<r/   c                     |                                  \  }}t          j        g dg          }d}t          |||ddd          }t	          ||           d S )Nr  r  r   Fr   r  r  s         r-   test_4d_nearest_outofboundsz'TestInterpN.test_4d_nearest_outofbounds  so    --//222344	&+@ @ @!&&11111r/   c                     |                                  \  }}t          j        g d          }t          |||d          }t          |||d d d f         d          }t	          ||           d S )NrS   F)r   )r  r"   r#   r
   r   r&   r'   r(   rH   rJ   rK   s         r-   
test_xi_1dzTestInterpN.test_xi_1d  s{    --/////00VVV%@@@VVVDF^%HHHBr/   c                    |                                  \  }}t          j                            d           t          j                            ddd          }t          |||dd          }t          |j        d           t          |||                    d	d          dd          }t          ||                    |j                             d S )
Nr   r2   rb   r   r   Fr  r2   rb   r   )
r  r"   r   r   r   r
   r   r   r   r   r  s         r-   
test_xi_ndzTestInterpN.test_xi_nd  s    --//
	t1a((VVVI"') ) )RXv&&&VVV^^B%:%:%E; ; ;BJJrx0011111r/   c                 D   |                                  \  }}}||f}t          j        ddd          }t          j        ddd          }|d d d f         |d d d f         f}t          ||||d          }	t	          |	j        d           t          j        ||          \  }
}t          j        |
j        	                                |j        	                                f         }t          ||||d          }t          |	|                    |	j                             d S )Nr   ra   r2   rb   Fr  r  )rp  r"   r   r
   r   r   rn   c_r   ravelr   r   )r&   r   rh   ri   r(   r'   ry  yirH   rJ   xxyyrK   s                r-   test_xi_broadcastzTestInterpN.test_xi_broadcast  s    ++--1fQ[Aq!![Aq!!QQQW+r$'{+VVVFOOORXv&&&R$$Brtzz||RTZZ\\12VVV"8 8 8BJJrx0011111r/   c                    dgdz  dgdz  z   t           j                            d          }|                    d          |                    d          t          d          }t	          |j        d	
           fdt          d          D             }t          j        |                              ddd          }t          ||d           d S )Nr*  r2   r+  r   r.  r/  Fr  r0  r1  c           	      H    g | ]}t          d |f         d          S .Fr  r
   r   r9  r   r'   rH   r(   s     r-   r   z5TestInterpN.test_nonscalar_values.<locals>.<listcomp>  sK     = = =./ ffS!VnfV#(* * * = = =r/   r  ra   r   rk   r3  )
r"   r   r   r
   r   r   r4  r   r6  r   )	r&   r   r   r7  r8  rK   r'   rH   r(   s	    `    @@@r-   r:  z!TestInterpN.test_nonscalar_values  s    11A5,9
9  i##D))O,,I&&FFF6!&( ( (QWi8888= = = = = = =3888= = =Xb\\##Aq!,,2E6::::::r/   c                    g dt           j                            d          }d}|                    ddddg|R           |                    d          t          d	
          }|j        dg|R k    sJ fdt          j        d                   D             }t          |t          j        |          j        d           d S )Nr=  r   rD  r   r   r  r  r   Fr  ra   c                 f    g | ],fd t          j        d                   D             -S )c           	      J    g | ]}t          d |f         d           S r  r  )r   r   r9  r   r'   rH   r(   s     r-   r   zBTestInterpN.test_nonscalar_values_2.<locals>.<listcomp>.<listcomp>:  sN       01 sAqy 16&%*, , ,  r/   rE  )r4  r   r  s    @r-   r   z7TestInterpN.test_nonscalar_values_2.<locals>.<listcomp>:  sp     2 2 2        5:6<;K5L5L   2 2 2r/   r   rk   r3  )	r"   r   r   r
   r   r4  r   r#   r   )	r&   r   r   rK  r7  r8  r'   rH   r(   s	    `    @@@r-   rL  z#TestInterpN.test_nonscalar_values_2$  s   D D D
 i##D)) Q1a:/::;;AFFF6NNN w1///////2 2 2 2 2 2 2 v|B/002 2 2
 	2:b>>+%HHHHHHr/   c                 8   |                                  \  }}t          j                            d           t          j                            ddddd          }t          j                            ddd          }t          t          t          |||d           d S )	Nr   rb   r   r   r   r   rv  rF   )r  r"   r   r   r   r   rQ   r
   )r&   r'   r(   rH   s       r-    test_non_scalar_values_splinef2dz,TestInterpN.test_non_scalar_values_splinef2dA  s    --//
	t1aA..2q))j'666(	* 	* 	* 	* 	* 	*r/   c                 B   |                                  \  }}}||f}|d|z  z
  }t          j        g dg dg          j        }t	          ||||          }t	          ||j        ||          }t	          ||j        ||          }	|d|	z  z   }
t          ||
           d S )NrY   rr  ru  rF   rZ   )rp  r"   r   r   r
   r[   r\   r   )r&   r   rh   ri   r(   r'   rH   rJ   v2rv2irK   s              r-   r_   zTestInterpN.test_complexK  s    ++--1fQ"V)#::::::< = ==> 	 VVVF;;;ffk6&AAAffk6&AAA2c6\Br/   c                    |                                  \  }}}||f}|d|z  z
  }t          j        g dg dg          j        }t	          t          j                  5  t          |||d           d d d            d S # 1 swxY w Y   d S )NrY   rr  ru  rv  rF   )rp  r"   r   r   r   ComplexWarningr
   )r&   rh   ri   r(   r'   rH   s         r-   test_complex_spline2fdz"TestInterpN.test_complex_spline2fdZ  s    ++--1fQ"V)#::::::< = ==> 	"+,, 	@ 	@FFF;????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   A>>BBr   r   r   c                    t          j        ddd          }t          j        ddd          }t          d          }t          ||f|ddg|	          }t          ||f|j        ddg|	          }t          ||           d S )
Nr   r2   r   ra   r   r   r   r   rF   )r"   r   r   r
   r   r   )r&   r   rh   ri   r(   rJ   rK   s          r-   r   z"TestInterpN.test_duck_typed_valuese  s    
 K1a  K1a  aVVc3Z???aVVYc
6BBBBr/   c                    t          j        ddd          }t          j        ddd          }t          t           j                            dd                    }t           j                            ddd          }t          ||f|||          }t          ||ft          j        |          ||          }t          ||           d S )Nr   r2   r   ra   r   rb   rF   )r"   r   r   r   r   r
   r#   r   )r&   r   rh   ri   r(   rH   rJ   rK   s           r-   test_matrix_inputzTestInterpN.test_matrix_inputs  s    K1a  K1a  	q!,,--1a((aVVVF;;;aVRZ//GGGBr/   c                 V   t          j        g dg          }t          j        ddgddgddgg          }t          dgg df||          }g d}t          ||d	           t          j        d
dgddgddgg          }t          dgg df||dd           }t          ||d	           d S )N)rA   ra   r   ra   g@g	@gffffff@)r2   rb   r   )gQ?gffffff@gffffff @r   r   r   r8   gffffffFr   )r"   r   r
   r   )r&   r(   ry  r   ry   s        r-   r   z TestInterpN.test_length_one_axis  s    
 <<<.))X3x!SAs8455sIII&33   	V%0000 XSzC:c{;<<sIII&#(T; ; ; 	V%000000r/   c           	      d   d }t          j        g d          }t          j        g d          }t          j        g d          }t          j        g d          }||||f} |t          j        |ddd }dd	t          j        t          j        d
dd                    t          j        d
d	d          f}t          |||          }	|d d d         }
|d d d         }|d d d         }|d d d         }|
|||f} |t          j        |ddd }t          |||          }t          |	|           d S )Nc                 0    d| dz  z  d|dz  z  z   |z
  |z
  S r  rf   )rh   ri   r   as       r-   value_func_4dz9TestInterpN.test_descending_points.<locals>.value_func_4d  s'    qAv:AF
*Q.22r/   )r   ra   r2   rb   )r   r   r   r   )r   rA   rD   r   rc   Tr   rA   r   r   r   r   r   )r"   r   rn   r6  r   r
   r   )r&   r  x1x2x3x4r'   r(   r  r  
x1_descend
x2_descend
x3_descend
x4_descendr  r  r  s                    r-   r  z"TestInterpN.test_descending_points  sj   	3 	3 	3 Xlll##Xooo&&Xooo&&X&&&''b"b![&4===?Cbk!R&;&;<<{1c1%%' 55"X
"X
"X
"X
%z:zJ'-[/DFFFHoDD>;77777r/   c                 t   t          j        g d          }t          j        g d          }t          j        g dg dg dg dg dg          }t          j        g dg dg          j        }d}t          j        t
          |	          5  t          ||f||           d d d            d S # 1 swxY w Y   d S )
Nr!  r$  r}  r~  r  r  r  r%  rN   )r"   r   r   rP   r   rQ   r
   )r&   rh   ri   r   ry  rO   s         r-   r&  z%TestInterpN.test_invalid_points_order  s'   H***++H***++Hooo%oo8 9 9X6667779 : ::; 	 ;]:U333 	# 	#QFAr"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   B--B14B1c                     dg}ddg}t          j        d          }d}t          t          |          5  t	          |||           d d d            d S # 1 swxY w Y   d S )N)r   ra   r   ra   )ra   ra   rb   zaThe requested sample points xi have dimension 3, but this RegularGridInterpolator has dimension 1rN   )r"   r   r   rQ   r
   )r&   r'   r(   ry  msgs        r-   test_invalid_xi_dimensionsz&TestInterpN.test_invalid_xi_dimensions  s    QWY9:S111 	( 	(FFB'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   AAAc                    t          j        ddd          }t          j        ddd          }t          j        ddd          }|||f}t          j        d          }t          j        g d          }|D ]}d|j        _        d|j        _        d|j        _        t          |||            t          ||          |           d S )	Nr   r   r   r   r   r   r   r   Gz@(\@gffffff?Fr"   r   r   r   flags	writeabler
   r	   )r&   rh   ri   r   r'   r(   pointds           r-   test_readonly_gridzTestInterpN.test_readonly_grid  s    K1a  K1a  K1a  Q##+++,, 	& 	&A %AG!& %&&&///66666r/   c                 `   t          j        ddd          }t          j        ddd          }||f}t          j        d          }t          j        ddg          }|D ]}d|j        _        d|j        _        d|j        _        t          |||            t          ||          |           d S )	Nr   r   r   r   r   r   r  r  Fr  )r&   rh   ri   r'   r(   r  r  s          r-   test_2d_readonly_gridz!TestInterpN.test_2d_readonly_grid  s     K1a  K1a  Q$&& 	& 	&A %AG!& %&&&///66666r/   c                    t          j        ddd          }t          j        |t          j        |          f          j                                        d d df         }|j        j        rJ t          j        ddd          }t          j        ddd          }|||f}t          j        d          }t          j	        g d          }t          |||            t          ||          |           d S )Nr   r   r   r   r   r  r  )r"   r   r   
empty_liker   copyr  c_contiguousr   r   r
   r	   )r&   rh   ri   r   r'   r(   r  s          r-   test_non_c_contiguous_gridz&TestInterpN.test_non_c_contiguous_grid  s    K1a  Iq"-**+,,.3355aaad;7''''K1a  K1a  Q##+++,,&&&///66666r/   r   z>f8z<f8c                    t          j        ddd|          }t          j        ddd|          }||f}t          j        d|          }t          j        ddg|          }t	          |||            t          ||          |           d S )	Nr   r   r   r   r   r  r  r  )r"   r   r   r   r
   r	   )r&   r   rh   ri   r'   r(   r  s          r-   test_endiannesszTestInterpN.test_endianness  s     K1au---K1au---Qu---$U333&&&///66666r/   N)"rT  rU  rV  rp  rz  rW  rL   r  r  r  r  r  r  r  r  r  r:  rL  r  r_   r  rP   rX  rY  r   r  r   r  r&  r  r  r  r  r  rf   r/   r-   rn  rn    sL         > > > $	0 	0 $#	0; ; ;&  = = =2 2 2= = =2 2 2     2 2 2 $2 2 $#2& $; ; $#;( $I I $#I8* * * $    $# 	@ 	@ 	@ [	9    	   $
  
  $#
 1 1 1,8 8 84
# 
# 
#( ( (7 7 77 7 77 7 7 [Wuen55	7 	7 65	7 	7 	7r/   rn  )r   rP   numpyr"   numpy.testingr   r   r   r   r   r   r   scipy.interpolater	   r
   r   r   r   scipy.sparse._sputilsr   rX  rY  rW  r   r   rn  rf   r/   r-   <module>r     s           J J J J J J J J J J J J J J * * * * * *L L L L L L L L L L L L L L ) ( ( ( ( (!'!8!8KKK" " U	N U	N U	N U	N U	N U	N U	N U	Np6 6 6 6 6 6 6 6({7 {7 {7 {7 {7 {7 {7 {7 {7 {7r/   