code: def test_basic(self):
      ds = DS0()
      assert len(ds) == 11
  
      loader = elegy.data.DataLoader(
          ds, batch_size=4, n_workers=0, shuffle=False
      )
      batches = list(loader)
      assert len(loader) == len(batches) == 3
      assert len(batches[0]) == 2
  
      batched_x = [x for x, y in batches]
      batched_y = [y for x, y in batches]
  
      assert (
          all(batched_y[0] == np.arange(4))
          and all(batched_y[1] == np.arange(4) + 4)
          and all(batched_y[2] == np.arange(3) + 8)
      )
      assert (
          batched_x[0].shape == batched_x[1].shape == (4, 100, 200, 3)
      )
      assert batched_x[2].shape == (3, 100, 200, 3)
  
imports: from unittest import TestCase
  import jax.numpy
  import numpy
  import optax
  import pytest
  import elegy
label_desc: Use image node_id 1 for calling the DataLoaderTestCase obj's underlying member method code with example usage: obj.test_basic() without return types