code: def test_channels_first(self, with_bias):
      def f():
          data = np.ones([1, 3, 10, 10])
          data[0, 1, :, :] += 1
          data[0, 2, :, :] += 2
          data = jnp.array(data)
          net = depthwise_conv.DepthwiseConv2D(
              channel_multiplier=1,
              kernel_shape=3,
              stride=1,
              padding="VALID",
              with_bias=with_bias,
              data_format="channels_first",
              **create_constant_initializers(1.0, 1.0, with_bias),
          )
          return net(data)
  
      init_fn, apply_fn = transform.transform(f)
      out = apply_fn(init_fn(random.PRNGKey(428)), None)
      self.assertEqual(out.shape, (1, 3, 8, 8))
      if with_bias:
          self.assertEqual(
              np.unique(out[0, 0, :, :])[0], 1 * 3.0 * 3.0 + 1
          )
          self.assertEqual(
              np.unique(out[0, 1, :, :])[0], 2 * 3.0 * 3.0 + 1
          )
          self.assertEqual(
              np.unique(out[0, 2, :, :])[0], 3 * 3.0 * 3.0 + 1
          )
      else:
          self.assertEqual(np.unique(out[0, 0, :, :])[0], 1 * 3.0 * 3.0)
          self.assertEqual(np.unique(out[0, 1, :, :])[0], 2 * 3.0 * 3.0)
          self.assertEqual(np.unique(out[0, 2, :, :])[0], 3 * 3.0 * 3.0)
  
imports: from absl.testing import absltest
  from absl.testing import parameterized
  from haiku._src import depthwise_conv
  from haiku._src import initializers
  from haiku._src import transform
  from jax import random
  import jax.numpy
  import numpy
label_desc: Use image node_id 4 for calling the DepthwiseConv2DTest obj's underlying member method code with example usage: obj.test_channels_first(with_bias) and returns: net