code: def test_array_smoothing(self, xp, scp):
      # Test using an array for `smoothing` to give less weight to a known
      # outlier.
      rng = _np.random.RandomState(0)
      seq = Halton(1, scramble=False, seed=rng)
      degree = 2
  
      x = xp.asarray(seq.random(50))
      if xp is _np:
          P = _vandermonde(cp.asarray(x), degree).get()
      else:
          P = _vandermonde(x, degree)
      poly_coeffs = xp.asarray(rng.normal(0.0, 1.0, P.shape[1]))
      y = P.dot(poly_coeffs)
      y_with_outlier = xp.copy(y)
      y_with_outlier[10] += 1.0
      smoothing = xp.zeros((50,))
      smoothing[10] = 1000.0
      yitp = self.build(scp, x, y_with_outlier, smoothing=smoothing)(x)
      # Should be able to reproduce the uncorrupted data almost exactly.
      return yitp, y
  
imports: import pickle
  import pytest
  import warnings
  import numpy
  from numpy.linalg import LinAlgError
  import cupy
  import cupyx
  from cupy import testing
  import cupyx.scipy.interpolate
  from cupyx.scipy.interpolate._rbfinterp import _AVAILABLE, _SCALE_INVARIANT, _NAME_TO_MIN_DEGREE, NAME_TO_FUNC, _monomial_powers, polynomial_matrix, kernel_matrix
label_desc: Use image node_id 10 for calling the _TestRBFInterpolator obj's underlying member method code with example usage: obj.test_array_smoothing(xp, scp) and returns: yitp,  y