code: def testResolveSplitsConfigEmptyAnalyze(self):
      wrong_config = transform_pb2.SplitsConfig(transform=["train"])
      with self.assertRaisesRegex(
          ValueError, "analyze cannot be empty"
      ):
          config_str = proto_utils.proto_to_json(wrong_config)
          executor_utils.ResolveSplitsConfig(config_str, [])
  
imports: import tensorflow
  from tfx.components.transform import executor_utils
  from tfx.components.transform import labels
  from tfx.proto import transform_pb2
  from tfx.types import artifact_utils
  from tfx.types import standard_artifacts
  from tfx.types import standard_component_specs
  from tfx.utils import proto_utils
label_desc: Use image node_id 5 for calling the ExecutorUtilsTest obj's underlying member method code with example usage: obj.testResolveSplitsConfigEmptyAnalyze() without return types