code: def test_batch_N_valid_shapes():
      for batch in [1, 10]:
          # No shape
          yield dali_pipe_batch_N, None, tf.uint8, batch
          # Full shape
          output_shape = (batch, 200, 200, 3)
          for i in range(2 ** len(output_shape)):
              noned_shape = tuple(
                  (dim if i & (2**idx) else None)
                  for idx, dim in enumerate(output_shape)
              )
              yield dali_pipe_batch_N, noned_shape, tf.uint8, batch
      # Omitted batch of size `1`
      output_shape = (200, 200, 3)
      for i in range(2 ** len(output_shape)):
          noned_shape = tuple(
              (dim if i & (2**idx) else None)
              for idx, dim in enumerate(output_shape)
          )
          yield dali_pipe_batch_N, noned_shape, tf.uint8, 1
  
imports: import tensorflow
  import nvidia.dali.ops
  import nvidia.dali.pipeline
  import nvidia.dali.plugin.tf
  import nvidia.dali.types
  from test_utils_tensorflow import skip_for_incompatible_tf
  import os
  from nose.tools import assert_equals
  from nose_utils import raises
  import itertools
  import warnings
label_desc: Use image node_id 7 for calling a global function with example usage: test_batch_N_valid_shapes() without return types