code: def testMissBaselineStats(self):
      validation_config = text_format.Parse(
          """
        default_slice_config: {
          feature: {
              path: {
                  step: 'parent_feature'
                  step: 'value_feature'
              }
              distribution_comparator: {
                jensen_shannon_divergence: {
                    threshold: 0.0
                }
              }
          }
        }""",
          distribution_validator_pb2.DistributionValidatorConfig(),
      )
  
      source_data_dir = os.path.join(
          os.path.dirname(os.path.dirname(__file__)), "testdata"
      )
  
      stats_artifact = standard_artifacts.ExampleStatistics()
      stats_artifact.uri = os.path.join(
          source_data_dir, "statistics_gen"
      )
      stats_artifact.split_names = artifact_utils.encode_split_names(
          ["train", "eval"]
      )
      input_dict = {
          standard_component_specs.STATISTICS_KEY: [stats_artifact],
          standard_component_specs.BASELINE_STATISTICS_KEY: [],
      }
      # The analyzed splits are set for this test to get a single result proto.
      exec_properties = {
          # List needs to be serialized before being passed into Do function.
          standard_component_specs.INCLUDE_SPLIT_PAIRS_KEY: json_utils.dumps(
              [("train", "eval")]
          ),
          standard_component_specs.DISTRIBUTION_VALIDATOR_CONFIG_KEY: validation_config,
          standard_component_specs.CUSTOM_VALIDATION_CONFIG_KEY: None,
      }
  
      output_data_dir = os.path.join(
          os.environ.get(
              "TEST_UNDECLARED_OUTPUTS_DIR", self.get_temp_dir()
          ),
          self._testMethodName,
      )
  
      validation_output = standard_artifacts.ExampleAnomalies()
      validation_output.uri = os.path.join(output_data_dir, "output")
  
      output_dict = {
          standard_component_specs.ANOMALIES_KEY: [validation_output],
      }
  
      distribution_validator_executor = executor.Executor()
      distribution_validator_executor.Do(
          input_dict, output_dict, exec_properties
      )
  
      self.assertEqual(
          validation_output.get_json_value_custom_property(
              executor.ARTIFACT_PROPERTY_BLESSED_KEY
          ),
          {
              "train": executor.NO_BASELINE_STATS,
              "eval": executor.NO_BASELINE_STATS,
          },
      )
  
imports: import os
  import tempfile
  from absl import flags
  from absl.testing import absltest
  from absl.testing import parameterized
  from tensorflow_data_validation.anomalies.proto import custom_validation_config_pb2
  from tfx.components.distribution_validator import executor
  from tfx.dsl.io import fileio
  from tfx.orchestration.experimental.core import component_generated_alert_pb2
  from tfx.orchestration.experimental.core import constants
  from tfx.proto import distribution_validator_pb2
  from tfx.types import artifact_utils
  from tfx.types import standard_artifacts
  from tfx.types import standard_component_specs
  from tfx.utils import io_utils
  from tfx.utils import json_utils
  from tfx.utils import test_case_utils
  from google.protobuf import text_format
  from tensorflow_metadata.proto.v0 import anomalies_pb2
  from tensorflow_metadata.proto.v0 import statistics_pb2
label_desc: Use image node_id 5 for calling the ExecutorTest obj's underlying member method code with example usage: obj.testMissBaselineStats() without return types