From 52807f4030357c21c5930b1e2b5473820ef7c7ee Mon Sep 17 00:00:00 2001 From: Magnus Jacobsson Date: Thu, 15 Sep 2022 13:23:48 +0200 Subject: [PATCH] add new test_edge_node_overlap_all_primitive_edge_arrows test --- tests/CMakeLists.txt | 1 + ...node_overlap_all_primitive_edge_arrows.cpp | 35 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 tests/test_edge_node_overlap_all_primitive_edge_arrows.cpp diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index a9252ba1b..5b237e180 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -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_all_primitive_edge_arrows) CREATE_TEST(edge_node_overlap_normal_and_inv_edge_arrows) CREATE_TEST(edge_node_overlap_normal_and_inv_edge_arrows_all_modifiers) CREATE_TEST(edge_node_overlap_polygon_node_shapes) diff --git a/tests/test_edge_node_overlap_all_primitive_edge_arrows.cpp b/tests/test_edge_node_overlap_all_primitive_edge_arrows.cpp new file mode 100644 index 000000000..03ea2ffb5 --- /dev/null +++ b/tests/test_edge_node_overlap_all_primitive_edge_arrows.cpp @@ -0,0 +1,35 @@ +#include + +#include + +#include "test_edge_node_overlap_utilities.h" +#include "test_utilities.h" + +// FIXME: this test fails for all primitive arrow types except `normal` and +// `inv` which currently are the only ones fixed for penwidth + +TEST_CASE("Edge node overlap for all primitive arrow shapes", + "[!shouldfail] An edge connected to a node shall touch that node and " + "not overlap it too much, regardless of the primitive arrow shape") { + + std::string filename_base = + "test_edge_node_overlap_all_primitive_edge_arrows"; + + const auto primitive_arrow_shape = + GENERATE(from_range(all_primitive_arrow_shapes)); + INFO(fmt::format("Edge primitive arrow shape: {}", primitive_arrow_shape)); + + INFO(fmt::format("Edge arrow shape: {}", 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}); +} -- 2.40.0