code: def test_time_stats_generator_no_values_exits_add_input_early(
      self, mock_update
  ):
      generator = time_stats_generator.TimeStatsGenerator()
      accumulator = generator.create_accumulator()
  
      # The accumulator is not updated when the values list in an input batch is
      # None.
      input_batch = pa.array([None])
      generator.add_input(
          accumulator, types.FeaturePath([""]), input_batch
      )
      self.assertFalse(mock_update.called)
  
      # The accumulator is not updated when the values list in an input batch is
      # empty.
      input_batch = pa.array([])
      generator.add_input(
          accumulator, types.FeaturePath([""]), input_batch
      )
      self.assertFalse(mock_update.called)
  
      # The accumulator is updated when a non-empty input_batch is added.
      input_batch = pa.array([["2018-11-30"]])
      generator.add_input(
          accumulator, types.FeaturePath([""]), input_batch
      )
      self.assertTrue(mock_update.called)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from unittest import mock
  from absl.testing import absltest
  from absl.testing import parameterized
  import pyarrow
  from tensorflow_data_validation import types
  from tensorflow_data_validation.statistics.generators import time_stats_generator
  from tensorflow_data_validation.utils import test_util
  from tensorflow_metadata.proto.v0 import schema_pb2
  from tensorflow_metadata.proto.v0 import statistics_pb2
label_desc: Use image node_id 7 for calling the TimeStatsGeneratorTest obj's underlying member method code with example usage: obj.test_time_stats_generator_no_values_exits_add_input_early(mock_update) without return types