code: def _impl_against_split_merge(
      base_additional_kwargs={}, conditional_additional_kwargs={}
  ):
      test_data_root = get_dali_extra_path()
      caffe_db_folder = os.path.join(test_data_root, "db", "lmdb")
  
      bs = 10
      iters = 5
      kwargs = {
          "batch_size": bs,
          "num_threads": 4,
          "device_id": 0,
          "seed": 42,
      }
  
      @experimental.pipeline_def(**kwargs, **base_additional_kwargs)
      def regular_pipe():
          encoded, _ = fn.readers.caffe(path=caffe_db_folder, seed=7)
          decoded = fn.decoders.image(encoded, device="mixed")
          pred = fn.random.coin_flip(
              dtype=types.DALIDataType.BOOL, seed=8
          )
          true, false = fn._conditional.split(decoded, predicate=pred)
          output_true = fn.rotate(true, angle=30)
          output_false = fn.flip(false, horizontal=True)
          return fn._conditional.merge(
              output_true, output_false, predicate=pred
          )
  
      @experimental.pipeline_def(
          enable_conditionals=True,
          **kwargs,
          **conditional_additional_kwargs,
      )
      def conditional_pipe():
          encoded, _ = fn.readers.caffe(path=caffe_db_folder, seed=7)
          decoded = fn.decoders.image(encoded, device="mixed")
          pred = fn.random.coin_flip(
              dtype=types.DALIDataType.BOOL, seed=8
          )
          if pred:
              output = fn.rotate(decoded, angle=30)
          else:
              output = fn.flip(decoded, horizontal=True)
          return output
  
      pipes = [regular_pipe(), conditional_pipe()]
      for pipe in pipes:
          pipe.build()
      compare_pipelines(*pipes, bs, iters)
  
imports: from nvidia.dali.pipeline import pipeline_def, experimental
  import nvidia.dali.fn
  import nvidia.dali.types
  from nvidia.dali.types import SampleInfo
  from nvidia.dali import _conditionals
  from nvidia.dali.data_node import DataNode
  import numpy
  import os
  from test_utils import check_batch, compare_pipelines
  from nose_utils import assert_raises
  from test_utils import get_dali_extra_path
  from nose2.tools import params
  import itertools
label_desc: Use image node_id 21 for calling a global function with example usage: _impl_against_split_merge(base_additional_kwargs, conditional_additional_kwargs) and returns: fn, output