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
« prev ^ index » next coverage.py v7.11.3, created at 2025-11-16 21:43 +0000
1from pathlib import Path
3import numpy as np
4import pytest
6from geometric_kernels.spaces import Mesh
9@pytest.fixture()
10def mesh() -> Mesh:
11 filename = Path(__file__).parent / "../teddy.obj"
12 mesh = Mesh.load_mesh(str(filename))
13 return mesh
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)
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)
32def test_eigenvalues(mesh: Mesh):
33 assert mesh.get_eigenvalues(10).shape == (10, 1)
34 assert mesh.get_eigenvalues(13).shape == (13, 1)
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])