code: def _test_set_size_2d(self, dtype):
      self.assertAllEqual(
          [1], self._set_size(_dense_to_sparse([[1]], dtype))
      )
      self.assertAllEqual(
          [2, 1], self._set_size(_dense_to_sparse([[1, 9], [1]], dtype))
      )
      self.assertAllEqual(
          [3, 0],
          self._set_size(_dense_to_sparse([[1, 9, 2], []], dtype)),
      )
      self.assertAllEqual(
          [0, 3],
          self._set_size(_dense_to_sparse([[], [1, 9, 2]], dtype)),
      )
  
imports: from absl.testing import parameterized
  import numpy
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors_impl
  from tensorflow.python.framework import sparse_tensor
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import gen_set_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import sets
  from tensorflow.python.ops import sparse_ops
  from tensorflow.python.platform import googletest
label_desc: Use image node_id 2 for calling the SetOpsTest obj's underlying member method code with example usage: obj._test_set_size_2d(dtype) without return types