code: def test_default_config(
      x: Optional[int], output: int, default_model_storage: ModelStorage
  ):
      graph_schema = GraphSchema(
          {
              "subtract": SchemaNode(
                  needs={"i": "input"},
                  uses=SubtractByX,
                  fn="subtract_x",
                  constructor_name="create",
                  config={"x": x} if x else {},
                  is_target=True,
              )
          }
      )
  
      runner = DaskGraphRunner(
          graph_schema=graph_schema,
          model_storage=default_model_storage,
          execution_context=ExecutionContext(
              graph_schema=graph_schema, model_id="1"
          ),
      )
      results = runner.run(inputs={"input": 5})
      assert results["subtract"] == output
  
imports: from __future__ import annotations
  from typing import Optional
  import pytest
  from rasa.engine.graph import ExecutionContext, GraphSchema, SchemaNode
  from rasa.engine.exceptions import GraphRunError
  from rasa.engine.runner.dask import DaskGraphRunner
  from rasa.engine.storage.storage import ModelStorage
  from tests.engine.graph_components_test_classes import AddInputs, AssertComponent, ExecutionContextAware, ProvideX, SubtractByX, PersistableTestComponent
label_desc: Use image node_id 3 for calling a global function with example usage: test_default_config(x, output, default_model_storage) without return types