code: def tile(cls, op: "_TestOperand"):
      data1, data2 = op.inputs
  
      data1 = mt.sort(data1)
      data2 = mt.sort(data2)
      data_all = mt.concatenate([data1, data2])
      s1 = mt.searchsorted(data1, data_all)
      s2 = mt.searchsorted(data2, data_all)
      result = yield from recursive_tile(mt.concatenate([s1, s2]))
      # data1 will be yield by s1
      assert not has_unknown_shape(data1)
      assert not has_unknown_shape(data2)
      assert not has_unknown_shape(data_all)
      return result
  
file_path: mars/mars/core/entity/tests/test_utils.py
imports: import numpy
  import pytest
  from ....None import tensor
  from ....tensor.operands import TensorOperand, TensorOperandMixin
  from ....utils import has_unknown_shape
  from ...None import recursive_tile
label_desc: Use image node_id 1 for calling the _TestOperand obj's underlying member method code with example usage: obj.tile(cls, op) and returns: result