From f8061182cdccb27ecd3974cfd3abc4bef7aebdce Mon Sep 17 00:00:00 2001 From: Lars Bilke <lars.bilke@ufz.de> Date: Wed, 24 Jul 2024 15:36:03 +0200 Subject: [PATCH] [T] Rewritten VoxelGridFromLayers snakemake test to pytest. --- Applications/Utils/Tests.cmake | 28 ++++---- Applications/Utils/VoxelGridFromLayers.smk | 70 ------------------- .../AREHS_2D_AABB_inverted.vtu | 0 .../AREHS_2D_AABB_regular.vtu | 0 .../AREHS_3D_AABB_inverted.vtu | 0 .../AREHS_3D_AABB_regular.vtu | 0 .../VoxelGridFromLayers}/AREHS_Layer0.vtu | 0 .../VoxelGridFromLayers}/AREHS_Layer15.vtu | 0 .../VoxelGridFromLayers}/AREHS_Layer17.vtu | 0 .../VoxelGridFromLayers}/AREHS_Layer9.vtu | 0 .../VoxelGridFromLayers}/AREHS_fault.vtu | 0 .../VoxelGridFromLayers}/AREHS_test.vtu | 0 .../VoxelGridFromLayers}/AREHS_test_fault.vtu | 0 .../VoxelGridFromLayers}/AREHS_test_iso.vtu | 0 .../AREHS_test_layers.txt | 0 .../test_voxelgrid_from_layers.py | 40 +++++++++++ 16 files changed, 52 insertions(+), 86 deletions(-) delete mode 100644 Applications/Utils/VoxelGridFromLayers.smk rename Tests/Data/{MeshLib => Utils/VoxelGridFromLayers}/AREHS_2D_AABB_inverted.vtu (100%) rename Tests/Data/{MeshLib => Utils/VoxelGridFromLayers}/AREHS_2D_AABB_regular.vtu (100%) rename Tests/Data/{MeshLib => Utils/VoxelGridFromLayers}/AREHS_3D_AABB_inverted.vtu (100%) rename Tests/Data/{MeshLib => Utils/VoxelGridFromLayers}/AREHS_3D_AABB_regular.vtu (100%) rename Tests/Data/{MeshLib => Utils/VoxelGridFromLayers}/AREHS_Layer0.vtu (100%) rename Tests/Data/{MeshLib => Utils/VoxelGridFromLayers}/AREHS_Layer15.vtu (100%) rename Tests/Data/{MeshLib => Utils/VoxelGridFromLayers}/AREHS_Layer17.vtu (100%) rename Tests/Data/{MeshLib => Utils/VoxelGridFromLayers}/AREHS_Layer9.vtu (100%) rename Tests/Data/{MeshLib => Utils/VoxelGridFromLayers}/AREHS_fault.vtu (100%) rename Tests/Data/{MeshLib => Utils/VoxelGridFromLayers}/AREHS_test.vtu (100%) rename Tests/Data/{MeshLib => Utils/VoxelGridFromLayers}/AREHS_test_fault.vtu (100%) rename Tests/Data/{MeshLib => Utils/VoxelGridFromLayers}/AREHS_test_iso.vtu (100%) rename Tests/Data/{MeshLib => Utils/VoxelGridFromLayers}/AREHS_test_layers.txt (100%) create mode 100644 Tests/Data/Utils/VoxelGridFromLayers/test_voxelgrid_from_layers.py diff --git a/Applications/Utils/Tests.cmake b/Applications/Utils/Tests.cmake index 41281936309..5a109f848d6 100644 --- a/Applications/Utils/Tests.cmake +++ b/Applications/Utils/Tests.cmake @@ -1411,11 +1411,10 @@ endif() AddTest( NAME RemoveMeshElements_AABB_2D_regular - PATH MeshLib - WORKING_DIRECTORY ${Data_SOURCE_DIR}/MeshLib + PATH Utils/VoxelGridFromLayers EXECUTABLE removeMeshElements - EXECUTABLE_ARGS -i AREHS_Layer17.vtu - -o ${Data_BINARY_DIR}/MeshLib/AREHS_2D_AABB_regular.vtu + EXECUTABLE_ARGS -i <SOURCE_PATH>/AREHS_Layer17.vtu + -o AREHS_2D_AABB_regular.vtu --x-min 12000 --x-max 15000 --y-min 12000 REQUIREMENTS NOT (OGS_USE_MPI) TESTER vtkdiff-mesh @@ -1424,11 +1423,10 @@ AddTest( AddTest( NAME RemoveMeshElements_AABB_2D_inverted - PATH MeshLib - WORKING_DIRECTORY ${Data_SOURCE_DIR}/MeshLib + PATH Utils/VoxelGridFromLayers EXECUTABLE removeMeshElements - EXECUTABLE_ARGS -i AREHS_Layer17.vtu - -o ${Data_BINARY_DIR}/MeshLib/AREHS_2D_AABB_inverted.vtu + EXECUTABLE_ARGS -i <SOURCE_PATH>/AREHS_Layer17.vtu + -o AREHS_2D_AABB_inverted.vtu --x-min 12000 --x-max 15000 --y-min 12000 --invert REQUIREMENTS NOT (OGS_USE_MPI) TESTER vtkdiff-mesh @@ -1437,11 +1435,10 @@ AddTest( AddTest( NAME RemoveMeshElements_AABB_3D_regular - PATH MeshLib - WORKING_DIRECTORY ${Data_SOURCE_DIR}/MeshLib + PATH Utils/VoxelGridFromLayers EXECUTABLE removeMeshElements - EXECUTABLE_ARGS -i AREHS_test.vtu - -o ${Data_BINARY_DIR}/MeshLib/AREHS_3D_AABB_regular.vtu + EXECUTABLE_ARGS -i <SOURCE_PATH>/AREHS_test.vtu + -o AREHS_3D_AABB_regular.vtu --x-min 12000 --x-max 15000 --y-min 12000 --z-min -3000 --z-max -2000 REQUIREMENTS NOT (OGS_USE_MPI) TESTER vtkdiff-mesh @@ -1450,11 +1447,10 @@ AddTest( AddTest( NAME RemoveMeshElements_AABB_3D_inverted - PATH MeshLib - WORKING_DIRECTORY ${Data_SOURCE_DIR}/MeshLib + PATH Utils/VoxelGridFromLayers EXECUTABLE removeMeshElements - EXECUTABLE_ARGS -i AREHS_test.vtu - -o ${Data_BINARY_DIR}/MeshLib/AREHS_3D_AABB_inverted.vtu + EXECUTABLE_ARGS -i <SOURCE_PATH>/AREHS_test.vtu + -o AREHS_3D_AABB_inverted.vtu --x-min 12000 --x-max 15000 --y-min 12000 --z-min -3000 --z-max -2000 --invert REQUIREMENTS NOT (OGS_USE_MPI) TESTER vtkdiff-mesh diff --git a/Applications/Utils/VoxelGridFromLayers.smk b/Applications/Utils/VoxelGridFromLayers.smk deleted file mode 100644 index c67ef318e9d..00000000000 --- a/Applications/Utils/VoxelGridFromLayers.smk +++ /dev/null @@ -1,70 +0,0 @@ -# Usage, e.g.: -# snakemake -s VoxelGridFromLayers.smk -j 1 --configfile $HOME/code/ogs6/build/buildinfo.yaml -# -# buildinfo.yaml contains variables such as Data_BINARY_DIR - -import os -os.environ["PATH"] += os.pathsep + os.pathsep.join([config['BIN_DIR']]) -workdir: f"{config['Data_SOURCE_DIR']}/MeshLib" -out_dir = f"{config['Data_BINARY_DIR']}/MeshLib" - -rule all: - input: - f"{out_dir}/AREHS_test_diff_geometry.out", - f"{out_dir}/AREHS_test_fault_diff.out", - f"{out_dir}/AREHS_test_iso_diff_geometry.out" - -rule layers_to_grid: - input: - "AREHS_test_layers.txt" - output: - f"{out_dir}/AREHS_test.vtu" - shell: - "Layers2Grid -i {input} -o {output} -x 500 -y 300 -z 100" - -rule vtkdiff_grid_geometry: - input: - out = rules.layers_to_grid.output, - ref = "AREHS_test.vtu" - output: - f"{out_dir}/AREHS_test_diff_geometry.out" - shell: - "vtkdiff -m {input.out} {input.ref} 2>&1 | tee {output}" - -rule add_fault_to_grid: - input: - grid = rules.layers_to_grid.output, - fault = "AREHS_fault.vtu" - output: - f"{out_dir}/AREHS_test_fault.vtu" - shell: - "AddFaultToVoxelGrid -i {input.grid} -f {input.fault} -o {output}" - -rule vtkdiff_fault: - input: - a = rules.add_fault_to_grid.output, - b = "AREHS_test_fault.vtu" - output: - f"{out_dir}/AREHS_test_fault_diff.out" - params: - check_mesh = True, - fields = [["MaterialIDs", 0, 0]] - wrapper: - f"file://{config['SOURCE_DIR']}/scripts/snakemake/vtkdiff" - -rule layers_to_grid_iso: - input: - "AREHS_test_layers.txt" - output: - f"{out_dir}/AREHS_test_iso.vtu" - shell: - "Layers2Grid -i {input} -o {output} -x 500" - -rule vtkdiff_grid_iso_geometry: - input: - out = rules.layers_to_grid_iso.output, - ref = "AREHS_test_iso.vtu" - output: - f"{out_dir}/AREHS_test_iso_diff_geometry.out" - shell: - "vtkdiff -m {input.out} {input.ref} 2>&1 | tee {output}" diff --git a/Tests/Data/MeshLib/AREHS_2D_AABB_inverted.vtu b/Tests/Data/Utils/VoxelGridFromLayers/AREHS_2D_AABB_inverted.vtu similarity index 100% rename from Tests/Data/MeshLib/AREHS_2D_AABB_inverted.vtu rename to Tests/Data/Utils/VoxelGridFromLayers/AREHS_2D_AABB_inverted.vtu diff --git a/Tests/Data/MeshLib/AREHS_2D_AABB_regular.vtu b/Tests/Data/Utils/VoxelGridFromLayers/AREHS_2D_AABB_regular.vtu similarity index 100% rename from Tests/Data/MeshLib/AREHS_2D_AABB_regular.vtu rename to Tests/Data/Utils/VoxelGridFromLayers/AREHS_2D_AABB_regular.vtu diff --git a/Tests/Data/MeshLib/AREHS_3D_AABB_inverted.vtu b/Tests/Data/Utils/VoxelGridFromLayers/AREHS_3D_AABB_inverted.vtu similarity index 100% rename from Tests/Data/MeshLib/AREHS_3D_AABB_inverted.vtu rename to Tests/Data/Utils/VoxelGridFromLayers/AREHS_3D_AABB_inverted.vtu diff --git a/Tests/Data/MeshLib/AREHS_3D_AABB_regular.vtu b/Tests/Data/Utils/VoxelGridFromLayers/AREHS_3D_AABB_regular.vtu similarity index 100% rename from Tests/Data/MeshLib/AREHS_3D_AABB_regular.vtu rename to Tests/Data/Utils/VoxelGridFromLayers/AREHS_3D_AABB_regular.vtu diff --git a/Tests/Data/MeshLib/AREHS_Layer0.vtu b/Tests/Data/Utils/VoxelGridFromLayers/AREHS_Layer0.vtu similarity index 100% rename from Tests/Data/MeshLib/AREHS_Layer0.vtu rename to Tests/Data/Utils/VoxelGridFromLayers/AREHS_Layer0.vtu diff --git a/Tests/Data/MeshLib/AREHS_Layer15.vtu b/Tests/Data/Utils/VoxelGridFromLayers/AREHS_Layer15.vtu similarity index 100% rename from Tests/Data/MeshLib/AREHS_Layer15.vtu rename to Tests/Data/Utils/VoxelGridFromLayers/AREHS_Layer15.vtu diff --git a/Tests/Data/MeshLib/AREHS_Layer17.vtu b/Tests/Data/Utils/VoxelGridFromLayers/AREHS_Layer17.vtu similarity index 100% rename from Tests/Data/MeshLib/AREHS_Layer17.vtu rename to Tests/Data/Utils/VoxelGridFromLayers/AREHS_Layer17.vtu diff --git a/Tests/Data/MeshLib/AREHS_Layer9.vtu b/Tests/Data/Utils/VoxelGridFromLayers/AREHS_Layer9.vtu similarity index 100% rename from Tests/Data/MeshLib/AREHS_Layer9.vtu rename to Tests/Data/Utils/VoxelGridFromLayers/AREHS_Layer9.vtu diff --git a/Tests/Data/MeshLib/AREHS_fault.vtu b/Tests/Data/Utils/VoxelGridFromLayers/AREHS_fault.vtu similarity index 100% rename from Tests/Data/MeshLib/AREHS_fault.vtu rename to Tests/Data/Utils/VoxelGridFromLayers/AREHS_fault.vtu diff --git a/Tests/Data/MeshLib/AREHS_test.vtu b/Tests/Data/Utils/VoxelGridFromLayers/AREHS_test.vtu similarity index 100% rename from Tests/Data/MeshLib/AREHS_test.vtu rename to Tests/Data/Utils/VoxelGridFromLayers/AREHS_test.vtu diff --git a/Tests/Data/MeshLib/AREHS_test_fault.vtu b/Tests/Data/Utils/VoxelGridFromLayers/AREHS_test_fault.vtu similarity index 100% rename from Tests/Data/MeshLib/AREHS_test_fault.vtu rename to Tests/Data/Utils/VoxelGridFromLayers/AREHS_test_fault.vtu diff --git a/Tests/Data/MeshLib/AREHS_test_iso.vtu b/Tests/Data/Utils/VoxelGridFromLayers/AREHS_test_iso.vtu similarity index 100% rename from Tests/Data/MeshLib/AREHS_test_iso.vtu rename to Tests/Data/Utils/VoxelGridFromLayers/AREHS_test_iso.vtu diff --git a/Tests/Data/MeshLib/AREHS_test_layers.txt b/Tests/Data/Utils/VoxelGridFromLayers/AREHS_test_layers.txt similarity index 100% rename from Tests/Data/MeshLib/AREHS_test_layers.txt rename to Tests/Data/Utils/VoxelGridFromLayers/AREHS_test_layers.txt diff --git a/Tests/Data/Utils/VoxelGridFromLayers/test_voxelgrid_from_layers.py b/Tests/Data/Utils/VoxelGridFromLayers/test_voxelgrid_from_layers.py new file mode 100644 index 00000000000..fb1e52650c1 --- /dev/null +++ b/Tests/Data/Utils/VoxelGridFromLayers/test_voxelgrid_from_layers.py @@ -0,0 +1,40 @@ +import os +from pathlib import Path + +from ogs import cli + + +def test_voxelgrid_from_layers(tmp_path): + os.chdir(Path(__file__).resolve().parent) + + mesh_file = Path(f"{tmp_path}/AREHS_test.vtu") + + cli.Layers2Grid(i="AREHS_test_layers.txt", o=mesh_file, x=500, y=300, z=100) + assert mesh_file.exists() + + assert cli.vtkdiff(mesh_file, "AREHS_test.vtu", mesh_check=None) == 0 + + fault_mesh_file = Path(f"{tmp_path}/AREHS_test_fault.vtu") + cli.AddFaultToVoxelGrid(i=mesh_file, f="AREHS_fault.vtu", o=fault_mesh_file) + assert fault_mesh_file.exists() + + assert cli.vtkdiff(fault_mesh_file, "AREHS_test_fault.vtu", mesh_check=None) == 0 + assert ( + cli.vtkdiff( + fault_mesh_file, + "AREHS_test_fault.vtu", + a="MaterialIDs", + b="MaterialIDs", + abs=0, + rel=0, + ) + == 0 + ) + + # iso + mesh_file = Path(f"{tmp_path}/AREHS_test_iso.vtu") + + cli.Layers2Grid(i="AREHS_test_layers.txt", o=mesh_file, x=500) + assert mesh_file.exists() + + assert cli.vtkdiff(mesh_file, "AREHS_test_iso.vtu", mesh_check=None) == 0 -- GitLab