code: def testRanked(self, graph_fn, rank):
      num_splits = [2] * rank
      num_outputs = 2 << (rank - 1)
      input_value = np.reshape(
          np.arange(np.prod(num_splits)), num_splits
      )
      for dtype in self.numeric_types:
          with self.session() as sess, self.device_scope():
              split = graph_fn(
                  sess,
                  input_value=input_value,
                  input_dtype=dtype,
                  num_outputs=num_outputs,
                  num_splits=num_splits,
              )
              results = sess.run(split)
          self.assertLen(results, num_outputs)
          for i, result in enumerate(results):
              expected_output = np.reshape(i, [1] * rank).astype(dtype)
              self.assertAllClose(result, expected_output)
  
imports: from typing import Any, List, Optional
  from absl.testing import parameterized
  import numpy
  from tensorflow.compiler.tests import xla_test
  from tensorflow.python.client.session import Session
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework.ops import control_dependencies
  from tensorflow.python.framework.ops import Tensor
  from tensorflow.python.ops import gen_tpu_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import resource_variable_ops
  from tensorflow.python.ops import variables
  from tensorflow.python.platform import test
label_desc: Use image node_id 14 for calling the XlaSplitNDOpTest obj's underlying member method code with example usage: obj.testRanked(graph_fn, rank) without return types