def test_shuffle(self):
        """
        NOTE: assertions may fail randomly, but with negligibly low probability
            on the order of 1 / (m choose batch_size)
            Setting the master seed here should avoid that, however
        """
        master_seed(seed=42)
        data_generator = NumpyDataGenerator(
            self.x,
            self.y,
            batch_size=self.batch_size,
            drop_remainder=True,
            shuffle=True,
        )
        _, y_batch = data_generator.get_batch()
        self.assertFalse((y_batch == self.y[: self.batch_size]).all())

        # Test shuffling across epochs
        for i in range(2):
            data_generator.get_batch()
        _, y_batch_epoch2 = data_generator.get_batch()
        self.assertFalse((y_batch == y_batch_epoch2).all())

        NOTE: assertions may fail randomly, but with negligibly low probability
            on the order of 1 / (m choose batch_size)
            Setting the master seed here should avoid that, however
        
tests/test_data_generators.py