From ca11f0799ad970bb63a7414e58e37f331a014a06 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sat, 20 Feb 2021 01:09:17 +0100 Subject: [PATCH] Recursive instance iterator, selection of target cells. --- src/db/db/dbRecursiveInstanceIterator.h | 2 +- .../dbRecursiveInstanceIteratorTests.cc | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/db/db/dbRecursiveInstanceIterator.h b/src/db/db/dbRecursiveInstanceIterator.h index 1a018e3c0..fbf1afdfe 100644 --- a/src/db/db/dbRecursiveInstanceIterator.h +++ b/src/db/db/dbRecursiveInstanceIterator.h @@ -287,7 +287,7 @@ public: /** * @brief Gets a flags indicating whether all targets are selected */ - bool all_targets () const + bool has_all_targets () const { return m_all_targets; } diff --git a/src/db/unit_tests/dbRecursiveInstanceIteratorTests.cc b/src/db/unit_tests/dbRecursiveInstanceIteratorTests.cc index e075e4db2..f49a382d5 100644 --- a/src/db/unit_tests/dbRecursiveInstanceIteratorTests.cc +++ b/src/db/unit_tests/dbRecursiveInstanceIteratorTests.cc @@ -251,6 +251,23 @@ TEST(1) x = collect_with_copy(ii, g); EXPECT_EQ (x, "[$1]$2 r0 0,0/[$1]$3 r0 100,-100/[$1]$4 r90 0,0"); + db::RecursiveInstanceIterator i1z (g, c0); + EXPECT_EQ (i1z.has_all_targets (), true); + std::set ct; + ct.insert (c3.cell_index ()); + i1z.targets (ct); + EXPECT_EQ (i1z.has_all_targets (), false); + EXPECT_EQ (i1z.targets () == ct, true); + i1z.all_targets (); + EXPECT_EQ (i1z.has_all_targets (), true); + + i1z.targets (ct); + EXPECT_EQ (i1z.has_all_targets (), false); + + x = collect(i1z, g); + EXPECT_EQ (x, "[$3]$4 r0 1100,0/[$1]$4 r90 0,0"); + x = collect_with_copy(i1z, g); + EXPECT_EQ (x, "[$3]$4 r0 1100,0/[$1]$4 r90 0,0"); } #if 0