
    -iiD                     >   d dl Z d dlZd dlZd dlmZ d dlmZmZ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 d dlmZ d dlmZ ej                            d	ej                  Z e
e           G d
 d                      Z G d d          Z G d d          ZdS )    N)ComplexWarning)xp_assert_equalxp_assert_closeassert_array_almost_equalmake_xp_test_case)skip_xp_invalid_arg)raises)RegularGridInterpolatorinterpnRectBivariateSplineNearestNDInterpolatorLinearNDInterpolator)matrix)_run_concurrent_barriermethodc            
          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d Zed             Zd Zd Zd Ze	j
                            dg ddfg ddfg ddfg ddf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 e	j
                            d,ej!        ej"        g          e	j
                            d-g d.          e	j
                            dd(d'g          d/                                     Z#d0 Z$e	j
                            d1d2ej%        ej&        g          e	j
                            dd(d'g          d3                         Z'e	j
                            dd'd(g          d4             Z(e	j
                            dd'd(g          d5             Z)e	j
        *                    d6          ee	j
                            d7d8d9 fd:d; fd<d= fd>d? fg          d@                                     Z+dA Z,edB             Z-e	j
        *                    d>          edC                         Z.ee	j
                            dDdEdFg          dG                         Z/dH Z0e	j
                            d,ej!        ej"        ej1        ej2        g          e	j
                            dIej!        ej"        g          dJ                         Z3dK Z4dL Z5d2S )MTestRegularGridInterpolatorc                    dgdz  }|                     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     asarraynpnewaxisselfxppointsvaluesvalues0values1values2values3s           f/var/www/html/bet.cuttalo.com/ml/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   }|                     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  }|                     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_34   s    56:???@@BJ
BJ>?QQQ
BJ>?RZBJ>?RZQQQ>?GbL(7S=87T>Iv~r,   c                    dgdz  }|                     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_4?   s    !S#J''BJ
BJ>?QQQ
BJ>?RZBJ>?RZQQQ>?GbL(7S=87T>Iv~r,   c                 X   |                      t                    \  }}t          j        g dg dg dg          }t          ||                                |          } ||                                          }t          |||          } ||          }t          ||           d S )N)r#   皙?r>   r   ?皙?r>   g?g?r   r   r   r   r   )r9   r   r   r
   tolistr   )r"   r   r$   r%   sampleinterpv1v2s           r*   test_list_inputz+TestRegularGridInterpolator.test_list_inputJ   s    ..".55///1D1D1D///1 2 2 ))/068 8 8 VFMMOO$$()/068 8 8 VF^^Br,   r   )cubicquinticpchipc                    |                                \  }}t          fd|D                       }d}t          j        t          |          5  t          |||           d d d            n# 1 swxY w Y   t          ||          }                    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 )Nc              3   B   K   | ]}                     |          V  d S Nr   .0pr#   s     r*   	<genexpr>zDTestRegularGridInterpolator.test_spline_dim_error.<locals>.<genexpr>^   -      44bjjmm444444r,   zpoints in dimensionmatchrC   r=   r@   rB   )r;   listpytestr	   
ValueErrorr
   r   )r"   r   r#   r$   r%   rW   rF   rE   s     `     r*   test_spline_dim_errorz1TestRegularGridInterpolator.test_spline_dim_error[   s   ..r224444V44444% ]: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$   A11A58A5C  C$'C$zpoints_values, sampler=   r@   rB   r>   r>   r1         "@c                     ||           \  }}t          fd|D                                           |          }}t          ||d          } ||          }t          ||d          } ||          }t          ||           d S )Nc              3   B   K   | ]}                     |          V  d S rO   rP   rQ   s     r*   rT   zLTestRegularGridInterpolator.test_linear_and_slinear_close.<locals>.<genexpr>|   s-      <<bjjmm<<<<<<r,   linearrC   slinear)rX   r   r
   r   )	r"   points_valuesrE   r#   r$   r%   rF   rG   rH   s	      `     r*   test_linear_and_slinear_closez9TestRegularGridInterpolator.test_linear_and_slinear_closel   s     'tR00<<<<V<<<<<bjj>P>P(IIIVF^^(	JJJVF^^Br,   c                    |                                \  }}t          fd|D                       }                    g dg dg dg          }t          ||d          }t	          t
                    5   ||d           d d d            n# 1 swxY w Y   t           ||d	                              g d
j                  d           t           ||d                              g dj                  d           t           ||d                              g dj                  d           d S )Nc              3   B   K   | ]}                     |          V  d S rO   rP   rQ   s     r*   rT   z?TestRegularGridInterpolator.test_derivatives.<locals>.<genexpr>   rU   r,   r=   r@   rB   ra   rC      )nu)rf   r   r   r   )r   rf   rf   dtypeV瞯<atol)r   rf   r   r   )r1   r   r   )r   rf   rf   r   )r   r   r   g-=)r+   rX   r   r
   assert_raisesrZ   r   float64)r"   r#   r$   r%   rE   rF   s    `    r*   test_derivativesz,TestRegularGridInterpolator.test_derivatives   s   ,,R004444V444445553333335 6 6 )	JJJ:&& 	! 	!F6a    	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	v,777

;;;bj
AA	O 	O 	O 	Ov,777

>>>
DD5	R 	R 	R 	R 	v,777

;;;bj
AA	O 	O 	O 	O 	O 	Os   9BBBc                    |dk    rt          j        d           |                               \  }}t          fd|D                       }|d|z  z
  }                    g dg dg dg          }t          |||          }t          |                    |          |          }t          |                    |          |          } ||          }	 ||          d	 ||          z  z   }
t          |	|
           d S )
NrL   *pchip does not make sense for complex datac              3   B   K   | ]}                     |          V  d S rO   rP   rQ   s     r*   rT   z;TestRegularGridInterpolator.test_complex.<locals>.<genexpr>   rU   r,                  @r=   r@   rB   rC                 ?)	rY   skipr9   rX   r   r
   realimagr   )r"   r   r#   r$   r%   rE   rF   rinterpiinterprG   rH   s     `        r*   test_complexz(TestRegularGridInterpolator.test_complex   s-   WKDEEE..r224444V44444"V)#///1D1D1D///1 2 2 )GGG)&"''&//&QQQ)&"''&//&QQQVF^^WV__r''&//11Br,   c                    |                     g d          |                     g d          }}|                    ||d          \  }} d ||          }t          ||f|d          }t          ||f|d          } |dd	g          }	 |dd	g          }
|                    |                    |	|
z
            d
k               rJ d S )N)rf   r/      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,   rJ   rC   rL   r5   r/   +=)r   meshgridr
   allabs)r"   r#   r   r   xgygr%   rJ   rL   
vals_cubic
vals_pchips              r*   test_cubic_vs_pchipz/TestRegularGridInterpolator.test_cubic_vs_pchip   s    zz,,,''LLL)A)A1QD11B***B33'AwGGG'AwGGGUC8__
UC8__
66"&&j!899EABBBBBBBr,   c                 (   |                                \  }}t          fd|D                       }t          ||          }                    g d          }                    dgj                  }t           ||          |           d S )Nc              3   B   K   | ]}                     |          V  d S rO   rP   rQ   s     r*   rT   z?TestRegularGridInterpolator.test_linear_xi1d.<locals>.<genexpr>   rU   r,   r\   H@rh   r2   rX   r
   r   rn   r   r"   r#   r$   r%   rF   rE   wanteds    `     r*   test_linear_xi1dz,TestRegularGridInterpolator.test_linear_xi1d   s    ..r224444V44444(88///00VHBJ77!&&..&99999r,   c                 *   |                                \  }}t          fd|D                       }t          ||          }                    g dg dg dg          }                    g d          }t	           ||          |           d S )Nc              3   B   K   | ]}                     |          V  d S rO   rP   rQ   s     r*   rT   z?TestRegularGridInterpolator.test_linear_xi3d.<locals>.<genexpr>   rU   r,   r=   r@   rB   r   gq@g     \@r+   rX   r
   r   r   r   s    `     r*   test_linear_xi3dz,TestRegularGridInterpolator.test_linear_xi3d   s    ,,R004444V44444(88///1D1D1D///1 2 222233!&&..&99999r,   zsample, wanted)r>   r>   r?   r?   g     0@)r>   r>   r>   r>   r   r   r   r   r   r   r   r   r        \@)r>   皙?g333333?r?   g     |@c                 (   |                                \  }}t          fd|D                                           |          }}t          ||d          }                    |gj                  }t           ||          |           d S )Nc              3   B   K   | ]}                     |          V  d S rO   rP   rQ   s     r*   rT   z;TestRegularGridInterpolator.test_nearest.<locals>.<genexpr>   s-      ==rzz!}}======r,   nearestrC   rh   )r+   tupler   r
   rn   r   )r"   rE   r   r#   r$   r%   rF   s      `   r*   test_nearestz(TestRegularGridInterpolator.test_nearest   s     ,,R00====f=====rzz&?Q?Q(	JJJVHBJ77!&&..&99999r,   c                 $   |                                \  }}t          fd|D                       }t          ||          }                    g dg dg          }                    ddg          }t	           ||          |           d S )Nc              3   B   K   | ]}                     |          V  d S rO   rP   rQ   s     r*   rT   z@TestRegularGridInterpolator.test_linear_edges.<locals>.<genexpr>   rU   r,   r   r   r   r   r   r   s    `     r*   test_linear_edgesz-TestRegularGridInterpolator.test_linear_edges   s    ,,R004444V44444(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   undefmethodrC   )r   r   r    rm   rZ   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                 ~   |                                \  }}t          fd|D                       }t          ||          }                    g dg dg          }t	          t
                    5   ||d           d d d            n# 1 swxY w Y                       g dg dg          }t	          t
                    5   ||           d d d            n# 1 swxY w Y                       g dg dg          }t	          t
                    5   ||           d d d            d S # 1 swxY w Y   d S )Nc              3   B   K   | ]}                     |          V  d S rO   rP   rQ   s     r*   rT   z>TestRegularGridInterpolator.test_valid_call.<locals>.<genexpr>   rU   r,   r   r   r   )r   r   r   )r   r   r   )r   r   r   皙?)r+   rX   r
   r   rm   rZ   )r"   r#   r$   r%   rF   rE   s    `    r*   test_valid_callz+TestRegularGridInterpolator.test_valid_call   s   ,,R004444V44444(88---/?/?/?@AA:&& 	* 	*F6=)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* \\\<<<899:&& 	 	F6NNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ---/@/@/@ABB:&& 	 	F6NNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6   4BBBCC#&C#D22D69D6c                    |                                \  }}t          fd|D                       }t          ||dd           }                    g dg dg dg dgj                  }                    g d	j                  }t           ||d
          |                               g dj                  }t           ||d          |           d S )Nc              3   B   K   | ]}                     |          V  d S rO   rP   rQ   s     r*   rT   zHTestRegularGridInterpolator.test_out_of_bounds_extrap.<locals>.<genexpr>  rU   r,   Fbounds_error
fill_value皙r   r   r   r   r   r   r       @皙ir   r   r   r   rh   )r   r         &@r   r   rC   )gfffff[gfffff@g     gr`   )r+   rX   r
   r   rn   r   r   s    `     r*   test_out_of_bounds_extrapz5TestRegularGridInterpolator.test_out_of_bounds_extrap  s"   ,,R004444V44444(e48: : :1113G3G3G1113I3I3IK"$*  . . 111DD!&&	"B"B"BFKKK>>>bjQQ!&&"A"A"A6JJJJJr,   c                    |                                \  }}t          fd|D                       }t          ||dd           }                    g dg dg dg dgj                  }                    g d	j                  }t           ||d
          |                               g dj                  }t           ||d          |           d S )Nc              3   B   K   | ]}                     |          V  d S rO   rP   rQ   s     r*   rT   zITestRegularGridInterpolator.test_out_of_bounds_extrap2.<locals>.<genexpr>  rU   r,   Fr   r   r   r   r   rh   )r   r   r   r   r   rC   )g333333(g33333`@g     gyXr`   r   r   s    `     r*   test_out_of_bounds_extrap2z6TestRegularGridInterpolator.test_out_of_bounds_extrap2  s"   ..r224444V44444(e48: : :1113G3G3G1113I3I3IK"$*  . . ///rzBB!&&	"B"B"BFKKK999LL!&&"A"A"A6JJJJJr,   c                 0   |                                \  }}t          fd|D                       }t          ||dj                  }                    g dg dg dg          }                    j        j        j        g          }t           ||d          |           t           ||d	          |                               g d
g dg dg          }                    g d          }t           ||          |           d S )Nc              3   B   K   | ]}                     |          V  d S rO   rP   rQ   s     r*   rT   zFTestRegularGridInterpolator.test_out_of_bounds_fill.<locals>.<genexpr>  rU   r,   Fr   r   r   r   r   rC   r`   r=   r@   rB   r   )r+   rX   r
   nanr   r   r   s    `     r*   test_out_of_bounds_fillz3TestRegularGridInterpolator.test_out_of_bounds_fill  sS   ,,R004444V44444(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                    \  }}t          ||d          }t          j        | }d |D             }t          j        |          }|                    d          }t          ||          }t          j        g dg dg dg          }t           ||           ||                     d S )Nr   rC   c                     g | ]}|S r   r   rR   rS   s     r*   
<listcomp>zJTestRegularGridInterpolator.test_nearest_compare_qhull.<locals>.<listcomp>0      000a000r,   r=   r@   rB   )	r+   r   r
   	itertoolsproductr   reshaper   r   r"   r$   r%   rF   points_qhullvalues_qhullinterp_qhullrE   s           r*   test_nearest_compare_qhullz6TestRegularGridInterpolator.test_nearest_compare_qhull,  s    ,,R00(	JJJ (&100<000z,//~~b)),\<HH///1D1D1D///1 2 2!&&..,,v2F2FGGGGGr,   c                    |                      t                    \  }}t          ||          }t          j        | }d |D             }t          j        |          }|                    d          }t          ||          }t          j        g dg dg dg          }t           ||           ||                     d S )Nc                     g | ]}|S r   r   r   s     r*   r   zITestRegularGridInterpolator.test_linear_compare_qhull.<locals>.<listcomp><  r   r,   r   r=   r@   rB   )	r+   r   r
   r   r   r   r   r   r   r   s           r*   test_linear_compare_qhullz5TestRegularGridInterpolator.test_linear_compare_qhull8  s    ,,R00(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
           d S )Nr   r/      rf      r   r   rC   r   ffffff?Fcheck_dtype)r   linspaceMyValuer
   _vr   )r"   r   r   r   r%   rF   rG   rH   s           r*   test_duck_typed_valuesz2TestRegularGridInterpolator.test_duck_typed_valuesD  s    K1a  K1a  (!QGGGVS#J(!Q6JJJVS#JBE222222r,   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   r/   r   rf   r   r   y      ?       @)r   randomseedr   randr
   rm   rZ   )r"   r   r   r%   s       r*   test_invalid_fill_valuez3TestRegularGridInterpolator.test_invalid_fill_valueR  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>f4rh   c                 6    g | ]}t          j        |          S r   )r   arange)rR   ns     r*   r   zCTestRegularGridInterpolator.test_fillvalue_type.<locals>.<listcomp>b  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,   ri   ndimrf   r/   r|   c                 v   t          j        ||          }t          d |D                       }t          j        d|          }t          j        d|z  |          }t          j        d|          }|dk    rt           j        n|}	t          |||d|	          }
t          |||d
          }t          j        |g          }t          j        |g|	          } |
|           ||          fD ]}t          ||           |dxx         dz  cc<   t          j        |g          }t          j        |g|	          } |
|          }t          ||           t          j	        t          d          5   ||           d d d            n# 1 swxY w Y   t           j        |d<   t          j        |g          }t          j        t           j        g|	          } |
|          }t          ||           t          j	        t          d          5   ||           d d d            d S # 1 swxY w Y   d S )Nrh   c              3   @   K   | ]}t          j        |g          V  d S rO   )r   r   rR   xis     r*   rT   zGTestRegularGridInterpolator.test_length_one_axis_all.<locals>.<genexpr>u  s.      55Brz2$''555555r,   g$I$I?)rf   )r   r   gaa?r`   Fr   r   r   Tr   r   r   rf   z9^One of the requested xi is out of bounds in dimension 0$rV   )r   r   r   r   fullrn   r
   r   rY   r	   rZ   r   )r"   ri   r   r   x0r$   valr%   fillpromoted_dtypeinterp_fill
interp_errrE   r   results                  r*   test_length_one_axis_allz4TestRegularGridInterpolator.test_length_one_axis_allg  s    Yt5))) 55"55555 jE***uTzc::: z$e,,, (.'9'9u .F6$
 
 
 -F6
 
 


 RD!!SE888"{6**JJv,>,>? 	, 	,FFF++++ 	1
RD!!TF.999V$$''']M
 
 
 	 	 Jv		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 1RD!!RVHN;;;V$$''']M
 
 
 	 	 Jv		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   7FFFH..H25H2c           
      h   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                    t          j        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d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          t          j        d d!g          d           d S )"Nc                     | |z   S rO   r   r   s     r*   fz;TestRegularGridInterpolator.test_length_one_axis.<locals>.f  s    q5Lr,   rf   r   r}   Tr~   sparser`   Fe   r   r   )r6         r   rk   gffffff?333333@)333333@333333@r  r   r
  )r   check_shapecheck_0drl   333333?g      '@g?g      )@rj   r5   gffffff?r   g?gffffff@r8   r  )r   r   r   r
   r   arrayr   r   )r"   r  r   r   datarF   s         r*   test_length_one_axisz0TestRegularGridInterpolator.test_length_one_axis  sU   	 	 	K1a  K2r""q"+aT$???@(!Qh6;M M M 	rx!Q!Q!R(ABBCC
<<<00"	$ 	$ 	$ 	$
 	rx!SAs8aW(EFFGG&"	$ 	$ 	$ 	$
 	rxc
3344)$)uu"	$ 	$ 	$ 	$ !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
C8,,"	$ 	$ 	$ 	$ 	$ 	$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          |t          j
        ||                     d S )	NFr   r   r   r   r/   r   r   rf   r   )r   r   pisinr
   zerosvstackTr   r   	full_like)r"   r   r   optionsr   zfafbx1azay1bzbs               r*   test_length_one_axis2z1TestRegularGridInterpolator.test_length_one_axis2  s`    ",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 < <=====r,   c                    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          j        ||                                                   sJ t          ||           |||                               g d}dg}t          j	        d          }t          ||f|dd|          }t          j        t          j         |t          j        dg                              sJ t          j        t          j         |dt          j        g                              sJ d S )Nr   r   rf   Fr     lJ r   sizer   r   ignoreinvalid)r|   rf   )
r
   r   isnanr   r   default_rngerrstater   r   r   )	r"   r   r  rngr   iresr   r  s	            r*   test_nan_x_1dz)TestRegularGridInterpolator.test_nan_x_1d  s    $YYYL,,,116vG G Gx26($$$$$ i##J//JJCJ  "JJCJ  3&v![*** 	 	
 !A$$C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 xA##%%%%%QB1aR5*** IIEwv#QFDQ16vG G Gvbhqq"&!~~../////vbhqq!RV~~..///////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          j        |	|                                                   sJ t          |	|           |||                    d           d S )N)r   rf   r/   )rf   r|   r   c                     | dz  |dz  z   S Nr/   r   r   s     r*   r  z4TestRegularGridInterpolator.test_nan_x_2d.<locals>.f  s    a4!Q$;r,   r}   Tr  Fr   r(  r)  r5   rf   r6   r   rk   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  r   r   r  rF   r0  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%0000xA i##J//JJCJ  "1$JJCJ  "ZZSZ!!C'ZZSZ!!C'G""HaV[*** 	 	
 &))C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 xA##%%%%%QB1"EBBBBBBs$   B))B-0B-GG"Gr   )ndimsfuncr/   c                 $    d| dz  z  d|dz  z  z   S Nr/   r|   r   r   s     r*   r   z$TestRegularGridInterpolator.<lambda>6  s    Q!Va!q&j0 r,   r|   c                 *    d| dz  z  d|dz  z  z   |z
  S r<  r   )r   r   r  s      r*   r   z$TestRegularGridInterpolator.<lambda>7  s     AQJQ!V3a7 r,   r   c                 0    d| dz  z  d|dz  z  z   |z
  |z   S r<  r   r   r   r  as       r*   r   z$TestRegularGridInterpolator.<lambda>8  s%    q16zAQJ6:Q> r,   r   c                 6    d| dz  z  d|dz  z  z   |z
  ||z  z   S r<  r   )r   r   r  r@  bs        r*   r   z$TestRegularGridInterpolator.<lambda>9  s)    !a1f*q16z"9A"=A"E r,   c                    |dk    r|dv rt          j        d           t          j                            d          }dd|                    d|f          }fd	t          |          D             } |t          j        |d
dd }t          |||          } ||          }	d |D             }
 |t          j        |
d
dd }t          |
||          } ||          }t          |	|           d S )Nr   >   rJ   rK   z-too slow; OOM (quintic); or nearly so (cubic)*   rf   r   r/   r&  c                 <    g | ]}t          j        d           S )   )r   r   )rR   _sample_high
sample_lows     r*   r   zITestRegularGridInterpolator.test_descending_points_nd.<locals>.<listcomp>E  s7     3 3 3 ! K
KDD 3 3 3r,   r}   Tr  rC   c                 $    g | ]}|d d d         S )Nr   r   r   s     r*   r   zITestRegularGridInterpolator.test_descending_points_nd.<locals>.<listcomp>Q  s"    AAA"R"XAAAr,   )
rY   ru   r   r   r,  uniformranger   r
   r   )r"   r   r9  r:  r.  test_pointsascending_pointsascending_valuesascending_interpascending_resultdescending_pointsdescending_valuesdescending_interpdescending_resultrH  rI  s                 @@r*   test_descending_points_ndz5TestRegularGridInterpolator.test_descending_points_nd3  s    A::&$888KGHHHi##B''
kk*kE
kKK3 3 3 3 3%*5\\3 3 3  4.>6:48": ": ": ; 33C3C:@B B B ,+K88AA0@AAA D"+/@7;59#; #; #; < 44E4E;AC C C .-k::(*;<<<<<r,   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<  r   r   s     r*   val_func_2dzJTestRegularGridInterpolator.test_invalid_points_order.<locals>.val_func_2d]  s    qAv:AF
**r,   r   r6   r         @      @r   r6   r8   r[  r\  r}   Tr  (must be strictly ascending or descendingrV   )r   r  r   rY   r	   rZ   r
   )r"   rY  r   r   r$   r%   rW   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   rF   s      r*   test_fill_valuez+TestRegularGridInterpolator.test_fill_valuei  sZ    (")A,,06UL L Lxt%%%%%%%r,   c                 ^   |dk    rt          j        d           dgdz  dgdz  z   }t          j                            d          }|                    d          }|                    d          }t          |||d	
          } ||          }|j        dk    s
J |            g }t          d          D ];}	t          ||d|	f         |d	
          }|                     ||                     <t          j	        |          
                    ddd          }
t          ||
d|           d S )NrK   Way too slow.r   r   r   r5   r6   r7   r/   r   r0   r1         .@r         9@r   r  r  r  r  r5  r   r|   r   Fr   r   r|   r5  r5  .rf   r   r   rl   err_msg)rY   ru   r   r   r,  r
   r   rL  appendr  	transposer   )r"   r   r$   r.  r%   rE   rF   vvsjrH   s              r*   test_nonscalar_valuesz1TestRegularGridInterpolator.test_nonscalar_valueso  s_    YK((( 11A5,9
9  i##D))O,,I&&(6;= = =F6NNw)###V###q 	& 	&A,VVCF^4::?A A AF IIffVnn%%%%Xb\\##Aq!,,2E6::::::r,   flip_pointsFTc           	         |dv rt          j        d           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 ]]}t          |j        d                   D ]@}t          ||d||f         |d          } ||          	                                |
||f<   A^t          j
        |
d          }t          |	|d|           d S )N>   rJ   rK   rc  rd  r4   )r   r0   r1   rf  r   rg       A@      B@)	r   r0   r1   rf  r   rg  rv  rw  /   c                 F    g | ]}t          t          |                    S r   )r   reversedr   s     r*   r   zGTestRegularGridInterpolator.test_nonscalar_values_2.<locals>.<listcomp>  s&    999QeHQKK((999r,   r   r|   r/   r  r   r5  	   r   Fr   rf   r   .r   axisr   rk  )rY   ru   r   r   r,  r
   r   emptyrL  itemexpand_dimsr   )r"   r   rs  r$   r.  trailing_pointsr%   rE   rF   ro  rp  r/  rq  rH   s                 r*   test_nonscalar_values_2z3TestRegularGridInterpolator.test_nonscalar_values_2  s    )))K(((D D D  	:99&999Fi##D)) Q1a:/::;;A(6;= = =F6NN w1/////// Xfl233'((v|B'(( 	1 	1A6<+,, 1 10Q	9J8>>CE E E "6&>>..001a4	1
 ^BQ'''2E6::::::r,   c           	         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 ]]}
t          |j        d                   D ]@}t          ||d|
|f         |d	
          } ||                                          |	|
|f<   A^t          j        |	d          }t          ||d|           d S )Nr`   rd  r4   r   )r|   r   r  r   r/   Fr   rf   r}  r   .r   r~  r   rk  )
r   r   r,  r
   r   r  rL  r  r  r   )r"   r   r$   r.  r  r%   rE   rF   ro  rp  r/  rq  rH   s                r*   test_nonscalar_values_linear_2Dz;TestRegularGridInterpolator.test_nonscalar_values_linear_2D  s   059 i##D)) Q4O4455A(6;= = =F6NN w1/////// Xfl233'((v|B'(( 	1 	1A6<+,, 1 10Q	9J8>>CE E E "6&>>..001a4	1
 ^BQ'''2E6::::::r,   xi_dtypec                 v   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d           d S )Nc                 $    d| dz  z  d|dz  z  z   S r<  r   r   s     r*   r  z:TestRegularGridInterpolator.test_float32_values.<locals>.f  s    q!t8a!Q$h&&r,   rf   r   r  r      r}   Tr  r   g@ffffff
@g@rh   g Y`@g{,c@gHz>F)rl   rtolr   )r   r   r   astyper
   r  r   )r"   ri   r  r  r   r   r   r   r  rF   ptss              r*   test_float32_valuesz/TestRegularGridInterpolator.test_float32_values  s    	' 	' 	' K1b!!K1b!!QD>>>BqRyy{{5!!(!Q66hc
c
$+35 5 5 	slL%A!%	A 	A 	A 	A 	A 	Ar,   c                    t          j        ddd          }t          j        ddd          }t          j        ||dd          \  }}||z   }t          t                    5  t          ||f|d            d d d            n# 1 swxY w Y   t          t                    5  t          ||f|d	d
            d d d            n# 1 swxY w Y   t          t                    5  t          ||f|d	d d           d d d            n# 1 swxY w Y   t          t                    5  t          ||f|d	ddi           d d d            d S # 1 swxY w Y   d S )Nr   r|   r   r}   Tr  c                     | S rO   r   r   s    r*   r   z=TestRegularGridInterpolator.test_bad_solver.<locals>.<lambda>  s    1 r,   )solverra   c                     | S rO   r   r  s    r*   r   z=TestRegularGridInterpolator.test_bad_solver.<locals>.<lambda>       r,   )r   r  c                     | S rO   r   r  s    r*   r   z=TestRegularGridInterpolator.test_bad_solver.<locals>.<lambda>  r  r,   woof)r   r  r  rD  )r   solver_args)r   r   r   rm   rZ   r
   	TypeError)r"   r   r   r   r   r  s         r*   test_bad_solverz+TestRegularGridInterpolator.test_bad_solver  s   K1a  K1a  QD>>>BBw :&& 	F 	F#QFDEEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 9%% 	 	#AY{{   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 9%% 	 	#AY{{   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 9%% 	 	#AYfb\   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   !BB
B"CC	C	$DDD'EEEc                     |                      t                    \  }}t          j        g dg dg dg dg          t          ||d          }ddgfd}t	          d	||           d S )
Nr=   r@   rB   )r  r>   rA   r   ra   rC   r   c                 \    |j         }| dz           } ||           |j         |u sJ d S )Nr/   rC   )_spline)tidrF   spliner   methodsrE   s       r*   	worker_fnz?TestRegularGridInterpolator.test_concurrency.<locals>.worker_fn  sF    ^FS1W%FF6&))))>V++++++r,   r   )r+   r   r  r
   r   )r"   r$   r%   rF   r  r  rE   s        @@r*   test_concurrencyz,TestRegularGridInterpolator.test_concurrency  s    ,,R003333333333335 6 6 )	JJJ i(	, 	, 	, 	, 	, 	, 	 Iv66666r,   )6__name__
__module____qualname__r+   r2   r9   r;   parametrize_rgi_interp_methodsrI   rY   markparametrizer[   r   r   rc   ro   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   float32rn   r   r  r   r  r#  r1  r8  	fail_slowrV  r_  ra  rr  r  r  	complex64
complex128r  r  r  r   r,   r*   r   r      s       	 	 		 	 		 	 		 	 	 $    $#   [X'D'D'DEE* * FE*  [ 
%%%&&&%%%'  zrz*?*?*?@@A
	
      O O O* $    $# "C C C: : :: : : [!!!6*!!!3'!!!3'!!!6*!!!6*	
	 	: :	 	:: : :, , ,$   K K KK K K: : :
H 
H 
H
H 
H 
H [X	8'<==3 3 >=37 7 7? ? ? [Wrz2:&>??[VYYY//[X)'<==; ; >= 0/ @?;z*$ *$ *$X [\D"&"%+@AA[X)'<==> > >= BA>4 [X	8'<==0 0 >=0< [X	8'<=="C "C >="CH [2#[.	
001	
778	
>>?	
EEF	1  = =  $# =B4 4 4 $& & $#&
 [1#; ; $# ;: $[]UDM::'; '; ;: $#';R; ; ;> [	RZr}=  [Z"*bj)ABBA A CB	 
A0  87 7 7 7 7r,   r   c                   ,    e Zd ZdZd Zd Zd ZddZdS )r   z"
    Minimal indexable object
    c                     d| _         || _        t          j        t          j        |                                        |          | _        d S r4  )r   r   r   r   prodr   r   )r"   r   s     r*   __init__zMyValue.__init__*  s;    	
)BGENN++33E::r,   c                     | j         |         S rO   )r   )r"   idxs     r*   __getitem__zMyValue.__getitem__/  s    ws|r,   c                     d S rO   r   )r"   s    r*   __array_interface__zMyValue.__array_interface__2  s    tr,   Nc                      t          d          )NzNo array representation)RuntimeError)r"   ri   copys      r*   	__array__zMyValue.__array__5  s    4555r,   )NN)r  r  r  __doc__r  r  r  r  r   r,   r*   r   r   %  s_         ; ; ;
    6 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j                            d          ed                         Zed             Zd Zed             Zd Zd Zej                            dddg          d             Ze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   r6   r8   r[  r\  g      @)rf   r/   rf   r/   rf   rf   )rf   r/   r|   r/   rf   rf   )rf   r/   r/   r/   rf   rf   )r   r  )r"   r   r   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rf   ffffff@r	  r   r  333333?r|   rf   r  r  r[  r0   r   r|   	splinef2drC   r   rf   )r  r   r   r  r  r   r   ev)r"   r   r   r  lutr   s         r*   test_spline_2dzTestInterpN.test_spline_2dI  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 )Nr  r  rC   )rl  )r  r   r  r  r   rD   r   )r"   r   r   r   r  r   rG   rH   s           r*   rI   zTestInterpN.test_list_inputR  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]  rf   r/   rf   r/   rf   rf   r/   r|   r/   rf   rf   r/   r/   r/   rf   rf   r  r  r   r  r  r|   rf   r  r  g      r0   r   r|   r  FR?@r   r   rf   r/   r   )	r   r  r   r  r   r  r   rm   rZ   )r"   r   r   r  r  r   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 r.   )r   r   r    )r"   r$   r%   r&   r'   r(   r)   s          r*   _sample_4d_datazTestInterpN._sample_4d_datap  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 )Nr\   r`   rC   r  r
   r   r   r   r   r"   r$   r%   	interp_rgrE   r   s         r*   test_linear_4dzTestInterpN.test_linear_4dz  su    --//+FF;;	000122AAA!))F"3"3V<<<<<r,   c                     |                                  \  }}t          j        g dg          }t          j        dg          }t          |||ddd          }t	          ||           d S )Nr>   r   g333333$@r]   r  r`   Fr   r  r   r   r   r   r"   r$   r%   rE   r   r  s         r*   test_4d_linear_outofboundsz&TestInterpN.test_4d_linear_outofbounds  s{    --//222344VH%%&+@ @ @!&&11111r,   c                     |                                  \  }}t          ||d          }t          j        g dg          }t	          |||d          }t           ||          |           d S )Nr   rC   r\   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          }t          j        dg          }t          |||ddd          }t	          ||           d S )Nr  r  r   Fr   r  r  s         r*   test_4d_nearest_outofboundsz'TestInterpN.test_4d_nearest_outofbounds  s{    --//222344VH%%	&+@ @ @!&&11111r,   c                     |                                  \  }}t          j        g d          }t          |||d          }t          |||d d d f         d          }t	          ||           d S )Nr\   F)r   )r  r   r   r   r   r"   r$   r%   rE   rG   rH   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          }|j        dk    sJ t          |||                    d	d          dd          }t          ||                    |j                             d S )
Nr   r/   r|   r   r   Fr   r/   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"') ) )x6!!!!VVV^^B%:%:%E; ; ;BJJrx0011111r,   c                 4   |                                  \  }}}||f}t          j        ddd          }t          j        ddd          }|d d d f         |d d d f         f}t          ||||d          }	|	j        dk    sJ t          j        ||          \  }
}t          j        |
j                                        |j                                        f         }t          ||||d          }t          |	|
                    |	j                             d S )Nr   rf   r/   r|   Fr   r  )r  r   r   r   r   r   c_r  ravelr   r   )r"   r   r   r   r%   r$   r   yirE   rG   xxyyrH   s                r*   test_xi_broadcastzTestInterpN.test_xi_broadcast  s    ++--1fQ[Aq!![Aq!!QQQW+r$'{+VVVFOOOx6!!!!R$$Brtzz||RTZZ\\12VVV"8 8 8BJJrx0011111r,   r   c                    dk    rt          j        d           dgdz  dgdz  z   t          j                            d          }|                    d          |                    d          t          d	
          }|j        dk    s
J             fdt          d          D             }t          j        |          	                    ddd          }t          ||d           d S )NrK   rc  rd  r/   re  r   rh  ri  Fr   rj  c           	      H    g | ]}t          d |f         d          S .Fr   r   rR   rq  r   r$   rE   r%   s     r*   r   z5TestInterpN.test_nonscalar_values.<locals>.<listcomp>  sK     = = =./ ffS!VnfV#(* * * = = =r,   r5  rf   r   r   rk  )rY   ru   r   r   r,  r   r   rL  r  rn  r   )	r"   r   r.  ro  rp  rH   r$   rE   r%   s	    `    @@@r*   rr  z!TestInterpN.test_nonscalar_values  s3    YK((( 11A5,9
9  i##D))O,,I&&FFF6!&( ( (w)###V###= = = = = = =3888= = =Xb\\##Aq!,,2E6::::::r,   c                    dv rt          j        d           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 )N>   rJ   rK   rc  ru  r   r{  r  r   r5  r|  r   Fr   rf   c                 f    g | ],fd t          j        d                   D             -S )c           	      J    g | ]}t          d |f         d           S r  r  )rR   r/  rq  r   r$   rE   r%   s     r*   r   zBTestInterpN.test_nonscalar_values_2.<locals>.<listcomp>.<listcomp>  sN       01 sAqy 16&%*, , ,  r,   r}  )rL  r   r  s    @r*   r   z7TestInterpN.test_nonscalar_values_2.<locals>.<listcomp>  sp     2 2 2        5:6<;K5L5L   2 2 2r,   r   r   rk  )rY   ru   r   r   r,  r   r   rL  r   r   r  )	r"   r   r.  r  ro  rp  r$   rE   r%   s	    `    @@@r*   r  z#TestInterpN.test_nonscalar_values_2  s/    )))K(((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   r|   r  r   r  r   r  rC   )r  r   r   r   r   rm   rZ   r   )r"   r$   r%   rE   s       r*    test_non_scalar_values_splinef2dz,TestInterpN.test_non_scalar_values_splinef2d  s    --//
	t1aA..2q))j'666(	* 	* 	* 	* 	* 	*r,   c                 v   |dk    rt          j        d           |                                 \  }}}||f}|d|z  z
  }t          j        g dg dg          j        }t          ||||          }t          ||j        ||          }t          ||j        ||          }	|d|	z  z   }
t          ||
           d S )NrL   rq   rs   r  r  rC   rt   )
rY   ru   r  r   r  r  r   rv   rw   r   )r"   r   r   r   r%   r$   rE   rG   v2rv2irH   s              r*   rz   zTestInterpN.test_complex  s    WKDEEE++--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	          j        t          d          5  t          |||d           d d d            d S # 1 swxY w Y   d S )Nrs   r  r  rv   rV   rL   rC   )r  r   r  r  rY   r	   rZ   r   r"   r   r   r%   r$   rE   s         r*   test_complex_pchipzTestInterpN.test_complex_pchip  s    ++--1fQ"V)#::::::< = ==> 	]:V444 	< 	<FFF7;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   B  BBc                    |                                  \  }}}||f}|d|z  z
  }t          j        g dg dg          j        }t	          j        t                    5  t          |||d           d d d            d S # 1 swxY w Y   d S )Nrs   r  r  r  rC   )r  r   r  r  rY   warnsr   r   r  s         r*   test_complex_spline2fdz"TestInterpN.test_complex_spline2fd*  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
           d S )Nr   r/   r   rf   r   r   r   r   rC   Fr   )r   r   r   r   r   r   )r"   r   r   r   r%   rG   rH   s          r*   r   z"TestInterpN.test_duck_typed_values5  s    
 K1a  K1a  aVVc3Z???aVVYc
6BBBBE222222r,   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        |          ||          }|dk    rt          ||d	d
           dS t          ||           dS )z8np.matrix inputs are allowed for backwards compatibilityr   r/   r  rf   r   r|   rC   rK   g-C6
?g>)rl   r  N)r   r   r   r   r   r   r   r   )r"   r   r   r   r%   rE   rG   rH   s           r*   test_matrix_inputzTestInterpN.test_matrix_inputC  s     K1a  K1a  	q!,,--1a((aVVVF;;;aVRZ//GGGYBD999999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)r>   rf   r   rf   g@g	@gffffff@)r/   r|   r   )gQ?gffffff@gffffff @rj   rk   r   r5   gffffffFr   )r   r  r   r   )r"   r%   r   r0  r   s        r*   r  z TestInterpN.test_length_one_axisV  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<  r   r?  s       r*   value_func_4dz9TestInterpN.test_descending_points.<locals>.value_func_4dm  s'    qAv:AF
*Q.22r,   )r   rf   r/   r|   )r   r   r   r   )r   r>   rA   r  r}   Tr  r>   r  r   r   r   r   )r   r  r   rn  r   r   r   )r"   r	  x1x2x3x4r$   r%   r  correct_result
x1_descend
x2_descend
x3_descend
x4_descendpoints_shuffledvalues_shuffledtest_results                    r*   test_descending_pointsz"TestInterpN.test_descending_pointsl  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44444r,   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 )
NrZ  r]  r  r  r  r  r  r^  rV   )r   r  r  rY   r	   rZ   r   )r"   r   r   r  r   rW   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   rf   r   rf   )rf   rf   r|   zaThe requested sample points xi have dimension 3, but this RegularGridInterpolator has dimension 1rV   )r   r   rm   rZ   r   )r"   r$   r%   r   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"   r   r   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"   r   r   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  r  r!  c_contiguousr   r  r   r
   )r"   r   r   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,   ri   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   rh   r  r'  r  r  )r   r   r   r  r   r
   )r"   ri   r   r   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)%r  r  r  r  r  r  rI   r  r  r  r  r  r  r  r  r  rY   r  r  rr  r  r  rz   r  r  r  r   r   r  r  r  r_  r  r%  r(  r,  r.  r   r,   r*   r  r  9  s         > > > $0 0 $#0; ; ;&  = = =2 2 2= = =2 2 2     2 2 2 $2 2 $#2& [1#; ; $# ;0 $I I $#I@* * * $    $# $	< 	< 	<	@ 	@ 	@ [	9 3 3	 3 #$ $ $# $"1 1 1,5 5 54
# 
# 
#( ( (7 7 77 7 77 7 7 [Wuen55	7 	7 65	7 	7 	7r,   r  ) r   rY   numpyr   numpy.exceptionsr   scipy._lib._array_apir   r   r   r   scipy.conftestr   r	   rm   scipy.interpolater
   r   r   r   r   scipy.sparse._sputilsr   scipy._lib._testutilsr   r  r  _ALL_METHODSr  r   r   r  r   r,   r*   <module>r7     s            + + + + + +            / . . . . . * * * * * *L L L L L L L L L L L L L L ) ( ( ( ( ( 9 9 9 9 9 9 "(!8!8%2" "  *++E7 E7 E7 E7 E7 E7 E7 ,+E7P6 6 6 6 6 6 6 6(X7 X7 X7 X7 X7 X7 X7 X7 X7 X7r,   