code: def test_numpy_interp(
      frontend,
      test_flags,
      fn_tree,
      backend_fw,
      on_device,
      xp_and_fp,
      x,
      left,
      right,
      period,
  ):
      input_dtypes, xp_fp = xp_and_fp
      xp = ivy.array(xp_fp[0])
      fp = ivy.array(xp_fp[1])
      if period is None:
          xp_order = ivy.argsort(xp)
          xp = xp[xp_order]
          fp = fp[xp_order]
          previous = xp[0]
          for i in xp[1:]:
              assume(i > previous)
              previous = i
      x_dtype, x = x
      np_frontend_helpers.test_frontend_function(
          input_dtypes=input_dtypes + x_dtype,
          backend_to_test=backend_fw,
          frontend=frontend,
          test_flags=test_flags,
          fn_tree=fn_tree,
          on_device=on_device,
          x=x[0],
          xp=xp,
          fp=fp,
          left=left,
          right=right,
          period=period,
      )
  
imports: from hypothesis import assume, strategies
  import numpy
  import ivy_tests.test_ivy.helpers
  import ivy_tests.test_ivy.test_frontends.test_numpy.helpers
  from ivy_tests.test_ivy.helpers import handle_frontend_test
  import ivy
label_desc: Use image node_id 10 for calling a global function with example usage: test_numpy_interp(frontend, test_flags, fn_tree, backend_fw, on_device, xp_and_fp, x, left, right, period) without return types