code: def testSizeObject(self, row_partitions, shape, dtype, expected):
      if row_partitions is not None:
          row_partitions = [
              row_partition.RowPartition.from_row_splits(r)
              for r in row_partitions
          ]
      st = StructuredTensor.from_fields(
          {}, shape=shape, row_partitions=row_partitions
      )
      # NOTE: size is very robust. There aren't arguments that
      # should cause this operation to fail.
      actual = array_ops.size(st, out_type=dtype)
      self.assertAllEqual(actual, expected)
  
      actual2 = array_ops.size_v2(st, out_type=dtype)
      self.assertAllEqual(actual2, expected)
  
imports: from absl.testing import parameterized
  from tensorflow.python.eager import def_function
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import random_seed
  from tensorflow.python.framework import tensor
  from tensorflow.python.framework import tensor_shape
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import random_ops
  from tensorflow.python.ops.ragged import ragged_factory_ops
  from tensorflow.python.ops.ragged import ragged_tensor
  from tensorflow.python.ops.ragged import row_partition
  from tensorflow.python.ops.ragged.dynamic_ragged_shape import DynamicRaggedShape
  from tensorflow.python.ops.structured import structured_array_ops
  from tensorflow.python.ops.structured import structured_tensor
  from tensorflow.python.ops.structured.structured_tensor import StructuredTensor
  from tensorflow.python.platform import googletest
  from tensorflow.python.util import nest
label_desc: Use image node_id 7 for calling the StructuredArrayOpsTest obj's underlying member method code with example usage: obj.testSizeObject(row_partitions, shape, dtype, expected) without return types