Coverage for gpaw/test/test_cluster.py: 100%

27 statements  

« prev     ^ index     » next       coverage.py v7.7.1, created at 2025-07-14 00:18 +0000

1from math import sqrt 

2import pytest 

3 

4from ase import Atoms 

5 

6from gpaw.cluster import Cluster 

7 

8 

9def test_CO(recwarn): 

10 R = 2.0 

11 box = 4. 

12 h = 0.2 

13 CO = Cluster(Atoms('CO', [(1, 0, 0), (1, 0, R)])) 

14 

15 CO.rotate(90, 'y') 

16 assert CO.positions[1, 0] == pytest.approx(R, abs=1e-10) 

17 

18 # translate 

19 CO.translate(-CO.get_center_of_mass()) 

20 p = CO.positions.copy() 

21 for i in range(2): 

22 assert p[i, 1] == pytest.approx(0, abs=1e-10) 

23 assert p[i, 2] == pytest.approx(0, abs=1e-10) 

24 

25 CO.rotate(p[1] - p[0], (1, 1, 1)) 

26 q = CO.positions.copy() 

27 for c in range(3): 

28 assert q[0, c] == pytest.approx(p[0, 0] / sqrt(3), abs=1e-10) 

29 assert q[1, c] == pytest.approx(p[1, 0] / sqrt(3), abs=1e-10) 

30 

31 CO.minimal_box(box, h) 

32 w = recwarn.pop(FutureWarning) 

33 

34 assert (str(w.message) == 

35 'Please use adjust_cell from gpaw.utilities.adjust_cell instead.') 

36 

37 CO.find_connected(0) 

38 w = recwarn.pop(FutureWarning) 

39 

40 assert (str(w.message) == 

41 'Please use connected_indices from ase.build.connected instead.')