code: def test_optimisation_transforms(
      self, input_param, test_input, output, expected_shape
  ):
      input_param.update({"post_proc_label": "pred"})
      for current_tx in [ApplyGraphCutOptimisationd]:
          result = current_tx(**input_param)(test_input)
  
          # removed assert_equal as this is non-deterministic func
          # np.testing.assert_equal(output["target"], result["pred"])
  
          self.assertTupleEqual(expected_shape, result["pred"].shape)
  
      with self.assertRaises(ValueError):
          test_input["prob"] = np.random.rand(3, 128, 128, 128)
          result = ApplyGraphCutOptimisationd(**input_param)(test_input)
  
imports: import unittest
  import numpy
  from monai.transforms import LoadImage
  from monai.utils import set_determinism
  from parameterized import parameterized
  from monailabel.scribbles.infer import HistogramBasedGraphCut
  from monailabel.scribbles.transforms import AddBackgroundScribblesFromROId, ApplyGraphCutOptimisationd, InteractiveSegmentationTransform, MakeISegUnaryd, MakeLikelihoodFromScribblesHistogramd, SoftenProbSoftmax
  from monailabel.transform.writer import Writer
label_desc: Use image node_id 2 for calling the TestScribblesTransforms obj's underlying member method code with example usage: obj.test_optimisation_transforms(input_param, test_input, output, expected_shape) without return types