[Bf-blender-cvs] [7907803694c] master: Tests: Remove random shuffling from modifiers test

Hans Goudey noreply at git.blender.org
Tue Dec 20 17:41:48 CET 2022


Commit: 7907803694c50184539b7ed35a6337caa93d2af3
Author: Hans Goudey
Date:   Tue Dec 20 10:39:27 2022 -0600
Branches: master
https://developer.blender.org/rB7907803694c50184539b7ed35a6337caa93d2af3

Tests: Remove random shuffling from modifiers test

These are meant to be regression tests, not fuzz tests. The "random"
shuffling made debugging quite annoying, even though the random order
was the same every time. Instead, hard-code the two lists to make
things more obvious. The resulting list doesn't make much sense
(for example, the multires modifier has to be first in the stack),
but for now avoid changing things further.

Also remove some comments that weren't helpful.

===================================================================

M	tests/python/modifiers.py

===================================================================

diff --git a/tests/python/modifiers.py b/tests/python/modifiers.py
index 93448841dfd..f16d91d41f9 100644
--- a/tests/python/modifiers.py
+++ b/tests/python/modifiers.py
@@ -13,68 +13,48 @@ from modules.mesh_test import RunTest, ModifierSpec, SpecMeshTest
 seed(0)
 
 
-def get_generate_modifiers_list(test_object_name, randomize=False):
-    """
-    Construct a list of 'Generate' modifiers with default parameters.
-    :arg test_object_name: Name of test object. Some modifiers like boolean need an extra parameter beside
-       the default one. E.g. boolean needs object, mask needs vertex group etc...
-       The extra parameter name will be <test_object_name>_<modifier_type>
-    :type test_object_name: str
-    :arg randomize: If True shuffle the list of modifiers.
-    :type randomize: bool
-    :return: list of 'Generate' modifiers with default parameters.
-    """
-
-    boolean_test_object = bpy.data.objects[test_object_name + "_boolean"]
-
+def cube_mask_first_modifier_list():
     generate_modifiers = [
-        ModifierSpec('array', 'ARRAY', {}),
+        ModifierSpec('mask', 'MASK', {'vertex_group': "testCubeMaskFirst_mask"}),
+        ModifierSpec('solidify', 'SOLIDIFY', {}),
+        ModifierSpec('triangulate', 'TRIANGULATE', {}),
         ModifierSpec('bevel', 'BEVEL', {'width': 0.1, 'limit_method': 'NONE'}),
-        ModifierSpec('boolean', 'BOOLEAN', {'object': boolean_test_object, 'solver': 'FAST'}),
+        ModifierSpec('boolean', 'BOOLEAN', {'object': bpy.data.objects["testCubeMaskFirst_boolean"], 'solver': 'FAST'}),
+        ModifierSpec('edge split', 'EDGE_SPLIT', {}),
         ModifierSpec('build', 'BUILD', {'frame_start': 1, 'frame_duration': 1}, 2),
+        ModifierSpec('multires', 'MULTIRES', {}),
         ModifierSpec('decimate', 'DECIMATE', {}),
-        ModifierSpec('edge split', 'EDGE_SPLIT', {}),
-
-        # mask can effectively delete the mesh since the vertex group need to be updated after each
-        # applied modifier. Needs to be tested separately.
-        # ModifierSpec('mask', 'MASK', {'vertex_group': mask_vertex_group}, False),
+        ModifierSpec('array', 'ARRAY', {}),
+        ModifierSpec('wireframe', 'WIREFRAME', {}),
+        ModifierSpec('mirror', 'MIRROR', {}),
+    ]
+    return generate_modifiers
 
+def cube_random_modifier_list():
+    generate_modifiers = [
+        ModifierSpec('edge split', 'EDGE_SPLIT', {}),
+        ModifierSpec('decimate', 'DECIMATE', {}),
+        ModifierSpec('wireframe', 'WIREFRAME', {}),
         ModifierSpec('mirror', 'MIRROR', {}),
+        ModifierSpec('array', 'ARRAY', {}),
+        ModifierSpec('bevel', 'BEVEL', {'width': 0.1, 'limit_method': 'NONE'}),
         ModifierSpec('multires', 'MULTIRES', {}),
-
-        # remesh can also generate an empty mesh. Skip.
-        # ModifierSpec('remesh', 'REMESH', {}),
-
-        # ModifierSpec('screw', 'SCREW', {}), # screw can make the test very slow. Skipping for now.
-
+        ModifierSpec('boolean', 'BOOLEAN', {'object': bpy.data.objects["testCubeRandom_boolean"], 'solver': 'FAST'}),
         ModifierSpec('solidify', 'SOLIDIFY', {}),
-        # Opensubdiv results might differ slightly when compiled with different optimization flags.
-        #ModifierSpec('subsurf', 'SUBSURF', {}),
+        ModifierSpec('build', 'BUILD', {'frame_start': 1, 'frame_duration': 1}, 2),
         ModifierSpec('triangulate', 'TRIANGULATE', {}),
-        ModifierSpec('wireframe', 'WIREFRAME', {})
-
     ]
-
-    if randomize:
-        shuffle(generate_modifiers)
-
     return generate_modifiers
 
-
 def main():
-    mask_first_list = get_generate_modifiers_list("testCubeMaskFirst", randomize=True)
-    mask_vertex_group = "testCubeMaskFirst" + "_mask"
-    mask_first_list.insert(0, ModifierSpec('mask', 'MASK', {'vertex_group': mask_vertex_group}))
 
     tests = [
         ###############################
         # List of 'Generate' modifiers on a cube
         ###############################
         # 0
-        # SpecMeshTest("testCube", "expectedCube", get_generate_modifiers_list("testCube")),
-        SpecMeshTest("CubeRandom", "testCubeRandom", "expectedCubeRandom",
-                     get_generate_modifiers_list("testCubeRandom", randomize=True)),
-        SpecMeshTest("CubeMaskFirst", "testCubeMaskFirst", "expectedCubeMaskFirst", mask_first_list),
+        SpecMeshTest("CubeRandom", "testCubeRandom", "expectedCubeRandom", cube_random_modifier_list()),
+        SpecMeshTest("CubeMaskFirst", "testCubeMaskFirst", "expectedCubeMaskFirst", cube_mask_first_modifier_list()),
 
         SpecMeshTest("CollapseDecimate", "testCollapseDecimate", "expectedCollapseDecimate",
                      [ModifierSpec('decimate', 'DECIMATE',



More information about the Bf-blender-cvs mailing list