code: def _testimpl_image_decoder_tiff_with_alpha_16bit(
      device, out_type, path, ext
  ):
      @pipeline_def(batch_size=1, device_id=0, num_threads=1)
      def pipe(device, out_type, files):
          encoded, _ = fn.readers.file(files=files)
          decoded = fn.decoders.image(
              encoded, device=device, output_type=out_type
          )
          peeked_shape = fn.peek_image_shape(encoded)
          return decoded, peeked_shape
  
      files = get_img_files(
          os.path.join(test_data_root, path), ext=ext, subdir=None
      )
      pipe = pipe(device, out_type=out_type, files=files)
      pipe.build()
      out, shape = pipe.run()
      if device == "mixed":
          out = out.as_cpu()
      out = np.array(out[0])
      shape = np.array(shape[0])
      expected_channels = (
          4
          if out_type == types.ANY_DATA
          else 1
          if out_type == types.GRAY
          else 3
      )
      assert (
          out.shape[2] == expected_channels
      ), f"Expected {expected_channels} but got {out.shape[2]}"
  
imports: import glob
  import math
  import numpy
  import nvidia.dali.backend
  import nvidia.dali.fn
  import nvidia.dali.types
  import os
  import random
  from nvidia.dali import pipeline_def
  from nose2.tools import params
  from nose_utils import assert_raises
  from test_utils import check_output_pattern
  from test_utils import compare_pipelines
  from test_utils import get_dali_extra_path
  from test_utils import to_array
label_desc: Use image node_id 18 for calling a global function with example usage: _testimpl_image_decoder_tiff_with_alpha_16bit(device, out_type, path, ext) and returns: decoded,  peeked_shape