def METHOD_NAME(self) -> None:
    model = BasicModel2()
    input1 = torch.tensor([[4.0, -1.0], [3.0, 10.0]], requires_grad=True)
    input2 = torch.tensor([[2.0, -5.0], [-2.0, 1.0]], requires_grad=True)
    mask1 = torch.tensor([[1, 1], [0, 0]])
    mask2 = torch.tensor([[0, 1], [0, 1]])
    adv = PGD(model)
    perturbed_input = adv.perturb(
        (input1, input2), 0.25, 0.1, 3, 0, norm="L2", mask=(mask1, mask2)
    )
    answer = ([[3.75, -1.0], [3.0, 10.0]], [[2.0, -5.0], [-2.0, 1.0]])
    for i in range(len(perturbed_input)):
        assertTensorAlmostEqual(
            self,
            perturbed_input[i],
            answer[i],
            delta=0.01,
            mode="max",
        )