Skip to content

Commit b056d51

Browse files
committed
New test on valid actions
1 parent 9b1d6ea commit b056d51

File tree

2 files changed

+27
-3
lines changed

2 files changed

+27
-3
lines changed

mesh_model/mesh_analysis.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,6 @@ def valid_faces_changes(faces: list[Face], n_id: int, new_x: float, new_y: float
446446
"""
447447
Check the orientation of triangles adjacent to node n = Node(mesh, n_id) if the latter is moved to coordinates new_x, new_y.
448448
Also checks that no triangle will become flat
449-
:param mesh: a mesh
450449
:param faces: adjacents faces to node of id n_id
451450
:param n_id: node id
452451
:param new_x: new x coordinate
@@ -488,7 +487,7 @@ def valid_triangle(vect_AB, vect_AC, vect_BC) -> bool:
488487

489488
L_max = max(dist_AB, dist_AC, dist_BC)
490489

491-
if target_mesh_size/3*sqrt(2) < L_max < target_mesh_size*3*sqrt(2): #1.5
490+
if target_mesh_size/3*sqrt(2) < L_max < target_mesh_size*3*sqrt(2): #4.24
492491
pass
493492
else:
494493
return False
@@ -498,7 +497,7 @@ def valid_triangle(vect_AB, vect_AC, vect_BC) -> bool:
498497
angle_C = degrees(angle_from_sides(dist_AB, dist_BC, dist_AC)) # Angle au point B
499498
angle_A = degrees(angle_from_sides(dist_BC, dist_AC, dist_AB)) # Angle au point C
500499

501-
# Vérification que tous les angles sont supérieurs à 5°
500+
# Vérification que tous les angles sont supérieurs à 2°
502501
if angle_A <= 2 or angle_B <= 2 or angle_C <= 2:
503502
return False
504503
return True

test_modules/test_mesh_analysis.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,14 @@ def test_is_valid_action(self):
7070
self.assertEqual(Mesh_analysis.isValidAction(cmap, 0, 3), (False, True))
7171
self.assertEqual(Mesh_analysis.isValidAction(cmap, 2, 3), (False, False))
7272

73+
#All action test
74+
self.assertEqual(Mesh_analysis.isValidAction(cmap, 0, 3), (False, True))
75+
self.assertEqual(Mesh_analysis.isValidAction(cmap, 2, 3), (False, False))
76+
77+
#One action test
78+
self.assertEqual(Mesh_analysis.isValidAction(cmap, 0, 4), (False, True))
79+
self.assertEqual(Mesh_analysis.isValidAction(cmap, 2, 4), (True, True))
80+
7381
def test_isFlipOk(self):
7482
nodes = [[0.0, 0.0], [1.0, 0.0], [1.0, 1.0], [0.0, 1.0], [2.0, 0.0]]
7583
faces = [[0, 1, 2], [0, 2, 3], [1, 4, 2]]
@@ -100,6 +108,23 @@ def test_isCollapseOk(self):
100108
dart_to_test = Dart(cmap, 2)
101109
self.assertFalse(Mesh_analysis.isCollapseOk(dart_to_test)[0])
102110

111+
def test_valid_triangle(self):
112+
# test Lmax invalid
113+
vect_AB = (5.0, 0.0)
114+
vect_AC = (2.5, 5.0)
115+
vect_BC = (-2.5, 5.0)
116+
self.assertFalse(Mesh_analysis.valid_triangle(vect_AB, vect_AC, vect_BC))
117+
# test invalid angles
118+
vect_AB = (3.0, 0.0)
119+
vect_AC = (1.5, 0.05)
120+
vect_BC = (-1.5, 0.05)
121+
self.assertFalse(Mesh_analysis.valid_triangle(vect_AB, vect_AC, vect_BC))
122+
# test valid triangle
123+
vect_AB = (3.0, 0.0)
124+
vect_AC = (1.5, 3.0)
125+
vect_BC = (-1.5, 3.0)
126+
self.assertTrue(Mesh_analysis.valid_triangle(vect_AB, vect_AC, vect_BC))
127+
103128

104129
if __name__ == '__main__':
105130
unittest.main()

0 commit comments

Comments
 (0)