From 3677a36804df90eff27caa3179d0819917be3a02 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Tue, 19 Jan 2021 01:26:20 +0100 Subject: [PATCH] Made region tests less susceptible to 'unordered_set' implementation details. --- src/db/db/dbEdgePair.cc | 16 +- src/db/db/dbEdgePairs.cc | 3 + src/db/db/dbEdges.cc | 3 + src/db/db/dbPolygon.cc | 2 + src/db/db/dbRegion.cc | 5 +- src/db/db/dbTestSupport.cc | 86 ++ src/db/db/dbTestSupport.h | 30 + src/db/db/dbTexts.cc | 3 + src/db/unit_tests/dbRegionTests.cc | 1184 ++++++++++++++-------------- 9 files changed, 736 insertions(+), 596 deletions(-) diff --git a/src/db/db/dbEdgePair.cc b/src/db/db/dbEdgePair.cc index dc637a5c8..e2c2fadf9 100644 --- a/src/db/db/dbEdgePair.cc +++ b/src/db/db/dbEdgePair.cc @@ -43,16 +43,26 @@ template<> void extractor_impl (tl::Extractor &ex, db::DEdgePair &e) template bool _test_extractor_impl (tl::Extractor &ex, db::edge_pair &e) { typedef db::edge edge_type; + tl::Extractor ex_saved = ex; edge_type e1, e2; if (ex.try_read (e1)) { - ex.expect ("/"); - ex.read (e2); + bool symmetric = false; + if (ex.test ("|")) { + symmetric = true; + } else if (! ex.test ("/")) { + ex = ex_saved; + return false; + } - e = db::edge_pair (e1, e2); + if (! ex.try_read (e2)) { + ex = ex_saved; + return false; + } + e = db::edge_pair (e1, e2, symmetric); return true; } else { diff --git a/src/db/db/dbEdgePairs.cc b/src/db/db/dbEdgePairs.cc index e7987cb33..2125714b5 100644 --- a/src/db/db/dbEdgePairs.cc +++ b/src/db/db/dbEdgePairs.cc @@ -204,6 +204,9 @@ namespace tl { db::EdgePair ep; + if (ex.at_end ()) { + return true; + } if (! ex.try_read (ep)) { return false; } diff --git a/src/db/db/dbEdges.cc b/src/db/db/dbEdges.cc index 567c4f97f..07c0eece8 100644 --- a/src/db/db/dbEdges.cc +++ b/src/db/db/dbEdges.cc @@ -229,6 +229,9 @@ namespace tl { db::Edge p; + if (ex.at_end ()) { + return true; + } if (! ex.try_read (p)) { return false; } diff --git a/src/db/db/dbPolygon.cc b/src/db/db/dbPolygon.cc index c48a34286..dbd942de1 100644 --- a/src/db/db/dbPolygon.cc +++ b/src/db/db/dbPolygon.cc @@ -514,6 +514,8 @@ template DB_PUBLIC bool _test_extractor_impl (tl::Extractor &ex, db::po if (ex.test ("(")) { + p.clear (); + point_type pt; while (ex.try_read (pt)) { points.push_back (pt); diff --git a/src/db/db/dbRegion.cc b/src/db/db/dbRegion.cc index 91b42f496..acfc8d259 100644 --- a/src/db/db/dbRegion.cc +++ b/src/db/db/dbRegion.cc @@ -607,6 +607,9 @@ namespace tl { db::Polygon p; + if (ex.at_end ()) { + return true; + } if (! ex.try_read (p)) { return false; } @@ -623,7 +626,7 @@ namespace tl template<> DB_PUBLIC void extractor_impl (tl::Extractor &ex, db::Region &b) { if (! test_extractor_impl (ex, b)) { - ex.error (tl::to_string (tr ("Expected an region collection specification"))); + ex.error (tl::to_string (tr ("Expected a region specification"))); } } } diff --git a/src/db/db/dbTestSupport.cc b/src/db/db/dbTestSupport.cc index 1438842be..546c196f2 100644 --- a/src/db/db/dbTestSupport.cc +++ b/src/db/db/dbTestSupport.cc @@ -30,6 +30,10 @@ #include "dbLayoutDiff.h" #include "dbNetlist.h" #include "dbNetlistCompare.h" +#include "dbRegion.h" +#include "dbEdges.h" +#include "dbEdgePairs.h" +#include "dbTexts.h" #include "tlUnitTest.h" #include "tlFileUtils.h" @@ -326,5 +330,87 @@ void DB_PUBLIC compare_netlist (tl::TestBase *_this, const db::Netlist &netlist, } } +template +static +bool do_compare (const Container &cont, const std::string &string) +{ + std::set a, b; + + Container cs; + tl::Extractor ex (string.c_str ()); + ex.read (cs); + + for (typename Container::const_iterator i = cont.begin (); !i.at_end (); ++i) { + a.insert (*i); + } + + for (typename Container::const_iterator i = cs.begin (); !i.at_end (); ++i) { + b.insert (*i); + } + + if (a != b) { + + tl::error << "Compare details:"; + tl::error << " a = '" << cont.to_string () << "'"; + tl::error << " b = '" << cs.to_string () << "'"; + tl::error << "In list a, but not in b:"; + for (typename std::set::const_iterator i = a.begin (); i != a.end (); ++i) { + if (b.find (*i) == b.end ()) { + tl::error << " " << i->to_string (); + } + } + tl::error << "In list b, but not in a:"; + for (typename std::set::const_iterator i = b.begin (); i != b.end (); ++i) { + if (a.find (*i) == a.end ()) { + tl::error << " " << i->to_string (); + } + } + + return false; + + } else { + return true; + } +} + +/** + * @brief Convenient compare of region vs. string + */ +bool compare (const db::Region ®ion, const std::string &string) +{ + return do_compare (region, string); +} + +/** + * @brief Convenient compare of edges vs. string + */ +bool compare (const db::Edges &edges, const std::string &string) +{ + return do_compare (edges, string); +} + +/** + * @brief Convenient compare of edge pairs vs. string + */ +bool compare (const db::EdgePairs &edge_pairs, const std::string &string) +{ + return do_compare (edge_pairs, string); +} + +/** + * @brief Convenient compare of texts vs. string + */ +bool compare (const db::Texts &texts, const std::string &string) +{ + return do_compare (texts, string); +} + +/** + * @brief Convenient compare of box vs. string + */ +bool compare (const db::Box &box, const std::string &string) +{ + return box.to_string () == string; +} } diff --git a/src/db/db/dbTestSupport.h b/src/db/db/dbTestSupport.h index 1f2601233..aeecab118 100644 --- a/src/db/db/dbTestSupport.h +++ b/src/db/db/dbTestSupport.h @@ -25,6 +25,7 @@ #include "dbCommon.h" #include "dbTypes.h" +#include "dbBox.h" #include @@ -40,6 +41,10 @@ class Layout; class Cell; class LayerMap; class Netlist; +class Region; +class EdgePairs; +class Edges; +class Texts; /** * @brief Specifies the normalization mode for compare_layouts @@ -84,6 +89,31 @@ void DB_PUBLIC compare_netlist (tl::TestBase *_this, const db::Netlist &netlist, */ void DB_PUBLIC compare_netlist (tl::TestBase *_this, const db::Netlist &netlist, const db::Netlist &netlist_au, bool exact_parameter_match = false); +/** + * @brief Convenient compare of region vs. string + */ +bool DB_PUBLIC compare (const db::Region ®ion, const std::string &string); + +/** + * @brief Convenient compare of edges vs. string + */ +bool DB_PUBLIC compare (const db::Edges &edges, const std::string &string); + +/** + * @brief Convenient compare of edge pairs vs. string + */ +bool DB_PUBLIC compare (const db::EdgePairs &edge_pairs, const std::string &string); + +/** + * @brief Convenient compare of texts vs. string + */ +bool DB_PUBLIC compare (const db::Texts &texts, const std::string &string); + +/** + * @brief Convenient compare of box vs. string + */ +bool DB_PUBLIC compare (const db::Box &box, const std::string &string); + } #endif diff --git a/src/db/db/dbTexts.cc b/src/db/db/dbTexts.cc index 5eecd68fb..f0e5d4ee8 100644 --- a/src/db/db/dbTexts.cc +++ b/src/db/db/dbTexts.cc @@ -194,6 +194,9 @@ namespace tl { db::Text ep; + if (ex.at_end ()) { + return true; + } if (! ex.try_read (ep)) { return false; } diff --git a/src/db/unit_tests/dbRegionTests.cc b/src/db/unit_tests/dbRegionTests.cc index 00e065041..892a1d051 100644 --- a/src/db/unit_tests/dbRegionTests.cc +++ b/src/db/unit_tests/dbRegionTests.cc @@ -35,14 +35,14 @@ #include -TEST(1) +TEST(1) { db::Region r; - EXPECT_EQ (r.to_string (), ""); + EXPECT_EQ (db::compare (r, ""), true); EXPECT_EQ (r == db::Region (), true); EXPECT_EQ (r < db::Region (), false); EXPECT_EQ (r != db::Region (), false); - EXPECT_EQ (r.bbox ().to_string (), "()"); + EXPECT_EQ (db::compare (r.bbox (), "()"), true); EXPECT_EQ (r.empty (), true); EXPECT_EQ (r.is_box (), false); EXPECT_EQ (r.is_merged (), true); @@ -55,9 +55,9 @@ TEST(1) EXPECT_EQ (r != r, false); EXPECT_EQ (r == r, true); EXPECT_EQ (r < r, false); - EXPECT_EQ (r.to_string (), "(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.transformed (db::Trans (db::Vector (1, 2))).to_string (), "(1,2;1,202;101,202;101,2)"); - EXPECT_EQ (r.bbox ().to_string (), "(0,0;100,200)"); + EXPECT_EQ (db::compare (r, "(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.transformed (db::Trans (db::Vector (1, 2))), "(1,2;1,202;101,202;101,2)"), true); + EXPECT_EQ (db::compare (r.bbox (), "(0,0;100,200)"), true); EXPECT_EQ (r.empty (), false); EXPECT_EQ (r.is_merged (), true); EXPECT_EQ (r.is_box (), true); @@ -65,8 +65,8 @@ TEST(1) db::Region rr = r; rr.insert (db::Box (db::Point (10, 10), db::Point (110, 30))); - EXPECT_EQ (rr.bbox ().to_string (), "(0,0;110,200)"); - EXPECT_EQ (rr.to_string (), "(0,0;0,200;100,200;100,0);(10,10;10,30;110,30;110,10)"); + EXPECT_EQ (db::compare (rr.bbox (), "(0,0;110,200)"), true); + EXPECT_EQ (db::compare (rr, "(0,0;0,200;100,200;100,0);(10,10;10,30;110,30;110,10)"), true); EXPECT_EQ (rr.empty (), false); EXPECT_EQ (rr.is_merged (), false); EXPECT_EQ (rr.is_box (), false); @@ -74,24 +74,24 @@ TEST(1) db::Region r1 = r; db::Region r2; - EXPECT_EQ (r1.to_string (), "(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r2.to_string (), ""); - EXPECT_EQ (r1.bbox ().to_string (), "(0,0;100,200)"); - EXPECT_EQ (r2.bbox ().to_string (), "()"); + EXPECT_EQ (db::compare (r1, "(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r2, ""), true); + EXPECT_EQ (db::compare (r1.bbox (), "(0,0;100,200)"), true); + EXPECT_EQ (db::compare (r2.bbox (), "()"), true); r1.swap (r2); - EXPECT_EQ (r1.to_string (), ""); - EXPECT_EQ (r2.to_string (), "(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r1.bbox ().to_string (), "()"); - EXPECT_EQ (r2.bbox ().to_string (), "(0,0;100,200)"); + EXPECT_EQ (db::compare (r1, ""), true); + EXPECT_EQ (db::compare (r2, "(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r1.bbox (), "()"), true); + EXPECT_EQ (db::compare (r2.bbox (), "(0,0;100,200)"), true); - EXPECT_EQ ((r + db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))).to_string (), "(0,0;0,200;100,200;100,0);(10,20;10,220;110,220;110,20)"); - EXPECT_EQ ((r + db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))).merged ().to_string (), "(0,0;0,200;10,200;10,220;110,220;110,20;100,20;100,0)"); - EXPECT_EQ ((r + db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))).merged (false, 1).to_string (), "(10,20;10,200;100,200;100,20)"); - EXPECT_EQ ((r | db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))).to_string (), "(0,0;0,200;10,200;10,220;110,220;110,20;100,20;100,0)"); + EXPECT_EQ (db::compare ((r + db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))), "(0,0;0,200;100,200;100,0);(10,20;10,220;110,220;110,20)"), true); + EXPECT_EQ (db::compare ((r + db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))).merged (), "(0,0;0,200;10,200;10,220;110,220;110,20;100,20;100,0)"), true); + EXPECT_EQ (db::compare ((r + db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))).merged (false, 1), "(10,20;10,200;100,200;100,20)"), true); + EXPECT_EQ (db::compare ((r | db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))), "(0,0;0,200;10,200;10,220;110,220;110,20;100,20;100,0)"), true); r += db::Region (db::Box (db::Point (10, 20), db::Point (110, 220))); EXPECT_EQ (r.is_box (), false); - EXPECT_EQ (r.to_string (), "(0,0;0,200;100,200;100,0);(10,20;10,220;110,220;110,20)"); + EXPECT_EQ (db::compare (r, "(0,0;0,200;100,200;100,0);(10,20;10,220;110,220;110,20)"), true); EXPECT_EQ (r.is_merged (), false); EXPECT_EQ (r.count (), size_t (2)); EXPECT_EQ (r.hier_count (), size_t (2)); @@ -119,8 +119,8 @@ TEST(1) EXPECT_EQ (r.perimeter (db::Box (db::Point (-10, -10), db::Point (0, 50))), db::Region::perimeter_type (0)); EXPECT_EQ (r.perimeter (db::Box (db::Point (0, 0), db::Point (50, 50))), db::Region::perimeter_type (100)); r.merge (); - EXPECT_EQ (r.to_string (), "(0,0;0,200;10,200;10,220;110,220;110,20;100,20;100,0)"); - EXPECT_EQ (r.bbox ().to_string (), "(0,0;110,220)"); + EXPECT_EQ (db::compare (r, "(0,0;0,200;10,200;10,220;110,220;110,20;100,20;100,0)"), true); + EXPECT_EQ (db::compare (r.bbox (), "(0,0;110,220)"), true); EXPECT_EQ (r.is_merged (), true); EXPECT_EQ (r.is_box (), false); EXPECT_EQ (r.empty (), false); @@ -135,15 +135,15 @@ TEST(1) r.insert (db::Box (db::Point (0, 0), db::Point (50, 50))); r.insert (db::Box (db::Point (50, 50), db::Point (100, 100))); - EXPECT_EQ (r.merged (false).to_string (), "(0,0;0,50;50,50;50,100;100,100;100,50;50,50;50,0)"); - EXPECT_EQ (r.merged (true).to_string (), "(0,0;0,50;50,50;50,0);(50,50;50,100;100,100;100,50)"); + EXPECT_EQ (db::compare (r.merged (false), "(0,0;0,50;50,50;50,100;100,100;100,50;50,50;50,0)"), true); + EXPECT_EQ (db::compare (r.merged (true), "(0,0;0,50;50,50;50,0);(50,50;50,100;100,100;100,50)"), true); r.set_merged_semantics (false); - EXPECT_EQ (r.sized (10).to_string (), "(-10,-10;-10,60;60,60;60,-10);(40,40;40,110;110,110;110,40)"); - EXPECT_EQ (r.sized (db::Coord (10), db::Coord (20)).to_string (), "(-10,-20;-10,70;60,70;60,-20);(40,30;40,120;110,120;110,30)"); - EXPECT_EQ (r.sized (10, 20, 0).to_string (), "(0,-20;-10,0;-10,50;0,70;50,70;60,50;60,0;50,-20);(50,30;40,50;40,100;50,120;100,120;110,100;110,50;100,30)"); + EXPECT_EQ (db::compare (r.sized (10), "(-10,-10;-10,60;60,60;60,-10);(40,40;40,110;110,110;110,40)"), true); + EXPECT_EQ (db::compare (r.sized (db::Coord (10), db::Coord (20)), "(-10,-20;-10,70;60,70;60,-20);(40,30;40,120;110,120;110,30)"), true); + EXPECT_EQ (db::compare (r.sized (10, 20, 0), "(0,-20;-10,0;-10,50;0,70;50,70;60,50;60,0;50,-20);(50,30;40,50;40,100;50,120;100,120;110,100;110,50;100,30)"), true); r.size (10, 20, 2); - EXPECT_EQ (r.to_string (), "(-10,-20;-10,70;60,70;60,-20);(40,30;40,120;110,120;110,30)"); + EXPECT_EQ (db::compare (r, "(-10,-20;-10,70;60,70;60,-20);(40,30;40,120;110,120;110,30)"), true); } TEST(1b) @@ -162,26 +162,26 @@ TEST(2) r.insert (db::Box (db::Point (0, 0), db::Point (100, 200))); EXPECT_EQ (r.is_box (), true); - EXPECT_EQ ((r & db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))).to_string (), "(10,20;10,200;100,200;100,20)"); + EXPECT_EQ (db::compare ((r & db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))), "(10,20;10,200;100,200;100,20)"), true); r &= db::Region (db::Box (db::Point (10, 20), db::Point (110, 220))); EXPECT_EQ (r.is_box (), true); EXPECT_EQ (r.empty (), false); EXPECT_EQ (r.is_merged (), true); - EXPECT_EQ (r.to_string (), "(10,20;10,200;100,200;100,20)"); + EXPECT_EQ (db::compare (r, "(10,20;10,200;100,200;100,20)"), true); r.insert (db::Box (db::Point (-50, -50), db::Point (50, 50))); EXPECT_EQ (r.is_box (), false); EXPECT_EQ (r.is_merged (), false); - EXPECT_EQ ((r & db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))).to_string (), "(10,20;10,200;100,200;100,20);(10,20;10,50;50,50;50,20)"); - EXPECT_EQ ((db::Region (db::Box (db::Point (10, 20), db::Point (110, 220))) & r).to_string (), "(10,20;10,200;100,200;100,20);(10,20;10,50;50,50;50,20)"); + EXPECT_EQ (db::compare ((r & db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))), "(10,20;10,200;100,200;100,20);(10,20;10,50;50,50;50,20)"), true); + EXPECT_EQ (db::compare ((db::Region (db::Box (db::Point (10, 20), db::Point (110, 220))) & r), "(10,20;10,200;100,200;100,20);(10,20;10,50;50,50;50,20)"), true); r &= db::Region (db::Box (db::Point (10, 20), db::Point (110, 220))); EXPECT_EQ (r.is_box (), false); EXPECT_EQ (r.empty (), false); EXPECT_EQ (r.is_merged (), false); - EXPECT_EQ (r.to_string (), "(10,20;10,200;100,200;100,20);(10,20;10,50;50,50;50,20)"); + EXPECT_EQ (db::compare (r, "(10,20;10,200;100,200;100,20);(10,20;10,50;50,50;50,20)"), true); } TEST(3) @@ -197,25 +197,25 @@ TEST(3) rr.insert (db::Box (db::Point (10, 20), db::Point (110, 220))); EXPECT_EQ (rr.is_box (), false); - EXPECT_EQ ((r & rr).to_string (), "(10,20;10,220;110,220;110,20)"); - EXPECT_EQ ((rr & r).to_string (), "(10,20;10,220;110,220;110,20)"); - EXPECT_EQ ((r & db::Region ()).to_string (), ""); + EXPECT_EQ (db::compare ((r & rr), "(10,20;10,220;110,220;110,20)"), true); + EXPECT_EQ (db::compare ((rr & r), "(10,20;10,220;110,220;110,20)"), true); + EXPECT_EQ (db::compare ((r & db::Region ()), ""), true); EXPECT_EQ ((r & db::Region ()).empty (), true); - EXPECT_EQ ((db::Region () & r).to_string (), ""); + EXPECT_EQ (db::compare ((db::Region () & r), ""), true); EXPECT_EQ ((db::Region () & r).empty (), true); - EXPECT_EQ (r.andnot(rr).first.to_string (), "(10,20;10,220;110,220;110,20)"); - EXPECT_EQ (rr.andnot(r).first.to_string (), "(10,20;10,220;110,220;110,20)"); - EXPECT_EQ (r.andnot(db::Region ()).first.to_string (), ""); + EXPECT_EQ (db::compare (r.andnot(rr).first, "(10,20;10,220;110,220;110,20)"), true); + EXPECT_EQ (db::compare (rr.andnot(r).first, "(10,20;10,220;110,220;110,20)"), true); + EXPECT_EQ (db::compare (r.andnot(db::Region ()).first, ""), true); EXPECT_EQ (r.andnot(db::Region ()).first.empty (), true); - EXPECT_EQ (db::Region ().andnot(r).first.to_string (), ""); + EXPECT_EQ (db::compare (db::Region ().andnot(r).first, ""), true); EXPECT_EQ (db::Region ().andnot(r).first.empty (), true); r &= rr; EXPECT_EQ (r.is_box (), true); EXPECT_EQ (r.empty (), false); EXPECT_EQ (r.is_merged (), true); - EXPECT_EQ (r.to_string (), "(10,20;10,220;110,220;110,20)"); + EXPECT_EQ (db::compare (r, "(10,20;10,220;110,220;110,20)"), true); } TEST(4) @@ -225,16 +225,16 @@ TEST(4) EXPECT_EQ (r.is_box (), true); r.set_min_coherence (false); - EXPECT_EQ ((r ^ db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))).to_string (), "(0,0;0,200;10,200;10,220;110,220;110,20;100,20;100,0/10,20;100,20;100,200;10,200)"); + EXPECT_EQ (db::compare ((r ^ db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))), "(0,0;0,200;10,200;10,220;110,220;110,20;100,20;100,0/10,20;100,20;100,200;10,200)"), true); r.set_min_coherence (true); - EXPECT_EQ ((r ^ db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))).to_string (), "(0,0;0,200;10,200;10,20;100,20;100,0);(100,20;100,200;10,200;10,220;110,220;110,20)"); + EXPECT_EQ (db::compare ((r ^ db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))), "(0,0;0,200;10,200;10,20;100,20;100,0);(100,20;100,200;10,200;10,220;110,220;110,20)"), true); r ^= db::Region (db::Box (db::Point (10, 20), db::Point (110, 220))); EXPECT_EQ (r.is_box (), false); EXPECT_EQ (r.empty (), false); EXPECT_EQ (r.is_merged (), true); - EXPECT_EQ (r.to_string (), "(0,0;0,200;10,200;10,20;100,20;100,0);(100,20;100,200;10,200;10,220;110,220;110,20)"); + EXPECT_EQ (db::compare (r, "(0,0;0,200;10,200;10,20;100,20;100,0);(100,20;100,200;10,200;10,220;110,220;110,20)"), true); } TEST(5) @@ -244,11 +244,11 @@ TEST(5) r.insert (db::Box (db::Point (-100, -100), db::Point (200, 400))); EXPECT_EQ (r.is_box (), false); - EXPECT_EQ ((r ^ db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))).to_string (), "(-100,-100;-100,400;200,400;200,-100/10,20;110,20;110,220;10,220)"); - EXPECT_EQ ((r ^ db::Region ()).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,400;200,400;200,-100)"); + EXPECT_EQ (db::compare ((r ^ db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))), "(-100,-100;-100,400;200,400;200,-100/10,20;110,20;110,220;10,220)"), true); + EXPECT_EQ (db::compare ((r ^ db::Region ()), "(0,0;0,200;100,200;100,0);(-100,-100;-100,400;200,400;200,-100)"), true); EXPECT_EQ ((r ^ db::Region ()).empty (), false); EXPECT_EQ ((r ^ db::Region ()).is_merged (), false); - EXPECT_EQ ((db::Region () ^ r).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,400;200,400;200,-100)"); + EXPECT_EQ (db::compare ((db::Region () ^ r), "(0,0;0,200;100,200;100,0);(-100,-100;-100,400;200,400;200,-100)"), true); EXPECT_EQ ((db::Region () ^ r).empty (), false); EXPECT_EQ ((db::Region () ^ r).is_merged (), false); @@ -256,16 +256,16 @@ TEST(5) EXPECT_EQ (r.is_box (), false); EXPECT_EQ (r.empty (), false); EXPECT_EQ (r.is_merged (), true); - EXPECT_EQ (r.to_string (), "(-100,-100;-100,400;200,400;200,-100/10,20;110,20;110,220;10,220)"); + EXPECT_EQ (db::compare (r, "(-100,-100;-100,400;200,400;200,-100/10,20;110,20;110,220;10,220)"), true); db::Region rr; std::string s = r.to_string (); tl::Extractor ex (s.c_str ()); EXPECT_EQ (ex.try_read (rr), true); - EXPECT_EQ (rr.to_string (), "(-100,-100;-100,400;200,400;200,-100/10,20;110,20;110,220;10,220)"); + EXPECT_EQ (db::compare (rr, "(-100,-100;-100,400;200,400;200,-100/10,20;110,20;110,220;10,220)"), true); - EXPECT_EQ (r.holes ().to_string (), "(10,20;10,220;110,220;110,20)"); - EXPECT_EQ (r.hulls ().to_string (), "(-100,-100;-100,400;200,400;200,-100)"); + EXPECT_EQ (db::compare (r.holes (), "(10,20;10,220;110,220;110,20)"), true); + EXPECT_EQ (db::compare (r.hulls (), "(-100,-100;-100,400;200,400;200,-100)"), true); } TEST(6) @@ -274,13 +274,13 @@ TEST(6) r.insert (db::Box (db::Point (0, 0), db::Point (100, 200))); EXPECT_EQ (r.is_box (), true); - EXPECT_EQ ((r - db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))).to_string (), "(0,0;0,200;10,200;10,20;100,20;100,0)"); + EXPECT_EQ (db::compare ((r - db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))), "(0,0;0,200;10,200;10,20;100,20;100,0)"), true); r -= db::Region (db::Box (db::Point (10, 20), db::Point (110, 220))); EXPECT_EQ (r.is_box (), false); EXPECT_EQ (r.empty (), false); EXPECT_EQ (r.is_merged (), true); - EXPECT_EQ (r.to_string (), "(0,0;0,200;10,200;10,20;100,20;100,0)"); + EXPECT_EQ (db::compare (r, "(0,0;0,200;10,200;10,20;100,20;100,0)"), true); } TEST(7) @@ -290,19 +290,19 @@ TEST(7) r.insert (db::Box (db::Point (-100, -100), db::Point (200, 400))); EXPECT_EQ (r.is_box (), false); - EXPECT_EQ ((r - db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))).to_string (), "(-100,-100;-100,400;200,400;200,-100/10,20;110,20;110,220;10,220)"); - EXPECT_EQ ((r - db::Region ()).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,400;200,400;200,-100)"); + EXPECT_EQ (db::compare ((r - db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))), "(-100,-100;-100,400;200,400;200,-100/10,20;110,20;110,220;10,220)"), true); + EXPECT_EQ (db::compare ((r - db::Region ()), "(0,0;0,200;100,200;100,0);(-100,-100;-100,400;200,400;200,-100)"), true); EXPECT_EQ ((r - db::Region ()).empty (), false); EXPECT_EQ ((r - db::Region ()).is_merged (), false); - EXPECT_EQ ((db::Region () - r).to_string (), ""); + EXPECT_EQ (db::compare ((db::Region () - r), ""), true); EXPECT_EQ ((db::Region () - r).empty (), true); EXPECT_EQ ((db::Region () - r).is_merged (), true); - EXPECT_EQ (r.andnot(db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))).second.to_string (), "(-100,-100;-100,400;200,400;200,-100/10,20;110,20;110,220;10,220)"); - EXPECT_EQ (r.andnot(db::Region ()).second.to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,400;200,400;200,-100)"); + EXPECT_EQ (db::compare (r.andnot(db::Region (db::Box (db::Point (10, 20), db::Point (110, 220)))).second, "(-100,-100;-100,400;200,400;200,-100/10,20;110,20;110,220;10,220)"), true); + EXPECT_EQ (db::compare (r.andnot(db::Region ()).second, "(0,0;0,200;100,200;100,0);(-100,-100;-100,400;200,400;200,-100)"), true); EXPECT_EQ (r.andnot(db::Region ()).second.empty (), false); EXPECT_EQ (r.andnot(db::Region ()).second.is_merged (), false); - EXPECT_EQ (db::Region ().andnot(r).second.to_string (), ""); + EXPECT_EQ (db::compare (db::Region ().andnot(r).second, ""), true); EXPECT_EQ (db::Region ().andnot(r).second.empty (), true); EXPECT_EQ (db::Region ().andnot(r).second.is_merged (), true); @@ -310,7 +310,7 @@ TEST(7) EXPECT_EQ (r.is_box (), false); EXPECT_EQ (r.empty (), false); EXPECT_EQ (r.is_merged (), true); - EXPECT_EQ (r.to_string (), "(-100,-100;-100,400;200,400;200,-100/10,20;110,20;110,220;10,220)"); + EXPECT_EQ (db::compare (r, "(-100,-100;-100,400;200,400;200,-100/10,20;110,20;110,220;10,220)"), true); } TEST(8) @@ -319,17 +319,17 @@ TEST(8) r.insert (db::Box (db::Point (0, 0), db::Point (100, 200))); EXPECT_EQ (r.is_box (), true); - EXPECT_EQ (r.sized (10).to_string (), "(-10,-10;-10,210;110,210;110,-10)"); + EXPECT_EQ (db::compare (r.sized (10), "(-10,-10;-10,210;110,210;110,-10)"), true); EXPECT_EQ (r.sized (10).is_box (), true); EXPECT_EQ (r.sized (10).is_merged (), true); - EXPECT_EQ (r.sized (db::Coord (10), db::Coord (20)).to_string (), "(-10,-20;-10,220;110,220;110,-20)"); + EXPECT_EQ (db::compare (r.sized (db::Coord (10), db::Coord (20)), "(-10,-20;-10,220;110,220;110,-20)"), true); EXPECT_EQ (r.sized (db::Coord (10), db::Coord (20)).is_box (), true); EXPECT_EQ (r.sized (db::Coord (10), db::Coord (20)).is_merged (), true); r.size (10); - EXPECT_EQ (r.to_string (), "(-10,-10;-10,210;110,210;110,-10)"); + EXPECT_EQ (db::compare (r, "(-10,-10;-10,210;110,210;110,-10)"), true); r.size (db::Coord (10), db::Coord (20)); - EXPECT_EQ (r.to_string (), "(-20,-30;-20,230;120,230;120,-30)"); + EXPECT_EQ (db::compare (r, "(-20,-30;-20,230;120,230;120,-30)"), true); } TEST(9) @@ -337,10 +337,10 @@ TEST(9) db::Region r; r.insert (db::Box (db::Point (0, 0), db::Point (100, 200))); r.insert (db::Box (db::Point (-100, -100), db::Point (200, 400))); - EXPECT_EQ (r.sized (10).to_string (), "(-110,-110;-110,410;210,410;210,-110)"); + EXPECT_EQ (db::compare (r.sized (10), "(-110,-110;-110,410;210,410;210,-110)"), true); EXPECT_EQ (r.sized (10).is_box (), true); EXPECT_EQ (r.sized (10).is_merged (), false); - EXPECT_EQ (r.sized (db::Coord (10), db::Coord (20)).to_string (), "(-110,-120;-110,420;210,420;210,-120)"); + EXPECT_EQ (db::compare (r.sized (db::Coord (10), db::Coord (20)), "(-110,-120;-110,420;210,420;210,-120)"), true); EXPECT_EQ (r.sized (db::Coord (10), db::Coord (20)).is_box (), true); EXPECT_EQ (r.sized (db::Coord (10), db::Coord (20)).is_merged (), false); } @@ -348,80 +348,80 @@ TEST(9) TEST(10a) { db::Region r; - EXPECT_EQ (r.selected_interacting (db::Region (db::Box (db::Point (20, 20), db::Point (30, 30)))).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (db::Region (db::Box (db::Point (20, 20), db::Point (30, 30)))), ""), true); r.insert (db::Box (db::Point (0, 0), db::Point (100, 200))); r.insert (db::Box (db::Point (-100, -100), db::Point (0, 0))); r.set_merged_semantics (false); - EXPECT_EQ (r.selected_interacting (db::Region (db::Box (db::Point (20, 20), db::Point (30, 30)))).to_string (), "(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_not_interacting (db::Region (db::Box (db::Point (20, 20), db::Point (30, 30)))).to_string (), "(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (db::Region (db::Box (db::Point (-20, -20), db::Point (30, 30)))).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (db::Region (db::Box (db::Point (-200, -200), db::Point (-190, -190)))).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (db::Region (db::Box (db::Point (20, 20), db::Point (30, 30)))), "(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (db::Region (db::Box (db::Point (20, 20), db::Point (30, 30)))), "(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Region (db::Box (db::Point (-20, -20), db::Point (30, 30)))), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Region (db::Box (db::Point (-200, -200), db::Point (-190, -190)))), ""), true); db::Region rr = r; r.select_interacting (db::Region (db::Box (db::Point (-20, -20), db::Point (-10, -10)))); - EXPECT_EQ (r.to_string (), "(-100,-100;-100,0;0,0;0,-100)"); + EXPECT_EQ (db::compare (r, "(-100,-100;-100,0;0,0;0,-100)"), true); rr.select_not_interacting (db::Region (db::Box (db::Point (-20, -20), db::Point (-10, -10)))); - EXPECT_EQ (rr.to_string (), "(0,0;0,200;100,200;100,0)"); + EXPECT_EQ (db::compare (rr, "(0,0;0,200;100,200;100,0)"), true); r.clear (); r.insert(db::Box (db::Point (1000, 0), db::Point (6000, 4000))); - EXPECT_EQ (r.selected_interacting (db::Region (db::Box (db::Point (0, 4000), db::Point (2000, 6000)))).to_string (), "(1000,0;1000,4000;6000,4000;6000,0)"); - EXPECT_EQ (db::Region (db::Box (db::Point (0, 4000), db::Point (2000, 6000))).selected_interacting (r).to_string (), "(0,4000;0,6000;2000,6000;2000,4000)"); - EXPECT_EQ (r.selected_interacting (db::Region (db::Box (db::Point (0, 4000), db::Point (1000, 6000)))).to_string (), "(1000,0;1000,4000;6000,4000;6000,0)"); - EXPECT_EQ (db::Region (db::Box (db::Point (0, 4000), db::Point (1000, 6000))).selected_interacting (r).to_string (), "(0,4000;0,6000;1000,6000;1000,4000)"); - EXPECT_EQ (r.selected_interacting (db::Region (db::Box (db::Point (0, 4001), db::Point (2000, 6000)))).to_string (), ""); - EXPECT_EQ (db::Region (db::Box (db::Point (0, 4001), db::Point (2000, 6000))).selected_interacting (r).to_string (), ""); - EXPECT_EQ (r.selected_interacting (db::Region (db::Box (db::Point (0, 3999), db::Point (1000, 6000)))).to_string (), "(1000,0;1000,4000;6000,4000;6000,0)"); - EXPECT_EQ (db::Region (db::Box (db::Point (0, 3999), db::Point (1000, 6000))).selected_interacting (r).to_string (), "(0,3999;0,6000;1000,6000;1000,3999)"); - EXPECT_EQ (r.selected_overlapping (db::Region (db::Box (db::Point (0, 4000), db::Point (2000, 6000)))).to_string (), ""); - EXPECT_EQ (db::Region (db::Box (db::Point (0, 4000), db::Point (2000, 6000))).selected_overlapping (r).to_string (), ""); - EXPECT_EQ (r.selected_overlapping (db::Region (db::Box (db::Point (0, 4000), db::Point (1000, 6000)))).to_string (), ""); - EXPECT_EQ (db::Region (db::Box (db::Point (0, 4000), db::Point (1000, 6000))).selected_overlapping (r).to_string (), ""); - EXPECT_EQ (r.selected_overlapping (db::Region (db::Box (db::Point (0, 4001), db::Point (2000, 6000)))).to_string (), ""); - EXPECT_EQ (db::Region (db::Box (db::Point (0, 4001), db::Point (2000, 6000))).selected_overlapping (r).to_string (), ""); - EXPECT_EQ (r.selected_overlapping (db::Region (db::Box (db::Point (0, 3999), db::Point (1001, 6000)))).to_string (), "(1000,0;1000,4000;6000,4000;6000,0)"); - EXPECT_EQ (db::Region (db::Box (db::Point (0, 3999), db::Point (1001, 6000))).selected_overlapping (r).to_string (), "(0,3999;0,6000;1001,6000;1001,3999)"); + EXPECT_EQ (db::compare (r.selected_interacting (db::Region (db::Box (db::Point (0, 4000), db::Point (2000, 6000)))), "(1000,0;1000,4000;6000,4000;6000,0)"), true); + EXPECT_EQ (db::compare (db::Region (db::Box (db::Point (0, 4000), db::Point (2000, 6000))).selected_interacting (r), "(0,4000;0,6000;2000,6000;2000,4000)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Region (db::Box (db::Point (0, 4000), db::Point (1000, 6000)))), "(1000,0;1000,4000;6000,4000;6000,0)"), true); + EXPECT_EQ (db::compare (db::Region (db::Box (db::Point (0, 4000), db::Point (1000, 6000))).selected_interacting (r), "(0,4000;0,6000;1000,6000;1000,4000)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Region (db::Box (db::Point (0, 4001), db::Point (2000, 6000)))), ""), true); + EXPECT_EQ (db::compare (db::Region (db::Box (db::Point (0, 4001), db::Point (2000, 6000))).selected_interacting (r), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Region (db::Box (db::Point (0, 3999), db::Point (1000, 6000)))), "(1000,0;1000,4000;6000,4000;6000,0)"), true); + EXPECT_EQ (db::compare (db::Region (db::Box (db::Point (0, 3999), db::Point (1000, 6000))).selected_interacting (r), "(0,3999;0,6000;1000,6000;1000,3999)"), true); + EXPECT_EQ (db::compare (r.selected_overlapping (db::Region (db::Box (db::Point (0, 4000), db::Point (2000, 6000)))), ""), true); + EXPECT_EQ (db::compare (db::Region (db::Box (db::Point (0, 4000), db::Point (2000, 6000))).selected_overlapping (r), ""), true); + EXPECT_EQ (db::compare (r.selected_overlapping (db::Region (db::Box (db::Point (0, 4000), db::Point (1000, 6000)))), ""), true); + EXPECT_EQ (db::compare (db::Region (db::Box (db::Point (0, 4000), db::Point (1000, 6000))).selected_overlapping (r), ""), true); + EXPECT_EQ (db::compare (r.selected_overlapping (db::Region (db::Box (db::Point (0, 4001), db::Point (2000, 6000)))), ""), true); + EXPECT_EQ (db::compare (db::Region (db::Box (db::Point (0, 4001), db::Point (2000, 6000))).selected_overlapping (r), ""), true); + EXPECT_EQ (db::compare (r.selected_overlapping (db::Region (db::Box (db::Point (0, 3999), db::Point (1001, 6000)))), "(1000,0;1000,4000;6000,4000;6000,0)"), true); + EXPECT_EQ (db::compare (db::Region (db::Box (db::Point (0, 3999), db::Point (1001, 6000))).selected_overlapping (r), "(0,3999;0,6000;1001,6000;1001,3999)"), true); } TEST(10b) { db::Region r; - EXPECT_EQ (r.selected_interacting (db::Region (db::Box (db::Point (20, 20), db::Point (30, 30)))).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (db::Region (db::Box (db::Point (20, 20), db::Point (30, 30)))), ""), true); r.insert (db::Box (db::Point (0, 0), db::Point (100, 200))); r.insert (db::Box (db::Point (-100, -100), db::Point (0, 0))); r.set_merged_semantics (true); r.set_min_coherence (true); - EXPECT_EQ (r.selected_interacting (db::Region (db::Box (db::Point (20, 20), db::Point (30, 30)))).to_string (), "(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_interacting (db::Region (db::Box (db::Point (-20, -20), db::Point (30, 30)))).to_string (), "(-100,-100;-100,0;0,0;0,-100);(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_interacting (db::Region (db::Box (db::Point (-200, -200), db::Point (-190, -190)))).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (db::Region (db::Box (db::Point (20, 20), db::Point (30, 30)))), "(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Region (db::Box (db::Point (-20, -20), db::Point (30, 30)))), "(-100,-100;-100,0;0,0;0,-100);(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Region (db::Box (db::Point (-200, -200), db::Point (-190, -190)))), ""), true); r.select_interacting (db::Region (db::Box (db::Point (-20, -20), db::Point (-10, -10)))); - EXPECT_EQ (r.to_string (), "(-100,-100;-100,0;0,0;0,-100)"); + EXPECT_EQ (db::compare (r, "(-100,-100;-100,0;0,0;0,-100)"), true); } TEST(10c) { db::Region r; - EXPECT_EQ (r.selected_interacting (db::Region (db::Box (db::Point (20, 20), db::Point (30, 30)))).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (db::Region (db::Box (db::Point (20, 20), db::Point (30, 30)))), ""), true); r.insert (db::Box (db::Point (0, 0), db::Point (100, 200))); r.insert (db::Box (db::Point (-100, -100), db::Point (0, 0))); r.set_merged_semantics (true); r.set_min_coherence (false); - EXPECT_EQ (r.selected_interacting (db::Region (db::Box (db::Point (20, 20), db::Point (30, 30)))).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (db::Region (db::Box (db::Point (-20, -20), db::Point (30, 30)))).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (db::Region (db::Box (db::Point (-200, -200), db::Point (-190, -190)))).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (db::Region (db::Box (db::Point (20, 20), db::Point (30, 30)))), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Region (db::Box (db::Point (-20, -20), db::Point (30, 30)))), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Region (db::Box (db::Point (-200, -200), db::Point (-190, -190)))), ""), true); r.select_interacting (db::Region (db::Box (db::Point (-20, -20), db::Point (-10, -10)))); - EXPECT_EQ (r.to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); + EXPECT_EQ (db::compare (r, "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); } TEST(11) { db::Box bb[3] = { db::Box (db::Point (0, 0), db::Point (10, 10)), db::Box (), db::Box (db::Point (20, 20), db::Point (40, 50)) }; - EXPECT_EQ (db::Region (bb + 0, bb + 3).to_string (), "(0,0;0,10;10,10;10,0);(20,20;20,50;40,50;40,20)"); - EXPECT_EQ (db::Region (db::Polygon (db::Box (db::Point (0, 0), db::Point (10, 10)))).to_string (), "(0,0;0,10;10,10;10,0)"); - EXPECT_EQ (db::Region (db::Polygon ()).to_string (), ""); - EXPECT_EQ (db::Region (db::Box ()).to_string (), ""); + EXPECT_EQ (db::compare (db::Region (bb + 0, bb + 3), "(0,0;0,10;10,10;10,0);(20,20;20,50;40,50;40,20)"), true); + EXPECT_EQ (db::compare (db::Region (db::Polygon (db::Box (db::Point (0, 0), db::Point (10, 10)))), "(0,0;0,10;10,10;10,0)"), true); + EXPECT_EQ (db::compare (db::Region (db::Polygon ()), ""), true); + EXPECT_EQ (db::compare (db::Region (db::Box ()), ""), true); db::Point pts[2] = { db::Point (0, 0), db::Point (0, 20) }; - EXPECT_EQ (db::Region (db::Path (pts + 0, pts + 2, 10)).to_string (), "(-5,0;-5,20;5,20;5,0)"); + EXPECT_EQ (db::compare (db::Region (db::Path (pts + 0, pts + 2, 10)), "(-5,0;-5,20;5,20;5,0)"), true); } TEST(12) @@ -429,20 +429,20 @@ TEST(12) db::Box bb[3] = { db::Box (db::Point (0, 0), db::Point (10, 10)), db::Box (), db::Box (db::Point (20, 20), db::Point (40, 50)) }; db::Region r (bb + 0, bb + 3); - EXPECT_EQ (r.to_string (), "(0,0;0,10;10,10;10,0);(20,20;20,50;40,50;40,20)"); + EXPECT_EQ (db::compare (r, "(0,0;0,10;10,10;10,0);(20,20;20,50;40,50;40,20)"), true); db::RegionPerimeterFilter f0 (0, 40, false); db::Region rr = r.filtered (f0); - EXPECT_EQ (rr.to_string (), ""); + EXPECT_EQ (db::compare (rr, ""), true); db::RegionPerimeterFilter f1 (0, 41, false); rr = r.filtered (f1); - EXPECT_EQ (rr.to_string (), "(0,0;0,10;10,10;10,0)"); + EXPECT_EQ (db::compare (rr, "(0,0;0,10;10,10;10,0)"), true); db::RegionPerimeterFilter f2 (0, 41, true); rr = r.filtered (f2); - EXPECT_EQ (rr.to_string (), "(20,20;20,50;40,50;40,20)"); - EXPECT_EQ (rr.to_string (), "(20,20;20,50;40,50;40,20)"); + EXPECT_EQ (db::compare (rr, "(20,20;20,50;40,50;40,20)"), true); + EXPECT_EQ (db::compare (rr, "(20,20;20,50;40,50;40,20)"), true); db::RegionPerimeterFilter f3 (50, std::numeric_limits::max (), false); r.filter (f3); - EXPECT_EQ (r.to_string (), "(20,20;20,50;40,50;40,20)"); + EXPECT_EQ (db::compare (r, "(20,20;20,50;40,50;40,20)"), true); } TEST(13) @@ -450,19 +450,19 @@ TEST(13) db::Box bb[3] = { db::Box (db::Point (0, 0), db::Point (10, 10)), db::Box (), db::Box (db::Point (20, 20), db::Point (40, 50)) }; db::Region r (bb + 0, bb + 3); - EXPECT_EQ (r.to_string (), "(0,0;0,10;10,10;10,0);(20,20;20,50;40,50;40,20)"); + EXPECT_EQ (db::compare (r, "(0,0;0,10;10,10;10,0);(20,20;20,50;40,50;40,20)"), true); db::RegionAreaFilter f0 (0, 100, false); db::Region rr = r.filtered (f0); - EXPECT_EQ (rr.to_string (), ""); + EXPECT_EQ (db::compare (rr, ""), true); db::RegionAreaFilter f1 (0, 101, false); rr = r.filtered (f1); - EXPECT_EQ (rr.to_string (), "(0,0;0,10;10,10;10,0)"); + EXPECT_EQ (db::compare (rr, "(0,0;0,10;10,10;10,0)"), true); db::RegionAreaFilter f2 (0, 101, true); rr = r.filtered (f2); - EXPECT_EQ (rr.to_string (), "(20,20;20,50;40,50;40,20)"); + EXPECT_EQ (db::compare (rr, "(20,20;20,50;40,50;40,20)"), true); db::RegionAreaFilter f3 (110, std::numeric_limits::max (), false); r.filter (f3); - EXPECT_EQ (r.to_string (), "(20,20;20,50;40,50;40,20)"); + EXPECT_EQ (db::compare (r, "(20,20;20,50;40,50;40,20)"), true); } TEST(14) @@ -470,34 +470,34 @@ TEST(14) db::Box bb[3] = { db::Box (db::Point (0, 0), db::Point (10, 10)), db::Box (), db::Box (db::Point (20, 20), db::Point (40, 50)) }; db::Region r (bb + 0, bb + 3); - EXPECT_EQ (r.to_string (), "(0,0;0,10;10,10;10,0);(20,20;20,50;40,50;40,20)"); + EXPECT_EQ (db::compare (r, "(0,0;0,10;10,10;10,0);(20,20;20,50;40,50;40,20)"), true); db::RegionBBoxFilter f0 (0, 10, false, db::RegionBBoxFilter::BoxWidth); db::Region rr = r.filtered (f0); - EXPECT_EQ (rr.to_string (), ""); + EXPECT_EQ (db::compare (rr, ""), true); db::RegionBBoxFilter f1 (0, 11, false, db::RegionBBoxFilter::BoxWidth); rr = r.filtered (f1); - EXPECT_EQ (rr.to_string (), "(0,0;0,10;10,10;10,0)"); + EXPECT_EQ (db::compare (rr, "(0,0;0,10;10,10;10,0)"), true); db::RegionBBoxFilter f2 (20, 21, false, db::RegionBBoxFilter::BoxWidth); rr = r.filtered (f2); - EXPECT_EQ (rr.to_string (), "(20,20;20,50;40,50;40,20)"); + EXPECT_EQ (db::compare (rr, "(20,20;20,50;40,50;40,20)"), true); db::RegionBBoxFilter f3 (20, 31, false, db::RegionBBoxFilter::BoxHeight); rr = r.filtered (f3); - EXPECT_EQ (rr.to_string (), "(20,20;20,50;40,50;40,20)"); + EXPECT_EQ (db::compare (rr, "(20,20;20,50;40,50;40,20)"), true); db::RegionBBoxFilter f4 (20, 31, true, db::RegionBBoxFilter::BoxHeight); rr = r.filtered (f4); - EXPECT_EQ (rr.to_string (), "(0,0;0,10;10,10;10,0)"); + EXPECT_EQ (db::compare (rr, "(0,0;0,10;10,10;10,0)"), true); db::RegionBBoxFilter f5 (20, 31, false, db::RegionBBoxFilter::BoxMaxDim); rr = r.filtered (f5); - EXPECT_EQ (rr.to_string (), "(20,20;20,50;40,50;40,20)"); + EXPECT_EQ (db::compare (rr, "(20,20;20,50;40,50;40,20)"), true); db::RegionBBoxFilter f6 (20, 31, false, db::RegionBBoxFilter::BoxMinDim); rr = r.filtered (f6); - EXPECT_EQ (rr.to_string (), "(20,20;20,50;40,50;40,20)"); + EXPECT_EQ (db::compare (rr, "(20,20;20,50;40,50;40,20)"), true); db::RegionBBoxFilter f7 (20, 31, true, db::RegionBBoxFilter::BoxMinDim); rr = r.filtered (f7); - EXPECT_EQ (rr.to_string (), "(0,0;0,10;10,10;10,0)"); + EXPECT_EQ (db::compare (rr, "(0,0;0,10;10,10;10,0)"), true); db::RegionBBoxFilter f8 (25, 26, false, db::RegionBBoxFilter::BoxAverageDim); rr = r.filtered (f8); - EXPECT_EQ (rr.to_string (), "(20,20;20,50;40,50;40,20)"); + EXPECT_EQ (db::compare (rr, "(20,20;20,50;40,50;40,20)"), true); } TEST(15a) @@ -505,14 +505,14 @@ TEST(15a) db::Box bb[3] = { db::Box (db::Point (0, 0), db::Point (10, 10)), db::Box (), db::Box (db::Point (20, 20), db::Point (40, 50)) }; db::Region r (bb + 0, bb + 3); - EXPECT_EQ (r.width_check (15).to_string (), "(0,0;0,10)|(10,10;10,0);(10,0;0,0)|(0,10;10,10)"); - EXPECT_EQ (r.width_check (5).to_string (), ""); - EXPECT_EQ (r.width_check (5, db::RegionCheckOptions (false, db::Euclidian, 91)).to_string (), "(0,5;0,10)|(0,10;5,10);(0,0;0,5)|(5,0;0,0);(5,10;10,10)|(10,10;10,5);(10,0;5,0)|(10,5;10,0);(20,45;20,50)|(20,50;25,50);(20,20;20,25)|(25,20;20,20);(35,50;40,50)|(40,50;40,45);(40,20;35,20)|(40,25;40,20)"); - EXPECT_EQ (r.space_check (15, db::RegionCheckOptions (false, db::Euclidian, 91)).to_string (), "(9,10;10,10)|(20,20;20,21);(10,10;10,9)|(20,20;20,21);(9,10;10,10)|(21,20;20,20);(10,10;10,9)|(21,20;20,20)"); - EXPECT_EQ (r.space_check (15, db::RegionCheckOptions (false, db::Square, 91)).to_string (), "(5,10;10,10)|(20,20;20,25);(10,10;10,5)|(20,20;20,25);(5,10;10,10)|(25,20;20,20);(10,10;10,5)|(25,20;20,20)"); - EXPECT_EQ (r.space_check (15).to_string (), "(10,10;10,9)|(20,20;20,21);(9,10;10,10)|(21,20;20,20)"); - EXPECT_EQ (r.space_check (15, db::RegionCheckOptions (true)).to_string (), "(10,10;10,0)|(20,20;20,50);(0,10;10,10)|(40,20;20,20)"); - EXPECT_EQ (r.space_check (15, db::RegionCheckOptions (false, db::Square)).to_string (), "(10,10;10,5)|(20,20;20,25);(5,10;10,10)|(25,20;20,20)"); + EXPECT_EQ (db::compare (r.width_check (15), "(0,0;0,10)|(10,10;10,0);(10,0;0,0)|(0,10;10,10)"), true); + EXPECT_EQ (db::compare (r.width_check (5), ""), true); + EXPECT_EQ (db::compare (r.width_check (5, db::RegionCheckOptions (false, db::Euclidian, 91)), "(0,5;0,10)|(0,10;5,10);(0,0;0,5)|(5,0;0,0);(5,10;10,10)|(10,10;10,5);(10,0;5,0)|(10,5;10,0);(20,45;20,50)|(20,50;25,50);(20,20;20,25)|(25,20;20,20);(35,50;40,50)|(40,50;40,45);(40,20;35,20)|(40,25;40,20)"), true); + EXPECT_EQ (db::compare (r.space_check (15, db::RegionCheckOptions (false, db::Euclidian, 91)), "(9,10;10,10)|(20,20;20,21);(10,10;10,9)|(20,20;20,21);(9,10;10,10)|(21,20;20,20);(10,10;10,9)|(21,20;20,20)"), true); + EXPECT_EQ (db::compare (r.space_check (15, db::RegionCheckOptions (false, db::Square, 91)), "(5,10;10,10)|(20,20;20,25);(10,10;10,5)|(20,20;20,25);(5,10;10,10)|(25,20;20,20);(10,10;10,5)|(25,20;20,20)"), true); + EXPECT_EQ (db::compare (r.space_check (15), "(10,10;10,9)|(20,20;20,21);(9,10;10,10)|(21,20;20,20)"), true); + EXPECT_EQ (db::compare (r.space_check (15, db::RegionCheckOptions (true)), "(10,10;10,0)|(20,20;20,50);(0,10;10,10)|(40,20;20,20)"), true); + EXPECT_EQ (db::compare (r.space_check (15, db::RegionCheckOptions (false, db::Square)), "(10,10;10,5)|(20,20;20,25);(5,10;10,10)|(25,20;20,20)"), true); r.clear (); db::Point pts[] = { @@ -533,7 +533,7 @@ TEST(15a) poly.assign_hull(pts + 0, pts + sizeof(pts)/sizeof(pts[0])); r.insert (poly); - EXPECT_EQ (r.width_check (70000).to_string (), "(20550000,-18950000;20550000,-18920000)|(20570000,-18880000;20570000,-18890000);(20550000,-18920000;20530000,-18920000)|(20550000,-18880000;20570000,-18880000);(20550000,-18920000;20530000,-18920000)|(20570000,-18890000;20613246,-18890000);(20530000,-18920000;20530000,-18910000)|(20550000,-18850000;20550000,-18880000);(20530000,-18920000;20530000,-18910000)|(20570000,-18880000;20570000,-18890000);(20530000,-18910000;20450000,-18910000)|(20450000,-18850000;20550000,-18850000);(20530000,-18910000;20486754,-18910000)|(20550000,-18880000;20570000,-18880000);(20530000,-18910000;20502918,-18910000)|(20570000,-18890000;20597082,-18890000);(20650000,-18950000;20550000,-18950000)|(20570000,-18890000;20650000,-18890000)"); + EXPECT_EQ (db::compare (r.width_check (70000), "(20550000,-18950000;20550000,-18920000)|(20570000,-18880000;20570000,-18890000);(20550000,-18920000;20530000,-18920000)|(20550000,-18880000;20570000,-18880000);(20550000,-18920000;20530000,-18920000)|(20570000,-18890000;20613246,-18890000);(20530000,-18920000;20530000,-18910000)|(20550000,-18850000;20550000,-18880000);(20530000,-18920000;20530000,-18910000)|(20570000,-18880000;20570000,-18890000);(20530000,-18910000;20450000,-18910000)|(20450000,-18850000;20550000,-18850000);(20530000,-18910000;20486754,-18910000)|(20550000,-18880000;20570000,-18880000);(20530000,-18910000;20502918,-18910000)|(20570000,-18890000;20597082,-18890000);(20650000,-18950000;20550000,-18950000)|(20570000,-18890000;20650000,-18890000)"), true); } TEST(15b) @@ -544,10 +544,10 @@ TEST(15b) r.insert (db::Box (db::Point (300, 300), db::Point (500, 500))); r.insert (db::Box (db::Point (400, 200), db::Point (500, 300))); - EXPECT_EQ (r.width_check (120, db::RegionCheckOptions (false, db::Projection)).to_string (), "(400,200;400,300)|(500,300;500,200)"); - EXPECT_EQ (r.space_check (120, db::RegionCheckOptions (false, db::Projection)).to_string (), "(300,0;300,200)|(200,200;200,0);(300,300;300,500)|(200,500;200,300);(300,200;400,200)|(400,300;300,300)"); - EXPECT_EQ (r.notch_check (120, db::RegionCheckOptions (false, db::Projection)).to_string (), "(300,200;400,200)|(400,300;300,300)"); - EXPECT_EQ (r.isolated_check (120, db::RegionCheckOptions (false, db::Projection)).to_string (), "(300,0;300,200)|(200,200;200,0);(300,300;300,500)|(200,500;200,300)"); + EXPECT_EQ (db::compare (r.width_check (120, db::RegionCheckOptions (false, db::Projection)), "(400,200;400,300)|(500,300;500,200)"), true); + EXPECT_EQ (db::compare (r.space_check (120, db::RegionCheckOptions (false, db::Projection)), "(300,0;300,200)|(200,200;200,0);(300,300;300,500)|(200,500;200,300);(300,200;400,200)|(400,300;300,300)"), true); + EXPECT_EQ (db::compare (r.notch_check (120, db::RegionCheckOptions (false, db::Projection)), "(300,200;400,200)|(400,300;300,300)"), true); + EXPECT_EQ (db::compare (r.isolated_check (120, db::RegionCheckOptions (false, db::Projection)), "(300,0;300,200)|(200,200;200,0);(300,300;300,500)|(200,500;200,300)"), true); } TEST(15c) @@ -562,10 +562,10 @@ TEST(15c) r.insert (db::Box (db::Point (400, 200), db::Point (500, 250))); r.insert (db::Box (db::Point (400, 250), db::Point (500, 300))); - EXPECT_EQ (r.width_check (120, db::RegionCheckOptions (false, db::Projection)).to_string (), "(400,200;400,300)|(500,300;500,200)"); - EXPECT_EQ (r.space_check (120, db::RegionCheckOptions (false, db::Projection)).to_string (), "(300,0;300,200)|(200,200;200,0);(300,300;300,500)|(200,500;200,300);(300,200;400,200)|(400,300;300,300)"); - EXPECT_EQ (r.notch_check (120, db::RegionCheckOptions (false, db::Projection)).to_string (), "(300,200;400,200)|(400,300;300,300)"); - EXPECT_EQ (r.isolated_check (120, db::RegionCheckOptions (false, db::Projection)).to_string (), "(300,0;300,200)|(200,200;200,0);(300,300;300,500)|(200,500;200,300)"); + EXPECT_EQ (db::compare (r.width_check (120, db::RegionCheckOptions (false, db::Projection)), "(400,200;400,300)|(500,300;500,200)"), true); + EXPECT_EQ (db::compare (r.space_check (120, db::RegionCheckOptions (false, db::Projection)), "(300,0;300,200)|(200,200;200,0);(300,300;300,500)|(200,500;200,300);(300,200;400,200)|(400,300;300,300)"), true); + EXPECT_EQ (db::compare (r.notch_check (120, db::RegionCheckOptions (false, db::Projection)), "(300,200;400,200)|(400,300;300,300)"), true); + EXPECT_EQ (db::compare (r.isolated_check (120, db::RegionCheckOptions (false, db::Projection)), "(300,0;300,200)|(200,200;200,0);(300,300;300,500)|(200,500;200,300)"), true); } TEST(15d) @@ -635,7 +635,7 @@ TEST(15e) r.insert (poly); } - EXPECT_EQ (r.space_check (1000).to_string (), "(20857,3600;20857,66000)|(19957,66000;19957,3600)"); + EXPECT_EQ (db::compare (r.space_check (1000), "(20857,3600;20857,66000)|(19957,66000;19957,3600)"), true); } TEST(15g) @@ -718,60 +718,60 @@ TEST(15i) options.metrics = db::Projection; options.rect_filter = db::OneSideAllowed; - EXPECT_EQ (r.separation_check (rl + rr, 40, options).to_string (), "(90,90;90,-90)/(100,-90;100,90);(-90,-90;-90,90)/(-100,90;-100,-90)"); - EXPECT_EQ (r.separation_check (rl + rt, 40, options).to_string (), "(-90,-90;-90,90)/(-100,90;-100,-90);(-90,90;90,90)/(90,100;-90,100)"); - EXPECT_EQ (r.separation_check (rl, 40, options).to_string (), ""); - EXPECT_EQ (r.separation_check (rt, 40, options).to_string (), ""); - EXPECT_EQ (r.separation_check (rt + rr + rb, 40, options).to_string (), "(-90,90;90,90)/(90,100;-90,100);(90,90;90,-90)/(100,-90;100,90);(90,-90;-90,-90)/(-90,-100;90,-100)"); + EXPECT_EQ (db::compare (r.separation_check (rl + rr, 40, options), "(90,90;90,-90)/(100,-90;100,90);(-90,-90;-90,90)/(-100,90;-100,-90)"), true); + EXPECT_EQ (db::compare (r.separation_check (rl + rt, 40, options), "(-90,-90;-90,90)/(-100,90;-100,-90);(-90,90;90,90)/(90,100;-90,100)"), true); + EXPECT_EQ (db::compare (r.separation_check (rl, 40, options), ""), true); + EXPECT_EQ (db::compare (r.separation_check (rt, 40, options), ""), true); + EXPECT_EQ (db::compare (r.separation_check (rt + rr + rb, 40, options), "(-90,90;90,90)/(90,100;-90,100);(90,90;90,-90)/(100,-90;100,90);(90,-90;-90,-90)/(-90,-100;90,-100)"), true); options.rect_filter = db::TwoSidesAllowed; - EXPECT_EQ (r.separation_check (rl + rr, 40, options).to_string (), ""); - EXPECT_EQ (r.separation_check (rl + rt, 40, options).to_string (), ""); - EXPECT_EQ (r.separation_check (rl, 40, options).to_string (), "(-90,-90;-90,90)/(-100,90;-100,-90)"); - EXPECT_EQ (r.separation_check (rt, 40, options).to_string (), "(-90,90;90,90)/(90,100;-90,100)"); - EXPECT_EQ (r.separation_check (rt + rr + rb, 40, options).to_string (), "(-90,90;90,90)/(90,100;-90,100);(90,90;90,-90)/(100,-90;100,90);(90,-90;-90,-90)/(-90,-100;90,-100)"); + EXPECT_EQ (db::compare (r.separation_check (rl + rr, 40, options), ""), true); + EXPECT_EQ (db::compare (r.separation_check (rl + rt, 40, options), ""), true); + EXPECT_EQ (db::compare (r.separation_check (rl, 40, options), "(-90,-90;-90,90)/(-100,90;-100,-90)"), true); + EXPECT_EQ (db::compare (r.separation_check (rt, 40, options), "(-90,90;90,90)/(90,100;-90,100)"), true); + EXPECT_EQ (db::compare (r.separation_check (rt + rr + rb, 40, options), "(-90,90;90,90)/(90,100;-90,100);(90,90;90,-90)/(100,-90;100,90);(90,-90;-90,-90)/(-90,-100;90,-100)"), true); options.rect_filter = db::TwoOppositeSidesAllowed; - EXPECT_EQ (r.separation_check (rl + rr, 40, options).to_string (), ""); - EXPECT_EQ (r.separation_check (rl + rt, 40, options).to_string (), "(-90,-90;-90,90)/(-100,90;-100,-90);(-90,90;90,90)/(90,100;-90,100)"); - EXPECT_EQ (r.separation_check (rl, 40, options).to_string (), "(-90,-90;-90,90)/(-100,90;-100,-90)"); - EXPECT_EQ (r.separation_check (rt, 40, options).to_string (), "(-90,90;90,90)/(90,100;-90,100)"); - EXPECT_EQ (r.separation_check (rt + rr + rb, 40, options).to_string (), "(-90,90;90,90)/(90,100;-90,100);(90,90;90,-90)/(100,-90;100,90);(90,-90;-90,-90)/(-90,-100;90,-100)"); + EXPECT_EQ (db::compare (r.separation_check (rl + rr, 40, options), ""), true); + EXPECT_EQ (db::compare (r.separation_check (rl + rt, 40, options), "(-90,-90;-90,90)/(-100,90;-100,-90);(-90,90;90,90)/(90,100;-90,100)"), true); + EXPECT_EQ (db::compare (r.separation_check (rl, 40, options), "(-90,-90;-90,90)/(-100,90;-100,-90)"), true); + EXPECT_EQ (db::compare (r.separation_check (rt, 40, options), "(-90,90;90,90)/(90,100;-90,100)"), true); + EXPECT_EQ (db::compare (r.separation_check (rt + rr + rb, 40, options), "(-90,90;90,90)/(90,100;-90,100);(90,90;90,-90)/(100,-90;100,90);(90,-90;-90,-90)/(-90,-100;90,-100)"), true); options.rect_filter = db::TwoConnectedSidesAllowed; - EXPECT_EQ (r.separation_check (rl + rr, 40, options).to_string (), "(90,90;90,-90)/(100,-90;100,90);(-90,-90;-90,90)/(-100,90;-100,-90)"); - EXPECT_EQ (r.separation_check (rl + rt, 40, options).to_string (), ""); - EXPECT_EQ (r.separation_check (rl, 40, options).to_string (), "(-90,-90;-90,90)/(-100,90;-100,-90)"); - EXPECT_EQ (r.separation_check (rt, 40, options).to_string (), "(-90,90;90,90)/(90,100;-90,100)"); - EXPECT_EQ (r.separation_check (rt + rr + rb, 40, options).to_string (), "(-90,90;90,90)/(90,100;-90,100);(90,90;90,-90)/(100,-90;100,90);(90,-90;-90,-90)/(-90,-100;90,-100)"); + EXPECT_EQ (db::compare (r.separation_check (rl + rr, 40, options), "(90,90;90,-90)/(100,-90;100,90);(-90,-90;-90,90)/(-100,90;-100,-90)"), true); + EXPECT_EQ (db::compare (r.separation_check (rl + rt, 40, options), ""), true); + EXPECT_EQ (db::compare (r.separation_check (rl, 40, options), "(-90,-90;-90,90)/(-100,90;-100,-90)"), true); + EXPECT_EQ (db::compare (r.separation_check (rt, 40, options), "(-90,90;90,90)/(90,100;-90,100)"), true); + EXPECT_EQ (db::compare (r.separation_check (rt + rr + rb, 40, options), "(-90,90;90,90)/(90,100;-90,100);(90,90;90,-90)/(100,-90;100,90);(90,-90;-90,-90)/(-90,-100;90,-100)"), true); options.rect_filter = db::ThreeSidesAllowed; - EXPECT_EQ (r.separation_check (rl + rr, 40, options).to_string (), "(90,90;90,-90)/(100,-90;100,90);(-90,-90;-90,90)/(-100,90;-100,-90)"); - EXPECT_EQ (r.separation_check (rl + rt, 40, options).to_string (), "(-90,-90;-90,90)/(-100,90;-100,-90);(-90,90;90,90)/(90,100;-90,100)"); - EXPECT_EQ (r.separation_check (rl, 40, options).to_string (), "(-90,-90;-90,90)/(-100,90;-100,-90)"); - EXPECT_EQ (r.separation_check (rt, 40, options).to_string (), "(-90,90;90,90)/(90,100;-90,100)"); - EXPECT_EQ (r.separation_check (rt + rr + rb, 40, options).to_string (), ""); + EXPECT_EQ (db::compare (r.separation_check (rl + rr, 40, options), "(90,90;90,-90)/(100,-90;100,90);(-90,-90;-90,90)/(-100,90;-100,-90)"), true); + EXPECT_EQ (db::compare (r.separation_check (rl + rt, 40, options), "(-90,-90;-90,90)/(-100,90;-100,-90);(-90,90;90,90)/(90,100;-90,100)"), true); + EXPECT_EQ (db::compare (r.separation_check (rl, 40, options), "(-90,-90;-90,90)/(-100,90;-100,-90)"), true); + EXPECT_EQ (db::compare (r.separation_check (rt, 40, options), "(-90,90;90,90)/(90,100;-90,100)"), true); + EXPECT_EQ (db::compare (r.separation_check (rt + rr + rb, 40, options), ""), true); options.rect_filter = db::RectFilter (0x9531); // one and two sides allowed - EXPECT_EQ (r.separation_check (rl + rr, 40, options).to_string (), ""); - EXPECT_EQ (r.separation_check (rl + rt, 40, options).to_string (), ""); - EXPECT_EQ (r.separation_check (rl, 40, options).to_string (), ""); - EXPECT_EQ (r.separation_check (rt, 40, options).to_string (), ""); - EXPECT_EQ (r.separation_check (rt + rr + rb, 40, options).to_string (), "(-90,90;90,90)/(90,100;-90,100);(90,90;90,-90)/(100,-90;100,90);(90,-90;-90,-90)/(-90,-100;90,-100)"); + EXPECT_EQ (db::compare (r.separation_check (rl + rr, 40, options), ""), true); + EXPECT_EQ (db::compare (r.separation_check (rl + rt, 40, options), ""), true); + EXPECT_EQ (db::compare (r.separation_check (rl, 40, options), ""), true); + EXPECT_EQ (db::compare (r.separation_check (rt, 40, options), ""), true); + EXPECT_EQ (db::compare (r.separation_check (rt + rr + rb, 40, options), "(-90,90;90,90)/(90,100;-90,100);(90,90;90,-90)/(100,-90;100,90);(90,-90;-90,-90)/(-90,-100;90,-100)"), true); options.rect_filter = db::RectFilter (0x31); // one and two connected sides allowed - EXPECT_EQ (r.separation_check (rl + rr, 40, options).to_string (), "(90,90;90,-90)/(100,-90;100,90);(-90,-90;-90,90)/(-100,90;-100,-90)"); - EXPECT_EQ (r.separation_check (rl + rt, 40, options).to_string (), ""); - EXPECT_EQ (r.separation_check (rr + rt, 40, options).to_string (), ""); - EXPECT_EQ (r.separation_check (rl, 40, options).to_string (), ""); - EXPECT_EQ (r.separation_check (rt, 40, options).to_string (), ""); - EXPECT_EQ (r.separation_check (rt + rr + rb, 40, options).to_string (), "(-90,90;90,90)/(90,100;-90,100);(90,90;90,-90)/(100,-90;100,90);(90,-90;-90,-90)/(-90,-100;90,-100)"); + EXPECT_EQ (db::compare (r.separation_check (rl + rr, 40, options), "(90,90;90,-90)/(100,-90;100,90);(-90,-90;-90,90)/(-100,90;-100,-90)"), true); + EXPECT_EQ (db::compare (r.separation_check (rl + rt, 40, options), ""), true); + EXPECT_EQ (db::compare (r.separation_check (rr + rt, 40, options), ""), true); + EXPECT_EQ (db::compare (r.separation_check (rl, 40, options), ""), true); + EXPECT_EQ (db::compare (r.separation_check (rt, 40, options), ""), true); + EXPECT_EQ (db::compare (r.separation_check (rt + rr + rb, 40, options), "(-90,90;90,90)/(90,100;-90,100);(90,90;90,-90)/(100,-90;100,90);(90,-90;-90,-90)/(-90,-100;90,-100)"), true); } TEST(16) @@ -782,24 +782,24 @@ TEST(16) db::Region b; b.insert (db::Box (db::Point (0, 0), db::Point (100, 100))); - EXPECT_EQ (a.inside_check (b, 15).to_string (), "(10,20;10,30)/(0,9;0,41)"); - EXPECT_EQ (a.inside_check (b, 15, db::RegionCheckOptions (true)).to_string (), "(10,20;10,30)/(0,0;0,100)"); - EXPECT_EQ (a.inside_check (b, 15, db::RegionCheckOptions (false, db::Euclidian, 91)).to_string (), "(10,20;10,30)/(0,9;0,41);(10,30;15,30)/(0,30;0,41);(15,20;10,20)/(0,9;0,20)"); - EXPECT_EQ (b.enclosing_check (a, 15).to_string (), "(0,9;0,41)/(10,20;10,30)"); - EXPECT_EQ (b.enclosing_check (a, 15, db::RegionCheckOptions (true)).to_string (), "(0,0;0,100)/(10,20;10,30)"); - EXPECT_EQ (b.enclosing_check (a, 15, db::RegionCheckOptions (false, db::Euclidian, 91)).to_string (), "(0,9;0,41)/(10,20;10,30);(0,30;0,41)/(10,30;15,30);(0,9;0,20)/(15,20;10,20)"); + EXPECT_EQ (db::compare (a.inside_check (b, 15), "(10,20;10,30)/(0,9;0,41)"), true); + EXPECT_EQ (db::compare (a.inside_check (b, 15, db::RegionCheckOptions (true)), "(10,20;10,30)/(0,0;0,100)"), true); + EXPECT_EQ (db::compare (a.inside_check (b, 15, db::RegionCheckOptions (false, db::Euclidian, 91)), "(10,20;10,30)/(0,9;0,41);(10,30;15,30)/(0,30;0,41);(15,20;10,20)/(0,9;0,20)"), true); + EXPECT_EQ (db::compare (b.enclosing_check (a, 15), "(0,9;0,41)/(10,20;10,30)"), true); + EXPECT_EQ (db::compare (b.enclosing_check (a, 15, db::RegionCheckOptions (true)), "(0,0;0,100)/(10,20;10,30)"), true); + EXPECT_EQ (db::compare (b.enclosing_check (a, 15, db::RegionCheckOptions (false, db::Euclidian, 91)), "(0,9;0,41)/(10,20;10,30);(0,30;0,41)/(10,30;15,30);(0,9;0,20)/(15,20;10,20)"), true); b.clear (); b.insert (db::Box (db::Point (30, 0), db::Point (100, 100))); - EXPECT_EQ (b.separation_check (a, 15).to_string (), "(30,9;30,41)/(20,30;20,20)"); - EXPECT_EQ (b.separation_check (a, 15, db::RegionCheckOptions (true)).to_string (), "(30,0;30,100)/(20,30;20,20)"); - EXPECT_EQ (b.separation_check (a, 15, db::RegionCheckOptions (false, db::Euclidian, 91)).to_string (), "(30,30;30,41)/(15,30;20,30);(30,9;30,41)/(20,30;20,20);(30,9;30,20)/(20,20;15,20)"); + EXPECT_EQ (db::compare (b.separation_check (a, 15), "(30,9;30,41)/(20,30;20,20)"), true); + EXPECT_EQ (db::compare (b.separation_check (a, 15, db::RegionCheckOptions (true)), "(30,0;30,100)/(20,30;20,20)"), true); + EXPECT_EQ (db::compare (b.separation_check (a, 15, db::RegionCheckOptions (false, db::Euclidian, 91)), "(30,30;30,41)/(15,30;20,30);(30,9;30,41)/(20,30;20,20);(30,9;30,20)/(20,20;15,20)"), true); b.clear (); b.insert (db::Box (db::Point (15, 0), db::Point (100, 100))); - EXPECT_EQ (b.overlap_check (a, 15).to_string (), "(15,6;15,44)/(20,30;20,20)"); - EXPECT_EQ (b.overlap_check (a, 15, db::RegionCheckOptions (true)).to_string (), "(15,0;15,100)/(20,30;20,20)"); - EXPECT_EQ (b.overlap_check (a, 15, db::RegionCheckOptions (false, db::Euclidian, 91)).to_string (), "(15,15;15,30)/(15,30;20,30);(15,6;15,44)/(20,30;20,20);(15,20;15,35)/(20,20;15,20)"); + EXPECT_EQ (db::compare (b.overlap_check (a, 15), "(15,6;15,44)/(20,30;20,20)"), true); + EXPECT_EQ (db::compare (b.overlap_check (a, 15, db::RegionCheckOptions (true)), "(15,0;15,100)/(20,30;20,20)"), true); + EXPECT_EQ (db::compare (b.overlap_check (a, 15, db::RegionCheckOptions (false, db::Euclidian, 91)), "(15,15;15,30)/(15,30;20,30);(15,6;15,44)/(20,30;20,20);(15,20;15,35)/(20,20;15,20)"), true); } TEST(17) @@ -807,9 +807,9 @@ TEST(17) db::Box bb[3] = { db::Box (db::Point (0, 0), db::Point (10, 10)), db::Box (), db::Box (db::Point (20, 20), db::Point (40, 50)) }; db::Region r (bb + 0, bb + 3); - EXPECT_EQ (r.edges ().to_string (), "(0,0;0,10);(0,10;10,10);(10,10;10,0);(10,0;0,0);(20,20;20,50);(20,50;40,50);(40,50;40,20);(40,20;20,20)"); + EXPECT_EQ (db::compare (r.edges (), "(0,0;0,10);(0,10;10,10);(10,10;10,0);(10,0;0,0);(20,20;20,50);(20,50;40,50);(40,50;40,20);(40,20;20,20)"), true); db::EdgeLengthFilter f (11, 21, false); - EXPECT_EQ (r.edges (f).to_string (), "(20,50;40,50);(40,20;20,20)"); + EXPECT_EQ (db::compare (r.edges (f), "(20,50;40,50);(40,20;20,20)"), true); } TEST(18a) @@ -827,65 +827,65 @@ TEST(18a) rr.insert (db::Box (db::Point (10, 10), db::Point (50, 90))); rr.insert (db::Box (db::Point (10, 110), db::Point (20, 120))); - EXPECT_EQ (r.selected_outside (rr).to_string (), "(50,10;50,30;70,30;70,10);(70,60;70,80;90,80;90,60)"); + EXPECT_EQ (db::compare (r.selected_outside (rr), "(50,10;50,30;70,30;70,10);(70,60;70,80;90,80;90,60)"), true); { db::Region o = r; o.select_outside (rr); - EXPECT_EQ (o.to_string (), "(50,10;50,30;70,30;70,10);(70,60;70,80;90,80;90,60)"); + EXPECT_EQ (db::compare (o, "(50,10;50,30;70,30;70,10);(70,60;70,80;90,80;90,60)"), true); o = r; - EXPECT_EQ (o.selected_not_outside (rr).to_string (), "(0,0;0,20;20,20;20,0);(20,30;20,50;40,50;40,30);(0,60;0,80;60,80;60,60);(0,100;0,130;30,130;30,100)"); + EXPECT_EQ (db::compare (o.selected_not_outside (rr), "(0,0;0,20;20,20;20,0);(20,30;20,50;40,50;40,30);(0,60;0,80;60,80;60,60);(0,100;0,130;30,130;30,100)"), true); EXPECT_EQ (o.selected_outside (rr).count () + o.selected_not_outside (rr).count (), size_t (6)); EXPECT_EQ (o.selected_outside (rr).hier_count () + o.selected_not_outside (rr).hier_count (), size_t (6)); o.select_not_outside (rr); - EXPECT_EQ (o.to_string (), "(0,0;0,20;20,20;20,0);(20,30;20,50;40,50;40,30);(0,60;0,80;60,80;60,60);(0,100;0,130;30,130;30,100)"); + EXPECT_EQ (db::compare (o, "(0,0;0,20;20,20;20,0);(20,30;20,50;40,50;40,30);(0,60;0,80;60,80;60,60);(0,100;0,130;30,130;30,100)"), true); } - EXPECT_EQ (r.selected_inside (rr).to_string (), "(20,30;20,50;40,50;40,30)"); + EXPECT_EQ (db::compare (r.selected_inside (rr), "(20,30;20,50;40,50;40,30)"), true); { db::Region o = r; o.select_inside (rr); - EXPECT_EQ (o.to_string (), "(20,30;20,50;40,50;40,30)"); + EXPECT_EQ (db::compare (o, "(20,30;20,50;40,50;40,30)"), true); o = r; - EXPECT_EQ (o.selected_not_inside (rr).to_string (), "(0,0;0,20;20,20;20,0);(50,10;50,30;70,30;70,10);(70,60;70,80;90,80;90,60);(0,60;0,80;60,80;60,60);(0,100;0,130;30,130;30,100)"); + EXPECT_EQ (db::compare (o.selected_not_inside (rr), "(0,0;0,20;20,20;20,0);(50,10;50,30;70,30;70,10);(70,60;70,80;90,80;90,60);(0,60;0,80;60,80;60,60);(0,100;0,130;30,130;30,100)"), true); EXPECT_EQ (o.selected_inside (rr).count () + o.selected_not_inside (rr).count (), size_t (6)); EXPECT_EQ (o.selected_inside (rr).hier_count () + o.selected_not_inside (rr).hier_count (), size_t (6)); o.select_not_inside (rr); - EXPECT_EQ (o.to_string (), "(0,0;0,20;20,20;20,0);(50,10;50,30;70,30;70,10);(70,60;70,80;90,80;90,60);(0,60;0,80;60,80;60,60);(0,100;0,130;30,130;30,100)"); + EXPECT_EQ (db::compare (o, "(0,0;0,20;20,20;20,0);(50,10;50,30;70,30;70,10);(70,60;70,80;90,80;90,60);(0,60;0,80;60,80;60,60);(0,100;0,130;30,130;30,100)"), true); } - EXPECT_EQ (r.selected_interacting (rr).to_string (), "(0,0;0,20;20,20;20,0);(50,10;50,30;70,30;70,10);(20,30;20,50;40,50;40,30);(0,60;0,80;60,80;60,60);(0,100;0,130;30,130;30,100)"); + EXPECT_EQ (db::compare (r.selected_interacting (rr), "(0,0;0,20;20,20;20,0);(50,10;50,30;70,30;70,10);(20,30;20,50;40,50;40,30);(0,60;0,80;60,80;60,60);(0,100;0,130;30,130;30,100)"), true); { db::Region o = r; o.select_interacting (rr); - EXPECT_EQ (o.to_string (), "(0,0;0,20;20,20;20,0);(50,10;50,30;70,30;70,10);(20,30;20,50;40,50;40,30);(0,60;0,80;60,80;60,60);(0,100;0,130;30,130;30,100)"); + EXPECT_EQ (db::compare (o, "(0,0;0,20;20,20;20,0);(50,10;50,30;70,30;70,10);(20,30;20,50;40,50;40,30);(0,60;0,80;60,80;60,60);(0,100;0,130;30,130;30,100)"), true); o = r; - EXPECT_EQ (o.selected_not_interacting (rr).to_string (), "(70,60;70,80;90,80;90,60)"); + EXPECT_EQ (db::compare (o.selected_not_interacting (rr), "(70,60;70,80;90,80;90,60)"), true); EXPECT_EQ (o.selected_interacting (rr).count () + o.selected_not_interacting (rr).count (), size_t (6)); EXPECT_EQ (o.selected_interacting (rr).hier_count () + o.selected_not_interacting (rr).hier_count (), size_t (6)); o.select_not_interacting (rr); - EXPECT_EQ (o.to_string (), "(70,60;70,80;90,80;90,60)"); + EXPECT_EQ (db::compare (o, "(70,60;70,80;90,80;90,60)"), true); } - EXPECT_EQ (r.selected_overlapping (rr).to_string (), "(0,0;0,20;20,20;20,0);(20,30;20,50;40,50;40,30);(0,60;0,80;60,80;60,60);(0,100;0,130;30,130;30,100)"); + EXPECT_EQ (db::compare (r.selected_overlapping (rr), "(0,0;0,20;20,20;20,0);(20,30;20,50;40,50;40,30);(0,60;0,80;60,80;60,60);(0,100;0,130;30,130;30,100)"), true); { db::Region o = r; o.select_overlapping (rr); - EXPECT_EQ (o.to_string (), "(0,0;0,20;20,20;20,0);(20,30;20,50;40,50;40,30);(0,60;0,80;60,80;60,60);(0,100;0,130;30,130;30,100)"); + EXPECT_EQ (db::compare (o, "(0,0;0,20;20,20;20,0);(20,30;20,50;40,50;40,30);(0,60;0,80;60,80;60,60);(0,100;0,130;30,130;30,100)"), true); o = r; - EXPECT_EQ (o.selected_not_overlapping (rr).to_string (), "(50,10;50,30;70,30;70,10);(70,60;70,80;90,80;90,60)"); + EXPECT_EQ (db::compare (o.selected_not_overlapping (rr), "(50,10;50,30;70,30;70,10);(70,60;70,80;90,80;90,60)"), true); EXPECT_EQ (o.selected_overlapping (rr).count () + o.selected_not_overlapping (rr).count (), size_t (6)); EXPECT_EQ (o.selected_overlapping (rr).hier_count () + o.selected_not_overlapping (rr).hier_count (), size_t (6)); o.select_not_overlapping (rr); - EXPECT_EQ (o.to_string (), "(50,10;50,30;70,30;70,10);(70,60;70,80;90,80;90,60)"); + EXPECT_EQ (db::compare (o, "(50,10;50,30;70,30;70,10);(70,60;70,80;90,80;90,60)"), true); } - EXPECT_EQ (r.selected_enclosing (rr).to_string (), "(0,100;0,130;30,130;30,100)"); + EXPECT_EQ (db::compare (r.selected_enclosing (rr), "(0,100;0,130;30,130;30,100)"), true); { db::Region o = r; o.select_enclosing (rr); - EXPECT_EQ (o.to_string (), "(0,100;0,130;30,130;30,100)"); + EXPECT_EQ (db::compare (o, "(0,100;0,130;30,130;30,100)"), true); o = r; - EXPECT_EQ (o.selected_not_enclosing (rr).to_string (), "(0,0;0,20;20,20;20,0);(50,10;50,30;70,30;70,10);(70,60;70,80;90,80;90,60);(20,30;20,50;40,50;40,30);(0,60;0,80;60,80;60,60)"); + EXPECT_EQ (db::compare (o.selected_not_enclosing (rr), "(0,0;0,20;20,20;20,0);(50,10;50,30;70,30;70,10);(70,60;70,80;90,80;90,60);(20,30;20,50;40,50;40,30);(0,60;0,80;60,80;60,60)"), true); EXPECT_EQ (o.selected_enclosing (rr).count () + o.selected_not_enclosing (rr).count (), size_t (6)); EXPECT_EQ (o.selected_enclosing (rr).hier_count () + o.selected_not_enclosing (rr).hier_count (), size_t (6)); o.select_not_enclosing (rr); - EXPECT_EQ (o.to_string (), "(0,0;0,20;20,20;20,0);(50,10;50,30;70,30;70,10);(70,60;70,80;90,80;90,60);(20,30;20,50;40,50;40,30);(0,60;0,80;60,80;60,60)"); + EXPECT_EQ (db::compare (o, "(0,0;0,20;20,20;20,0);(50,10;50,30;70,30;70,10);(70,60;70,80;90,80;90,60);(20,30;20,50;40,50;40,30);(0,60;0,80;60,80;60,60)"), true); } } @@ -954,15 +954,15 @@ TEST(18c) rr.insert (db::Box (db::Point (-100, -10), db::Point (0, 30))); rr.insert (db::Box (db::Point (0, -10), db::Point (100, 30))); - EXPECT_EQ (r.selected_outside (rr).to_string (), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"); - EXPECT_EQ (r.selected_inside (rr).to_string (), "(-20,0;-20,20;20,20;20,0)"); - EXPECT_EQ (r.selected_overlapping (rr).to_string (), "(-20,0;-20,20;20,20;20,0)"); - EXPECT_EQ (r.selected_interacting (rr).to_string (), "(-20,0;-20,20;20,20;20,0);(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"); + EXPECT_EQ (db::compare (r.selected_outside (rr), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"), true); + EXPECT_EQ (db::compare (r.selected_inside (rr), "(-20,0;-20,20;20,20;20,0)"), true); + EXPECT_EQ (db::compare (r.selected_overlapping (rr), "(-20,0;-20,20;20,20;20,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr), "(-20,0;-20,20;20,20;20,0);(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"), true); - EXPECT_EQ (r.selected_not_outside (rr).to_string (), "(-20,0;-20,20;20,20;20,0)"); - EXPECT_EQ (r.selected_not_inside (rr).to_string (), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"); - EXPECT_EQ (r.selected_not_overlapping (rr).to_string (), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"); - EXPECT_EQ (r.selected_not_interacting (rr).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_not_outside (rr), "(-20,0;-20,20;20,20;20,0)"), true); + EXPECT_EQ (db::compare (r.selected_not_inside (rr), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"), true); + EXPECT_EQ (db::compare (r.selected_not_overlapping (rr), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr), ""), true); r.clear (); r.insert (db::Box (db::Point (-120, 0), db::Point (-100, 20))); @@ -973,15 +973,15 @@ TEST(18c) rr.insert (db::Box (db::Point (-100, -10), db::Point (0, 30))); rr.insert (db::Box (db::Point (0, -10), db::Point (100, 30))); - EXPECT_EQ (r.selected_outside (rr).to_string (), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"); - EXPECT_EQ (r.selected_inside (rr).to_string (), "(-20,0;-20,20;20,20;20,0)"); - EXPECT_EQ (r.selected_overlapping (rr).to_string (), "(-20,0;-20,20;20,20;20,0)"); - EXPECT_EQ (r.selected_interacting (rr).to_string (), "(-20,0;-20,20;20,20;20,0);(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"); + EXPECT_EQ (db::compare (r.selected_outside (rr), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"), true); + EXPECT_EQ (db::compare (r.selected_inside (rr), "(-20,0;-20,20;20,20;20,0)"), true); + EXPECT_EQ (db::compare (r.selected_overlapping (rr), "(-20,0;-20,20;20,20;20,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr), "(-20,0;-20,20;20,20;20,0);(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"), true); - EXPECT_EQ (r.selected_not_outside (rr).to_string (), "(-20,0;-20,20;20,20;20,0)"); - EXPECT_EQ (r.selected_not_inside (rr).to_string (), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"); - EXPECT_EQ (r.selected_not_overlapping (rr).to_string (), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"); - EXPECT_EQ (r.selected_not_interacting (rr).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_not_outside (rr), "(-20,0;-20,20;20,20;20,0)"), true); + EXPECT_EQ (db::compare (r.selected_not_inside (rr), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"), true); + EXPECT_EQ (db::compare (r.selected_not_overlapping (rr), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr), ""), true); r.clear (); r.insert (db::Box (db::Point (-120, 0), db::Point (-100, 20))); @@ -991,15 +991,15 @@ TEST(18c) rr.clear (); rr.insert (db::Box (db::Point (-100, -10), db::Point (100, 30))); - EXPECT_EQ (r.selected_outside (rr).to_string (), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"); - EXPECT_EQ (r.selected_inside (rr).to_string (), "(-20,0;-20,20;20,20;20,0)"); - EXPECT_EQ (r.selected_overlapping (rr).to_string (), "(-20,0;-20,20;20,20;20,0)"); - EXPECT_EQ (r.selected_interacting (rr).to_string (), "(-20,0;-20,20;20,20;20,0);(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"); + EXPECT_EQ (db::compare (r.selected_outside (rr), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"), true); + EXPECT_EQ (db::compare (r.selected_inside (rr), "(-20,0;-20,20;20,20;20,0)"), true); + EXPECT_EQ (db::compare (r.selected_overlapping (rr), "(-20,0;-20,20;20,20;20,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr), "(-20,0;-20,20;20,20;20,0);(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"), true); - EXPECT_EQ (r.selected_not_outside (rr).to_string (), "(-20,0;-20,20;20,20;20,0)"); - EXPECT_EQ (r.selected_not_inside (rr).to_string (), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"); - EXPECT_EQ (r.selected_not_overlapping (rr).to_string (), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"); - EXPECT_EQ (r.selected_not_interacting (rr).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_not_outside (rr), "(-20,0;-20,20;20,20;20,0)"), true); + EXPECT_EQ (db::compare (r.selected_not_inside (rr), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"), true); + EXPECT_EQ (db::compare (r.selected_not_overlapping (rr), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr), ""), true); r.clear (); r.insert (db::Box (db::Point (-120, 0), db::Point (-100, 20))); @@ -1010,15 +1010,15 @@ TEST(18c) rr.insert (db::Box (db::Point (-100, -10), db::Point (0, 30))); rr.insert (db::Box (db::Point (1, -10), db::Point (100, 30))); - EXPECT_EQ (r.selected_outside (rr).to_string (), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"); - EXPECT_EQ (r.selected_inside (rr).to_string (), ""); - EXPECT_EQ (r.selected_overlapping (rr).to_string (), "(-20,0;-20,20;20,20;20,0)"); - EXPECT_EQ (r.selected_interacting (rr).to_string (), "(-20,0;-20,20;20,20;20,0);(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"); + EXPECT_EQ (db::compare (r.selected_outside (rr), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"), true); + EXPECT_EQ (db::compare (r.selected_inside (rr), ""), true); + EXPECT_EQ (db::compare (r.selected_overlapping (rr), "(-20,0;-20,20;20,20;20,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr), "(-20,0;-20,20;20,20;20,0);(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"), true); - EXPECT_EQ (r.selected_not_outside (rr).to_string (), "(-20,0;-20,20;20,20;20,0)"); - EXPECT_EQ (r.selected_not_inside (rr).to_string (), "(-20,0;-20,20;20,20;20,0);(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"); - EXPECT_EQ (r.selected_not_overlapping (rr).to_string (), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"); - EXPECT_EQ (r.selected_not_interacting (rr).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_not_outside (rr), "(-20,0;-20,20;20,20;20,0)"), true); + EXPECT_EQ (db::compare (r.selected_not_inside (rr), "(-20,0;-20,20;20,20;20,0);(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"), true); + EXPECT_EQ (db::compare (r.selected_not_overlapping (rr), "(-120,0;-120,20;-100,20;-100,0);(100,0;100,20;120,20;120,0)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr), ""), true); r.clear (); r.insert (db::Box (db::Point (-100, 0), db::Point (-80, 20))); @@ -1030,15 +1030,15 @@ TEST(18c) rr.insert (db::Box (db::Point (-100, -10), db::Point (0, 30))); rr.insert (db::Box (db::Point (0, -10), db::Point (100, 30))); - EXPECT_EQ (r.selected_outside (rr).to_string (), ""); - EXPECT_EQ (r.selected_inside (rr).to_string (), "(-100,0;-100,20;-80,20;-80,0);(-20,0;-20,20;20,20;20,0);(80,0;80,20;100,20;100,0)"); - EXPECT_EQ (r.selected_overlapping (rr).to_string (), "(-100,0;-100,20;-80,20;-80,0);(-20,0;-20,20;20,20;20,0);(80,0;80,20;100,20;100,0)"); - EXPECT_EQ (r.selected_interacting (rr).to_string (), "(-100,0;-100,20;-80,20;-80,0);(-20,0;-20,20;20,20;20,0);(80,0;80,20;100,20;100,0)"); + EXPECT_EQ (db::compare (r.selected_outside (rr), ""), true); + EXPECT_EQ (db::compare (r.selected_inside (rr), "(-100,0;-100,20;-80,20;-80,0);(-20,0;-20,20;20,20;20,0);(80,0;80,20;100,20;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_overlapping (rr), "(-100,0;-100,20;-80,20;-80,0);(-20,0;-20,20;20,20;20,0);(80,0;80,20;100,20;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr), "(-100,0;-100,20;-80,20;-80,0);(-20,0;-20,20;20,20;20,0);(80,0;80,20;100,20;100,0)"), true); - EXPECT_EQ (r.selected_not_outside (rr).to_string (), "(-100,0;-100,20;-80,20;-80,0);(-20,0;-20,20;20,20;20,0);(80,0;80,20;100,20;100,0)"); - EXPECT_EQ (r.selected_not_inside (rr).to_string (), ""); - EXPECT_EQ (r.selected_not_overlapping (rr).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_not_outside (rr), "(-100,0;-100,20;-80,20;-80,0);(-20,0;-20,20;20,20;20,0);(80,0;80,20;100,20;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_not_inside (rr), ""), true); + EXPECT_EQ (db::compare (r.selected_not_overlapping (rr), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr), ""), true); } TEST(18d) @@ -1057,14 +1057,14 @@ TEST(18d) rr.insert (db::Box (db::Point (10, 10), db::Point (50, 90))); rr.insert (db::Box (db::Point (10, 110), db::Point (20, 120))); - EXPECT_EQ (r.pull_inside (rr).to_string (), "(10,110;10,120;20,120;20,110)"); + EXPECT_EQ (db::compare (r.pull_inside (rr), "(10,110;10,120;20,120;20,110)"), true); - EXPECT_EQ (r.pull_interacting (rr).to_string (), "(10,110;10,120;20,120;20,110);(10,0;10,90;50,90;50,10;20,10;20,0)"); - EXPECT_EQ (r.pull_overlapping (rr).to_string (), "(10,110;10,120;20,120;20,110);(10,0;10,90;50,90;50,10;20,10;20,0)"); + EXPECT_EQ (db::compare (r.pull_interacting (rr), "(10,110;10,120;20,120;20,110);(10,0;10,90;50,90;50,10;20,10;20,0)"), true); + EXPECT_EQ (db::compare (r.pull_overlapping (rr), "(10,110;10,120;20,120;20,110);(10,0;10,90;50,90;50,10;20,10;20,0)"), true); rr.set_merged_semantics (false); - EXPECT_EQ (r.pull_interacting (rr).to_string (), "(10,110;10,120;20,120;20,110);(10,10;10,90;50,90;50,10);(10,0;10,10;20,10;20,0)"); - EXPECT_EQ (r.pull_overlapping (rr).to_string (), "(10,110;10,120;20,120;20,110);(10,10;10,90;50,90;50,10)"); + EXPECT_EQ (db::compare (r.pull_interacting (rr), "(10,110;10,120;20,120;20,110);(10,10;10,90;50,90;50,10);(10,0;10,10;20,10;20,0)"), true); + EXPECT_EQ (db::compare (r.pull_overlapping (rr), "(10,110;10,120;20,120;20,110);(10,10;10,90;50,90;50,10)"), true); } TEST(19) @@ -1080,16 +1080,16 @@ TEST(19) r2.insert (db::Box (db::Point (0, 0), db::Point (20, 10))); r2.insert (db::Box (db::Point (0, 0), db::Point (20, 30))); - EXPECT_EQ (r1.in (r2, false).to_string (), "(0,0;0,30;20,30;20,0)"); - EXPECT_EQ (r1.in (r2, true).to_string (), ""); - EXPECT_EQ (r2.in (r1, true).to_string (), ""); + EXPECT_EQ (db::compare (r1.in (r2, false), "(0,0;0,30;20,30;20,0)"), true); + EXPECT_EQ (db::compare (r1.in (r2, true), ""), true); + EXPECT_EQ (db::compare (r2.in (r1, true), ""), true); r1.set_merged_semantics (false); r2.set_merged_semantics (false); - EXPECT_EQ (r1.in (r2, false).to_string (), "(0,0;0,20;20,20;20,0);(0,0;0,30;20,30;20,0)"); - EXPECT_EQ (r1.in (r2, true).to_string (), "(0,0;0,20;10,20;10,0)"); - EXPECT_EQ (r2.in (r1, true).to_string (), "(0,0;0,10;20,10;20,0)"); + EXPECT_EQ (db::compare (r1.in (r2, false), "(0,0;0,20;20,20;20,0);(0,0;0,30;20,30;20,0)"), true); + EXPECT_EQ (db::compare (r1.in (r2, true), "(0,0;0,20;10,20;10,0)"), true); + EXPECT_EQ (db::compare (r2.in (r1, true), "(0,0;0,10;20,10;20,0)"), true); } TEST(20) @@ -1113,25 +1113,25 @@ TEST(20) { db::Region r1 (db::RecursiveShapeIterator (ly, ly.cell (top), l1)); EXPECT_EQ (r1.has_valid_polygons (), false); - EXPECT_EQ (r1.to_string (), "(0,0;0,30;30,30;30,0);(50,0;50,30;80,30;80,0);(50,40;50,70;80,70;80,40)"); + EXPECT_EQ (db::compare (r1, "(0,0;0,30;30,30;30,0);(50,0;50,30;80,30;80,0);(50,40;50,70;80,70;80,40)"), true); EXPECT_EQ (r1.has_valid_polygons (), false); } { db::Region r1 (db::RecursiveShapeIterator (ly, ly.cell (top), l2, db::Box (60, 10, 90, 50))); EXPECT_EQ (r1.has_valid_polygons (), false); - EXPECT_EQ (r1.to_string (), "(60,10;60,20;70,20;70,10);(80,40;80,70;110,70;110,40)"); + EXPECT_EQ (db::compare (r1, "(60,10;60,20;70,20;70,10);(80,40;80,70;110,70;110,40)"), true); EXPECT_EQ (r1.has_valid_polygons (), false); } { db::Region r1 (db::RecursiveShapeIterator (ly, ly.cell (top), l2, db::Box (60, 10, 90, 50)), db::ICplxTrans (2.0)); EXPECT_EQ (r1.has_valid_polygons (), false); - EXPECT_EQ (r1.to_string (), "(120,20;120,40;140,40;140,20);(160,80;160,140;220,140;220,80)"); + EXPECT_EQ (db::compare (r1, "(120,20;120,40;140,40;140,20);(160,80;160,140;220,140;220,80)"), true); EXPECT_EQ (r1.has_valid_polygons (), false); EXPECT_EQ (r1.area (), 4000); EXPECT_EQ (r1.perimeter (), db::Region::perimeter_type (320)); - EXPECT_EQ (r1.bbox ().to_string (), "(120,20;220,140)"); + EXPECT_EQ (db::compare (r1.bbox (), "(120,20;220,140)"), true); EXPECT_EQ (r1.is_box (), false); EXPECT_EQ (r1.count (), size_t (2)); EXPECT_EQ (r1.hier_count (), size_t (2)); @@ -1139,20 +1139,20 @@ TEST(20) db::RegionPerimeterFilter f0 (0, 100, false); db::Region rr = r1.filtered (f0); - EXPECT_EQ (rr.to_string (), "(120,20;120,40;140,40;140,20)"); + EXPECT_EQ (db::compare (rr, "(120,20;120,40;140,40;140,20)"), true); db::Region r2 = r1; EXPECT_EQ (r2.has_valid_polygons (), false); EXPECT_EQ (r2.area (), 4000); EXPECT_EQ (r2.perimeter (), db::Region::perimeter_type (320)); - EXPECT_EQ (r2.bbox ().to_string (), "(120,20;220,140)"); + EXPECT_EQ (db::compare (r2.bbox (), "(120,20;220,140)"), true); EXPECT_EQ (r2.is_box (), false); EXPECT_EQ (r2.count (), size_t (2)); EXPECT_EQ (r2.hier_count (), size_t (2)); EXPECT_EQ (r2.empty (), false); r2.filter (f0); EXPECT_EQ (r2.has_valid_polygons (), true); - EXPECT_EQ (r2.to_string (), "(120,20;120,40;140,40;140,20)"); + EXPECT_EQ (db::compare (r2, "(120,20;120,40;140,40;140,20)"), true); EXPECT_EQ (r2.count (), size_t (1)); EXPECT_EQ (r2.hier_count (), size_t (1)); EXPECT_EQ (r2.empty (), false); @@ -1162,7 +1162,7 @@ TEST(20) r1.insert (db::Box (0, 0, 10, 20)); EXPECT_EQ (r1.has_valid_polygons (), true); - EXPECT_EQ (r1.to_string (), "(120,20;120,40;140,40;140,20);(160,80;160,140;220,140;220,80);(0,0;0,20;10,20;10,0)"); + EXPECT_EQ (db::compare (r1, "(120,20;120,40;140,40;140,20);(160,80;160,140;220,140;220,80);(0,0;0,20;10,20;10,0)"), true); EXPECT_EQ (r1.to_string (2), "(120,20;120,40;140,40;140,20);(160,80;160,140;220,140;220,80)..."); EXPECT_EQ (r1.count (), size_t (3)); EXPECT_EQ (r1.hier_count (), size_t (3)); @@ -1170,17 +1170,17 @@ TEST(20) EXPECT_EQ (r1.perimeter (), db::Region::perimeter_type (380)); rr = r1.filtered (f0); - EXPECT_EQ (rr.to_string (), "(0,0;0,20;10,20;10,0);(120,20;120,40;140,40;140,20)"); - EXPECT_EQ (r1.to_string (), "(120,20;120,40;140,40;140,20);(160,80;160,140;220,140;220,80);(0,0;0,20;10,20;10,0)"); + EXPECT_EQ (db::compare (rr, "(0,0;0,20;10,20;10,0);(120,20;120,40;140,40;140,20)"), true); + EXPECT_EQ (db::compare (r1, "(120,20;120,40;140,40;140,20);(160,80;160,140;220,140;220,80);(0,0;0,20;10,20;10,0)"), true); r1.filter (f0); - EXPECT_EQ (r1.to_string (), "(0,0;0,20;10,20;10,0);(120,20;120,40;140,40;140,20)"); + EXPECT_EQ (db::compare (r1, "(0,0;0,20;10,20;10,0);(120,20;120,40;140,40;140,20)"), true); } { db::Region r1 (db::RecursiveShapeIterator (ly, ly.cell (top), l2, db::Box (60, 10, 70, 50)), db::ICplxTrans (2.0)); EXPECT_EQ (r1.has_valid_polygons (), false); - EXPECT_EQ (r1.to_string (), "(120,20;120,40;140,40;140,20)"); + EXPECT_EQ (db::compare (r1, "(120,20;120,40;140,40;140,20)"), true); EXPECT_EQ (r1.has_valid_polygons (), false); EXPECT_EQ (r1.is_box (), true); EXPECT_EQ (r1.count (), size_t (1)); @@ -1189,10 +1189,10 @@ TEST(20) db::Region r2 = r1; - EXPECT_EQ (r1.transformed (db::ICplxTrans (0.5)).to_string (), "(60,10;60,20;70,20;70,10)"); + EXPECT_EQ (db::compare (r1.transformed (db::ICplxTrans (0.5)), "(60,10;60,20;70,20;70,10)"), true); r1.transform (db::ICplxTrans (0.5)); EXPECT_EQ (r1.has_valid_polygons (), true); - EXPECT_EQ (r1.to_string (), "(60,10;60,20;70,20;70,10)"); + EXPECT_EQ (db::compare (r1, "(60,10;60,20;70,20;70,10)"), true); r1.clear (); EXPECT_EQ (r1.has_valid_polygons (), true); @@ -1202,10 +1202,10 @@ TEST(20) EXPECT_EQ (r1.perimeter (), db::Region::perimeter_type (0)); EXPECT_EQ (r1.area (), 0); - EXPECT_EQ (r2.to_string (), "(120,20;120,40;140,40;140,20)"); + EXPECT_EQ (db::compare (r2, "(120,20;120,40;140,40;140,20)"), true); r1.swap (r2); - EXPECT_EQ (r1.to_string (), "(120,20;120,40;140,40;140,20)"); + EXPECT_EQ (db::compare (r1, "(120,20;120,40;140,40;140,20)"), true); EXPECT_EQ (r1.has_valid_polygons (), false); EXPECT_EQ (r2.has_valid_polygons (), true); EXPECT_EQ (r2.count (), size_t (0)); @@ -1219,9 +1219,9 @@ TEST(20) db::Region r1 (db::RecursiveShapeIterator (ly, ly.cell (top), l2)); EXPECT_EQ (r1.has_valid_polygons (), false); EXPECT_EQ (r1.is_merged (), false); - EXPECT_EQ (r1.merged ().to_string (), "(60,10;60,20;70,20;70,10);(10,10;10,40;40,40;40,10);(80,40;80,70;140,70;140,40)"); + EXPECT_EQ (db::compare (r1.merged (), "(60,10;60,20;70,20;70,10);(10,10;10,40;40,40;40,10);(80,40;80,70;140,70;140,40)"), true); r1.merge (); - EXPECT_EQ (r1.to_string (), "(60,10;60,20;70,20;70,10);(10,10;10,40;40,40;40,10);(80,40;80,70;140,70;140,40)"); + EXPECT_EQ (db::compare (r1, "(60,10;60,20;70,20;70,10);(10,10;10,40;40,40;40,10);(80,40;80,70;140,70;140,40)"), true); EXPECT_EQ (r1.has_valid_polygons (), true); } @@ -1235,15 +1235,15 @@ TEST(20) { db::Region r1 (db::RecursiveShapeIterator (ly, ly.cell (top), l2)); - EXPECT_EQ (r1.width_check (20).to_string (), "(60,10;60,20)|(70,20;70,10);(70,10;60,10)|(60,20;70,20)"); - EXPECT_EQ (r1.width_check (50).to_string (), "(60,10;60,20)|(70,20;70,10);(70,10;60,10)|(60,20;70,20);(10,10;10,40)|(40,40;40,10);(40,10;10,10)|(10,40;40,40);(140,40;80,40)|(80,70;140,70)"); + EXPECT_EQ (db::compare (r1.width_check (20), "(60,10;60,20)|(70,20;70,10);(70,10;60,10)|(60,20;70,20)"), true); + EXPECT_EQ (db::compare (r1.width_check (50), "(60,10;60,20)|(70,20;70,10);(70,10;60,10)|(60,20;70,20);(10,10;10,40)|(40,40;40,10);(40,10;10,10)|(10,40;40,40);(140,40;80,40)|(80,70;140,70)"), true); } { db::Region r1 (db::RecursiveShapeIterator (ly, ly.cell (top), l2)); EXPECT_EQ (r1.has_valid_polygons (), false); - EXPECT_EQ (r1.space_check (30).to_string (), "(60,10;60,20)|(40,40;40,10);(70,20;70,12)|(80,40;80,48);(60,20;70,20)|(92,40;80,40)"); - EXPECT_EQ (r1.space_check (2).to_string (), ""); + EXPECT_EQ (db::compare (r1.space_check (30), "(60,10;60,20)|(40,40;40,10);(70,20;70,12)|(80,40;80,48);(60,20;70,20)|(92,40;80,40)"), true); + EXPECT_EQ (db::compare (r1.space_check (2), ""), true); } { @@ -1251,44 +1251,44 @@ TEST(20) EXPECT_EQ (r1.has_valid_polygons (), false); db::Region r2 (db::RecursiveShapeIterator (ly, ly.cell (top), l2)); EXPECT_EQ (r2.has_valid_polygons (), false); - EXPECT_EQ (r1.separation_check (r2, 20).to_string (), "(63,30;80,30)/(97,40;80,40);(50,0;50,30)/(40,40;40,10);(80,70;80,40)/(80,40;80,70);(50,40;50,57)/(40,40;40,23)"); + EXPECT_EQ (db::compare (r1.separation_check (r2, 20), "(63,30;80,30)/(97,40;80,40);(50,0;50,30)/(40,40;40,10);(80,70;80,40)/(80,40;80,70);(50,40;50,57)/(40,40;40,23)"), true); } { db::Region r1 (db::RecursiveShapeIterator (ly, ly.cell (top), l2)); - EXPECT_EQ (r1.sized (10).to_string (), "(50,0;50,30;80,30;80,0);(0,0;0,50;50,50;50,0);(70,30;70,80;150,80;150,30)"); + EXPECT_EQ (db::compare (r1.sized (10), "(50,0;50,30;80,30;80,0);(0,0;0,50;50,50;50,0);(70,30;70,80;150,80;150,30)"), true); r1.size (10); EXPECT_EQ (r1.has_valid_polygons (), true); - EXPECT_EQ (r1.to_string (), "(50,0;50,30;80,30;80,0);(0,0;0,50;50,50;50,0);(70,30;70,80;150,80;150,30)"); + EXPECT_EQ (db::compare (r1, "(50,0;50,30;80,30;80,0);(0,0;0,50;50,50;50,0);(70,30;70,80;150,80;150,30)"), true); } { db::Region r1 (db::RecursiveShapeIterator (ly, ly.cell (top), l1)); EXPECT_EQ (r1.has_valid_polygons (), false); - EXPECT_EQ (r1.hulls ().to_string (), "(0,0;0,30;30,30;30,0);(50,0;50,30;80,30;80,0);(50,40;50,70;80,70;80,40)"); - EXPECT_EQ (r1.holes ().to_string (), ""); + EXPECT_EQ (db::compare (r1.hulls (), "(0,0;0,30;30,30;30,0);(50,0;50,30;80,30;80,0);(50,40;50,70;80,70;80,40)"), true); + EXPECT_EQ (db::compare (r1.holes (), ""), true); db::Region r2 (db::RecursiveShapeIterator (ly, ly.cell (top), l2)); EXPECT_EQ (r2.has_valid_polygons (), false); - EXPECT_EQ ((r1 & r2).to_string (), "(60,10;60,20;70,20;70,10);(10,10;10,30;30,30;30,10)"); - EXPECT_EQ ((r1 | r2).to_string (), "(50,0;50,30;80,30;80,0);(0,0;0,30;10,30;10,40;40,40;40,10;30,10;30,0);(50,40;50,70;140,70;140,40)"); - EXPECT_EQ ((r1 + r2).to_string (), "(0,0;0,30;30,30;30,0);(50,0;50,30;80,30;80,0);(50,40;50,70;80,70;80,40);(60,10;60,20;70,20;70,10);(10,10;10,40;40,40;40,10);(80,40;80,70;110,70;110,40);(110,40;110,70;140,70;140,40)"); - EXPECT_EQ ((r1 ^ r2).to_string (), "(50,0;50,30;80,30;80,0/60,10;70,10;70,20;60,20);(0,0;0,30;10,30;10,40;40,40;40,10;30,10;30,0/10,10;30,10;30,30;10,30);(50,40;50,70;140,70;140,40)"); - EXPECT_EQ ((r1 ^ r1).to_string (), ""); - EXPECT_EQ ((r1 - r2).to_string (), "(0,0;0,30;10,30;10,10;30,10;30,0);(50,0;50,30;80,30;80,0/60,10;70,10;70,20;60,20);(50,40;50,70;80,70;80,40)"); - EXPECT_EQ ((r1 - r1).to_string (), ""); - EXPECT_EQ (r2.selected_outside (r1).to_string (), "(80,40;80,70;140,70;140,40)"); - EXPECT_EQ (r2.selected_inside (r1).to_string (), "(60,10;60,20;70,20;70,10)"); - EXPECT_EQ (r2.selected_interacting (r1).to_string (), "(60,10;60,20;70,20;70,10);(10,10;10,40;40,40;40,10);(80,40;80,70;140,70;140,40)"); - EXPECT_EQ (r2.selected_overlapping (r1).to_string (), "(60,10;60,20;70,20;70,10);(10,10;10,40;40,40;40,10)"); + EXPECT_EQ (db::compare ((r1 & r2), "(60,10;60,20;70,20;70,10);(10,10;10,30;30,30;30,10)"), true); + EXPECT_EQ (db::compare ((r1 | r2), "(50,0;50,30;80,30;80,0);(0,0;0,30;10,30;10,40;40,40;40,10;30,10;30,0);(50,40;50,70;140,70;140,40)"), true); + EXPECT_EQ (db::compare ((r1 + r2), "(0,0;0,30;30,30;30,0);(50,0;50,30;80,30;80,0);(50,40;50,70;80,70;80,40);(60,10;60,20;70,20;70,10);(10,10;10,40;40,40;40,10);(80,40;80,70;110,70;110,40);(110,40;110,70;140,70;140,40)"), true); + EXPECT_EQ (db::compare ((r1 ^ r2), "(50,0;50,30;80,30;80,0/60,10;70,10;70,20;60,20);(0,0;0,30;10,30;10,40;40,40;40,10;30,10;30,0/10,10;30,10;30,30;10,30);(50,40;50,70;140,70;140,40)"), true); + EXPECT_EQ (db::compare ((r1 ^ r1), ""), true); + EXPECT_EQ (db::compare ((r1 - r2), "(0,0;0,30;10,30;10,10;30,10;30,0);(50,0;50,30;80,30;80,0/60,10;70,10;70,20;60,20);(50,40;50,70;80,70;80,40)"), true); + EXPECT_EQ (db::compare ((r1 - r1), ""), true); + EXPECT_EQ (db::compare (r2.selected_outside (r1), "(80,40;80,70;140,70;140,40)"), true); + EXPECT_EQ (db::compare (r2.selected_inside (r1), "(60,10;60,20;70,20;70,10)"), true); + EXPECT_EQ (db::compare (r2.selected_interacting (r1), "(60,10;60,20;70,20;70,10);(10,10;10,40;40,40;40,10);(80,40;80,70;140,70;140,40)"), true); + EXPECT_EQ (db::compare (r2.selected_overlapping (r1), "(60,10;60,20;70,20;70,10);(10,10;10,40;40,40;40,10)"), true); r2.select_outside (r1); - EXPECT_EQ (r2.to_string (), "(80,40;80,70;140,70;140,40)"); + EXPECT_EQ (db::compare (r2, "(80,40;80,70;140,70;140,40)"), true); } } TEST(21) { db::Region r; - EXPECT_EQ (r.strange_polygon_check ().to_string (), ""); + EXPECT_EQ (db::compare (r.strange_polygon_check (), ""), true); db::Point pts1[] = { db::Point (0, 0), @@ -1315,16 +1315,16 @@ TEST(21) poly.assign_hull(pts2 + 0, pts2 + sizeof(pts2)/sizeof(pts2[0])); r.insert (poly); - EXPECT_EQ (r.strange_polygon_check ().to_string (), "(500,500;500,600;600,600;600,500);(2500,500;2500,1000;3000,1000;3000,500)"); + EXPECT_EQ (db::compare (r.strange_polygon_check (), "(500,500;500,600;600,600;600,500);(2500,500;2500,1000;3000,1000;3000,500)"), true); r.merge (); - EXPECT_EQ (r.strange_polygon_check ().to_string (), ""); + EXPECT_EQ (db::compare (r.strange_polygon_check (), ""), true); } TEST(22) { db::Region r; - EXPECT_EQ (r.angle_check (0, 180.0, false).to_string (), ""); - EXPECT_EQ (r.angle_check (0, 180.0, true).to_string (), ""); + EXPECT_EQ (db::compare (r.angle_check (0, 180.0, false), ""), true); + EXPECT_EQ (db::compare (r.angle_check (0, 180.0, true), ""), true); db::Point pts1[] = { db::Point (0, 0), @@ -1337,13 +1337,13 @@ TEST(22) poly.assign_hull(pts1 + 0, pts1 + sizeof(pts1)/sizeof(pts1[0])); r.insert (poly); - EXPECT_EQ (r.angle_check (0, 180.0, false).to_string (), "(0,0;0,1000)/(0,1000;1000,2000);(0,1000;1000,2000)/(1000,2000;1000,0);(1000,2000;1000,0)/(1000,0;0,0);(1000,0;0,0)/(0,0;0,1000)"); - EXPECT_EQ (r.angle_check (0, 180.0, true).to_string (), ""); - EXPECT_EQ (r.angle_check (45.0, 45.1, false).to_string (), "(0,1000;1000,2000)/(1000,2000;1000,0)"); - EXPECT_EQ (r.angle_check (0.0, 90.0, false).to_string (), "(0,1000;1000,2000)/(1000,2000;1000,0)"); - EXPECT_EQ (r.angle_check (0.0, 90.0, true).to_string (), "(0,0;0,1000)/(0,1000;1000,2000);(1000,2000;1000,0)/(1000,0;0,0);(1000,0;0,0)/(0,0;0,1000)"); - EXPECT_EQ (r.angle_check (90.1, 180.0, false).to_string (), "(0,0;0,1000)/(0,1000;1000,2000)"); - EXPECT_EQ (r.angle_check (90.1, 180.0, true).to_string (), "(0,1000;1000,2000)/(1000,2000;1000,0);(1000,2000;1000,0)/(1000,0;0,0);(1000,0;0,0)/(0,0;0,1000)"); + EXPECT_EQ (db::compare (r.angle_check (0, 180.0, false), "(0,0;0,1000)/(0,1000;1000,2000);(0,1000;1000,2000)/(1000,2000;1000,0);(1000,2000;1000,0)/(1000,0;0,0);(1000,0;0,0)/(0,0;0,1000)"), true); + EXPECT_EQ (db::compare (r.angle_check (0, 180.0, true), ""), true); + EXPECT_EQ (db::compare (r.angle_check (45.0, 45.1, false), "(0,1000;1000,2000)/(1000,2000;1000,0)"), true); + EXPECT_EQ (db::compare (r.angle_check (0.0, 90.0, false), "(0,1000;1000,2000)/(1000,2000;1000,0)"), true); + EXPECT_EQ (db::compare (r.angle_check (0.0, 90.0, true), "(0,0;0,1000)/(0,1000;1000,2000);(1000,2000;1000,0)/(1000,0;0,0);(1000,0;0,0)/(0,0;0,1000)"), true); + EXPECT_EQ (db::compare (r.angle_check (90.1, 180.0, false), "(0,0;0,1000)/(0,1000;1000,2000)"), true); + EXPECT_EQ (db::compare (r.angle_check (90.1, 180.0, true), "(0,1000;1000,2000)/(1000,2000;1000,0);(1000,2000;1000,0)/(1000,0;0,0);(1000,0;0,0)/(0,0;0,1000)"), true); } TEST(22b) @@ -1364,55 +1364,55 @@ TEST(22b) r.insert (poly); r.set_merged_semantics (false); - EXPECT_EQ (r.angle_check (0, 180.0, false).to_string (), "(0,0;1000,1000)/(1000,1000;1000,800);(1000,1000;1000,800)/(1000,800;200,800);(200,800;800,200)/(800,200;800,0);(800,200;800,0)/(800,0;0,0);(800,0;0,0)/(0,0;1000,1000)"); - EXPECT_EQ (r.angle_check (0, 180.0, true).to_string (), "(1000,800;200,800)/(200,800;800,200)"); - EXPECT_EQ (r.angle_check (45.0, 45.1, false).to_string (), "(0,0;1000,1000)/(1000,1000;1000,800);(800,0;0,0)/(0,0;1000,1000)"); - EXPECT_EQ (r.angle_check (315.0, 315.1, false).to_string (), "(1000,800;200,800)/(200,800;800,200)"); - EXPECT_EQ (r.angle_check (45.1, 315.0, true).to_string (), "(0,0;1000,1000)/(1000,1000;1000,800);(1000,800;200,800)/(200,800;800,200);(800,0;0,0)/(0,0;1000,1000)"); + EXPECT_EQ (db::compare (r.angle_check (0, 180.0, false), "(0,0;1000,1000)/(1000,1000;1000,800);(1000,1000;1000,800)/(1000,800;200,800);(200,800;800,200)/(800,200;800,0);(800,200;800,0)/(800,0;0,0);(800,0;0,0)/(0,0;1000,1000)"), true); + EXPECT_EQ (db::compare (r.angle_check (0, 180.0, true), "(1000,800;200,800)/(200,800;800,200)"), true); + EXPECT_EQ (db::compare (r.angle_check (45.0, 45.1, false), "(0,0;1000,1000)/(1000,1000;1000,800);(800,0;0,0)/(0,0;1000,1000)"), true); + EXPECT_EQ (db::compare (r.angle_check (315.0, 315.1, false), "(1000,800;200,800)/(200,800;800,200)"), true); + EXPECT_EQ (db::compare (r.angle_check (45.1, 315.0, true), "(0,0;1000,1000)/(1000,1000;1000,800);(1000,800;200,800)/(200,800;800,200);(800,0;0,0)/(0,0;1000,1000)"), true); } TEST(23) { db::Region r; - EXPECT_EQ (r.grid_check (10, 20).to_string (), ""); + EXPECT_EQ (db::compare (r.grid_check (10, 20), ""), true); r.insert (db::Box (db::Point (0, 0), db::Point (1000, 100))); r.insert (db::Box (db::Point (0, 100), db::Point (105, 300))); r.insert (db::Box (db::Point (910, 100), db::Point (1000, 300))); r.insert (db::Box (db::Point (0, 290), db::Point (1000, 500))); - EXPECT_EQ (r.grid_check (0, 0).to_string (), ""); - EXPECT_EQ (r.grid_check (5, 0).to_string (), ""); - EXPECT_EQ (r.grid_check (0, 10).to_string (), ""); - EXPECT_EQ (r.grid_check (10, 10).to_string (), "(105,100;105,100)/(105,100;105,100);(105,290;105,290)/(105,290;105,290)"); - EXPECT_EQ (r.grid_check (10, 20).to_string (), "(105,100;105,100)/(105,100;105,100);(910,290;910,290)/(910,290;910,290);(105,290;105,290)/(105,290;105,290)"); + EXPECT_EQ (db::compare (r.grid_check (0, 0), ""), true); + EXPECT_EQ (db::compare (r.grid_check (5, 0), ""), true); + EXPECT_EQ (db::compare (r.grid_check (0, 10), ""), true); + EXPECT_EQ (db::compare (r.grid_check (10, 10), "(105,100;105,100)/(105,100;105,100);(105,290;105,290)/(105,290;105,290)"), true); + EXPECT_EQ (db::compare (r.grid_check (10, 20), "(105,100;105,100)/(105,100;105,100);(910,290;910,290)/(910,290;910,290);(105,290;105,290)/(105,290;105,290)"), true); } TEST(24) { db::Region r; - EXPECT_EQ (r.snapped (10, 20).to_string (), ""); + EXPECT_EQ (db::compare (r.snapped (10, 20), ""), true); r.insert (db::Box (db::Point (0, 0), db::Point (1000, 100))); r.insert (db::Box (db::Point (0, 100), db::Point (105, 300))); r.insert (db::Box (db::Point (910, 100), db::Point (1000, 300))); r.insert (db::Box (db::Point (0, 290), db::Point (1000, 500))); - EXPECT_EQ (r.snapped (0, 0).to_string (), "(0,0;0,500;1000,500;1000,0/105,100;910,100;910,290;105,290)"); - EXPECT_EQ (r.snapped (5, 0).to_string (), "(0,0;0,500;1000,500;1000,0/105,100;910,100;910,290;105,290)"); - EXPECT_EQ (r.snapped (0, 10).to_string (), "(0,0;0,500;1000,500;1000,0/105,100;910,100;910,290;105,290)"); - EXPECT_EQ (r.snapped (10, 10).to_string (), "(0,0;0,500;1000,500;1000,0/110,100;910,100;910,290;110,290)"); - EXPECT_EQ (r.snapped (10, 20).to_string (), "(0,0;0,500;1000,500;1000,0/110,100;910,100;910,300;110,300)"); + EXPECT_EQ (db::compare (r.snapped (0, 0), "(0,0;0,500;1000,500;1000,0/105,100;910,100;910,290;105,290)"), true); + EXPECT_EQ (db::compare (r.snapped (5, 0), "(0,0;0,500;1000,500;1000,0/105,100;910,100;910,290;105,290)"), true); + EXPECT_EQ (db::compare (r.snapped (0, 10), "(0,0;0,500;1000,500;1000,0/105,100;910,100;910,290;105,290)"), true); + EXPECT_EQ (db::compare (r.snapped (10, 10), "(0,0;0,500;1000,500;1000,0/110,100;910,100;910,290;110,290)"), true); + EXPECT_EQ (db::compare (r.snapped (10, 20), "(0,0;0,500;1000,500;1000,0/110,100;910,100;910,300;110,300)"), true); } TEST(24b) { db::Region r; - EXPECT_EQ (r.snapped (10, 20).to_string (), ""); + EXPECT_EQ (db::compare (r.snapped (10, 20), ""), true); r.insert (db::Box (db::Point (-15, -15), db::Point (15, 15))); - EXPECT_EQ (r.snapped (10, 10).to_string (), "(-10,-10;-10,20;20,20;20,-10)"); + EXPECT_EQ (db::compare (r.snapped (10, 10), "(-10,-10;-10,20;20,20;20,-10)"), true); } TEST(25) @@ -1422,7 +1422,7 @@ TEST(25) r.insert (db::Box (db::Point (0, 0), db::Point (500, 1000))); r.insert (db::Box (db::Point (0, -500), db::Point (1000, 0))); - EXPECT_EQ (r.rounded_corners (50, 100, 16).to_string (), "(80,-500;43,-485;15,-457;0,-420;0,920;15,957;43,985;80,1000;420,1000;457,985;485,957;500,920;500,40;508,22;522,8;540,0;920,0;957,-15;985,-43;1000,-80;1000,-420;985,-457;957,-485;920,-500)"); + EXPECT_EQ (db::compare (r.rounded_corners (50, 100, 16), "(80,-500;43,-485;15,-457;0,-420;0,920;15,957;43,985;80,1000;420,1000;457,985;485,957;500,920;500,40;508,22;522,8;540,0;920,0;957,-15;985,-43;1000,-80;1000,-420;985,-457;957,-485;920,-500)"), true); db::Region rr = r; rr.round_corners (50, 100, 16); EXPECT_EQ (r.rounded_corners (50, 100, 16).to_string (), rr.to_string ()); @@ -1435,30 +1435,30 @@ TEST(26) r.insert (db::Box (db::Point (0, 0), db::Point (100, 200))); r.insert (db::Box (db::Point (50, 50), db::Point (150, 250))); - EXPECT_EQ ((r - db::Region ()).to_string (), "(0,0;0,200;100,200;100,0);(50,50;50,250;150,250;150,50)"); - EXPECT_EQ ((r | db::Region ()).to_string (), "(0,0;0,200;100,200;100,0);(50,50;50,250;150,250;150,50)"); - EXPECT_EQ ((r ^ db::Region ()).to_string (), "(0,0;0,200;100,200;100,0);(50,50;50,250;150,250;150,50)"); - EXPECT_EQ ((db::Region () - r).to_string (), ""); - EXPECT_EQ ((db::Region () | r).to_string (), "(0,0;0,200;100,200;100,0);(50,50;50,250;150,250;150,50)"); - EXPECT_EQ ((db::Region () ^ r).to_string (), "(0,0;0,200;100,200;100,0);(50,50;50,250;150,250;150,50)"); - EXPECT_EQ ((r & db::Region (db::Box (db::Point (20, 20), db::Point (120, 220)))).to_string (), "(20,20;20,200;100,200;100,20);(50,50;50,220;120,220;120,50)"); - EXPECT_EQ ((db::Region (db::Box (db::Point (20, 20), db::Point (120, 220))) & r).to_string (), "(20,20;20,200;100,200;100,20);(50,50;50,220;120,220;120,50)"); + EXPECT_EQ (db::compare ((r - db::Region ()), "(0,0;0,200;100,200;100,0);(50,50;50,250;150,250;150,50)"), true); + EXPECT_EQ (db::compare ((r | db::Region ()), "(0,0;0,200;100,200;100,0);(50,50;50,250;150,250;150,50)"), true); + EXPECT_EQ (db::compare ((r ^ db::Region ()), "(0,0;0,200;100,200;100,0);(50,50;50,250;150,250;150,50)"), true); + EXPECT_EQ (db::compare ((db::Region () - r), ""), true); + EXPECT_EQ (db::compare ((db::Region () | r), "(0,0;0,200;100,200;100,0);(50,50;50,250;150,250;150,50)"), true); + EXPECT_EQ (db::compare ((db::Region () ^ r), "(0,0;0,200;100,200;100,0);(50,50;50,250;150,250;150,50)"), true); + EXPECT_EQ (db::compare ((r & db::Region (db::Box (db::Point (20, 20), db::Point (120, 220)))), "(20,20;20,200;100,200;100,20);(50,50;50,220;120,220;120,50)"), true); + EXPECT_EQ (db::compare ((db::Region (db::Box (db::Point (20, 20), db::Point (120, 220))) & r), "(20,20;20,200;100,200;100,20);(50,50;50,220;120,220;120,50)"), true); r.set_strict_handling (true); - EXPECT_EQ ((r - db::Region ()).to_string (), "(0,0;0,200;50,200;50,250;150,250;150,50;100,50;100,0)"); - EXPECT_EQ ((r | db::Region ()).to_string (), "(0,0;0,200;50,200;50,250;150,250;150,50;100,50;100,0)"); - EXPECT_EQ ((r ^ db::Region ()).to_string (), "(0,0;0,200;50,200;50,250;150,250;150,50;100,50;100,0)"); - EXPECT_EQ ((db::Region () - r).to_string (), ""); - EXPECT_EQ ((db::Region () | r).to_string (), "(0,0;0,200;50,200;50,250;150,250;150,50;100,50;100,0)"); - EXPECT_EQ ((db::Region () ^ r).to_string (), "(0,0;0,200;50,200;50,250;150,250;150,50;100,50;100,0)"); - EXPECT_EQ ((r & db::Region (db::Box (db::Point (20, 20), db::Point (120, 220)))).to_string (), "(20,20;20,200;50,200;50,220;120,220;120,50;100,50;100,20)"); - EXPECT_EQ ((db::Region (db::Box (db::Point (20, 20), db::Point (120, 220))) & r).to_string (), "(20,20;20,200;50,200;50,220;120,220;120,50;100,50;100,20)"); + EXPECT_EQ (db::compare ((r - db::Region ()), "(0,0;0,200;50,200;50,250;150,250;150,50;100,50;100,0)"), true); + EXPECT_EQ (db::compare ((r | db::Region ()), "(0,0;0,200;50,200;50,250;150,250;150,50;100,50;100,0)"), true); + EXPECT_EQ (db::compare ((r ^ db::Region ()), "(0,0;0,200;50,200;50,250;150,250;150,50;100,50;100,0)"), true); + EXPECT_EQ (db::compare ((db::Region () - r), ""), true); + EXPECT_EQ (db::compare ((db::Region () | r), "(0,0;0,200;50,200;50,250;150,250;150,50;100,50;100,0)"), true); + EXPECT_EQ (db::compare ((db::Region () ^ r), "(0,0;0,200;50,200;50,250;150,250;150,50;100,50;100,0)"), true); + EXPECT_EQ (db::compare ((r & db::Region (db::Box (db::Point (20, 20), db::Point (120, 220)))), "(20,20;20,200;50,200;50,220;120,220;120,50;100,50;100,20)"), true); + EXPECT_EQ (db::compare ((db::Region (db::Box (db::Point (20, 20), db::Point (120, 220))) & r), "(20,20;20,200;50,200;50,220;120,220;120,50;100,50;100,20)"), true); r.set_strict_handling (false); - EXPECT_EQ ((r - db::Region ()).to_string (), "(0,0;0,200;100,200;100,0);(50,50;50,250;150,250;150,50)"); - EXPECT_EQ ((r | db::Region ()).to_string (), "(0,0;0,200;100,200;100,0);(50,50;50,250;150,250;150,50)"); - EXPECT_EQ ((r ^ db::Region ()).to_string (), "(0,0;0,200;100,200;100,0);(50,50;50,250;150,250;150,50)"); - EXPECT_EQ ((r & db::Region (db::Box (db::Point (20, 20), db::Point (120, 220)))).to_string (), "(20,20;20,200;100,200;100,20);(50,50;50,220;120,220;120,50)"); + EXPECT_EQ (db::compare ((r - db::Region ()), "(0,0;0,200;100,200;100,0);(50,50;50,250;150,250;150,50)"), true); + EXPECT_EQ (db::compare ((r | db::Region ()), "(0,0;0,200;100,200;100,0);(50,50;50,250;150,250;150,50)"), true); + EXPECT_EQ (db::compare ((r ^ db::Region ()), "(0,0;0,200;100,200;100,0);(50,50;50,250;150,250;150,50)"), true); + EXPECT_EQ (db::compare ((r & db::Region (db::Box (db::Point (20, 20), db::Point (120, 220)))), "(20,20;20,200;100,200;100,20);(50,50;50,220;120,220;120,50)"), true); } TEST(27) @@ -1467,12 +1467,12 @@ TEST(27) db::Region r; r.insert (db::Box (db::Point (0, 0), db::Point (100, 200))); - EXPECT_EQ (r.sized (db::Coord (-10), db::Coord (-20)).to_string (), "(10,20;10,180;90,180;90,20)"); - EXPECT_EQ (r.sized (db::Coord (-50), db::Coord (-20)).to_string (), ""); - EXPECT_EQ (r.sized (db::Coord (-50), db::Coord (-100)).to_string (), ""); - EXPECT_EQ (r.sized (db::Coord (-55), db::Coord (-20)).to_string (), ""); - EXPECT_EQ (r.sized (db::Coord (-10), db::Coord (-105)).to_string (), ""); - EXPECT_EQ (r.sized (db::Coord (-55), db::Coord (-105)).to_string (), ""); + EXPECT_EQ (db::compare (r.sized (db::Coord (-10), db::Coord (-20)), "(10,20;10,180;90,180;90,20)"), true); + EXPECT_EQ (db::compare (r.sized (db::Coord (-50), db::Coord (-20)), ""), true); + EXPECT_EQ (db::compare (r.sized (db::Coord (-50), db::Coord (-100)), ""), true); + EXPECT_EQ (db::compare (r.sized (db::Coord (-55), db::Coord (-20)), ""), true); + EXPECT_EQ (db::compare (r.sized (db::Coord (-10), db::Coord (-105)), ""), true); + EXPECT_EQ (db::compare (r.sized (db::Coord (-55), db::Coord (-105)), ""), true); } TEST(28) @@ -1484,8 +1484,8 @@ TEST(28) db::Region r2; r2.insert (db::Box (db::Point (100, 100), db::Point (200, 300))); - EXPECT_EQ ((r1 & r2).to_string (), ""); - EXPECT_EQ ((r1 & r2.sized (db::Coord (5), db::Coord (5))).to_string (), "(95,95;95,200;100,200;100,95)"); + EXPECT_EQ (db::compare ((r1 & r2), ""), true); + EXPECT_EQ (db::compare ((r1 & r2.sized (db::Coord (5), db::Coord (5))), "(95,95;95,200;100,200;100,95)"), true); } TEST(29) @@ -1498,84 +1498,84 @@ TEST(29) TEST(30a) { db::Region r; - EXPECT_EQ (r.selected_interacting (db::Edges (db::Edge (db::Point (20, 20), db::Point (30, 30)))).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (db::Edges (db::Edge (db::Point (20, 20), db::Point (30, 30)))), ""), true); r.insert (db::Box (db::Point (0, 0), db::Point (100, 200))); r.insert (db::Box (db::Point (-100, -100), db::Point (0, 0))); r.set_merged_semantics (false); - EXPECT_EQ (r.selected_interacting (db::Edges (db::Edge (db::Point (20, 20), db::Point (30, 30)))).to_string (), "(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_not_interacting (db::Edges (db::Edge (db::Point (20, 20), db::Point (30, 30)))).to_string (), "(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (db::Edges (db::Edge (db::Point (-20, -20), db::Point (30, 30)))).to_string (), "(-100,-100;-100,0;0,0;0,-100);(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_interacting (db::Edges (db::Edge (db::Point (-200, -200), db::Point (-190, -190)))).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (db::Edges (db::Edge (db::Point (20, 20), db::Point (30, 30)))), "(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (db::Edges (db::Edge (db::Point (20, 20), db::Point (30, 30)))), "(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Edges (db::Edge (db::Point (-20, -20), db::Point (30, 30)))), "(-100,-100;-100,0;0,0;0,-100);(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Edges (db::Edge (db::Point (-200, -200), db::Point (-190, -190)))), ""), true); db::Region rr = r; r.select_interacting (db::Edges (db::Edge (db::Point (-20, -20), db::Point (-10, -10)))); - EXPECT_EQ (r.to_string (), "(-100,-100;-100,0;0,0;0,-100)"); + EXPECT_EQ (db::compare (r, "(-100,-100;-100,0;0,0;0,-100)"), true); rr.select_not_interacting (db::Edges (db::Edge (db::Point (-20, -20), db::Point (-10, -10)))); - EXPECT_EQ (rr.to_string (), "(0,0;0,200;100,200;100,0)"); + EXPECT_EQ (db::compare (rr, "(0,0;0,200;100,200;100,0)"), true); r.clear (); r.insert(db::Box (db::Point (1000, 0), db::Point (6000, 4000))); - EXPECT_EQ (r.selected_interacting (db::Edges (db::Edge (db::Point (0, 4000), db::Point (2000, 6000)))).to_string (), ""); - EXPECT_EQ (r.selected_interacting (db::Edges (db::Edge (db::Point (1000, 4000), db::Point (2000, 6000)))).to_string (), "(1000,0;1000,4000;6000,4000;6000,0)"); - EXPECT_EQ (db::Edges (db::Edge (db::Point (0, 4000), db::Point (2000, 6000))).selected_interacting (r).to_string (), ""); - EXPECT_EQ (db::Edges (db::Edge (db::Point (1000, 4000), db::Point (2000, 6000))).selected_interacting (r).to_string (), "(1000,4000;2000,6000)"); - EXPECT_EQ (r.selected_interacting (db::Edges (db::Edge (db::Point (1000, 4001), db::Point (2000, 6000)))).to_string (), ""); - EXPECT_EQ (db::Edges (db::Edge (db::Point (1000, 4001), db::Point (2000, 6000))).selected_interacting (r).to_string (), ""); - EXPECT_EQ (r.selected_interacting (db::Edges (db::Edge (db::Point (1000, 3999), db::Point (1000, 6000)))).to_string (), "(1000,0;1000,4000;6000,4000;6000,0)"); - EXPECT_EQ (db::Edges (db::Edge (db::Point (1000, 3999), db::Point (1000, 6000))).selected_interacting (r).to_string (), "(1000,3999;1000,6000)"); + EXPECT_EQ (db::compare (r.selected_interacting (db::Edges (db::Edge (db::Point (0, 4000), db::Point (2000, 6000)))), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Edges (db::Edge (db::Point (1000, 4000), db::Point (2000, 6000)))), "(1000,0;1000,4000;6000,4000;6000,0)"), true); + EXPECT_EQ (db::compare (db::Edges (db::Edge (db::Point (0, 4000), db::Point (2000, 6000))).selected_interacting (r), ""), true); + EXPECT_EQ (db::compare (db::Edges (db::Edge (db::Point (1000, 4000), db::Point (2000, 6000))).selected_interacting (r), "(1000,4000;2000,6000)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Edges (db::Edge (db::Point (1000, 4001), db::Point (2000, 6000)))), ""), true); + EXPECT_EQ (db::compare (db::Edges (db::Edge (db::Point (1000, 4001), db::Point (2000, 6000))).selected_interacting (r), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Edges (db::Edge (db::Point (1000, 3999), db::Point (1000, 6000)))), "(1000,0;1000,4000;6000,4000;6000,0)"), true); + EXPECT_EQ (db::compare (db::Edges (db::Edge (db::Point (1000, 3999), db::Point (1000, 6000))).selected_interacting (r), "(1000,3999;1000,6000)"), true); } TEST(30b) { db::Region r; - EXPECT_EQ (r.selected_interacting (db::Edges (db::Edge (db::Point (20, 20), db::Point (30, 30)))).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (db::Edges (db::Edge (db::Point (20, 20), db::Point (30, 30)))), ""), true); r.insert (db::Box (db::Point (0, 0), db::Point (100, 200))); r.insert (db::Box (db::Point (-100, -100), db::Point (0, 0))); r.set_merged_semantics (true); r.set_min_coherence (true); - EXPECT_EQ (r.selected_interacting (db::Edges (db::Edge (db::Point (20, 20), db::Point (30, 30)))).to_string (), "(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_interacting (db::Edges (db::Edge (db::Point (-20, -20), db::Point (30, 30)))).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (db::Edges (db::Edge (db::Point (-200, -200), db::Point (-190, -190)))).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (db::Edges (db::Edge (db::Point (20, 20), db::Point (30, 30)))), "(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Edges (db::Edge (db::Point (-20, -20), db::Point (30, 30)))), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Edges (db::Edge (db::Point (-200, -200), db::Point (-190, -190)))), ""), true); r.select_interacting (db::Edges (db::Edge (db::Point (-20, -20), db::Point (-10, -10)))); - EXPECT_EQ (r.to_string (), "(-100,-100;-100,0;0,0;0,-100)"); + EXPECT_EQ (db::compare (r, "(-100,-100;-100,0;0,0;0,-100)"), true); } TEST(30c) { db::Region r; - EXPECT_EQ (r.selected_interacting (db::Edges (db::Edge (db::Point (20, 20), db::Point (30, 30)))).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (db::Edges (db::Edge (db::Point (20, 20), db::Point (30, 30)))), ""), true); r.insert (db::Box (db::Point (0, 0), db::Point (100, 200))); r.insert (db::Box (db::Point (-100, -100), db::Point (0, 0))); r.set_merged_semantics (true); r.set_min_coherence (false); - EXPECT_EQ (r.selected_interacting (db::Edges (db::Edge (db::Point (20, 20), db::Point (30, 30)))).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (db::Edges (db::Edge (db::Point (-20, -20), db::Point (30, 30)))).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (db::Edges (db::Edge (db::Point (-200, -200), db::Point (-190, -190)))).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (db::Edges (db::Edge (db::Point (20, 20), db::Point (30, 30)))), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Edges (db::Edge (db::Point (-20, -20), db::Point (30, 30)))), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Edges (db::Edge (db::Point (-200, -200), db::Point (-190, -190)))), ""), true); r.select_interacting (db::Edges (db::Edge (db::Point (-20, -20), db::Point (-10, -10)))); - EXPECT_EQ (r.to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); + EXPECT_EQ (db::compare (r, "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); } TEST(31) { db::Region r; - EXPECT_EQ (r.pull_interacting (db::Region (db::Box (db::Point (20, 20), db::Point (30, 30)))).to_string (), ""); + EXPECT_EQ (db::compare (r.pull_interacting (db::Region (db::Box (db::Point (20, 20), db::Point (30, 30)))), ""), true); r.insert (db::Box (db::Point (0, 0), db::Point (100, 200))); r.insert (db::Box (db::Point (-100, -100), db::Point (0, 0))); r.set_merged_semantics (true); r.set_min_coherence (false); - EXPECT_EQ (r.pull_interacting (db::Region (db::Box (db::Point (20, 20), db::Point (30, 30)))).to_string (), "(20,20;20,30;30,30;30,20)"); - EXPECT_EQ (r.pull_interacting (db::Region (db::Box (db::Point (-20, -20), db::Point (30, 30)))).to_string (), "(-20,-20;-20,30;30,30;30,-20)"); - EXPECT_EQ (r.pull_interacting (db::Region (db::Box (db::Point (-200, -200), db::Point (-190, -190)))).to_string (), ""); + EXPECT_EQ (db::compare (r.pull_interacting (db::Region (db::Box (db::Point (20, 20), db::Point (30, 30)))), "(20,20;20,30;30,30;30,20)"), true); + EXPECT_EQ (db::compare (r.pull_interacting (db::Region (db::Box (db::Point (-20, -20), db::Point (30, 30)))), "(-20,-20;-20,30;30,30;30,-20)"), true); + EXPECT_EQ (db::compare (r.pull_interacting (db::Region (db::Box (db::Point (-200, -200), db::Point (-190, -190)))), ""), true); r.clear (); r.insert(db::Box (db::Point (1000, 0), db::Point (6000, 4000))); - EXPECT_EQ (r.pull_overlapping (db::Region (db::Box (db::Point (0, 4000), db::Point (2000, 6000)))).to_string (), ""); - EXPECT_EQ (db::Region (db::Box (db::Point (0, 4000), db::Point (2000, 6000))).pull_overlapping (r).to_string (), ""); - EXPECT_EQ (r.pull_overlapping (db::Region (db::Box (db::Point (0, 4000), db::Point (1000, 6000)))).to_string (), ""); - EXPECT_EQ (db::Region (db::Box (db::Point (0, 4000), db::Point (1000, 6000))).pull_overlapping (r).to_string (), ""); - EXPECT_EQ (r.pull_overlapping (db::Region (db::Box (db::Point (0, 4001), db::Point (2000, 6000)))).to_string (), ""); - EXPECT_EQ (db::Region (db::Box (db::Point (0, 4001), db::Point (2000, 6000))).pull_overlapping (r).to_string (), ""); - EXPECT_EQ (r.pull_overlapping (db::Region (db::Box (db::Point (0, 3999), db::Point (1001, 6000)))).to_string (), "(0,3999;0,6000;1001,6000;1001,3999)"); - EXPECT_EQ (db::Region (db::Box (db::Point (0, 3999), db::Point (1001, 6000))).pull_overlapping (r).to_string (), "(1000,0;1000,4000;6000,4000;6000,0)"); + EXPECT_EQ (db::compare (r.pull_overlapping (db::Region (db::Box (db::Point (0, 4000), db::Point (2000, 6000)))), ""), true); + EXPECT_EQ (db::compare (db::Region (db::Box (db::Point (0, 4000), db::Point (2000, 6000))).pull_overlapping (r), ""), true); + EXPECT_EQ (db::compare (r.pull_overlapping (db::Region (db::Box (db::Point (0, 4000), db::Point (1000, 6000)))), ""), true); + EXPECT_EQ (db::compare (db::Region (db::Box (db::Point (0, 4000), db::Point (1000, 6000))).pull_overlapping (r), ""), true); + EXPECT_EQ (db::compare (r.pull_overlapping (db::Region (db::Box (db::Point (0, 4001), db::Point (2000, 6000)))), ""), true); + EXPECT_EQ (db::compare (db::Region (db::Box (db::Point (0, 4001), db::Point (2000, 6000))).pull_overlapping (r), ""), true); + EXPECT_EQ (db::compare (r.pull_overlapping (db::Region (db::Box (db::Point (0, 3999), db::Point (1001, 6000)))), "(0,3999;0,6000;1001,6000;1001,3999)"), true); + EXPECT_EQ (db::compare (db::Region (db::Box (db::Point (0, 3999), db::Point (1001, 6000))).pull_overlapping (r), "(1000,0;1000,4000;6000,4000;6000,0)"), true); } TEST(32a_snap) @@ -1681,79 +1681,79 @@ TEST(33b_snap) TEST(34a) { db::Region r; - EXPECT_EQ (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (30, 30))))).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (30, 30))))), ""), true); r.insert (db::Box (db::Point (0, 0), db::Point (100, 200))); r.insert (db::Box (db::Point (-100, -100), db::Point (0, 0))); r.set_merged_semantics (false); - EXPECT_EQ (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (30, 30))))).to_string (), "(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_not_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (30, 30))))).to_string (), "(-100,-100;-100,0;0,0;0,-100)"); + EXPECT_EQ (db::compare (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (30, 30))))), "(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (30, 30))))), "(-100,-100;-100,0;0,0;0,-100)"), true); db::Texts tt; tt.insert (db::Text ("abc", db::Trans (db::Vector (30, 30)))); tt.insert (db::Text ("xyz", db::Trans (db::Vector (-100, 0)))); - EXPECT_EQ (r.selected_interacting (tt).to_string (), "(-100,-100;-100,0;0,0;0,-100);(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (300, 30))))).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (tt), "(-100,-100;-100,0;0,0;0,-100);(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (300, 30))))), ""), true); db::Region rr = r; r.select_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (-10, -10))))); - EXPECT_EQ (r.to_string (), "(-100,-100;-100,0;0,0;0,-100)"); + EXPECT_EQ (db::compare (r, "(-100,-100;-100,0;0,0;0,-100)"), true); rr.select_not_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (-10, -10))))); - EXPECT_EQ (rr.to_string (), "(0,0;0,200;100,200;100,0)"); + EXPECT_EQ (db::compare (rr, "(0,0;0,200;100,200;100,0)"), true); r.clear (); r.insert(db::Box (db::Point (1000, 0), db::Point (6000, 4000))); - EXPECT_EQ (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (2000, 6000))))).to_string (), ""); - EXPECT_EQ (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (2000, 2000))))).to_string (), "(1000,0;1000,4000;6000,4000;6000,0)"); - EXPECT_EQ (db::Texts (db::Text ("abc", db::Trans (db::Vector (2000, 6000)))).selected_interacting (r).to_string (), ""); - EXPECT_EQ (db::Texts (db::Text ("abc", db::Trans (db::Vector (2000, 2000)))).selected_interacting (r).to_string (), "('abc',r0 2000,2000)"); - EXPECT_EQ (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (2000, 6000))))).to_string (), ""); - EXPECT_EQ (db::Texts (db::Text ("abc", db::Trans (db::Vector (2000, 6000)))).selected_interacting (r).to_string (), ""); - EXPECT_EQ (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (1000, 2000))))).to_string (), "(1000,0;1000,4000;6000,4000;6000,0)"); - EXPECT_EQ (db::Texts (db::Text ("abc", db::Trans (db::Vector (1000, 2000)))).selected_interacting (r).to_string (), "('abc',r0 1000,2000)"); + EXPECT_EQ (db::compare (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (2000, 6000))))), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (2000, 2000))))), "(1000,0;1000,4000;6000,4000;6000,0)"), true); + EXPECT_EQ (db::compare (db::Texts (db::Text ("abc", db::Trans (db::Vector (2000, 6000)))).selected_interacting (r), ""), true); + EXPECT_EQ (db::compare (db::Texts (db::Text ("abc", db::Trans (db::Vector (2000, 2000)))).selected_interacting (r), "('abc',r0 2000,2000)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (2000, 6000))))), ""), true); + EXPECT_EQ (db::compare (db::Texts (db::Text ("abc", db::Trans (db::Vector (2000, 6000)))).selected_interacting (r), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (1000, 2000))))), "(1000,0;1000,4000;6000,4000;6000,0)"), true); + EXPECT_EQ (db::compare (db::Texts (db::Text ("abc", db::Trans (db::Vector (1000, 2000)))).selected_interacting (r), "('abc',r0 1000,2000)"), true); } TEST(34b) { db::Region r; - EXPECT_EQ (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (30, 30))))).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (30, 30))))), ""), true); r.insert (db::Box (db::Point (0, 0), db::Point (100, 200))); r.insert (db::Box (db::Point (-100, -100), db::Point (0, 0))); r.set_merged_semantics (true); r.set_min_coherence (true); - EXPECT_EQ (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (30, 30))))).to_string (), "(0,0;0,200;100,200;100,0)"); + EXPECT_EQ (db::compare (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (30, 30))))), "(0,0;0,200;100,200;100,0)"), true); db::Texts tt; tt.insert (db::Text ("abc", db::Trans (db::Vector (30, 30)))); tt.insert (db::Text ("xyz", db::Trans (db::Vector (-100, 0)))); - EXPECT_EQ (r.selected_interacting (tt).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (-190, -190))))).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (tt), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (-190, -190))))), ""), true); r.select_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (-10, -10))))); - EXPECT_EQ (r.to_string (), "(-100,-100;-100,0;0,0;0,-100)"); + EXPECT_EQ (db::compare (r, "(-100,-100;-100,0;0,0;0,-100)"), true); } TEST(34c) { db::Region r; - EXPECT_EQ (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (30, 30))))).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (30, 30))))), ""), true); r.insert (db::Box (db::Point (0, 0), db::Point (100, 200))); r.insert (db::Box (db::Point (-100, -100), db::Point (0, 0))); r.set_merged_semantics (true); r.set_min_coherence (false); - EXPECT_EQ (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (30, 30))))).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (0, 0))))).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (-190, -190))))).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (30, 30))))), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (0, 0))))), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (-190, -190))))), ""), true); r.select_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (-10, -10))))); - EXPECT_EQ (r.to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); + EXPECT_EQ (db::compare (r, "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); } TEST(34d) { db::Region r; - EXPECT_EQ (r.pull_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (30, 30))))).to_string (), ""); + EXPECT_EQ (db::compare (r.pull_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (30, 30))))), ""), true); r.insert (db::Box (db::Point (0, 0), db::Point (100, 200))); r.insert (db::Box (db::Point (-100, -100), db::Point (0, 0))); r.set_merged_semantics (true); r.set_min_coherence (false); - EXPECT_EQ (r.pull_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (30, 30))))).to_string (), "('abc',r0 30,30)"); - EXPECT_EQ (r.pull_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (0, 0))))).to_string (), "('abc',r0 0,0)"); - EXPECT_EQ (r.pull_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (-190, -190))))).to_string (), ""); + EXPECT_EQ (db::compare (r.pull_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (30, 30))))), "('abc',r0 30,30)"), true); + EXPECT_EQ (db::compare (r.pull_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (0, 0))))), "('abc',r0 0,0)"), true); + EXPECT_EQ (db::compare (r.pull_interacting (db::Texts (db::Text ("abc", db::Trans (db::Vector (-190, -190))))), ""), true); } TEST(35a_interact_with_count_region) @@ -1775,57 +1775,57 @@ TEST(35a_interact_with_count_region) rr.insert (db::Box (db::Point (90, -10), db::Point (110, 10))); rr.insert (db::Box (db::Point (-110, -110), db::Point (-90, -90))); - EXPECT_EQ (r.selected_interacting (empty).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr, 0, 2).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr, 1, 2).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr, 1, 4).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr, 2, 4).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr, 2, 1).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr, 3, 4).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr, 4, 5).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr, 5, 5).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr2).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr2, 1, 2).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr2, 1, 4).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr2, 2, 5).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr2, 4, 5).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (empty), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 0, 2), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 1, 2), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 1, 4), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 2, 4), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 2, 1), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 3, 4), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 4, 5), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 5, 5), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr2), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr2, 1, 2), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr2, 1, 4), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr2, 2, 5), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr2, 4, 5), ""), true); - EXPECT_EQ (r.selected_not_interacting (empty).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 0, 2).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr, 1, 2).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr, 1, 4).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 2, 4).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 2, 1).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr, 3, 4).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 4, 5).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 5, 5).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr2).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr2, 1, 2).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr2, 1, 4).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr2, 2, 5).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr2, 4, 5).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); + EXPECT_EQ (db::compare (r.selected_not_interacting (empty), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 0, 2), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 1, 2), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 1, 4), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 2, 4), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 2, 1), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 3, 4), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 4, 5), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 5, 5), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr2), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr2, 1, 2), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr2, 1, 4), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr2, 2, 5), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr2, 4, 5), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); r.set_merged_semantics (false); - EXPECT_EQ (r.selected_interacting (empty).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr, 0, 2).to_string (), "(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_interacting (rr, 1, 2).to_string (), "(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_interacting (rr, 1, 4).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr, 2, 4).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr, 2, 1).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr, 3, 4).to_string (), "(-100,-100;-100,0;0,0;0,-100)"); + EXPECT_EQ (db::compare (r.selected_interacting (empty), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 0, 2), "(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 1, 2), "(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 1, 4), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 2, 4), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 2, 1), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 3, 4), "(-100,-100;-100,0;0,0;0,-100)"), true); - EXPECT_EQ (r.selected_not_interacting (empty).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 0, 2).to_string (), "(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr, 1, 2).to_string (), "(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr, 1, 4).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 2, 4).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 2, 1).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr, 3, 4).to_string (), "(0,0;0,200;100,200;100,0)"); + EXPECT_EQ (db::compare (r.selected_not_interacting (empty), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 0, 2), "(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 1, 2), "(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 1, 4), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 2, 4), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 2, 1), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 3, 4), "(0,0;0,200;100,200;100,0)"), true); } TEST(35b_interact_with_count_edge) @@ -1847,57 +1847,57 @@ TEST(35b_interact_with_count_edge) rr.insert (db::Edge (db::Point (90, -10), db::Point (110, 10))); rr.insert (db::Edge (db::Point (-110, -110), db::Point (-90, -90))); - EXPECT_EQ (r.selected_interacting (empty).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr, 0, 2).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr, 1, 2).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr, 1, 4).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr, 2, 4).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr, 2, 1).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr, 3, 4).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr, 4, 5).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr, 5, 5).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr2).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr2, 1, 2).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr2, 1, 4).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr2, 2, 5).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr2, 4, 5).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (empty), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 0, 2), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 1, 2), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 1, 4), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 2, 4), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 2, 1), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 3, 4), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 4, 5), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 5, 5), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr2), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr2, 1, 2), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr2, 1, 4), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr2, 2, 5), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr2, 4, 5), ""), true); - EXPECT_EQ (r.selected_not_interacting (empty).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 0, 2).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr, 1, 2).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr, 1, 4).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 2, 4).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 2, 1).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr, 3, 4).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 4, 5).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 5, 5).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr2).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr2, 1, 2).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr2, 1, 4).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr2, 2, 5).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr2, 4, 5).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); + EXPECT_EQ (db::compare (r.selected_not_interacting (empty), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 0, 2), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 1, 2), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 1, 4), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 2, 4), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 2, 1), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 3, 4), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 4, 5), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 5, 5), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr2), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr2, 1, 2), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr2, 1, 4), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr2, 2, 5), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr2, 4, 5), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); r.set_merged_semantics (false); - EXPECT_EQ (r.selected_interacting (empty).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr).to_string (), "(-100,-100;-100,0;0,0;0,-100);(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_interacting (rr, 0, 2).to_string (), "(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_interacting (rr, 1, 2).to_string (), "(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_interacting (rr, 1, 4).to_string (), "(-100,-100;-100,0;0,0;0,-100);(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_interacting (rr, 2, 4).to_string (), "(-100,-100;-100,0;0,0;0,-100);(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_interacting (rr, 2, 1).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr, 3, 4).to_string (), "(-100,-100;-100,0;0,0;0,-100)"); + EXPECT_EQ (db::compare (r.selected_interacting (empty), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr), "(-100,-100;-100,0;0,0;0,-100);(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 0, 2), "(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 1, 2), "(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 1, 4), "(-100,-100;-100,0;0,0;0,-100);(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 2, 4), "(-100,-100;-100,0;0,0;0,-100);(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 2, 1), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 3, 4), "(-100,-100;-100,0;0,0;0,-100)"), true); - EXPECT_EQ (r.selected_not_interacting (empty).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 0, 2).to_string (), "(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr, 1, 2).to_string (), "(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr, 1, 4).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 2, 4).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 2, 1).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr, 3, 4).to_string (), "(0,0;0,200;100,200;100,0)"); + EXPECT_EQ (db::compare (r.selected_not_interacting (empty), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 0, 2), "(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 1, 2), "(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 1, 4), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 2, 4), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 2, 1), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 3, 4), "(0,0;0,200;100,200;100,0)"), true); } TEST(35c_interact_with_count_text) @@ -1918,57 +1918,57 @@ TEST(35c_interact_with_count_text) rr.insert (db::Text ("x", db::Trans (db::Vector (100, 0)))); rr.insert (db::Text ("y", db::Trans (db::Vector (-100, -100)))); - EXPECT_EQ (r.selected_interacting (empty).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr, 0, 2).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr, 1, 2).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr, 1, 4).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr, 2, 4).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr, 2, 1).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr, 3, 4).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr, 4, 5).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr, 5, 5).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr2).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr2, 1, 2).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr2, 1, 4).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr2, 2, 5).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_interacting (rr2, 4, 5).to_string (), ""); + EXPECT_EQ (db::compare (r.selected_interacting (empty), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 0, 2), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 1, 2), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 1, 4), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 2, 4), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 2, 1), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 3, 4), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 4, 5), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 5, 5), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr2), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr2, 1, 2), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr2, 1, 4), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr2, 2, 5), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr2, 4, 5), ""), true); - EXPECT_EQ (r.selected_not_interacting (empty).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 0, 2).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr, 1, 2).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr, 1, 4).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 2, 4).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 2, 1).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr, 3, 4).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 4, 5).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 5, 5).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr2).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr2, 1, 2).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr2, 1, 4).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr2, 2, 5).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr2, 4, 5).to_string (), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"); + EXPECT_EQ (db::compare (r.selected_not_interacting (empty), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 0, 2), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 1, 2), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 1, 4), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 2, 4), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 2, 1), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 3, 4), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 4, 5), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 5, 5), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr2), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr2, 1, 2), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr2, 1, 4), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr2, 2, 5), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr2, 4, 5), "(-100,-100;-100,0;0,0;0,200;100,200;100,0;0,0;0,-100)"), true); r.set_merged_semantics (false); - EXPECT_EQ (r.selected_interacting (empty).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr).to_string (), "(-100,-100;-100,0;0,0;0,-100);(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_interacting (rr, 0, 2).to_string (), "(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_interacting (rr, 1, 2).to_string (), "(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_interacting (rr, 1, 4).to_string (), "(-100,-100;-100,0;0,0;0,-100);(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_interacting (rr, 2, 4).to_string (), "(-100,-100;-100,0;0,0;0,-100);(0,0;0,200;100,200;100,0)"); - EXPECT_EQ (r.selected_interacting (rr, 2, 1).to_string (), ""); - EXPECT_EQ (r.selected_interacting (rr, 3, 4).to_string (), "(-100,-100;-100,0;0,0;0,-100)"); + EXPECT_EQ (db::compare (r.selected_interacting (empty), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr), "(-100,-100;-100,0;0,0;0,-100);(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 0, 2), "(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 1, 2), "(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 1, 4), "(-100,-100;-100,0;0,0;0,-100);(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 2, 4), "(-100,-100;-100,0;0,0;0,-100);(0,0;0,200;100,200;100,0)"), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 2, 1), ""), true); + EXPECT_EQ (db::compare (r.selected_interacting (rr, 3, 4), "(-100,-100;-100,0;0,0;0,-100)"), true); - EXPECT_EQ (r.selected_not_interacting (empty).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 0, 2).to_string (), "(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr, 1, 2).to_string (), "(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr, 1, 4).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 2, 4).to_string (), ""); - EXPECT_EQ (r.selected_not_interacting (rr, 2, 1).to_string (), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"); - EXPECT_EQ (r.selected_not_interacting (rr, 3, 4).to_string (), "(0,0;0,200;100,200;100,0)"); + EXPECT_EQ (db::compare (r.selected_not_interacting (empty), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 0, 2), "(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 1, 2), "(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 1, 4), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 2, 4), ""), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 2, 1), "(0,0;0,200;100,200;100,0);(-100,-100;-100,0;0,0;0,-100)"), true); + EXPECT_EQ (db::compare (r.selected_not_interacting (rr, 3, 4), "(0,0;0,200;100,200;100,0)"), true); } TEST(100_Processors) @@ -1979,30 +1979,30 @@ TEST(100_Processors) r.insert (db::Box (db::Point (0, 300), db::Point (200, 400))); r.insert (db::Box (db::Point (100, 300), db::Point (200, 500))); - EXPECT_EQ (r.processed (db::CornersAsDots (-180.0, true, 180.0, true)).to_string (), "(100,0;100,0);(0,0;0,0);(0,200;0,200);(100,200;100,200);(200,300;200,300);(0,300;0,300);(0,400;0,400);(100,400;100,400);(100,500;100,500);(200,500;200,500)"); - EXPECT_EQ (r.processed (db::CornersAsDots (0.0, true, 180.0, true)).to_string (), "(100,400;100,400)"); - EXPECT_EQ (r.processed (db::CornersAsDots (-90.0, true, 90.0, true)).to_string (), "(100,0;100,0);(0,0;0,0);(0,200;0,200);(100,200;100,200);(200,300;200,300);(0,300;0,300);(0,400;0,400);(100,400;100,400);(100,500;100,500);(200,500;200,500)"); - EXPECT_EQ (r.processed (db::CornersAsDots (-90.0, false, 90.0, true)).to_string (), "(100,400;100,400)"); - EXPECT_EQ (r.processed (db::CornersAsDots (-90.0, true, 90.0, false)).to_string (), "(100,0;100,0);(0,0;0,0);(0,200;0,200);(100,200;100,200);(200,300;200,300);(0,300;0,300);(0,400;0,400);(100,500;100,500);(200,500;200,500)"); - EXPECT_EQ (r.processed (db::CornersAsDots (-90.0, false, 90.0, false)).to_string (), ""); + EXPECT_EQ (db::compare (r.processed (db::CornersAsDots (-180.0, true, 180.0, true)), "(100,0;100,0);(0,0;0,0);(0,200;0,200);(100,200;100,200);(200,300;200,300);(0,300;0,300);(0,400;0,400);(100,400;100,400);(100,500;100,500);(200,500;200,500)"), true); + EXPECT_EQ (db::compare (r.processed (db::CornersAsDots (0.0, true, 180.0, true)), "(100,400;100,400)"), true); + EXPECT_EQ (db::compare (r.processed (db::CornersAsDots (-90.0, true, 90.0, true)), "(100,0;100,0);(0,0;0,0);(0,200;0,200);(100,200;100,200);(200,300;200,300);(0,300;0,300);(0,400;0,400);(100,400;100,400);(100,500;100,500);(200,500;200,500)"), true); + EXPECT_EQ (db::compare (r.processed (db::CornersAsDots (-90.0, false, 90.0, true)), "(100,400;100,400)"), true); + EXPECT_EQ (db::compare (r.processed (db::CornersAsDots (-90.0, true, 90.0, false)), "(100,0;100,0);(0,0;0,0);(0,200;0,200);(100,200;100,200);(200,300;200,300);(0,300;0,300);(0,400;0,400);(100,500;100,500);(200,500;200,500)"), true); + EXPECT_EQ (db::compare (r.processed (db::CornersAsDots (-90.0, false, 90.0, false)), ""), true); db::Region ext; r.processed (db::CornersAsDots (0.0, true, 180.0, true)).extended (ext, 10, 10, 20, 20); - EXPECT_EQ (ext.to_string (), "(90,380;90,420;110,420;110,380)"); - EXPECT_EQ (r.processed (db::CornersAsRectangles (-180.0, true, 180.0, true, 2)).to_string (), "(98,-2;98,2;102,2;102,-2);(-2,-2;-2,2;2,2;2,-2);(-2,198;-2,202;2,202;2,198);(98,198;98,202;102,202;102,198);(198,298;198,302;202,302;202,298);(-2,298;-2,302;2,302;2,298);(-2,398;-2,402;2,402;2,398);(98,398;98,402;102,402;102,398);(98,498;98,502;102,502;102,498);(198,498;198,502;202,502;202,498)"); - EXPECT_EQ (r.processed (db::CornersAsRectangles (0.0, true, 180.0, true, 2)).to_string (), "(98,398;98,402;102,402;102,398)"); + EXPECT_EQ (db::compare (ext, "(90,380;90,420;110,420;110,380)"), true); + EXPECT_EQ (db::compare (r.processed (db::CornersAsRectangles (-180.0, true, 180.0, true, 2)), "(98,-2;98,2;102,2;102,-2);(-2,-2;-2,2;2,2;2,-2);(-2,198;-2,202;2,202;2,198);(98,198;98,202;102,202;102,198);(198,298;198,302;202,302;202,298);(-2,298;-2,302;2,302;2,298);(-2,398;-2,402;2,402;2,398);(98,398;98,402;102,402;102,398);(98,498;98,502;102,502;102,498);(198,498;198,502;202,502;202,498)"), true); + EXPECT_EQ (db::compare (r.processed (db::CornersAsRectangles (0.0, true, 180.0, true, 2)), "(98,398;98,402;102,402;102,398)"), true); - EXPECT_EQ (r.processed (db::extents_processor (0, 0)).to_string (), "(0,0;0,200;100,200;100,0);(0,300;0,500;200,500;200,300)"); - EXPECT_EQ (r.processed (db::extents_processor (10, 20)).to_string (), "(-10,-20;-10,220;110,220;110,-20);(-10,280;-10,520;210,520;210,280)"); - EXPECT_EQ (r.processed (db::RelativeExtents (0, 0, 1.0, 1.0, 0, 0)).to_string (), "(0,0;0,200;100,200;100,0);(0,300;0,500;200,500;200,300)"); - EXPECT_EQ (r.processed (db::RelativeExtents (0.25, 0.4, 0.75, 0.6, 10, 20)).to_string (), "(15,60;15,140;85,140;85,60);(40,360;40,440;160,440;160,360)"); - EXPECT_EQ (r.processed (db::RelativeExtentsAsEdges (0, 0, 1.0, 1.0)).to_string (), "(0,0;100,200);(0,300;200,500)"); - EXPECT_EQ (r.processed (db::RelativeExtentsAsEdges (0.5, 0.5, 0.5, 0.5)).to_string (), "(50,100;50,100);(100,400;100,400)"); - EXPECT_EQ (r.processed (db::RelativeExtentsAsEdges (0.25, 0.4, 0.75, 0.6)).to_string (), "(25,80;75,120);(50,380;150,420)"); + EXPECT_EQ (db::compare (r.processed (db::extents_processor (0, 0)), "(0,0;0,200;100,200;100,0);(0,300;0,500;200,500;200,300)"), true); + EXPECT_EQ (db::compare (r.processed (db::extents_processor (10, 20)), "(-10,-20;-10,220;110,220;110,-20);(-10,280;-10,520;210,520;210,280)"), true); + EXPECT_EQ (db::compare (r.processed (db::RelativeExtents (0, 0, 1.0, 1.0, 0, 0)), "(0,0;0,200;100,200;100,0);(0,300;0,500;200,500;200,300)"), true); + EXPECT_EQ (db::compare (r.processed (db::RelativeExtents (0.25, 0.4, 0.75, 0.6, 10, 20)), "(15,60;15,140;85,140;85,60);(40,360;40,440;160,440;160,360)"), true); + EXPECT_EQ (db::compare (r.processed (db::RelativeExtentsAsEdges (0, 0, 1.0, 1.0)), "(0,0;100,200);(0,300;200,500)"), true); + EXPECT_EQ (db::compare (r.processed (db::RelativeExtentsAsEdges (0.5, 0.5, 0.5, 0.5)), "(50,100;50,100);(100,400;100,400)"), true); + EXPECT_EQ (db::compare (r.processed (db::RelativeExtentsAsEdges (0.25, 0.4, 0.75, 0.6)), "(25,80;75,120);(50,380;150,420)"), true); - EXPECT_EQ (r.processed (db::minkowsky_sum_computation (db::Box (-10, -20, 30, 40))).to_string (), "(-10,-20;-10,240;130,240;130,-20);(-10,280;-10,440;90,440;90,540;230,540;230,280)"); - EXPECT_EQ (r.processed (db::minkowsky_sum_computation (db::Edge (-10, 0, 30, 0))).to_string (), "(-10,0;-10,200;130,200;130,0);(-10,300;-10,400;90,400;90,500;230,500;230,300)"); + EXPECT_EQ (db::compare (r.processed (db::minkowsky_sum_computation (db::Box (-10, -20, 30, 40))), "(-10,-20;-10,240;130,240;130,-20);(-10,280;-10,440;90,440;90,540;230,540;230,280)"), true); + EXPECT_EQ (db::compare (r.processed (db::minkowsky_sum_computation (db::Edge (-10, 0, 30, 0))), "(-10,0;-10,200;130,200;130,0);(-10,300;-10,400;90,400;90,500;230,500;230,300)"), true); - EXPECT_EQ (r.processed (db::TrapezoidDecomposition (db::TD_htrapezoids)).to_string (), "(0,0;0,200;100,200;100,0);(100,300;100,500;200,500;200,300);(0,300;0,400;100,400;100,300)"); + EXPECT_EQ (db::compare (r.processed (db::TrapezoidDecomposition (db::TD_htrapezoids)), "(0,0;0,200;100,200;100,0);(100,300;100,500;200,500;200,300);(0,300;0,400;100,400;100,300)"), true); EXPECT_EQ (r.processed (db::ConvexDecomposition (db::PO_vertical)).to_string (), "(0,0;0,200;100,200;100,0);(100,300;100,500;200,500;200,300);(0,300;0,400;100,400;100,300)"); EXPECT_EQ (r.processed (db::ConvexDecomposition (db::PO_horizontal)).to_string (), "(0,0;0,200;100,200;100,0);(100,400;100,500;200,500;200,400);(0,300;0,400;200,400;200,300)"); } @@ -2038,14 +2038,14 @@ TEST(issue_277) r.insert (db::Box (0, 0, 400, 400)); r.insert (db::Box (400, 400, 800, 800)); - EXPECT_EQ (r.sized (1).merged (false, 1).to_string (), ""); + EXPECT_EQ (db::compare (r.sized (1).merged (false, 1), ""), true); r.set_min_coherence (true); - EXPECT_EQ (r.sized (1).merged (false, 1).to_string (), "(399,399;399,401;401,401;401,399)"); + EXPECT_EQ (db::compare (r.sized (1).merged (false, 1), "(399,399;399,401;401,401;401,399)"), true); r.merge (); - EXPECT_EQ (r.sized (1).merged (false, 1).to_string (), "(399,399;399,401;401,401;401,399)"); + EXPECT_EQ (db::compare (r.sized (1).merged (false, 1), "(399,399;399,401;401,401;401,399)"), true); r.set_min_coherence (false); // needs to merge again - EXPECT_EQ (r.sized (1).merged (false, 1).to_string (), ""); + EXPECT_EQ (db::compare (r.sized (1).merged (false, 1), ""), true); }