def METHOD_NAME(self, classifier, x_test, y_test, targeted):
    """
    Test with the Pixel Attack
    :return:
    """
    x_test_original = x_test.copy()
    if targeted:
        # Generate random target classes
        class_y_test = np.argmax(y_test, axis=1)
        nb_classes = np.unique(class_y_test).shape[0]
        targets = np.random.randint(nb_classes, size=self.n_test)
        for i in range(self.n_test):
            if class_y_test[i] == targets[i]:
                targets[i] -= 1
    else:
        targets = y_test
    for th in [None, 128]:
        for es in [0, 1]:
            df = PixelAttack(classifier, th=th, es=es, max_iter=20, targeted=targeted, verbose=False)
            x_test_adv = df.generate(x_test_original, targets)
            np.testing.assert_raises(AssertionError, np.testing.assert_array_equal, x_test, x_test_adv)
            self.assertFalse((0.0 == x_test_adv).all())
    # Check that x_test has not been modified by attack and classifier
    self.assertAlmostEqual(float(np.max(np.abs(x_test_original - x_test))), 0.0, delta=0.00001)