]> granicus.if.org Git - graphviz/commitdiff
add new test_edge_node_overlap_normal_and_inv_edge_arrows test
authorMagnus Jacobsson <Magnus.Jacobsson@berotec.se>
Thu, 15 Sep 2022 10:52:26 +0000 (12:52 +0200)
committerMagnus Jacobsson <Magnus.Jacobsson@berotec.se>
Thu, 22 Sep 2022 08:21:14 +0000 (10:21 +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_edge_node_overlap_normal_and_inv_edge_arrows.cpp [new file with mode: 0644]

index 3a4276f60f5a83d29a1f5da3e02ec3b995d1dafd..ea9ced5fb24ba282db0e72850a3824acaffca3d1 100644 (file)
@@ -90,6 +90,7 @@ CREATE_TEST(GVLayout_construction)
 CREATE_TEST(GVLayout_render)
 CREATE_TEST(edge_node_overlap_all_edge_arrows)
 CREATE_TEST(edge_node_overlap_all_node_shapes)
+CREATE_TEST(edge_node_overlap_normal_and_inv_edge_arrows)
 CREATE_TEST(edge_node_overlap_polygon_node_shapes)
 CREATE_TEST(edge_node_overlap_simple)
 CREATE_TEST(max_edge_node_overlap_simple)
diff --git a/tests/test_edge_node_overlap_normal_and_inv_edge_arrows.cpp b/tests/test_edge_node_overlap_normal_and_inv_edge_arrows.cpp
new file mode 100644 (file)
index 0000000..f80e445
--- /dev/null
@@ -0,0 +1,30 @@
+#include <string>
+
+#include <catch2/catch.hpp>
+
+#include "test_edge_node_overlap_utilities.h"
+#include "test_utilities.h"
+
+TEST_CASE("Edge node overlap for normal and inv arrow",
+          "[!shouldfail] An edge connected to a node shall touch that node and "
+          "not overlap it too much, regardless of if the arrow shape is "
+          "'normal' or 'inv'") {
+
+  std::string filename_base = "test_edge_node_overlap_all_edge_arrows";
+
+  const std::string_view primitive_arrow_shape = GENERATE("normal", "inv");
+
+  INFO(fmt::format("Edge arrowhead: {}", primitive_arrow_shape));
+  filename_base += fmt::format("_arrow_shape_{}", primitive_arrow_shape);
+
+  const graph_options graph_options = {
+      .node_shape = "polygon",
+      .node_penwidth = 2,
+      .dir = "both",
+      .edge_penwidth = 2,
+      .primitive_arrowhead_shape = primitive_arrow_shape,
+      .primitive_arrowtail_shape = primitive_arrow_shape,
+  };
+
+  test_edge_node_overlap(graph_options, {}, {.filename_base = filename_base});
+}