]> granicus.if.org Git - graphviz/commitdiff
add new test_min_edge_node_overlap_polygon_node_shapes test
authorMagnus Jacobsson <Magnus.Jacobsson@berotec.se>
Wed, 14 Sep 2022 13:28:15 +0000 (15:28 +0200)
committerMagnus Jacobsson <Magnus.Jacobsson@berotec.se>
Tue, 20 Sep 2022 15:53:06 +0000 (17:53 +0200)
An upcoming commit series will add separate fixes for different parts
of the overlap problems. Having separate test cases for checking
maximum or minimum overlap will make it easier to see that the fixes
have the intended effect.

tests/CMakeLists.txt
tests/test_min_edge_node_overlap_polygon_node_shapes.cpp [new file with mode: 0644]

index dedfcf1df8397064635f15cf6e9cd7b8ce383d40..f97cdc74f04df1e50d53ff4a88da490876570b86 100644 (file)
@@ -93,6 +93,7 @@ CREATE_TEST(edge_node_overlap_polygon_node_shapes)
 CREATE_TEST(edge_node_overlap_simple)
 CREATE_TEST(max_edge_node_overlap_simple)
 CREATE_TEST(max_edge_node_overlap_polygon_node_shapes)
+CREATE_TEST(min_edge_node_overlap_polygon_node_shapes)
 CREATE_TEST(min_edge_node_overlap_simple)
 CREATE_TEST(neatopack)
 CREATE_TEST(node_color)
diff --git a/tests/test_min_edge_node_overlap_polygon_node_shapes.cpp b/tests/test_min_edge_node_overlap_polygon_node_shapes.cpp
new file mode 100644 (file)
index 0000000..5586eb6
--- /dev/null
@@ -0,0 +1,30 @@
+#include <catch2/catch.hpp>
+#include <fmt/format.h>
+
+#include "test_edge_node_overlap_utilities.h"
+#include "test_utilities.h"
+
+TEST_CASE("Minimum edge and node overlap for polygon node shapes",
+          "Test that an edge connected to a polygon based node touches that "
+          "node, regardless of the node shape") {
+
+  const auto shape = GENERATE(from_range(node_shapes_consisting_of_polygon));
+  INFO(fmt::format("Node shape: {}", shape));
+
+  const graph_options graph_options = {
+      .node_shape = shape,
+      .node_penwidth = 2,
+      .edge_penwidth = 2,
+  };
+
+  const tc_check_options check_options = {
+      .check_max_edge_node_overlap = false,
+      .check_min_edge_node_overlap = true,
+  };
+
+  const auto filename_base =
+      fmt::format("test_max_edge_node_overlap_polygon_node_shape_{}", shape);
+
+  test_edge_node_overlap(graph_options, check_options,
+                         {.filename_base = filename_base});
+}