def METHOD_NAME(self):
    config = {
        'batch_size': 3,
        'drop_last': True,
        'shuffle': True,
        'num_workers': 2,
    }
    collate_fn = Collate_fn(config)
    ds = ListDataset()
    # test batch_size
    loader = Dataloader(
        ds,
        batch_size=config['batch_size'],
        drop_last=config['drop_last'],
        num_workers=config['num_workers'],
        collate_fn=collate_fn)
    epochs = 1
    for e in range(epochs):
        res = []
        for batch_data in loader:
            res.extend(batch_data['data'])
            self.assertEqual(len(batch_data['data']), config['batch_size'])
    # test shuffle
    loader = Dataloader(
        ds,
        batch_size=3,
        drop_last=False,
        shuffle=True,
        num_workers=1,
        collate_fn=collate_fn)
    for e in range(epochs):
        res = []
        for batch_data in loader:
            res.extend(batch_data['data'])
        self.assertEqual(set([i for i in range(DATA_SIZE)]), set(res))