code: def test_channel_shuffle(input_dtype, input_size):
      transfo = T.ChannelShuffle()
      input_t = tf.random.uniform(input_size, dtype=tf.float32)
      if input_dtype == tf.uint8:
          input_t = tf.math.round(255 * input_t)
      input_t = tf.cast(input_t, dtype=input_dtype)
      out = transfo(input_t)
      assert isinstance(out, tf.Tensor)
      assert out.shape == input_size
      assert out.dtype == input_dtype
      # Ensure that nothing has changed apart from channel order
      assert tf.math.reduce_all(
          tf.math.reduce_sum(input_t, -1) == tf.math.reduce_sum(out, -1)
      )
  
imports: import math
  import numpy
  import pytest
  import tensorflow
  from doctr import transforms
  from doctr.transforms.functional import crop_detection, rotate_sample
label_desc: Use image node_id 18 for calling a global function with example usage: test_channel_shuffle(input_dtype, input_size) without return types