code: def test_ccb_label():
      model = Workspace(ccb_explore_adf=True, quiet=True)
      ccb_shared_label = vowpalwabbit.CCBLabel.from_example(
          model.example("ccb shared | shared_0 shared_1")
      )
      ccb_action_label = vowpalwabbit.CCBLabel.from_example(
          model.example("ccb action | action_1 action_3")
      )
      ccb_slot_label = vowpalwabbit.CCBLabel.from_example(
          model.example("ccb slot 0:0.8:1.0 0 | slot_0")
      )
      ccb_slot_pred_label = vowpalwabbit.CCBLabel.from_example(
          model.example("ccb slot |")
      )
      assert ccb_shared_label.type == vowpalwabbit.CCBLabelType.SHARED
      assert len(ccb_shared_label.explicit_included_actions) == 0
      assert ccb_shared_label.outcome is None
      assert str(ccb_shared_label) == "ccb shared"
      assert ccb_action_label.type == vowpalwabbit.CCBLabelType.ACTION
      assert len(ccb_action_label.explicit_included_actions) == 0
      assert ccb_action_label.weight == 1.0
      assert ccb_action_label.outcome is None
      assert str(ccb_action_label) == "ccb action"
      assert ccb_slot_label.type == vowpalwabbit.CCBLabelType.SLOT
      assert ccb_slot_label.explicit_included_actions[0] == 0
      assert ccb_slot_label.outcome.action_probs[0].action == 0
      assert isclose(ccb_slot_label.outcome.action_probs[0].score, 1.0)
      assert isclose(ccb_slot_label.outcome.cost, 0.8)
      assert str(ccb_slot_label) == "ccb slot 0:0.8:1.0 0"
      assert ccb_slot_pred_label.type == vowpalwabbit.CCBLabelType.SLOT
      assert len(ccb_slot_pred_label.explicit_included_actions) == 0
      assert ccb_slot_pred_label.outcome is None
      assert str(ccb_slot_pred_label) == "ccb slot"
      del model
  
imports: import os
  from pathlib import Path
  import vowpalwabbit
  from vowpalwabbit import Workspace
  import pytest
  import warnings
  import filecmp
label_desc: Use image node_id 15 for calling a global function with example usage: test_ccb_label() without return types