code: def test_action_graph_service_get_remove_nodes(
      in_mem_action_graph_service: ActionGraphService,
      authed_context: AuthedServiceContext,
  ) -> None:
      """
      Test the get and remove_node method of the ActionGraphService
      """
      action_obj_a = ActionObject.from_obj([1, 2, 3])
      action_obj_b = ActionObject.from_obj([2, 3, 4])
      action_obj_node_a: NodeActionData = (
          in_mem_action_graph_service.add_action_obj(
              context=authed_context, action_obj=action_obj_a
          )
      )
      action_obj_node_b: NodeActionData = (
          in_mem_action_graph_service.add_action_obj(
              context=authed_context, action_obj=action_obj_b
          )
      )
      action = Action(
          path="action.execute",
          op="__add__",
          remote_self=action_obj_a.syft_lineage_id,
          args=[action_obj_b.syft_lineage_id],
          kwargs={},
      )
      action_node, result_node = in_mem_action_graph_service.add_action(
          context=authed_context, action=action
      )
      assert (
          len(in_mem_action_graph_service.get_all_nodes(authed_context))
          == 4
      )
      assert (
          len(in_mem_action_graph_service.get_all_edges(authed_context))
          == 3
      )
      nodes = set(
          dict(
              in_mem_action_graph_service.get_all_nodes(
                  context=authed_context
              )
          ).keys()
      )
      # test the get method
      assert action_obj_node_a == in_mem_action_graph_service.get(
          uid=action_obj_a.id, context=authed_context
      )
      assert action_obj_node_b == in_mem_action_graph_service.get(
          uid=action_obj_b.id, context=authed_context
      )
      assert action_node == in_mem_action_graph_service.get(
          uid=action.id, context=authed_context
      )
      # test the remove_node method
      removed_result: SyftSuccess = (
          in_mem_action_graph_service.remove_node(
              authed_context, action_node.id
          )
      )
      assert (
          removed_result.message
          == f"Successfully deleted node with uid: {action.id} from the graph."
      )
      assert (
          len(in_mem_action_graph_service.get_all_nodes(authed_context))
          == 3
      )
      assert (
          len(in_mem_action_graph_service.get_all_edges(authed_context))
          == 0
      )
      nodes_after_remove = set(
          dict(
              in_mem_action_graph_service.get_all_nodes(
                  context=authed_context
              )
          ).keys()
      )
      assert action_node.id == (nodes - nodes_after_remove).pop()
  
imports: from syft.node.credentials import SyftSigningKey
  from syft.node.credentials import SyftVerifyKey
  from syft.node.worker import Worker
  from syft.service.action.action_graph import ExecutionStatus
  from syft.service.action.action_graph import InMemoryActionGraphStore
  from syft.service.action.action_graph import NetworkXBackingStore
  from syft.service.action.action_graph import NodeActionData
  from syft.service.action.action_graph import NodeActionDataUpdate
  from syft.service.action.action_graph import NodeType
  from syft.service.action.action_graph_service import ActionGraphService
  from syft.service.action.action_object import Action
  from syft.service.action.action_object import ActionObject
  from syft.service.context import AuthedServiceContext
  from syft.service.response import SyftError
  from syft.service.response import SyftSuccess
  from syft.types.datetime import DateTime
  from syft.types.uid import UID
label_desc: Use image node_id 5 for calling a global function with example usage: test_action_graph_service_get_remove_nodes(in_mem_action_graph_service, authed_context) without return types