code: def testPreserveCardinality(self):
      def scan_fn(state, val):
          def py_fn(_):
              raise StopIteration()
  
          return state, script_ops.py_func(py_fn, [val], dtypes.int64)
  
      dataset = dataset_ops.Dataset.from_tensors(0).scan(
          initial_state=constant_op.constant(1), scan_func=scan_fn
      )
      get_next = self.getNext(dataset)
      with self.assertRaises(errors.InvalidArgumentError):
          self.evaluate(get_next())
  
imports: import itertools
  from absl.testing import parameterized
  import numpy
  from tensorflow.python.data.kernel_tests import checkpoint_test_base
  from tensorflow.python.data.kernel_tests import test_base
  from tensorflow.python.data.ops import dataset_ops
  from tensorflow.python.data.ops import options
  from tensorflow.python.data.ops import scan_op
  from tensorflow.python.framework import combinations
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import sparse_tensor
  from tensorflow.python.framework import test_ops
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import cond
  from tensorflow.python.ops import control_flow_v2_toggles
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import script_ops
  from tensorflow.python.ops import tensor_array_ops
  from tensorflow.python.ops import variables
  from tensorflow.python.platform import test
label_desc: Use image node_id 11 for calling the ScanTest obj's underlying member method code with example usage: obj.testPreserveCardinality() and returns: state,  script_ops