Coverage for tests/tests_advertrain/test_dependencies/test_autoattack.py: 94%

16 statements  

« prev     ^ index     » next       coverage.py v7.9.2, created at 2025-09-10 08:11 +0000

1import pytest 

2import torch 

3 

4from robustML.advertrain.dependencies.autoattack import (APGDAttack, L0_norm, 

5 L1_norm, 

6 L1_projection, 

7 L2_norm) 

8 

9torch.manual_seed(0) 

10 

11 

12@pytest.fixture 

13def sample_tensor(): 

14 return torch.tensor([[1.0, -2.0, 3.0], [-1.0, 2.0, -3.0]]) 

15 

16 

17def test_L1_norm(sample_tensor): 

18 assert L1_norm(sample_tensor).equal(torch.tensor([6.0, 6.0])) 

19 

20 

21def test_L2_norm(sample_tensor): 

22 assert L2_norm(sample_tensor).equal(L2_norm(sample_tensor)) 

23 

24 

25def test_L0_norm(sample_tensor): 

26 assert L0_norm(sample_tensor).equal(torch.tensor([3, 3])) 

27 

28 

29class MockModel(torch.nn.Module): 

30 def forward(self, x): 

31 return torch.randn(x.shape[0], 10)