code: def test_upper_bound(self, order):
      @jit.rawkernel()
      def upper_bound(x, v, out):
          i = jit.threadIdx.x
          it = jit.thrust.upper_bound(
              jit.thrust.seq, x.begin(), x.end(), v[i]
          )
          out[i] = it - x.begin()
  
      n1, n2 = (128, 160)
      x = testing.shaped_random((n2,), dtype=numpy.int32, order=order)
      x = cupy.sort(x)
      values = testing.shaped_random(
          (n1,), dtype=numpy.int32, order=order
      )
      out = cupy.zeros(n1, dtype=numpy.int32)
      upper_bound[1, n1](x, values, out)
  
      expected = cupy.searchsorted(x, values, side="right")
      testing.assert_array_equal(out, expected)
  
imports: import numpy
  import pytest
  import cupy
  from cupy import testing
  from cupy_backends.cuda.api import runtime
  from cupyx import jit
label_desc: Use image node_id 53 for calling the TestThrust obj's underlying member method code with example usage: obj.test_upper_bound(order) without return types