Coverage for tests/spaces/test_mesh.py: 100%

28 statements  

« prev     ^ index     » next       coverage.py v7.11.3, created at 2025-11-16 21:43 +0000

1from pathlib import Path 

2 

3import numpy as np 

4import pytest 

5 

6from geometric_kernels.spaces import Mesh 

7 

8 

9@pytest.fixture() 

10def mesh() -> Mesh: 

11 filename = Path(__file__).parent / "../teddy.obj" 

12 mesh = Mesh.load_mesh(str(filename)) 

13 return mesh 

14 

15 

16def test_mesh_shapes(): 

17 Nv = 11 # num vertices 

18 Nf = 13 # num faces 

19 dim = 3 # ambient dimension 

20 vertices = np.random.randn(Nv, dim) 

21 faces = np.random.randint(0, Nv, size=(Nf, 3)) 

22 mesh = Mesh(vertices=vertices, faces=faces) 

23 assert mesh.vertices.shape == (Nv, dim) 

24 assert mesh.faces.shape == (Nf, 3) 

25 

26 

27def test_read_mesh(mesh: Mesh): 

28 assert mesh.vertices.shape == (mesh.num_vertices, mesh.dimension + 1) 

29 assert mesh.faces.shape == (mesh.num_faces, 3) 

30 

31 

32def test_eigenvalues(mesh: Mesh): 

33 assert mesh.get_eigenvalues(10).shape == (10, 1) 

34 assert mesh.get_eigenvalues(13).shape == (13, 1) 

35 

36 

37def test_eigenvectors(mesh: Mesh): 

38 assert mesh.get_eigenvectors(10).shape == (mesh.num_vertices, 10) 

39 assert mesh.get_eigenvectors(13).shape == (mesh.num_vertices, 13) 

40 assert set(mesh.cache.keys()) == set([10, 13])