netgen/tests/pytest/test_array.py
2024-06-24 16:18:41 +02:00

35 lines
971 B
Python

import netgen
from pyngcore import *
from numpy import sort, array
def test_array_numpy():
a = Array_I_S(5)
a[:] = 0
a[3:] = 2
assert(sum(a) == 4)
a[1] = 5
b = sort(a)
assert(all(b == array([0,0,2,2,5])))
assert(all(a == array([0,5,0,2,2])))
a.NumPy().sort()
assert(all(a == array([0,0,2,2,5])))
def test_mesh_elements_numpy_array_access():
from netgen.csg import unit_cube
mesh = unit_cube.GenerateMesh()
np_els = mesh.Elements3D().NumPy()
vol_nodes = np_els["nodes"]
indices = np_els["index"]
nps = np_els["np"]
for nodes, el, index, np in zip(vol_nodes, mesh.Elements3D(), indices, nps):
for n1, n2 in zip(nodes, el.vertices):
assert n1 == n2
for n in nodes[len(el.vertices):]:
assert n == 0
assert el.index == index
assert len(el.vertices) == np
if __name__ == "__main__":
test_array_numpy()
test_mesh_elements_numpy_array_access()