code: def test_creation_and_hydration():
      exp_id = str(random_int())
      name = f"exp_{random_int()}_{random_int()}"
      lifecycle_stage = LifecycleStage.ACTIVE
      location = random_file(".json")
      creation_time = get_current_time_millis()
      last_update_time = get_current_time_millis()
      exp = Experiment(
          exp_id,
          name,
          location,
          lifecycle_stage,
          creation_time=creation_time,
          last_update_time=last_update_time,
      )
      _check(
          exp,
          exp_id,
          name,
          location,
          lifecycle_stage,
          creation_time,
          last_update_time,
      )
  
      as_dict = {
          "experiment_id": exp_id,
          "name": name,
          "artifact_location": location,
          "lifecycle_stage": lifecycle_stage,
          "tags": {},
          "creation_time": creation_time,
          "last_update_time": last_update_time,
      }
      assert dict(exp) == as_dict
      proto = exp.to_proto()
      exp2 = Experiment.from_proto(proto)
      _check(
          exp2,
          exp_id,
          name,
          location,
          lifecycle_stage,
          creation_time,
          last_update_time,
      )
  
      exp3 = Experiment.from_dictionary(as_dict)
      _check(
          exp3,
          exp_id,
          name,
          location,
          lifecycle_stage,
          creation_time,
          last_update_time,
      )
  
imports: from mlflow.entities import Experiment, LifecycleStage
  from mlflow.utils.time import get_current_time_millis
  from tests.helper_functions import random_file, random_int
label_desc: Use image node_id 2 for calling a global function with example usage: test_creation_and_hydration() without return types