33from mesh_model .mesh_struct .mesh import Mesh
44from mesh_model .mesh_struct .mesh_elements import Dart
55import mesh_model .mesh_analysis as Mesh_analysis
6- from actions .triangular_actions import split_edge_ids
6+ from actions .triangular_actions import split_edge_ids , collapse_edge , collapse_edge_ids
77from plots .mesh_plotter import plot_mesh
88
99class TestMeshAnalysis (unittest .TestCase ):
@@ -40,7 +40,7 @@ def test_split_score(self):
4040 split_edge_ids (cmap , 0 , 2 )
4141 split_edge_ids (cmap , 1 , 2 ) # split impossible
4242 nodes_score , mesh_score , mesh_ideal_score , adjacency = Mesh_analysis .global_score (cmap )
43- self .assertEqual ((5 , 1 ), (mesh_score , mesh_ideal_score ))
43+ self .assertEqual ((3 , 1 ), (mesh_score , mesh_ideal_score ))
4444
4545 def test_find_template_opposite_node_not_found (self ):
4646 nodes = [[0.0 , 0.0 ], [1.0 , 0.0 ], [1.0 , 1.0 ], [0.0 , 1.0 ], [2.0 , 0.0 ]]
@@ -54,29 +54,44 @@ def test_find_template_opposite_node_not_found(self):
5454 self .assertEqual (node , 3 )
5555
5656 def test_is_valid_action (self ):
57- nodes = [[0.0 , 0.0 ], [1.0 , 0.0 ], [1.0 , 1.0 ], [0.0 , 1.0 ], [2.0 , 0.0 ]]
58- faces = [[0 , 1 , 2 ], [0 , 2 , 3 ], [1 , 4 , 2 ]]
57+ nodes = [[0.0 , 0.0 ], [1.0 , 0.0 ], [0.5 , 1 ], [- 0.5 , 1.0 ], [0.0 , 2.0 ], [- 1.0 , 2.0 ], [- 2.0 , 1.0 ], [- 1.0 , 0.0 ],
58+ [- 2.0 , 0.0 ], [- 2.0 , - 1.0 ], [- 0.5 , - 1.0 ], [- 1.0 , - 2.0 ], [0.0 , - 2.0 ], [1.0 , - 2.0 ],
59+ [0.5 , - 1.0 ], [2.0 , - 1.0 ], [2.0 , 0.0 ], [2.0 , 1.0 ], [1.0 , 2.0 ]]
60+ faces = [[0 , 1 , 2 ], [0 , 2 , 3 ], [3 , 2 , 4 ], [7 , 0 , 3 ], [7 , 10 , 0 ], [10 , 14 , 0 ], [0 , 14 , 1 ], [10 , 12 , 14 ],
61+ [3 , 4 , 5 ], [3 , 5 , 6 ], [3 , 6 , 7 ], [7 , 6 , 8 ], [7 , 8 , 9 ], [7 , 9 , 10 ], [10 , 9 , 11 ], [10 , 11 , 12 ],
62+ [14 , 12 , 13 ], [14 , 13 , 15 ], [1 , 14 , 15 ], [1 , 15 , 16 ], [1 , 16 , 17 ], [1 , 17 , 2 ], [2 , 17 , 18 ], [2 , 18 , 4 ]]
5963 cmap = Mesh (nodes , faces )
64+ split_edge_ids (cmap , 0 , 1 )
65+
66+ #Boundary dart
67+ self .assertEqual (Mesh_analysis .isValidAction (cmap , 25 , 0 ), (False , True ))
6068
6169 # Flip test
70+ self .assertEqual (Mesh_analysis .isValidAction (cmap , 3 , 0 ), (True , True ))
6271 self .assertEqual (Mesh_analysis .isValidAction (cmap , 0 , 0 ), (False , True ))
63- self .assertEqual (Mesh_analysis .isValidAction (cmap , 2 , 0 ), (True , True ))
6472
6573 #Split test
66- self .assertEqual (Mesh_analysis .isValidAction (cmap , 0 , 1 ), (False , True ))
67- self .assertEqual (Mesh_analysis .isValidAction (cmap , 2 , 1 ), (True , True ))
74+ self .assertEqual (Mesh_analysis .isValidAction (cmap , 0 , 1 ), (True , True ))
75+ split_edge_ids (cmap , 1 , 19 )
76+ split_edge_ids (cmap , 1 , 20 )
77+ self .assertEqual (Mesh_analysis .isValidAction (cmap , 20 , 1 ), (True , False ))
78+ split_edge_ids (cmap , 0 , 19 )
79+ split_edge_ids (cmap , 0 , 22 )
80+ split_edge_ids (cmap , 0 , 23 )
81+ self .assertEqual (Mesh_analysis .isValidAction (cmap , 20 , 1 ), (False , True ))
6882
6983 #Collapse test
70- self .assertEqual (Mesh_analysis .isValidAction (cmap , 0 , 3 ), (False , True ))
71- self .assertEqual (Mesh_analysis .isValidAction (cmap , 2 , 3 ), (False , False ))
84+ self .assertEqual (Mesh_analysis .isValidAction (cmap , 20 , 2 ), (True , True ))
85+ plot_mesh (cmap )
86+ self .assertEqual (Mesh_analysis .isValidAction (cmap , 2 , 2 ), (False , True ))
7287
7388 #All action test
74- self .assertEqual (Mesh_analysis .isValidAction (cmap , 0 , 3 ), (False , True ))
7589 self .assertEqual (Mesh_analysis .isValidAction (cmap , 2 , 3 ), (False , False ))
90+ self .assertEqual (Mesh_analysis .isValidAction (cmap , 9 , 3 ), (True , True ))
7691
7792 #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 ))
93+ self .assertEqual (Mesh_analysis .isValidAction (cmap , 0 , 4 ), (True , True ))
94+ self .assertEqual (Mesh_analysis .isValidAction (cmap , 94 , 4 ), (False , False ))
8095
8196 def test_isFlipOk (self ):
8297 nodes = [[0.0 , 0.0 ], [1.0 , 0.0 ], [1.0 , 1.0 ], [0.0 , 1.0 ], [2.0 , 0.0 ]]
0 commit comments