code: def test_compile_steps_with_missing_input_steps():
      # a diamond graph
      CustomStep(name="custom-step-0")
      step_1 = CustomStep(name="custom-step-1")
      step_1.add_depends_on(["custom-step-0"])
      step_2 = CustomStep(name="custom-step-2")
      step_2.add_depends_on(["custom-step-0"])
      step_3 = CustomStep(name="custom-step-3")
      step_3.add_depends_on([step_1, step_2])
  
      compiler = StepsCompiler(
          pipeline_name="test-pipeline",
          sagemaker_session=None,
          pipeline_definition_config=None,
          steps=[step_3],
      )
  
      with pytest.raises(
          ValueError,
          match="The input steps do not contain the step of name: custom-step-0",
      ):
          compiler.build()
  
imports: from __future__ import absolute_import
  import pytest
  from sagemaker.workflow.steps import Step, StepTypeEnum
  from sagemaker.workflow.function_step import step
  from sagemaker.workflow.step_collections import StepCollection
  from sagemaker.workflow.condition_step import ConditionStep
  from sagemaker.workflow.conditions import ConditionEquals
  from sagemaker.workflow.properties import Properties
  from sagemaker.workflow.pipeline_definition_config import PipelineDefinitionConfig
  from sagemaker.workflow._steps_compiler import StepsCompiler
  from sagemaker.workflow.utilities import load_step_compilation_context, list_to_request
label_desc: Use image node_id 3 for calling a global function with example usage: test_compile_steps_with_missing_input_steps() without return types