- edited description
python geometry and multimesh tests fail on non-intel arches (arm64, ppc64el)
Two geometry tests are failing on arm64 architectures. Test logs are collated at https://ci.debian.net/packages/d/dolfin/unstable/arm64/, e.g. https://ci.debian.net/data/autopkgtest/unstable/arm64/d/dolfin/6519912/log.gz
C++ unit tests and demos pass, but in the python units tests there are two geometry failures in geometry/test_bounding_box_tree.py, geometry/test_point.py. The same tests pass on Intel/amd64 (cf. amd64 test log)
The bounding_box failure looks algorithmic:
______________________ test_compute_entity_collisions_2d _______________________
@skip_in_parallel
def test_compute_entity_collisions_2d():
reference = set([136, 137])
p = Point(0.3, 0.3)
mesh = UnitSquareMesh(16, 16)
tree = BoundingBoxTree()
tree.build(mesh)
entities = tree.compute_entity_collisions(p)
> assert set(entities) == reference
E assert {136} == {136, 137}
E Extra items in the right set:
E 137
E Use -v to get the full diff
python/test/unit/geometry/test_bounding_box_tree.py:201: AssertionError
The test_point failure is just a floating point issue: (((1.0 * -1.6) + (2.0 * -2.5)) + (3.0 * 3.3)) = 3.2999999
not “3.3” (the equality fails also in a simple python console on amd64)
________________________________ test_point_dot ________________________________
def test_point_dot():
p = Point(1.0, 2.0, 3.0)
q = Point(3.1, 4.5, 5.6)
r = Point(-1.6, -2.5, 3.3)
s = Point(152.25)
assert p.dot(q) == p[0]*q[0] + p[1]*q[1] + p[2]*q[2]
> assert p.dot(r) == p[0]*r[0] + p[1]*r[1] + p[2]*r[2]
E assert 3.3 == (((1.0 * -1.6) + (2.0 * -2.5)) + (3.0 * 3.3))
E + where 3.3 = <bound method PyCapsule.dot of <dolfin.cpp.geometry.Point object at 0xffffa062f630>>(<dolfin.cpp.geometry.Point object at 0xffffa062f070>)
E + where <bound method PyCapsule.dot of <dolfin.cpp.geometry.Point object at 0xffffa062f630>> = <dolfin.cpp.geometry.Point object at 0xffffa062f630>.dot
python/test/unit/geometry/test_point.py:94: AssertionError
Comments (4)
-
reporter -
reporter Some multimesh tests also fail on arm64, but pass on amd64.
test_meshes_with_boundary_edge_overlap_2d area = compute_area_using_quadrature(multimesh) > assert abs(area - exact_area) < DOLFIN_EPS_LARGE E assert 0.5 < 1e-14 E + where 0.5 = abs((1.5 - 2.0)) python/test/unit/multimesh/test_interface_area.py:135: AssertionError
test_auto_cover_all > assert(numpy.isclose(assemble_multimesh(one * dX), 1)) E AssertionError: assert False E + where False = <function isclose at 0xffffb318c550>(1.00084499999999, 1) E + where <function isclose at 0xffffb318c550> = numpy.isclose E + and 1.00084499999999 = assemble_multimesh((Coefficient(FunctionSpace(Mesh(VectorElement(FiniteElement('Lagrange', triangle, 1), dim=2), 22304), FiniteElement('Lagrange', triangle, 1)), 22333) * <ufl.measure.MeasureSum object at 0xffffb2818fa0>)) python/test/unit/multimesh/test_multimesh_autocover.py:92: AssertionError
test_auto_cover_complex > assert(numpy.isclose(assemble_multimesh(complex_mesh_one * dX), 1 - (b - a)**2)) E AssertionError: assert False E + where False = <function isclose at 0xffffb318c550>(0.9099219203139939, (1 - ((0.6 - 0.3) ** 2))) E + where <function isclose at 0xffffb318c550> = numpy.isclose E + and 0.9099219203139939 = assemble_multimesh((Coefficient(FunctionSpace(Mesh(VectorElement(FiniteElement('Lagrange', triangle, 1), dim=2), 22369), FiniteElement('Lagrange', triangle, 1)), 22437) * <ufl.measure.MeasureSum object at 0xffffb2818fa0>)) python/test/unit/multimesh/test_multimesh_autocover.py:107: AssertionError
test_multimesh_poisson_2d > assert errornorm(exactsolution_2d, uh, 'L2', degree_rise=1) < DOLFIN_EPS_LARGE E AssertionError: assert 0.00461063063855098 < 1e-14 E + where 0.00461063063855098 = errornorm(Coefficient(FunctionSpace(None, FiniteElement('Lagrange', None, 1)), 22695), Coefficient(FunctionSpace(Mesh(VectorElement(FiniteElement('Lagrange', triangle, 1), dim=2), 22696), FiniteElement('Lagrange', triangle, 1)), 22737), 'L2', degree_rise=1)
etc.
The failing tests fail also on ppc64el as well as arm64, e.g.. ppc64el test log
-
reporter updated title to show multimesh and ppc64el
-
reporter Tests are also failing on i386, test log here.
- Log in to comment
updated amd64 test log