mirror of https://github.com/KLayout/klayout.git
Introduced normalization into region/edges/edge pairs/texts tests to get rid of platform dependency because of unordered_set implementation details.
This commit is contained in:
parent
3677a36804
commit
11e9f89fc2
|
|
@ -20,8 +20,6 @@
|
|||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include "dbEdgePair.h"
|
||||
#include "dbHash.h"
|
||||
#include "tlUnitTest.h"
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
#include "dbEdgePairs.h"
|
||||
#include "dbEdges.h"
|
||||
#include "dbRegion.h"
|
||||
#include "dbTestSupport.h"
|
||||
|
||||
TEST(1)
|
||||
{
|
||||
|
|
@ -87,27 +88,27 @@ TEST(2)
|
|||
ep.insert (db::EdgePair (db::Edge (db::Point (10, 20), db::Point (110, 120)), db::Edge (db::Point (-10, -20), db::Point (90, 80))));
|
||||
ep.insert (db::EdgePair (db::Edge (db::Point (10, 20), db::Point (110, 120)), db::Edge (db::Point (90, 80), db::Point (-10, -20))));
|
||||
|
||||
EXPECT_EQ (ep.to_string (), "(10,20;110,120)/(-10,-20;90,80);(10,20;110,120)/(90,80;-10,-20)");
|
||||
EXPECT_EQ (db::compare (ep, "(10,20;110,120)/(-10,-20;90,80);(10,20;110,120)/(90,80;-10,-20)"), true);
|
||||
|
||||
db::EdgePairs ee;
|
||||
std::string s = ep.to_string ();
|
||||
tl::Extractor ex (s.c_str ());
|
||||
EXPECT_EQ (ex.try_read (ee), true);
|
||||
EXPECT_EQ (ee.to_string (), "(10,20;110,120)/(-10,-20;90,80);(10,20;110,120)/(90,80;-10,-20)");
|
||||
EXPECT_EQ (db::compare (ee, "(10,20;110,120)/(-10,-20;90,80);(10,20;110,120)/(90,80;-10,-20)"), true);
|
||||
|
||||
db::Edges e;
|
||||
ep.edges (e);
|
||||
EXPECT_EQ (e.to_string (), "(10,20;110,120);(-10,-20;90,80);(10,20;110,120);(90,80;-10,-20)");
|
||||
EXPECT_EQ (db::compare (e, "(10,20;110,120);(-10,-20;90,80);(10,20;110,120);(90,80;-10,-20)"), true);
|
||||
e.clear ();
|
||||
ep.first_edges (e);
|
||||
EXPECT_EQ (e.to_string (), "(10,20;110,120);(10,20;110,120)");
|
||||
EXPECT_EQ (db::compare (e, "(10,20;110,120);(10,20;110,120)"), true);
|
||||
e.clear ();
|
||||
ep.second_edges (e);
|
||||
EXPECT_EQ (e.to_string (), "(-10,-20;90,80);(90,80;-10,-20)");
|
||||
EXPECT_EQ (db::compare (e, "(-10,-20;90,80);(90,80;-10,-20)"), true);
|
||||
|
||||
db::Region r;
|
||||
ep.polygons (r);
|
||||
EXPECT_EQ (r.to_string (), "(-10,-20;10,20;110,120;90,80);(-10,-20;10,20;110,120;90,80)");
|
||||
EXPECT_EQ (db::compare (r, "(-10,-20;10,20;110,120;90,80);(-10,-20;10,20;110,120;90,80)"), true);
|
||||
}
|
||||
|
||||
struct EPTestFilter
|
||||
|
|
@ -157,5 +158,5 @@ TEST(4)
|
|||
ep.insert_into_as_polygons (&ly, top_cell, l1, 1);
|
||||
|
||||
db::Region r (db::RecursiveShapeIterator (ly, ly.cell (top_cell), l1));
|
||||
EXPECT_EQ (r.to_string (), "(-10,-21;9,20;50,51;91,80);(-10,-21;9,20;110,121;91,80)");
|
||||
EXPECT_EQ (db::compare (r, "(-10,-21;9,20;50,51;91,80);(-10,-21;9,20;110,121;91,80)"), true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,10 +27,11 @@
|
|||
#include "dbEdgesUtils.h"
|
||||
#include "dbPolygonTools.h"
|
||||
#include "dbRegion.h"
|
||||
#include "dbTestSupport.h"
|
||||
|
||||
#include <cstdlib>
|
||||
|
||||
TEST(1)
|
||||
TEST(1)
|
||||
{
|
||||
db::Edges r;
|
||||
EXPECT_EQ (r.to_string (), "");
|
||||
|
|
@ -49,8 +50,8 @@ 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);(0,200;100,200);(100,200;100,0);(100,0;0,0)");
|
||||
EXPECT_EQ (r.transformed (db::Trans (db::Vector (1, 2))).to_string (), "(1,2;1,202);(1,202;101,202);(101,202;101,2);(101,2;1,2)");
|
||||
EXPECT_EQ (db::compare (r, "(0,0;0,200);(0,200;100,200);(100,200;100,0);(100,0;0,0)"), true);
|
||||
EXPECT_EQ (db::compare (r.transformed (db::Trans (db::Vector (1, 2))), "(1,2;1,202);(1,202;101,202);(101,202;101,2);(101,2;1,2)"), true);
|
||||
EXPECT_EQ (r.bbox ().to_string (), "(0,0;100,200)");
|
||||
EXPECT_EQ (r.transformed (db::Trans (db::Vector (1, 2))).bbox ().to_string (), "(1,2;101,202)");
|
||||
EXPECT_EQ (r.empty (), false);
|
||||
|
|
@ -59,27 +60,27 @@ TEST(1)
|
|||
|
||||
db::Edges r1 = r;
|
||||
db::Edges r2;
|
||||
EXPECT_EQ (r1.to_string (), "(0,0;0,200);(0,200;100,200);(100,200;100,0);(100,0;0,0)");
|
||||
EXPECT_EQ (r1.merged ().to_string (), "(0,0;0,200);(0,200;100,200);(100,200;100,0);(100,0;0,0)");
|
||||
EXPECT_EQ (db::compare (r1, "(0,0;0,200);(0,200;100,200);(100,200;100,0);(100,0;0,0)"), true);
|
||||
EXPECT_EQ (db::compare (r1.merged (), "(0,0;0,200);(0,200;100,200);(100,200;100,0);(100,0;0,0)"), true);
|
||||
EXPECT_EQ (r2.to_string (), "");
|
||||
EXPECT_EQ (r1.bbox ().to_string (), "(0,0;100,200)");
|
||||
EXPECT_EQ (r2.bbox ().to_string (), "()");
|
||||
r1.swap (r2);
|
||||
EXPECT_EQ (r1.to_string (), "");
|
||||
EXPECT_EQ (r2.to_string (), "(0,0;0,200);(0,200;100,200);(100,200;100,0);(100,0;0,0)");
|
||||
EXPECT_EQ (db::compare (r2, "(0,0;0,200);(0,200;100,200);(100,200;100,0);(100,0;0,0)"), true);
|
||||
EXPECT_EQ (r1.bbox ().to_string (), "()");
|
||||
EXPECT_EQ (r2.bbox ().to_string (), "(0,0;100,200)");
|
||||
|
||||
EXPECT_EQ ((r | db::Edges (db::Box (db::Point (10, 0), db::Point (110, 200)))).to_string (), "(0,0;0,200);(100,200;100,0);(10,0;10,200);(0,200;110,200);(110,200;110,0);(110,0;0,0)");
|
||||
EXPECT_EQ ((r + db::Edges (db::Box (db::Point (10, 0), db::Point (110, 200)))).to_string (), "(0,0;0,200);(0,200;100,200);(100,200;100,0);(100,0;0,0);(10,0;10,200);(10,200;110,200);(110,200;110,0);(110,0;10,0)");
|
||||
EXPECT_EQ (db::compare ((r | db::Edges (db::Box (db::Point (10, 0), db::Point (110, 200)))), "(0,0;0,200);(100,200;100,0);(10,0;10,200);(0,200;110,200);(110,200;110,0);(110,0;0,0)"), true);
|
||||
EXPECT_EQ (db::compare ((r + db::Edges (db::Box (db::Point (10, 0), db::Point (110, 200)))), "(0,0;0,200);(0,200;100,200);(100,200;100,0);(100,0;0,0);(10,0;10,200);(10,200;110,200);(110,200;110,0);(110,0;10,0)"), true);
|
||||
|
||||
db::Edges rr = r;
|
||||
rr |= db::Edges (db::Box (db::Point (10, 0), db::Point (110, 200)));
|
||||
EXPECT_EQ (rr.is_merged (), true);
|
||||
EXPECT_EQ (rr.to_string (), "(0,0;0,200);(100,200;100,0);(10,0;10,200);(0,200;110,200);(110,200;110,0);(110,0;0,0)");
|
||||
EXPECT_EQ (db::compare (rr, "(0,0;0,200);(100,200;100,0);(10,0;10,200);(0,200;110,200);(110,200;110,0);(110,0;0,0)"), true);
|
||||
|
||||
r += db::Edges (db::Box (db::Point (10, 0), db::Point (110, 200)));
|
||||
EXPECT_EQ (r.to_string (), "(0,0;0,200);(0,200;100,200);(100,200;100,0);(100,0;0,0);(10,0;10,200);(10,200;110,200);(110,200;110,0);(110,0;10,0)");
|
||||
EXPECT_EQ (db::compare (r, "(0,0;0,200);(0,200;100,200);(100,200;100,0);(100,0;0,0);(10,0;10,200);(10,200;110,200);(110,200;110,0);(110,0;10,0)"), true);
|
||||
EXPECT_EQ (r.is_merged (), false);
|
||||
EXPECT_EQ (r.count (), size_t (8));
|
||||
EXPECT_EQ (r.hier_count (), size_t (8));
|
||||
|
|
@ -94,7 +95,7 @@ TEST(1)
|
|||
EXPECT_EQ (r.length (db::Box (db::Point (-10, -10), db::Point (0, 50))), db::Edges::length_type (0));
|
||||
EXPECT_EQ (r.length (db::Box (db::Point (0, 0), db::Point (50, 50))), db::Edges::length_type (150));
|
||||
r.merge ();
|
||||
EXPECT_EQ (r.to_string (), "(0,0;0,200);(100,200;100,0);(10,0;10,200);(0,200;110,200);(110,200;110,0);(110,0;0,0)");
|
||||
EXPECT_EQ (db::compare (r, "(0,0;0,200);(100,200;100,0);(10,0;10,200);(0,200;110,200);(110,200;110,0);(110,0;0,0)"), true);
|
||||
EXPECT_EQ (r.bbox ().to_string (), "(0,0;110,200)");
|
||||
EXPECT_EQ (r.is_merged (), true);
|
||||
EXPECT_EQ (r.empty (), false);
|
||||
|
|
@ -118,24 +119,24 @@ TEST(2)
|
|||
db::Edges r2;
|
||||
r2.insert (db::Box (db::Point (0, 10), db::Point (100, 210)));
|
||||
|
||||
EXPECT_EQ ((r & r1).to_string (), "(10,200;100,200);(100,0;10,0)");
|
||||
EXPECT_EQ ((r & r2).to_string (), "(0,10;0,200);(100,200;100,10)");
|
||||
EXPECT_EQ (db::compare ((r & r1), "(10,200;100,200);(100,0;10,0)"), true);
|
||||
EXPECT_EQ (db::compare ((r & r2), "(0,10;0,200);(100,200;100,10)"), true);
|
||||
db::Edges o1 = r;
|
||||
o1 &= r1;
|
||||
EXPECT_EQ (o1.is_merged (), true);
|
||||
EXPECT_EQ (o1.to_string (), "(10,200;100,200);(100,0;10,0)");
|
||||
EXPECT_EQ (db::compare (o1, "(10,200;100,200);(100,0;10,0)"), true);
|
||||
|
||||
EXPECT_EQ ((r - r1).to_string (), "(0,0;0,200);(100,200;100,0);(0,200;10,200);(10,0;0,0)");
|
||||
EXPECT_EQ (db::compare ((r - r1), "(0,0;0,200);(100,200;100,0);(0,200;10,200);(10,0;0,0)"), true);
|
||||
db::Edges o2 = r;
|
||||
o2 -= r1;
|
||||
EXPECT_EQ (o2.is_merged (), true);
|
||||
EXPECT_EQ (o2.to_string (), "(0,0;0,200);(100,200;100,0);(0,200;10,200);(10,0;0,0)");
|
||||
EXPECT_EQ (db::compare (o2, "(0,0;0,200);(100,200;100,0);(0,200;10,200);(10,0;0,0)"), true);
|
||||
|
||||
EXPECT_EQ ((r ^ r1).to_string (), "(0,0;0,200);(100,200;100,0);(10,0;10,200);(0,200;10,200);(100,200;110,200);(110,200;110,0);(110,0;100,0);(10,0;0,0)");
|
||||
EXPECT_EQ (db::compare ((r ^ r1), "(0,0;0,200);(100,200;100,0);(10,0;10,200);(0,200;10,200);(100,200;110,200);(110,200;110,0);(110,0;100,0);(10,0;0,0)"), true);
|
||||
db::Edges o3 = r;
|
||||
o3 ^= r1;
|
||||
EXPECT_EQ (o3.is_merged (), true);
|
||||
EXPECT_EQ (o3.to_string (), "(0,0;0,200);(100,200;100,0);(10,0;10,200);(0,200;10,200);(100,200;110,200);(110,200;110,0);(110,0;100,0);(10,0;0,0)");
|
||||
EXPECT_EQ (db::compare (o3, "(0,0;0,200);(100,200;100,0);(10,0;10,200);(0,200;10,200);(100,200;110,200);(110,200;110,0);(110,0;100,0);(10,0;0,0)"), true);
|
||||
|
||||
r.clear ();
|
||||
r.insert (db::Box (db::Point (1000, 0), db::Point (6000, 4000)));
|
||||
|
|
@ -157,11 +158,11 @@ TEST(3)
|
|||
rr.insert (db::Edge (db::Point (10, 1), db::Point (60, 6)));
|
||||
rr.insert (db::Edge (db::Point (50, 5), db::Point (70, 7)));
|
||||
|
||||
EXPECT_EQ (r.merged ().to_string (), "(0,0;150,15);(200,20;230,23)");
|
||||
EXPECT_EQ (db::compare (r.merged (), "(0,0;150,15);(200,20;230,23)"), true);
|
||||
EXPECT_EQ (rr.merged ().to_string (), "(10,1;70,7)");
|
||||
EXPECT_EQ ((r ^ rr).to_string (), "(200,20;230,23);(0,0;10,1);(70,7;150,15)");
|
||||
EXPECT_EQ ((rr ^ r).to_string (), "(0,0;10,1);(70,7;150,15);(200,20;230,23)");
|
||||
EXPECT_EQ ((r - rr).to_string (), "(200,20;230,23);(0,0;10,1);(70,7;150,15)");
|
||||
EXPECT_EQ (db::compare ((r ^ rr), "(200,20;230,23);(0,0;10,1);(70,7;150,15)"), true);
|
||||
EXPECT_EQ (db::compare ((rr ^ r), "(0,0;10,1);(70,7;150,15);(200,20;230,23)"), true);
|
||||
EXPECT_EQ (db::compare ((r - rr), "(200,20;230,23);(0,0;10,1);(70,7;150,15)"), true);
|
||||
EXPECT_EQ ((rr - r).to_string (), "");
|
||||
EXPECT_EQ ((r & rr).to_string (), "(10,1;70,7)");
|
||||
EXPECT_EQ ((rr & r).to_string (), "(10,1;70,7)");
|
||||
|
|
@ -181,39 +182,39 @@ TEST(4)
|
|||
db::EdgeLengthFilter f1 (100, 101, false);
|
||||
db::Edges rr = r;
|
||||
rr.filter (f1);
|
||||
EXPECT_EQ (rr.to_string (), "(0,200;100,200);(100,0;0,0);(300,0;200,0)");
|
||||
EXPECT_EQ (db::compare (rr, "(0,200;100,200);(100,0;0,0);(300,0;200,0)"), true);
|
||||
}
|
||||
{
|
||||
db::EdgeLengthFilter f1 (201, 1000, false);
|
||||
db::Edges rr = r;
|
||||
rr.filter (f1);
|
||||
EXPECT_EQ (rr.to_string (), "(200,0;250,200);(250,200;300,0);(200,0;250,-200);(250,-200;300,0)");
|
||||
EXPECT_EQ (db::compare (rr, "(200,0;250,200);(250,200;300,0);(200,0;250,-200);(250,-200;300,0)"), true);
|
||||
}
|
||||
{
|
||||
db::EdgeLengthFilter f1 (201, 1000, true);
|
||||
db::Edges rr = r;
|
||||
rr.filter (f1);
|
||||
EXPECT_EQ (rr.to_string (), "(0,0;0,200);(0,200;100,200);(100,200;100,0);(100,0;0,0);(300,0;200,0)");
|
||||
EXPECT_EQ (db::compare (rr, "(0,0;0,200);(0,200;100,200);(100,200;100,0);(100,0;0,0);(300,0;200,0)"), true);
|
||||
}
|
||||
{
|
||||
db::EdgeOrientationFilter f1 (0.0, false);
|
||||
EXPECT_EQ (r.filtered (f1).to_string (), "(0,200;100,200);(100,0;0,0);(300,0;200,0)");
|
||||
EXPECT_EQ (db::compare (r.filtered (f1), "(0,200;100,200);(100,0;0,0);(300,0;200,0)"), true);
|
||||
}
|
||||
{
|
||||
db::EdgeOrientationFilter f1 (50.0, true, 80.0, false, false);
|
||||
EXPECT_EQ (r.filtered (f1).to_string (), "(200,0;250,200);(250,-200;300,0)");
|
||||
EXPECT_EQ (db::compare (r.filtered (f1), "(200,0;250,200);(250,-200;300,0)"), true);
|
||||
}
|
||||
{
|
||||
db::EdgeOrientationFilter f1 (50.0, true, 80.0, false, true);
|
||||
EXPECT_EQ (r.filtered (f1).to_string (), "(0,0;0,200);(0,200;100,200);(100,200;100,0);(100,0;0,0);(250,200;300,0);(300,0;200,0);(200,0;250,-200)");
|
||||
EXPECT_EQ (db::compare (r.filtered (f1), "(0,0;0,200);(0,200;100,200);(100,200;100,0);(100,0;0,0);(250,200;300,0);(300,0;200,0);(200,0;250,-200)"), true);
|
||||
}
|
||||
{
|
||||
db::EdgeOrientationFilter f1 (0.0, true, 1.0, false, false);
|
||||
EXPECT_EQ (r.filtered (f1).to_string (), "(0,200;100,200);(100,0;0,0);(300,0;200,0)");
|
||||
EXPECT_EQ (db::compare (r.filtered (f1), "(0,200;100,200);(100,0;0,0);(300,0;200,0)"), true);
|
||||
}
|
||||
{
|
||||
db::EdgeOrientationFilter f1 (-1.0, true, 1.0, false, false);
|
||||
EXPECT_EQ (r.filtered (f1).to_string (), "(0,200;100,200);(100,0;0,0);(300,0;200,0)");
|
||||
EXPECT_EQ (db::compare (r.filtered (f1), "(0,200;100,200);(100,0;0,0);(300,0;200,0)"), true);
|
||||
}
|
||||
{
|
||||
db::EdgeOrientationFilter f1 (-1.0, true, 0.0, false, false);
|
||||
|
|
@ -221,11 +222,11 @@ TEST(4)
|
|||
}
|
||||
{
|
||||
db::EdgeOrientationFilter f1 (-1.0, true, 0.0, true, false);
|
||||
EXPECT_EQ (r.filtered (f1).to_string (), "(0,200;100,200);(100,0;0,0);(300,0;200,0)");
|
||||
EXPECT_EQ (db::compare (r.filtered (f1), "(0,200;100,200);(100,0;0,0);(300,0;200,0)"), true);
|
||||
}
|
||||
{
|
||||
db::EdgeOrientationFilter f1 (0.0, true, 1.0, true, false);
|
||||
EXPECT_EQ (r.filtered (f1).to_string (), "(0,200;100,200);(100,0;0,0);(300,0;200,0)");
|
||||
EXPECT_EQ (db::compare (r.filtered (f1), "(0,200;100,200);(100,0;0,0);(300,0;200,0)"), true);
|
||||
}
|
||||
{
|
||||
db::EdgeOrientationFilter f1 (0.0, false, 1.0, true, false);
|
||||
|
|
@ -233,15 +234,15 @@ TEST(4)
|
|||
}
|
||||
{
|
||||
db::EdgeOrientationFilter f1 (90.0, false);
|
||||
EXPECT_EQ (r.filtered (f1).to_string (), "(0,0;0,200);(100,200;100,0)");
|
||||
EXPECT_EQ (db::compare (r.filtered (f1), "(0,0;0,200);(100,200;100,0)"), true);
|
||||
}
|
||||
{
|
||||
db::EdgeOrientationFilter f1 (90.0, true, 91.0, false, false);
|
||||
EXPECT_EQ (r.filtered (f1).to_string (), "(0,0;0,200);(100,200;100,0)");
|
||||
EXPECT_EQ (db::compare (r.filtered (f1), "(0,0;0,200);(100,200;100,0)"), true);
|
||||
}
|
||||
{
|
||||
db::EdgeOrientationFilter f1 (89.0, true, 91.0, false, false);
|
||||
EXPECT_EQ (r.filtered (f1).to_string (), "(0,0;0,200);(100,200;100,0)");
|
||||
EXPECT_EQ (db::compare (r.filtered (f1), "(0,0;0,200);(100,200;100,0)"), true);
|
||||
}
|
||||
{
|
||||
db::EdgeOrientationFilter f1 (89.0, true, 90.0, false, false);
|
||||
|
|
@ -253,18 +254,18 @@ TEST(5)
|
|||
{
|
||||
db::Edges r;
|
||||
r.insert (db::Polygon (db::Box (db::Point (0, 0), db::Point (100, 200))));
|
||||
EXPECT_EQ (r.to_string (), "(0,0;0,200);(0,200;100,200);(100,200;100,0);(100,0;0,0)");
|
||||
EXPECT_EQ (db::compare (r, "(0,0;0,200);(0,200;100,200);(100,200;100,0);(100,0;0,0)"), true);
|
||||
r.clear ();
|
||||
r.insert (db::SimplePolygon (db::Box (db::Point (0, 0), db::Point (100, 200))));
|
||||
EXPECT_EQ (r.to_string (), "(0,0;0,200);(0,200;100,200);(100,200;100,0);(100,0;0,0)");
|
||||
EXPECT_EQ (db::compare (r, "(0,0;0,200);(0,200;100,200);(100,200;100,0);(100,0;0,0)"), true);
|
||||
r.transform (db::ICplxTrans (2.5));
|
||||
EXPECT_EQ (r.to_string (), "(0,0;0,500);(0,500;250,500);(250,500;250,0);(250,0;0,0)");
|
||||
EXPECT_EQ (db::compare (r, "(0,0;0,500);(0,500;250,500);(250,500;250,0);(250,0;0,0)"), true);
|
||||
|
||||
db::Edges 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 (), "(0,0;0,500);(0,500;250,500);(250,500;250,0);(250,0;0,0)");
|
||||
EXPECT_EQ (db::compare (rr, "(0,0;0,500);(0,500;250,500);(250,500;250,0);(250,0;0,0)"), true);
|
||||
}
|
||||
|
||||
TEST(6)
|
||||
|
|
@ -277,31 +278,31 @@ TEST(6)
|
|||
|
||||
db::Region r;
|
||||
e.extended (r, 0, 0, 20, 0, false);
|
||||
EXPECT_EQ (r.to_string (), "(-20,0;-20,200;0,200;0,0);(0,200;0,220;100,220;100,200);(200,0;181,5;231,205;250,200);(300,0;250,200;269,205;319,5)");
|
||||
EXPECT_EQ (db::compare (r, "(-20,0;-20,200;0,200;0,0);(0,200;0,220;100,220;100,200);(200,0;181,5;231,205;250,200);(300,0;250,200;269,205;319,5)"), true);
|
||||
|
||||
r.clear ();
|
||||
e.extended (r, 0, 0, 20, 0, true);
|
||||
EXPECT_EQ (r.to_string (), "(-20,0;-20,220;100,220;100,200;0,200;0,0);(200,0;181,5;235,224;265,224;319,5;300,0;250,200)");
|
||||
EXPECT_EQ (db::compare (r, "(-20,0;-20,220;100,220;100,200;0,200;0,0);(200,0;181,5;235,224;265,224;319,5;300,0;250,200)"), true);
|
||||
|
||||
r.clear ();
|
||||
e.extended (r, 0, 0, 0, 10, false);
|
||||
EXPECT_EQ (r.to_string (), "(0,0;0,200;10,200;10,0);(0,190;0,200;100,200;100,190);(210,-2;200,0;250,200;260,198);(290,-2;240,198;250,200;300,0)");
|
||||
EXPECT_EQ (db::compare (r, "(0,0;0,200;10,200;10,0);(0,190;0,200;100,200;100,190);(210,-2;200,0;250,200;260,198);(290,-2;240,198;250,200;300,0)"), true);
|
||||
|
||||
r.clear ();
|
||||
e.extended (r, 0, 0, 0, 10, true);
|
||||
EXPECT_EQ (r.to_string (), "(0,0;0,200;100,200;100,190;10,190;10,0);(210,-2;200,0;250,200;300,0;290,-2;250,159)");
|
||||
EXPECT_EQ (db::compare (r, "(0,0;0,200;100,200;100,190;10,190;10,0);(210,-2;200,0;250,200;300,0;290,-2;250,159)"), true);
|
||||
|
||||
r.clear ();
|
||||
e.extended (r, 10, 20, 0, 10, true);
|
||||
EXPECT_EQ (r.to_string (), "(0,-10;0,200;120,200;120,190;10,190;10,-10);(295,-22;250,159;207,-12;198,-10;250,200;305,-19)");
|
||||
EXPECT_EQ (db::compare (r, "(0,-10;0,200;120,200;120,190;10,190;10,-10);(295,-22;250,159;207,-12;198,-10;250,200;305,-19)"), true);
|
||||
|
||||
r.clear ();
|
||||
e.extended (r, 10, 20, 0, 10, false);
|
||||
EXPECT_EQ (r.to_string (), "(0,-10;0,220;10,220;10,-10);(-10,190;-10,200;120,200;120,190);(207,-12;198,-10;255,219;265,217);(295,-22;238,207;248,210;305,-19)");
|
||||
EXPECT_EQ (db::compare (r, "(0,-10;0,220;10,220;10,-10);(-10,190;-10,200;120,200;120,190);(207,-12;198,-10;255,219;265,217);(295,-22;238,207;248,210;305,-19)"), true);
|
||||
|
||||
r.clear ();
|
||||
e.extended (r, 10, 20, 20, -10, false);
|
||||
EXPECT_EQ (r.to_string (), "(-20,-10;-20,220;-10,220;-10,-10);(-10,210;-10,220;120,220;120,210);(188,-7;178,-5;235,224;245,222);(315,-17;257,212;267,215;324,-15)");
|
||||
EXPECT_EQ (db::compare (r, "(-20,-10;-20,220;-10,220;-10,-10);(-10,210;-10,220;120,220;120,210);(188,-7;178,-5;235,224;245,222);(315,-17;257,212;267,215;324,-15)"), true);
|
||||
|
||||
/* This is not working properly yet:
|
||||
* Apparently db::Path is not able to produce the right inner corner.
|
||||
|
|
@ -315,7 +316,7 @@ TEST(6)
|
|||
|
||||
r.clear ();
|
||||
e.extended (r, 10, 20, 0, 10, false);
|
||||
EXPECT_EQ (r.to_string (), "(0,-10;0,220;10,220;10,-10);(-10,190;-10,200;120,200;120,190);(90,-20;90,210;100,210;100,-20);(-20,0;-20,10;110,10;110,0)");
|
||||
EXPECT_EQ (db::compare (r, "(0,-10;0,220;10,220;10,-10);(-10,190;-10,200;120,200;120,190);(90,-20;90,210;100,210;100,-20);(-20,0;-20,10;110,10;110,0)"), true);
|
||||
|
||||
r.clear ();
|
||||
e.extended (r, 10, 20, 0, 10, true);
|
||||
|
|
@ -338,7 +339,7 @@ TEST(6b)
|
|||
|
||||
db::Region r;
|
||||
e.extended (r, 0, 0, 20, 0, true);
|
||||
EXPECT_EQ (r.to_string (), "(0,-200;0,0;20,0;20,-180;100,-180;100,-200);(250,-200;200,0;219,5;250,-118;281,5;300,0)");
|
||||
EXPECT_EQ (db::compare (r, "(0,-200;0,0;20,0;20,-180;100,-180;100,-200);(250,-200;200,0;219,5;250,-118;281,5;300,0)"), true);
|
||||
}
|
||||
|
||||
TEST(6c)
|
||||
|
|
@ -356,7 +357,7 @@ TEST(6c)
|
|||
|
||||
db::Region r;
|
||||
e.extended (r, 0, 0, 20, 0, true);
|
||||
EXPECT_EQ (r.to_string (), "(0,-200;0,0;20,0;20,-180;100,-180;100,-200);(0,-200;0,-100;20,-100;20,-180;200,-180;200,-200);(250,-200;200,0;219,5;250,-118;281,5;300,0);(250,-200;232,-191;332,9;350,0)");
|
||||
EXPECT_EQ (db::compare (r, "(0,-200;0,0;20,0;20,-180;100,-180;100,-200);(0,-200;0,-100;20,-100;20,-180;200,-180;200,-200);(250,-200;200,0;219,5;250,-118;281,5;300,0);(250,-200;232,-191;332,9;350,0)"), true);
|
||||
}
|
||||
|
||||
TEST(7)
|
||||
|
|
@ -365,20 +366,20 @@ TEST(7)
|
|||
e.insert (db::Edge (db::Point (0, 0), db::Point (0, 200)));
|
||||
e.insert (db::Edge (db::Point (250, 200), db::Point (300, 0)));
|
||||
|
||||
EXPECT_EQ (e.start_segments (10, 0).to_string (), "(0,0;0,10);(250,200;252,190)");
|
||||
EXPECT_EQ (e.start_segments (10, 0.25).to_string (), "(0,0;0,50);(250,200;263,150)");
|
||||
EXPECT_EQ (e.start_segments (0, 1.0).to_string (), "(0,0;0,200);(250,200;300,0)");
|
||||
EXPECT_EQ (e.start_segments (0, 0).to_string (), "(0,0;0,0);(250,200;250,200)");
|
||||
EXPECT_EQ (db::compare (e.start_segments (10, 0), "(0,0;0,10);(250,200;252,190)"), true);
|
||||
EXPECT_EQ (db::compare (e.start_segments (10, 0.25), "(0,0;0,50);(250,200;263,150)"), true);
|
||||
EXPECT_EQ (db::compare (e.start_segments (0, 1.0), "(0,0;0,200);(250,200;300,0)"), true);
|
||||
EXPECT_EQ (db::compare (e.start_segments (0, 0), "(0,0;0,0);(250,200;250,200)"), true);
|
||||
|
||||
EXPECT_EQ (e.end_segments (10, 0).to_string (), "(0,190;0,200);(298,10;300,0)");
|
||||
EXPECT_EQ (e.end_segments (10, 0.25).to_string (), "(0,150;0,200);(288,50;300,0)");
|
||||
EXPECT_EQ (e.end_segments (0, 1.0).to_string (), "(0,0;0,200);(250,200;300,0)");
|
||||
EXPECT_EQ (e.end_segments (0, 0).to_string (), "(0,200;0,200);(300,0;300,0)");
|
||||
EXPECT_EQ (db::compare (e.end_segments (10, 0), "(0,190;0,200);(298,10;300,0)"), true);
|
||||
EXPECT_EQ (db::compare (e.end_segments (10, 0.25), "(0,150;0,200);(288,50;300,0)"), true);
|
||||
EXPECT_EQ (db::compare (e.end_segments (0, 1.0), "(0,0;0,200);(250,200;300,0)"), true);
|
||||
EXPECT_EQ (db::compare (e.end_segments (0, 0), "(0,200;0,200);(300,0;300,0)"), true);
|
||||
|
||||
EXPECT_EQ (e.centers (10, 0).to_string (), "(0,95;0,105);(274,105;276,95)");
|
||||
EXPECT_EQ (e.centers (10, 0.25).to_string (), "(0,75;0,125);(269,125;281,75)");
|
||||
EXPECT_EQ (e.centers (0, 1.0).to_string (), "(0,0;0,200);(250,200;300,0)");
|
||||
EXPECT_EQ (e.centers (0, 0).to_string (), "(0,100;0,100);(275,100;275,100)");
|
||||
EXPECT_EQ (db::compare (e.centers (10, 0), "(0,95;0,105);(274,105;276,95)"), true);
|
||||
EXPECT_EQ (db::compare (e.centers (10, 0.25), "(0,75;0,125);(269,125;281,75)"), true);
|
||||
EXPECT_EQ (db::compare (e.centers (0, 1.0), "(0,0;0,200);(250,200;300,0)"), true);
|
||||
EXPECT_EQ (db::compare (e.centers (0, 0), "(0,100;0,100);(275,100;275,100)"), true);
|
||||
}
|
||||
|
||||
TEST(8)
|
||||
|
|
@ -409,7 +410,7 @@ TEST(8)
|
|||
e2.insert (db::Edge (db::Point (-100, -1), db::Point (100, -1)));
|
||||
|
||||
EXPECT_EQ (e.selected_interacting (e2).to_string (), "");
|
||||
EXPECT_EQ (e.selected_not_interacting (e2).to_string (), "(0,0;0,200);(250,200;300,0)");
|
||||
EXPECT_EQ (db::compare (e.selected_not_interacting (e2), "(0,0;0,200);(250,200;300,0)"), true);
|
||||
|
||||
e2.clear ();
|
||||
e2.insert (db::Edge (db::Point (-100, 0), db::Point (100, 0)));
|
||||
|
|
@ -566,14 +567,14 @@ 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)) };
|
||||
db::Region r (bb + 0, bb + 3);
|
||||
|
||||
EXPECT_EQ (r.edges ().width_check (15).to_string (), "(0,0;0,10)/(10,10;10,0);(0,10;10,10)/(10,0;0,0)");
|
||||
EXPECT_EQ (db::compare (r.edges ().width_check (15), "(0,0;0,10)/(10,10;10,0);(0,10;10,10)/(10,0;0,0)"), true);
|
||||
EXPECT_EQ (r.edges ().width_check (5).to_string (), "");
|
||||
EXPECT_EQ (r.edges ().width_check (5, db::EdgesCheckOptions (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,5;10,0)/(10,0;5,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,25;40,20)/(40,20;35,20)");
|
||||
EXPECT_EQ (r.edges ().space_check (15, db::EdgesCheckOptions (false, db::Euclidian, 91)).to_string (), "(9,10;10,10)/(20,20;20,21);(9,10;10,10)/(21,20;20,20);(10,10;10,9)/(20,20;20,21);(10,10;10,9)/(21,20;20,20)");
|
||||
EXPECT_EQ (r.edges ().space_check (15, db::EdgesCheckOptions (false, db::Square, 91)).to_string (), "(5,10;10,10)/(20,20;20,25);(5,10;10,10)/(25,20;20,20);(10,10;10,5)/(20,20;20,25);(10,10;10,5)/(25,20;20,20)");
|
||||
EXPECT_EQ (r.edges ().space_check (15).to_string (), "(9,10;10,10)/(21,20;20,20);(10,10;10,9)/(20,20;20,21)");
|
||||
EXPECT_EQ (r.edges ().space_check (15, db::EdgesCheckOptions (true)).to_string (), "(0,10;10,10)/(40,20;20,20);(10,10;10,0)/(20,20;20,50)");
|
||||
EXPECT_EQ (r.edges ().space_check (15, db::EdgesCheckOptions (false, db::Square)).to_string (), "(5,10;10,10)/(25,20;20,20);(10,10;10,5)/(20,20;20,25)");
|
||||
EXPECT_EQ (db::compare (r.edges ().width_check (5, db::EdgesCheckOptions (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,5;10,0)/(10,0;5,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,25;40,20)/(40,20;35,20)"), true);
|
||||
EXPECT_EQ (db::compare (r.edges ().space_check (15, db::EdgesCheckOptions (false, db::Euclidian, 91)), "(9,10;10,10)/(20,20;20,21);(9,10;10,10)/(21,20;20,20);(10,10;10,9)/(20,20;20,21);(10,10;10,9)/(21,20;20,20)"), true);
|
||||
EXPECT_EQ (db::compare (r.edges ().space_check (15, db::EdgesCheckOptions (false, db::Square, 91)), "(5,10;10,10)/(20,20;20,25);(5,10;10,10)/(25,20;20,20);(10,10;10,5)/(20,20;20,25);(10,10;10,5)/(25,20;20,20)"), true);
|
||||
EXPECT_EQ (db::compare (r.edges ().space_check (15), "(9,10;10,10)/(21,20;20,20);(10,10;10,9)/(20,20;20,21)"), true);
|
||||
EXPECT_EQ (db::compare (r.edges ().space_check (15, db::EdgesCheckOptions (true)), "(0,10;10,10)/(40,20;20,20);(10,10;10,0)/(20,20;20,50)"), true);
|
||||
EXPECT_EQ (db::compare (r.edges ().space_check (15, db::EdgesCheckOptions (false, db::Square)), "(5,10;10,10)/(25,20;20,20);(10,10;10,5)/(20,20;20,25)"), true);
|
||||
}
|
||||
|
||||
TEST(12)
|
||||
|
|
@ -586,22 +587,22 @@ TEST(12)
|
|||
|
||||
EXPECT_EQ (a.edges ().inside_check (b.edges (), 15).to_string (), "(10,20;10,30)/(0,9;0,41)");
|
||||
EXPECT_EQ (a.edges ().inside_check (b.edges (), 15, db::EdgesCheckOptions (true)).to_string (), "(10,20;10,30)/(0,0;0,100)");
|
||||
EXPECT_EQ (a.edges ().inside_check (b.edges (), 15, db::EdgesCheckOptions (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 (db::compare (a.edges ().inside_check (b.edges (), 15, db::EdgesCheckOptions (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 (b.edges ().enclosing_check (a.edges (), 15).to_string (), "(0,9;0,41)/(10,20;10,30)");
|
||||
EXPECT_EQ (b.edges ().enclosing_check (a.edges (), 15, db::EdgesCheckOptions (true)).to_string (), "(0,0;0,100)/(10,20;10,30)");
|
||||
EXPECT_EQ (b.edges ().enclosing_check (a.edges (), 15, db::EdgesCheckOptions (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 (b.edges ().enclosing_check (a.edges (), 15, db::EdgesCheckOptions (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, 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, 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, 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, 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(20)
|
||||
|
|
@ -643,14 +644,14 @@ TEST(20)
|
|||
{
|
||||
db::Edges r1 (db::RecursiveShapeIterator (ly, ly.cell (top), l2, db::Box (60, 10, 90, 50)), false);
|
||||
EXPECT_EQ (r1.has_valid_edges (), false);
|
||||
EXPECT_EQ (r1.to_string (), "(60,10;60,20);(60,20;70,20);(70,20;70,10);(70,10;60,10);(80,40;80,70);(110,40;80,40)");
|
||||
EXPECT_EQ (db::compare (r1, "(60,10;60,20);(60,20;70,20);(70,20;70,10);(70,10;60,10);(80,40;80,70);(110,40;80,40)"), true);
|
||||
EXPECT_EQ (r1.has_valid_edges (), false);
|
||||
}
|
||||
|
||||
{
|
||||
db::Edges r1 (db::RecursiveShapeIterator (ly, ly.cell (top), l2, db::Box (60, 10, 90, 50)), db::ICplxTrans (2.0), false);
|
||||
EXPECT_EQ (r1.has_valid_edges (), false);
|
||||
EXPECT_EQ (r1.to_string (), "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20);(160,80;160,140);(220,80;160,80)");
|
||||
EXPECT_EQ (db::compare (r1, "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20);(160,80;160,140);(220,80;160,80)"), true);
|
||||
EXPECT_EQ (r1.has_valid_edges (), false);
|
||||
EXPECT_EQ (r1.length (), db::Edges::length_type (200));
|
||||
EXPECT_EQ (r1.has_valid_edges (), false);
|
||||
|
|
@ -662,7 +663,7 @@ TEST(20)
|
|||
db::EdgeLengthFilter f0 (0, 50, false);
|
||||
db::Edges rr = r1.filtered (f0);
|
||||
EXPECT_EQ (rr.has_valid_edges (), true);
|
||||
EXPECT_EQ (rr.to_string (), "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20)");
|
||||
EXPECT_EQ (db::compare (rr, "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20)"), true);
|
||||
|
||||
db::Edges r2 = r1;
|
||||
EXPECT_EQ (r2.has_valid_edges (), false);
|
||||
|
|
@ -673,7 +674,7 @@ TEST(20)
|
|||
EXPECT_EQ (r2.empty (), false);
|
||||
r2.filter (f0);
|
||||
EXPECT_EQ (r2.has_valid_edges (), true);
|
||||
EXPECT_EQ (r2.to_string (), "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20)");
|
||||
EXPECT_EQ (db::compare (r2, "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20)"), true);
|
||||
EXPECT_EQ (r2.count (), size_t (4));
|
||||
EXPECT_EQ (r2.hier_count (), size_t (4));
|
||||
EXPECT_EQ (r2.empty (), false);
|
||||
|
|
@ -681,24 +682,24 @@ TEST(20)
|
|||
|
||||
r1.insert (db::Box (0, 0, 10, 20));
|
||||
EXPECT_EQ (r1.has_valid_edges (), true);
|
||||
EXPECT_EQ (r1.to_string (), "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20);(160,80;160,140);(220,80;160,80);(0,0;0,20);(0,20;10,20);(10,20;10,0);(10,0;0,0)");
|
||||
EXPECT_EQ (db::compare (r1, "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20);(160,80;160,140);(220,80;160,80);(0,0;0,20);(0,20;10,20);(10,20;10,0);(10,0;0,0)"), true);
|
||||
EXPECT_EQ (r1.to_string (2), "(120,20;120,40);(120,40;140,40)...");
|
||||
EXPECT_EQ (r1.count (), size_t (10));
|
||||
EXPECT_EQ (r1.hier_count (), size_t (10));
|
||||
EXPECT_EQ (r1.length (), db::Edges::length_type (260));
|
||||
|
||||
rr = r1.filtered (f0);
|
||||
EXPECT_EQ (rr.to_string (), "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20);(0,0;0,20);(0,20;10,20);(10,20;10,0);(10,0;0,0)");
|
||||
EXPECT_EQ (r1.to_string (), "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20);(160,80;160,140);(220,80;160,80);(0,0;0,20);(0,20;10,20);(10,20;10,0);(10,0;0,0)");
|
||||
EXPECT_EQ (db::compare (rr, "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20);(0,0;0,20);(0,20;10,20);(10,20;10,0);(10,0;0,0)"), true);
|
||||
EXPECT_EQ (db::compare (r1, "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20);(160,80;160,140);(220,80;160,80);(0,0;0,20);(0,20;10,20);(10,20;10,0);(10,0;0,0)"), true);
|
||||
|
||||
r1.filter (f0);
|
||||
EXPECT_EQ (r1.to_string (), "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20);(0,0;0,20);(0,20;10,20);(10,20;10,0);(10,0;0,0)");
|
||||
EXPECT_EQ (db::compare (r1, "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20);(0,0;0,20);(0,20;10,20);(10,20;10,0);(10,0;0,0)"), true);
|
||||
}
|
||||
|
||||
{
|
||||
db::Edges r1 (db::RecursiveShapeIterator (ly, ly.cell (top), l2, db::Box (60, 10, 70, 50)), db::ICplxTrans (2.0), false);
|
||||
EXPECT_EQ (r1.has_valid_edges (), false);
|
||||
EXPECT_EQ (r1.to_string (), "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20)");
|
||||
EXPECT_EQ (db::compare (r1, "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20)"), true);
|
||||
EXPECT_EQ (r1.has_valid_edges (), false);
|
||||
EXPECT_EQ (r1.count (), size_t (4));
|
||||
EXPECT_EQ (r1.hier_count (), size_t (4));
|
||||
|
|
@ -706,10 +707,10 @@ TEST(20)
|
|||
|
||||
db::Edges r2 = r1;
|
||||
|
||||
EXPECT_EQ (r1.transformed (db::ICplxTrans (0.5)).to_string (), "(60,10;60,20);(60,20;70,20);(70,20;70,10);(70,10;60,10)");
|
||||
EXPECT_EQ (db::compare (r1.transformed (db::ICplxTrans (0.5)), "(60,10;60,20);(60,20;70,20);(70,20;70,10);(70,10;60,10)"), true);
|
||||
r1.transform (db::ICplxTrans (0.5));
|
||||
EXPECT_EQ (r1.has_valid_edges (), true);
|
||||
EXPECT_EQ (r1.to_string (), "(60,10;60,20);(60,20;70,20);(70,20;70,10);(70,10;60,10)");
|
||||
EXPECT_EQ (db::compare (r1, "(60,10;60,20);(60,20;70,20);(70,20;70,10);(70,10;60,10)"), true);
|
||||
|
||||
r1.clear ();
|
||||
EXPECT_EQ (r1.has_valid_edges (), true);
|
||||
|
|
@ -718,10 +719,10 @@ TEST(20)
|
|||
EXPECT_EQ (r1.empty (), true);
|
||||
EXPECT_EQ (r1.length (), db::Edges::length_type (0));
|
||||
|
||||
EXPECT_EQ (r2.to_string (), "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20)");
|
||||
EXPECT_EQ (db::compare (r2, "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20)"), true);
|
||||
r1.swap (r2);
|
||||
|
||||
EXPECT_EQ (r1.to_string (), "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20)");
|
||||
EXPECT_EQ (db::compare (r1, "(120,20;120,40);(120,40;140,40);(140,40;140,20);(140,20;120,20)"), true);
|
||||
EXPECT_EQ (r1.has_valid_edges (), false);
|
||||
EXPECT_EQ (r2.has_valid_edges (), true);
|
||||
EXPECT_EQ (r2.count (), size_t (0));
|
||||
|
|
@ -742,17 +743,17 @@ TEST(20)
|
|||
|
||||
{
|
||||
db::Edges r1 (db::RecursiveShapeIterator (ly, ly.cell (top), l2), false);
|
||||
EXPECT_EQ (r1.width_check (20).to_string (), "(60,10;60,20)/(70,20;70,10);(60,20;70,20)/(70,10;60,10)");
|
||||
EXPECT_EQ (r1.width_check (50).to_string (), "(60,10;60,20)/(70,20;70,10);(60,20;70,20)/(70,10;60,10);(60,20;70,20)/(40,10;11,10);(70,10;60,10)/(20,40;40,40);(10,10;10,40)/(40,40;40,10);(10,40;40,40)/(40,10;10,10);(80,70;140,70)/(140,40;80,40)");
|
||||
EXPECT_EQ (r1.width_check (50, db::EdgesCheckOptions (true)).to_string (), "(60,10;60,20)/(70,20;70,10);(60,20;70,20)/(70,10;60,10);(60,20;70,20)/(40,10;10,10);(70,10;60,10)/(10,40;40,40);(10,10;10,40)/(40,40;40,10);(10,40;40,40)/(40,10;10,10);(80,70;140,70)/(140,40;80,40)");
|
||||
EXPECT_EQ (r1.width_check (50, db::EdgesCheckOptions (false, db::Projection)).to_string (), "(60,10;60,20)/(70,20;70,10);(60,20;70,20)/(70,10;60,10);(10,10;10,40)/(40,40;40,10);(10,40;40,40)/(40,10;10,10);(80,70;140,70)/(140,40;80,40)");
|
||||
EXPECT_EQ (r1.width_check (50, db::EdgesCheckOptions (false, db::Euclidian, 90, 1)).to_string (), "(60,10;60,20)/(70,20;70,10);(60,20;70,20)/(70,10;60,10);(10,10;10,40)/(40,40;40,10);(10,40;40,40)/(40,10;10,10);(80,70;140,70)/(140,40;80,40)");
|
||||
EXPECT_EQ (db::compare (r1.width_check (20), "(60,10;60,20)/(70,20;70,10);(60,20;70,20)/(70,10;60,10)"), true);
|
||||
EXPECT_EQ (db::compare (r1.width_check (50), "(60,10;60,20)/(70,20;70,10);(60,20;70,20)/(70,10;60,10);(60,20;70,20)/(40,10;11,10);(70,10;60,10)/(20,40;40,40);(10,10;10,40)/(40,40;40,10);(10,40;40,40)/(40,10;10,10);(80,70;140,70)/(140,40;80,40)"), true);
|
||||
EXPECT_EQ (db::compare (r1.width_check (50, db::EdgesCheckOptions (true)), "(60,10;60,20)/(70,20;70,10);(60,20;70,20)/(70,10;60,10);(60,20;70,20)/(40,10;10,10);(70,10;60,10)/(10,40;40,40);(10,10;10,40)/(40,40;40,10);(10,40;40,40)/(40,10;10,10);(80,70;140,70)/(140,40;80,40)"), true);
|
||||
EXPECT_EQ (db::compare (r1.width_check (50, db::EdgesCheckOptions (false, db::Projection)), "(60,10;60,20)/(70,20;70,10);(60,20;70,20)/(70,10;60,10);(10,10;10,40)/(40,40;40,10);(10,40;40,40)/(40,10;10,10);(80,70;140,70)/(140,40;80,40)"), true);
|
||||
EXPECT_EQ (db::compare (r1.width_check (50, db::EdgesCheckOptions (false, db::Euclidian, 90, 1)), "(60,10;60,20)/(70,20;70,10);(60,20;70,20)/(70,10;60,10);(10,10;10,40)/(40,40;40,10);(10,40;40,40)/(40,10;10,10);(80,70;140,70)/(140,40;80,40)"), true);
|
||||
}
|
||||
|
||||
{
|
||||
db::Edges r1 (db::RecursiveShapeIterator (ly, ly.cell (top), l2), false);
|
||||
EXPECT_EQ (r1.has_valid_edges (), false);
|
||||
EXPECT_EQ (r1.space_check (30).to_string (), "(60,10;60,20)/(40,40;40,10);(60,20;70,20)/(92,40;80,40);(70,20;70,12)/(80,40;80,48)");
|
||||
EXPECT_EQ (db::compare (r1.space_check (30), "(60,10;60,20)/(40,40;40,10);(60,20;70,20)/(92,40;80,40);(70,20;70,12)/(80,40;80,48)"), true);
|
||||
EXPECT_EQ (r1.space_check (2).to_string (), "");
|
||||
}
|
||||
|
||||
|
|
@ -761,9 +762,9 @@ TEST(20)
|
|||
EXPECT_EQ (r1.has_valid_edges (), false);
|
||||
db::Edges r2 (db::RecursiveShapeIterator (ly, ly.cell (top), l2), false);
|
||||
EXPECT_EQ (r2.has_valid_edges (), false);
|
||||
EXPECT_EQ (r1.separation_check (r2, 20).to_string (), "(50,0;50,30)/(40,40;40,10);(63,30;80,30)/(97,40;80,40);(50,40;50,57)/(40,40;40,23);(80,70;80,40)/(80,40;80,70)");
|
||||
EXPECT_EQ (r1.separation_check (r2, 20, db::EdgesCheckOptions (false, db::Projection)).to_string (), "(50,10;50,30)/(40,30;40,10);(80,70;80,40)/(80,40;80,70)");
|
||||
EXPECT_EQ (r1.separation_check (r2, 20, db::EdgesCheckOptions (false, db::Euclidian, 90, 1)).to_string (), "(50,0;50,30)/(40,40;40,10);(80,70;80,40)/(80,40;80,70)");
|
||||
EXPECT_EQ (db::compare (r1.separation_check (r2, 20), "(50,0;50,30)/(40,40;40,10);(63,30;80,30)/(97,40;80,40);(50,40;50,57)/(40,40;40,23);(80,70;80,40)/(80,40;80,70)"), true);
|
||||
EXPECT_EQ (db::compare (r1.separation_check (r2, 20, db::EdgesCheckOptions (false, db::Projection)), "(50,10;50,30)/(40,30;40,10);(80,70;80,40)/(80,40;80,70)"), true);
|
||||
EXPECT_EQ (db::compare (r1.separation_check (r2, 20, db::EdgesCheckOptions (false, db::Euclidian, 90, 1)), "(50,0;50,30)/(40,40;40,10);(80,70;80,40)/(80,40;80,70)"), true);
|
||||
}
|
||||
|
||||
{
|
||||
|
|
@ -788,7 +789,7 @@ TEST(20)
|
|||
|
||||
db::Edges r2dup = r2;
|
||||
r2.select_interacting (rr1);
|
||||
EXPECT_EQ (r2.to_string (), "(60,10;60,20);(60,20;70,20);(70,20;70,10);(70,10;60,10);(10,10;10,40);(40,10;10,10);(80,40;80,70);(80,70;140,70);(140,40;80,40)");
|
||||
EXPECT_EQ (db::compare (r2, "(60,10;60,20);(60,20;70,20);(70,20;70,10);(70,10;60,10);(10,10;10,40);(40,10;10,10);(80,40;80,70);(80,70;140,70);(140,40;80,40)"), true);
|
||||
r2 = r2dup;
|
||||
r2.select_not_interacting (rr1);
|
||||
EXPECT_EQ (r2.to_string (100), "(10,40;40,40);(40,40;40,10);(140,70;140,40)");
|
||||
|
|
@ -796,7 +797,7 @@ TEST(20)
|
|||
r2 = db::Edges (db::RecursiveShapeIterator (ly, ly.cell (top), l2), false);
|
||||
EXPECT_EQ (r2.has_valid_edges (), false);
|
||||
r2.select_interacting (r1);
|
||||
EXPECT_EQ (r2.to_string (), "(10,10;10,40);(40,10;10,10);(80,40;80,70);(80,70;140,70);(140,40;80,40)");
|
||||
EXPECT_EQ (db::compare (r2, "(10,10;10,40);(40,10;10,10);(80,40;80,70);(80,70;140,70);(140,40;80,40)"), true);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -818,16 +819,16 @@ TEST(21)
|
|||
ee.select_inside_part (r);
|
||||
EXPECT_EQ (ee.to_string (), "(0,100;100,100)");
|
||||
|
||||
EXPECT_EQ ((e - r).to_string (), "(-100,100;0,100);(100,100;200,100)");
|
||||
EXPECT_EQ (e.outside_part (r).to_string (), "(-100,100;0,100);(100,100;200,100)");
|
||||
EXPECT_EQ (db::compare ((e - r), "(-100,100;0,100);(100,100;200,100)"), true);
|
||||
EXPECT_EQ (db::compare (e.outside_part (r), "(-100,100;0,100);(100,100;200,100)"), true);
|
||||
|
||||
ee = e;
|
||||
ee -= r;
|
||||
EXPECT_EQ (ee.to_string (), "(-100,100;0,100);(100,100;200,100)");
|
||||
EXPECT_EQ (db::compare (ee, "(-100,100;0,100);(100,100;200,100)"), true);
|
||||
|
||||
ee = e;
|
||||
ee.select_outside_part (r);
|
||||
EXPECT_EQ (ee.to_string (), "(-100,100;0,100);(100,100;200,100)");
|
||||
EXPECT_EQ (db::compare (ee, "(-100,100;0,100);(100,100;200,100)"), true);
|
||||
|
||||
e.clear ();
|
||||
e.insert (db::Edge (-100, 0, 200, 0));
|
||||
|
|
@ -842,16 +843,16 @@ TEST(21)
|
|||
ee.select_inside_part (r);
|
||||
EXPECT_EQ (ee.to_string (), "");
|
||||
|
||||
EXPECT_EQ ((e - r).to_string (), "(-100,0;0,0);(100,0;200,0)");
|
||||
EXPECT_EQ (e.outside_part (r).to_string (), "(-100,0;0,0);(0,0;100,0);(100,0;200,0)");
|
||||
EXPECT_EQ (db::compare ((e - r), "(-100,0;0,0);(100,0;200,0)"), true);
|
||||
EXPECT_EQ (db::compare (e.outside_part (r), "(-100,0;0,0);(0,0;100,0);(100,0;200,0)"), true);
|
||||
|
||||
ee = e;
|
||||
ee -= r;
|
||||
EXPECT_EQ (ee.to_string (), "(-100,0;0,0);(100,0;200,0)");
|
||||
EXPECT_EQ (db::compare (ee, "(-100,0;0,0);(100,0;200,0)"), true);
|
||||
|
||||
ee = e;
|
||||
ee.select_outside_part (r);
|
||||
EXPECT_EQ (ee.to_string (), "(-100,0;0,0);(0,0;100,0);(100,0;200,0)");
|
||||
EXPECT_EQ (db::compare (ee, "(-100,0;0,0);(0,0;100,0);(100,0;200,0)"), true);
|
||||
}
|
||||
|
||||
TEST(22)
|
||||
|
|
@ -872,8 +873,8 @@ TEST(22)
|
|||
ee.insert (db::Edge (4000,0,4000,-2000));
|
||||
ee.insert (db::Edge (4000,-2000,-2000,-2000));
|
||||
|
||||
EXPECT_EQ ((e & ee).to_string (), "(400,0;-2000,0);(500,-174;400,0);(1000,0;900,-173);(4000,0;1000,0)");
|
||||
EXPECT_EQ (e.intersections (ee).to_string (), "(400,0;-2000,0);(500,-174;400,0);(1000,0;900,-173);(4000,0;1000,0)");
|
||||
EXPECT_EQ (db::compare ((e & ee), "(400,0;-2000,0);(500,-174;400,0);(1000,0;900,-173);(4000,0;1000,0)"), true);
|
||||
EXPECT_EQ (db::compare (e.intersections (ee), "(400,0;-2000,0);(500,-174;400,0);(1000,0;900,-173);(4000,0;1000,0)"), true);
|
||||
|
||||
// Edge/edge intersections
|
||||
ee.clear ();
|
||||
|
|
@ -882,7 +883,7 @@ TEST(22)
|
|||
ee.insert (db::Edge (-50, 50, 50, 50));
|
||||
ee.insert (db::Edge (-50, 100, 50, 100));
|
||||
EXPECT_EQ ((e & ee).to_string (), ""); // AND does not report intersection points
|
||||
EXPECT_EQ (e.intersections (ee).to_string (), "(0,50;0,50);(0,100;0,100)");
|
||||
EXPECT_EQ (db::compare (e.intersections (ee), "(0,50;0,50);(0,100;0,100)"), true);
|
||||
|
||||
// Edge is intersected by pair with connection point on this line
|
||||
ee.clear ();
|
||||
|
|
@ -893,7 +894,7 @@ TEST(22)
|
|||
ee.insert (db::Edge (-50, 100, 0, 100));
|
||||
ee.insert (db::Edge (0, 100, 50, 100));
|
||||
EXPECT_EQ ((e & ee).to_string (), ""); // AND does not report intersection points
|
||||
EXPECT_EQ (e.intersections (ee).to_string (), "(0,50;0,50);(0,60;0,60);(0,100;0,100)");
|
||||
EXPECT_EQ (db::compare (e.intersections (ee), "(0,50;0,50);(0,60;0,60);(0,100;0,100)"), true);
|
||||
|
||||
// Coincident edges are crossed by another one
|
||||
ee.clear ();
|
||||
|
|
@ -903,7 +904,7 @@ TEST(22)
|
|||
ee.insert (db::Edge (-50, 100, 50, 100));
|
||||
ee.insert (db::Edge (-50, 200, 50, 200));
|
||||
EXPECT_EQ ((e & ee).to_string (), "(0,0;0,150)");
|
||||
EXPECT_EQ (e.intersections (ee).to_string (), "(0,0;0,150);(0,200;0,200)");
|
||||
EXPECT_EQ (db::compare (e.intersections (ee), "(0,0;0,150);(0,200;0,200)"), true);
|
||||
}
|
||||
|
||||
TEST(23)
|
||||
|
|
@ -951,12 +952,12 @@ TEST(100)
|
|||
r.insert (db::Box (1000, -1000, 2000, 0));
|
||||
r.insert (db::Box (1000, 1000, 2000, 2000));
|
||||
|
||||
EXPECT_EQ ((e - r).to_string (), "(0,0;0,1000);(1000,0;0,0);(3000,0;2000,0);(3000,1000;3000,0);(0,1000;1000,1000);(2000,1000;3000,1000)");
|
||||
EXPECT_EQ (db::compare ((e - r), "(0,0;0,1000);(1000,0;0,0);(3000,0;2000,0);(3000,1000;3000,0);(0,1000;1000,1000);(2000,1000;3000,1000)"), true);
|
||||
|
||||
r.clear ();
|
||||
r.insert (db::Box (1000, -1000, 2000, 2000));
|
||||
|
||||
EXPECT_EQ ((e - r).to_string (), "(0,0;0,1000);(1000,0;0,0);(3000,0;2000,0);(3000,1000;3000,0);(0,1000;1000,1000);(2000,1000;3000,1000)");
|
||||
EXPECT_EQ (db::compare ((e - r), "(0,0;0,1000);(1000,0;0,0);(3000,0;2000,0);(3000,1000;3000,0);(0,1000;1000,1000);(2000,1000;3000,1000)"), true);
|
||||
|
||||
e.clear ();
|
||||
e.insert (db::Edge (0, 0, 100, 1000));
|
||||
|
|
@ -968,12 +969,12 @@ TEST(100)
|
|||
r.insert (db::Box (1000, -1000, 2000, 0));
|
||||
r.insert (db::Box (1000, 1000, 2000, 2000));
|
||||
|
||||
EXPECT_EQ ((e - r).to_string (), "(0,0;100,1000);(1000,0;0,0);(3000,0;2000,0);(3100,1000;3000,0);(100,1000;1000,1000);(2000,1000;3100,1000)");
|
||||
EXPECT_EQ (db::compare ((e - r), "(0,0;100,1000);(1000,0;0,0);(3000,0;2000,0);(3100,1000;3000,0);(100,1000;1000,1000);(2000,1000;3100,1000)"), true);
|
||||
|
||||
r.clear ();
|
||||
r.insert (db::Box (1000, -1000, 2000, 2000));
|
||||
|
||||
EXPECT_EQ ((e - r).to_string (), "(0,0;100,1000);(1000,0;0,0);(3000,0;2000,0);(3100,1000;3000,0);(100,1000;1000,1000);(2000,1000;3100,1000)");
|
||||
EXPECT_EQ (db::compare ((e - r), "(0,0;100,1000);(1000,0;0,0);(3000,0;2000,0);(3100,1000;3000,0);(100,1000;1000,1000);(2000,1000;3100,1000)"), true);
|
||||
|
||||
e.clear ();
|
||||
e.insert (db::Edge (0, 0, 1000, 0));
|
||||
|
|
@ -985,11 +986,11 @@ TEST(100)
|
|||
r.insert (db::Box (-1000, 1000, 0, 2000));
|
||||
r.insert (db::Box (1000, 1000, 2000, 2000));
|
||||
|
||||
EXPECT_EQ ((e - r).to_string (), "(0,1000;0,0);(0,0;1000,0);(1000,0;1000,1000);(0,3000;0,2000);(1000,2000;1000,3000);(1000,3000;0,3000)");
|
||||
EXPECT_EQ (db::compare ((e - r), "(0,1000;0,0);(0,0;1000,0);(1000,0;1000,1000);(0,3000;0,2000);(1000,2000;1000,3000);(1000,3000;0,3000)"), true);
|
||||
|
||||
r.clear ();
|
||||
r.insert (db::Box (-1000, 1000, 2000, 2000));
|
||||
|
||||
EXPECT_EQ ((e - r).to_string (), "(0,1000;0,0);(0,0;1000,0);(1000,0;1000,1000);(0,3000;0,2000);(1000,2000;1000,3000);(1000,3000;0,3000)");
|
||||
EXPECT_EQ (db::compare ((e - r), "(0,1000;0,0);(0,0;1000,0);(1000,0;1000,1000);(0,3000;0,2000);(1000,2000;1000,3000);(1000,3000;0,3000)"), true);
|
||||
}
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -27,6 +27,7 @@
|
|||
#include "dbTextsUtils.h"
|
||||
#include "dbEdges.h"
|
||||
#include "dbRegion.h"
|
||||
#include "dbTestSupport.h"
|
||||
|
||||
TEST(1)
|
||||
{
|
||||
|
|
@ -88,21 +89,21 @@ TEST(2)
|
|||
texts.insert (db::Text ("abc", db::Trans (db::Vector (100, -200))));
|
||||
texts.insert (db::Text ("uvw", db::Trans (db::Vector (110, 210))));
|
||||
|
||||
EXPECT_EQ (texts.to_string (), "('abc',r0 100,-200);('uvw',r0 110,210)");
|
||||
EXPECT_EQ (db::compare (texts, "('abc',r0 100,-200);('uvw',r0 110,210)"), true);
|
||||
|
||||
db::Texts ee;
|
||||
std::string s = texts.to_string ();
|
||||
tl::Extractor ex (s.c_str ());
|
||||
EXPECT_EQ (ex.try_read (ee), true);
|
||||
EXPECT_EQ (ee.to_string (), "('abc',r0 100,-200);('uvw',r0 110,210)");
|
||||
EXPECT_EQ (db::compare (ee, "('abc',r0 100,-200);('uvw',r0 110,210)"), true);
|
||||
|
||||
db::Edges e;
|
||||
texts.edges (e);
|
||||
EXPECT_EQ (e.to_string (), "(100,-200;100,-200);(110,210;110,210)");
|
||||
EXPECT_EQ (db::compare (e, "(100,-200;100,-200);(110,210;110,210)"), true);
|
||||
|
||||
db::Region r;
|
||||
texts.polygons (r);
|
||||
EXPECT_EQ (r.to_string (), "(99,-201;99,-199;101,-199;101,-201);(109,209;109,211;111,211;111,209)");
|
||||
EXPECT_EQ (db::compare (r, "(99,-201;99,-199;101,-199;101,-201);(109,209;109,211;111,211;111,209)"), true);
|
||||
}
|
||||
|
||||
TEST(3)
|
||||
|
|
@ -160,7 +161,7 @@ TEST(5)
|
|||
texts.insert_into_as_polygons (&ly, top_cell, l1, 1);
|
||||
|
||||
db::Region r (db::RecursiveShapeIterator (ly, ly.cell (top_cell), l1));
|
||||
EXPECT_EQ (r.to_string (), "(99,-201;99,-199;101,-199;101,-201);(109,209;109,211;111,211;111,209)");
|
||||
EXPECT_EQ (db::compare (r, "(99,-201;99,-199;101,-199;101,-201);(109,209;109,211;111,211;111,209)"), true);
|
||||
}
|
||||
|
||||
TEST(6)
|
||||
|
|
@ -176,7 +177,7 @@ TEST(6)
|
|||
texts.insert_into (&ly, top_cell, l1);
|
||||
|
||||
db::Texts r (db::RecursiveShapeIterator (ly, ly.cell (top_cell), l1));
|
||||
EXPECT_EQ (r.to_string (), "('abc',r0 100,-200);('uvw',r0 110,210)");
|
||||
EXPECT_EQ (db::compare (r, "('abc',r0 100,-200);('uvw',r0 110,210)"), true);
|
||||
}
|
||||
|
||||
TEST(7)
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ TARGET = pya_tests
|
|||
include($$PWD/../../lib_ut.pri)
|
||||
|
||||
SOURCES = \
|
||||
pya.cc
|
||||
pyaTests.cc
|
||||
|
||||
INCLUDEPATH += $$PYA_INC $$DB_INC $$TL_INC $$GSI_INC
|
||||
DEPENDPATH += $$PYA_INC $$DB_INC $$TL_INC $$GSI_INC
|
||||
|
|
|
|||
|
|
@ -23,6 +23,13 @@ end
|
|||
|
||||
load("test_prologue.rb")
|
||||
|
||||
# normalizes a specification string for region, edges etc.
|
||||
# such that the order of the objects becomes irrelevant
|
||||
def csort(s)
|
||||
# splits at ");(" without consuming the brackets
|
||||
s.split(/(?<=\));(?=\()/).sort.join(";")
|
||||
end
|
||||
|
||||
class DBEdgePairs_TestClass < TestBase
|
||||
|
||||
# Basics
|
||||
|
|
@ -47,7 +54,7 @@ class DBEdgePairs_TestClass < TestBase
|
|||
assert_equal(r.extents(5, -5).to_s, "(-25,5;-25,95;5,95;5,5)")
|
||||
assert_equal(r.first_edges.to_s, "(0,0;0,100)")
|
||||
assert_equal(r.second_edges.to_s, "(-10,0;-20,50)")
|
||||
assert_equal(r.edges.to_s, "(0,0;0,100);(-10,0;-20,50)")
|
||||
assert_equal(csort(r.edges.to_s), csort("(0,0;0,100);(-10,0;-20,50)"))
|
||||
assert_equal(r.is_empty?, false)
|
||||
assert_equal(r.size, 1)
|
||||
assert_equal(r[0].to_s, "(0,0;0,100)/(-10,0;-20,50)")
|
||||
|
|
@ -105,9 +112,9 @@ class DBEdgePairs_TestClass < TestBase
|
|||
r2.insert(RBA::Edge::new(1, 0, 1, 100), RBA::Edge::new(-11, 0, -21, 50))
|
||||
r2.insert(RBA::Edge::new(1, 1, 1, 101), RBA::Edge::new(-11, 1, -21, 51))
|
||||
|
||||
assert_equal((r1 + r2).to_s, "(0,0;0,100)/(-10,0;-20,50);(0,1;0,101)/(-10,1;-20,51);(1,0;1,100)/(-11,0;-21,50);(1,1;1,101)/(-11,1;-21,51)")
|
||||
assert_equal(csort((r1 + r2).to_s), csort("(0,0;0,100)/(-10,0;-20,50);(0,1;0,101)/(-10,1;-20,51);(1,0;1,100)/(-11,0;-21,50);(1,1;1,101)/(-11,1;-21,51)"))
|
||||
r1 += r2
|
||||
assert_equal(r1.to_s, "(0,0;0,100)/(-10,0;-20,50);(0,1;0,101)/(-10,1;-20,51);(1,0;1,100)/(-11,0;-21,50);(1,1;1,101)/(-11,1;-21,51)")
|
||||
assert_equal(csort(r1.to_s), csort("(0,0;0,100)/(-10,0;-20,50);(0,1;0,101)/(-10,1;-20,51);(1,0;1,100)/(-11,0;-21,50);(1,1;1,101)/(-11,1;-21,51)"))
|
||||
|
||||
end
|
||||
|
||||
|
|
@ -118,7 +125,7 @@ class DBEdgePairs_TestClass < TestBase
|
|||
ep3 = RBA::EdgePair::new(RBA::Edge::new(0, 0, 0, 10), RBA::Edge::new(10, 10, 10, 0))
|
||||
|
||||
r1 = RBA::EdgePairs::new([ ep1, ep2 ])
|
||||
assert_equal(r1.to_s, "(0,1;2,3)/(10,11;12,13);(20,21;22,23)/(30,31;32,33)")
|
||||
assert_equal(csort(r1.to_s), csort("(0,1;2,3)/(10,11;12,13);(20,21;22,23)/(30,31;32,33)"))
|
||||
|
||||
r1 = RBA::EdgePairs::new(ep1)
|
||||
assert_equal(r1.to_s, "(0,1;2,3)/(10,11;12,13)")
|
||||
|
|
@ -127,7 +134,7 @@ class DBEdgePairs_TestClass < TestBase
|
|||
s.insert(ep1)
|
||||
s.insert(ep2)
|
||||
r1 = RBA::EdgePairs::new(s)
|
||||
assert_equal(r1.to_s, "(0,1;2,3)/(10,11;12,13);(20,21;22,23)/(30,31;32,33)")
|
||||
assert_equal(csort(r1.to_s), csort("(0,1;2,3)/(10,11;12,13);(20,21;22,23)/(30,31;32,33)"))
|
||||
|
||||
ly = RBA::Layout::new
|
||||
l1 = ly.layer("l1")
|
||||
|
|
|
|||
|
|
@ -23,6 +23,13 @@ end
|
|||
|
||||
load("test_prologue.rb")
|
||||
|
||||
# normalizes a specification string for region, edges etc.
|
||||
# such that the order of the objects becomes irrelevant
|
||||
def csort(s)
|
||||
# splits at ");(" without consuming the brackets
|
||||
s.split(/(?<=\));(?=\()/).sort.join(";")
|
||||
end
|
||||
|
||||
class DBEdges_TestClass < TestBase
|
||||
|
||||
# Basics
|
||||
|
|
@ -47,7 +54,7 @@ class DBEdges_TestClass < TestBase
|
|||
assert_equal(r.is_merged?, true)
|
||||
|
||||
r.assign(RBA::Edges::new([RBA::Edge::new(10, 20, 100, 200), RBA::Edge::new(11, 21, 101, 201)]))
|
||||
assert_equal(r.to_s, "(10,20;100,200);(11,21;101,201)")
|
||||
assert_equal(csort(r.to_s), csort("(10,20;100,200);(11,21;101,201)"))
|
||||
assert_equal(r.is_empty?, false)
|
||||
assert_equal(r.count, 2)
|
||||
assert_equal(r.hier_count, 2)
|
||||
|
|
@ -63,7 +70,7 @@ class DBEdges_TestClass < TestBase
|
|||
assert_equal(r.is_merged?, true)
|
||||
|
||||
r.assign(RBA::Edges::new(RBA::Box::new(10, 20, 100, 200)))
|
||||
assert_equal(r.to_s, "(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)")
|
||||
assert_equal(csort(r.to_s), csort("(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)"))
|
||||
s = ""
|
||||
r.each do |e|
|
||||
s.empty? || s += ";"
|
||||
|
|
@ -108,7 +115,7 @@ class DBEdges_TestClass < TestBase
|
|||
assert_equal(r.is_merged?, true)
|
||||
|
||||
r = RBA::Edges::new(RBA::Polygon::new(RBA::Box::new(10, 20, 100, 200)))
|
||||
assert_equal(r.to_s, "(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)")
|
||||
assert_equal(csort(r.to_s), csort("(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)"))
|
||||
assert_equal(r.is_empty?, false)
|
||||
assert_equal(r.count, 4)
|
||||
assert_equal(r.hier_count, 4)
|
||||
|
|
@ -116,7 +123,7 @@ class DBEdges_TestClass < TestBase
|
|||
assert_equal(r.is_merged?, false)
|
||||
|
||||
r = RBA::Edges::new(RBA::SimplePolygon::new(RBA::Box::new(10, 20, 100, 200)))
|
||||
assert_equal(r.to_s, "(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)")
|
||||
assert_equal(csort(r.to_s), csort("(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)"))
|
||||
assert_equal(r.is_empty?, false)
|
||||
assert_equal(r.count, 4)
|
||||
assert_equal(r.hier_count, 4)
|
||||
|
|
@ -128,18 +135,18 @@ class DBEdges_TestClass < TestBase
|
|||
r.insert(RBA::Box::new(10, 20, 100, 200))
|
||||
assert_equal(r.is_merged?, false)
|
||||
assert_equal(r.merged_semantics?, true)
|
||||
assert_equal(r.to_s, "(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20);(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)")
|
||||
assert_equal(r.merged.to_s, "(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)")
|
||||
assert_equal(csort(r.to_s), csort("(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20);(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)"))
|
||||
assert_equal(csort(r.merged.to_s), csort("(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)"))
|
||||
assert_equal(r.length, 2*90+2*180)
|
||||
r.merged_semantics = false
|
||||
assert_equal(r.merged_semantics?, false)
|
||||
assert_equal(r.length, 2*(2*90+2*180))
|
||||
|
||||
r = RBA::Edges::new(RBA::Path::new([ RBA::Point::new(0, 0), RBA::Point::new(100, 0) ], 20))
|
||||
assert_equal(r.to_s, "(0,-10;0,10);(0,10;100,10);(100,10;100,-10);(100,-10;0,-10)")
|
||||
assert_equal(r.extents.to_s, "(0,-10;0,-10;0,10;0,10);(0,10;100,10;100,10;0,10);(100,-10;100,-10;100,10;100,10);(0,-10;100,-10;100,-10;0,-10)")
|
||||
assert_equal(r.extents(10).to_s, "(-10,-20;-10,20;10,20;10,-20);(-10,0;-10,20;110,20;110,0);(90,-20;90,20;110,20;110,-20);(-10,-20;-10,0;110,0;110,-20)")
|
||||
assert_equal(r.extents(5, -5).to_s, "(-5,-5;-5,5;5,5;5,-5);(95,-5;95,5;105,5;105,-5)")
|
||||
assert_equal(csort(r.to_s), csort("(0,-10;0,10);(0,10;100,10);(100,10;100,-10);(100,-10;0,-10)"))
|
||||
assert_equal(csort(r.extents.to_s), csort("(0,-10;0,-10;0,10;0,10);(0,10;100,10;100,10;0,10);(100,-10;100,-10;100,10;100,10);(0,-10;100,-10;100,-10;0,-10)"))
|
||||
assert_equal(csort(r.extents(10).to_s), csort("(-10,-20;-10,20;10,20;10,-20);(-10,0;-10,20;110,20;110,0);(90,-20;90,20;110,20;110,-20);(-10,-20;-10,0;110,0;110,-20)"))
|
||||
assert_equal(csort(r.extents(5, -5).to_s), csort("(-5,-5;-5,5;5,5;5,-5);(95,-5;95,5;105,5;105,-5)"))
|
||||
assert_equal(r.is_empty?, false)
|
||||
assert_equal(r.count, 4)
|
||||
assert_equal(r.hier_count, 4)
|
||||
|
|
@ -150,7 +157,7 @@ class DBEdges_TestClass < TestBase
|
|||
RBA::Polygon::new(RBA::Box::new(10, 20, 100, 200)),
|
||||
RBA::Polygon::new(RBA::Box::new(20, 50, 120, 250))
|
||||
] )
|
||||
assert_equal(r.to_s, "(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20);(20,50;20,250);(20,250;120,250);(120,250;120,50);(120,50;20,50)")
|
||||
assert_equal(csort(r.to_s), csort("(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20);(20,50;20,250);(20,250;120,250);(120,250;120,50);(120,50;20,50)"))
|
||||
assert_equal(r.is_empty?, false)
|
||||
assert_equal(r.count, 8)
|
||||
assert_equal(r.hier_count, 8)
|
||||
|
|
@ -225,28 +232,28 @@ class DBEdges_TestClass < TestBase
|
|||
assert_equal(r.to_s, "(10,20;100,200)")
|
||||
r.clear
|
||||
r.insert(RBA::Box::new(10, 20, 100, 200))
|
||||
assert_equal(r.to_s, "(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)")
|
||||
assert_equal(csort(r.to_s), csort("(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)"))
|
||||
r.clear
|
||||
r.insert(RBA::Polygon::new(RBA::Box::new(10, 20, 100, 200)))
|
||||
assert_equal(r.to_s, "(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)")
|
||||
assert_equal(csort(r.to_s), csort("(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)"))
|
||||
r.clear
|
||||
r.insert(RBA::SimplePolygon::new(RBA::Box::new(10, 20, 100, 200)))
|
||||
assert_equal(r.to_s, "(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)")
|
||||
assert_equal(csort(r.to_s), csort("(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)"))
|
||||
r.clear
|
||||
r.insert(RBA::Path::new([ RBA::Point::new(0, 0), RBA::Point::new(100, 0) ], 20))
|
||||
assert_equal(r.to_s, "(0,-10;0,10);(0,10;100,10);(100,10;100,-10);(100,-10;0,-10)")
|
||||
assert_equal(csort(r.to_s), csort("(0,-10;0,10);(0,10;100,10);(100,10;100,-10);(100,-10;0,-10)"))
|
||||
r.clear
|
||||
r.insert( [
|
||||
RBA::Polygon::new(RBA::Box::new(10, 20, 100, 200)),
|
||||
RBA::Polygon::new(RBA::Box::new(20, 50, 120, 250))
|
||||
] )
|
||||
assert_equal(r.to_s, "(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20);(20,50;20,250);(20,250;120,250);(120,250;120,50);(120,50;20,50)")
|
||||
assert_equal(csort(r.to_s), csort("(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20);(20,50;20,250);(20,250;120,250);(120,250;120,50);(120,50;20,50)"))
|
||||
r.clear
|
||||
r.insert( [
|
||||
RBA::Edge::new(10, 20, 100, 200),
|
||||
RBA::Edge::new(20, 50, 120, 250)
|
||||
] )
|
||||
assert_equal(r.to_s, "(10,20;100,200);(20,50;120,250)")
|
||||
assert_equal(csort(r.to_s), csort("(10,20;100,200);(20,50;120,250)"))
|
||||
r.clear
|
||||
r.insert(ly.begin_shapes(c1.cell_index, l1))
|
||||
assert_equal(r.to_s(30), "(-10,-20;-10,20);(-10,20;10,20);(10,20;10,-20);(10,-20;-10,-20);(-10,80;-10,120);(-10,120;10,120);(10,120;10,80);(10,80;-10,80);(190,80;190,120);(190,120;210,120);(210,120;210,80);(210,80;190,80)")
|
||||
|
|
@ -264,7 +271,7 @@ class DBEdges_TestClass < TestBase
|
|||
rr = RBA::Region::new
|
||||
rr.insert(RBA::Box::new(10, 20, 100, 200))
|
||||
r.insert(rr)
|
||||
assert_equal(r.to_s, "(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)")
|
||||
assert_equal(csort(r.to_s), csort("(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)"))
|
||||
|
||||
r = RBA::Edges::new
|
||||
s = RBA::Shapes::new
|
||||
|
|
@ -276,7 +283,7 @@ class DBEdges_TestClass < TestBase
|
|||
s = RBA::Shapes::new
|
||||
s.insert(RBA::Polygon::new(RBA::Box::new(10, 20, 100, 200)))
|
||||
r.insert(s)
|
||||
assert_equal(r.to_s, "(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)")
|
||||
assert_equal(csort(r.to_s), csort("(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)"))
|
||||
|
||||
r = RBA::Edges::new
|
||||
s = RBA::Shapes::new
|
||||
|
|
@ -307,14 +314,14 @@ class DBEdges_TestClass < TestBase
|
|||
r2.insert(RBA::Edge::new(50, 0, 200, 0))
|
||||
|
||||
r = r1 + r2
|
||||
assert_equal(r.to_s, "(0,0;100,0);(50,0;200,0)")
|
||||
assert_equal(csort(r.to_s), csort("(0,0;100,0);(50,0;200,0)"))
|
||||
assert_equal(r.merged.to_s, "(0,0;200,0)")
|
||||
r.merge
|
||||
assert_equal(r.is_merged?, true)
|
||||
assert_equal(r.to_s, "(0,0;200,0)")
|
||||
r = r1.dup
|
||||
r += r2
|
||||
assert_equal(r.to_s, "(0,0;100,0);(50,0;200,0)")
|
||||
assert_equal(csort(r.to_s), csort("(0,0;100,0);(50,0;200,0)"))
|
||||
|
||||
r = r1 | r2
|
||||
assert_equal(r.to_s, "(0,0;200,0)")
|
||||
|
|
@ -341,11 +348,11 @@ class DBEdges_TestClass < TestBase
|
|||
assert_equal(r.to_s, "(0,0;50,0)")
|
||||
|
||||
r = r1 ^ r2
|
||||
assert_equal(r.to_s, "(0,0;50,0);(100,0;200,0)")
|
||||
assert_equal(csort(r.to_s), csort("(0,0;50,0);(100,0;200,0)"))
|
||||
assert_equal(r.is_merged?, true)
|
||||
r = r1.dup
|
||||
r ^= r2
|
||||
assert_equal(r.to_s, "(0,0;50,0);(100,0;200,0)")
|
||||
assert_equal(csort(r.to_s), csort("(0,0;50,0);(100,0;200,0)"))
|
||||
|
||||
end
|
||||
|
||||
|
|
@ -370,10 +377,10 @@ class DBEdges_TestClass < TestBase
|
|||
r = RBA::Edges::new
|
||||
r.insert(RBA::Edge::new(0, 0, 100, 0))
|
||||
r.insert(RBA::Edge::new(100, 0, 100, 100))
|
||||
assert_equal(r.extended(1, 2, 3, 4, false).to_s, "(-1,-4;-1,3;102,3;102,-4);(97,-1;97,102;104,102;104,-1)")
|
||||
assert_equal(csort(r.extended(1, 2, 3, 4, false).to_s), csort("(-1,-4;-1,3;102,3;102,-4);(97,-1;97,102;104,102;104,-1)"))
|
||||
assert_equal(r.extended(1, 2, 3, 4, true).to_s, "(-1,-4;-1,3;97,3;97,102;104,102;104,-4)")
|
||||
assert_equal(r.extended_in(1).to_s, "(0,-1;0,0;100,0;100,-1);(100,0;100,100;101,100;101,0)")
|
||||
assert_equal(r.extended_out(1).to_s, "(0,0;0,1;100,1;100,0);(99,0;99,100;100,100;100,0)")
|
||||
assert_equal(csort(r.extended_in(1).to_s), csort("(0,-1;0,0;100,0;100,-1);(100,0;100,100;101,100;101,0)"))
|
||||
assert_equal(csort(r.extended_out(1).to_s), csort("(0,0;0,1;100,1;100,0);(99,0;99,100;100,100;100,0)"))
|
||||
|
||||
end
|
||||
|
||||
|
|
@ -414,24 +421,24 @@ class DBEdges_TestClass < TestBase
|
|||
assert_equal(r3a.separation_check(r1, 15, false, RBA::Edges::Projection, nil, 380, 500).to_s, "")
|
||||
assert_equal(r3a.separation_check(r1, 15, false, RBA::Edges::Projection, nil, 0, 300).to_s, "(-10,10;-10,0)/(0,0;0,10)")
|
||||
|
||||
assert_equal(r3b.overlap_check(r1, 15).to_s, "(-10,10;10,10)/(21,0;0,0);(10,10;10,-10)/(0,0;0,21)")
|
||||
assert_equal(r3b.overlap_check(r1, 15, false, RBA::Edges::Projection, nil, nil, nil).to_s, "(0,10;10,10)/(10,0;0,0);(10,10;10,0)/(0,0;0,10)")
|
||||
assert_equal(r3b.overlap_check(r1, 15, true, RBA::Edges::Projection, nil, nil, nil).to_s, "(-10,10;10,10)/(100,0;0,0);(10,10;10,-10)/(0,0;0,200)")
|
||||
assert_equal(csort(r3b.overlap_check(r1, 15).to_s), csort("(-10,10;10,10)/(21,0;0,0);(10,10;10,-10)/(0,0;0,21)"))
|
||||
assert_equal(csort(r3b.overlap_check(r1, 15, false, RBA::Edges::Projection, nil, nil, nil).to_s), csort("(0,10;10,10)/(10,0;0,0);(10,10;10,0)/(0,0;0,10)"))
|
||||
assert_equal(csort(r3b.overlap_check(r1, 15, true, RBA::Edges::Projection, nil, nil, nil).to_s), csort("(-10,10;10,10)/(100,0;0,0);(10,10;10,-10)/(0,0;0,200)"))
|
||||
assert_equal(r3b.overlap_check(r1, 15, true, RBA::Edges::Projection, 0.0, nil, nil).to_s, "")
|
||||
assert_equal(r3b.overlap_check(r1, 15, false, RBA::Edges::Projection, nil, 0, 500).to_s, "(0,10;10,10)/(10,0;0,0);(10,10;10,0)/(0,0;0,10)")
|
||||
assert_equal(csort(r3b.overlap_check(r1, 15, false, RBA::Edges::Projection, nil, 0, 500).to_s), csort("(0,10;10,10)/(10,0;0,0);(10,10;10,0)/(0,0;0,10)"))
|
||||
assert_equal(r3b.overlap_check(r1, 15, false, RBA::Edges::Projection, nil, 380, 500).to_s, "")
|
||||
assert_equal(r3b.overlap_check(r1, 15, false, RBA::Edges::Projection, nil, 0, 300).to_s, "(0,10;10,10)/(10,0;0,0);(10,10;10,0)/(0,0;0,10)")
|
||||
assert_equal(csort(r3b.overlap_check(r1, 15, false, RBA::Edges::Projection, nil, 0, 300).to_s), csort("(0,10;10,10)/(10,0;0,0);(10,10;10,0)/(0,0;0,10)"))
|
||||
|
||||
assert_equal((r2 | r1).space_check(25).to_s, "(120,20;120,380)/(100,395;100,5);(0,200;50,200)/(50,220;10,220)")
|
||||
assert_equal((r2 | r1).space_check(25, false, RBA::Edges::Projection, nil, nil, nil).to_s, "(120,20;120,380)/(100,380;100,20);(10,200;50,200)/(50,220;10,220)")
|
||||
assert_equal((r2 | r1).space_check(25, true, RBA::Edges::Projection, nil, nil, nil).to_s, "(120,20;120,380)/(100,400;100,0);(0,200;50,200)/(50,220;10,220)")
|
||||
assert_equal(csort((r2 | r1).space_check(25).to_s), csort("(120,20;120,380)/(100,395;100,5);(0,200;50,200)/(50,220;10,220)"))
|
||||
assert_equal(csort((r2 | r1).space_check(25, false, RBA::Edges::Projection, nil, nil, nil).to_s), csort("(120,20;120,380)/(100,380;100,20);(10,200;50,200)/(50,220;10,220)"))
|
||||
assert_equal(csort((r2 | r1).space_check(25, true, RBA::Edges::Projection, nil, nil, nil).to_s), csort("(120,20;120,380)/(100,400;100,0);(0,200;50,200)/(50,220;10,220)"))
|
||||
assert_equal((r2 | r1).space_check(25, true, RBA::Edges::Projection, 0.0, nil, nil).to_s, "")
|
||||
assert_equal((r2 | r1).space_check(25, true, RBA::Edges::Projection, nil, 50, nil).to_s, "(120,20;120,380)/(100,400;100,0)")
|
||||
assert_equal((r2 | r1).space_check(25, true, RBA::Edges::Projection, nil, nil, 50).to_s, "(0,200;50,200)/(50,220;10,220)")
|
||||
|
||||
assert_equal((r2 | r1).width_check(60).to_s, "(120,20;120,380)/(130,380;130,20);(50,200;50,220)/(100,253;100,167)")
|
||||
assert_equal((r2 | r1).width_check(60, false, RBA::Edges::Projection, nil, nil, nil).to_s, "(120,20;120,380)/(130,380;130,20);(50,200;50,220)/(100,220;100,200)")
|
||||
assert_equal((r2 | r1).width_check(60, true, RBA::Edges::Projection, nil, nil, nil).to_s, "(120,20;120,380)/(130,380;130,20);(50,200;50,220)/(100,400;100,0)")
|
||||
assert_equal(csort((r2 | r1).width_check(60).to_s), csort("(120,20;120,380)/(130,380;130,20);(50,200;50,220)/(100,253;100,167)"))
|
||||
assert_equal(csort((r2 | r1).width_check(60, false, RBA::Edges::Projection, nil, nil, nil).to_s), csort("(120,20;120,380)/(130,380;130,20);(50,200;50,220)/(100,220;100,200)"))
|
||||
assert_equal(csort((r2 | r1).width_check(60, true, RBA::Edges::Projection, nil, nil, nil).to_s), csort("(120,20;120,380)/(130,380;130,20);(50,200;50,220)/(100,400;100,0)"))
|
||||
assert_equal((r2 | r1).width_check(60, true, RBA::Edges::Projection, 0.0, nil, nil).to_s, "")
|
||||
assert_equal((r2 | r1).width_check(60, true, RBA::Edges::Projection, nil, 50, nil).to_s, "(120,20;120,380)/(130,380;130,20)")
|
||||
assert_equal((r2 | r1).width_check(60, true, RBA::Edges::Projection, nil, nil, 50).to_s, "(50,200;50,220)/(100,400;100,0)")
|
||||
|
|
@ -505,18 +512,18 @@ class DBEdges_TestClass < TestBase
|
|||
r1.merged_semantics = false
|
||||
r2.merged_semantics = false
|
||||
|
||||
assert_equal(r1.in(r2).to_s, "(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)")
|
||||
assert_equal(r2.in(r1).to_s, "(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)")
|
||||
assert_equal(r1.not_in(r2).to_s, "(50,70;50,270);(50,270;150,270);(150,270;150,70);(150,70;50,70)")
|
||||
assert_equal(r2.not_in(r1).to_s, "(100,70;100,270);(100,270;250,270);(250,270;250,70);(250,70;100,70)")
|
||||
assert_equal(csort(r1.in(r2).to_s), csort("(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)"))
|
||||
assert_equal(csort(r2.in(r1).to_s), csort("(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)"))
|
||||
assert_equal(csort(r1.not_in(r2).to_s), csort("(50,70;50,270);(50,270;150,270);(150,270;150,70);(150,70;50,70)"))
|
||||
assert_equal(csort(r2.not_in(r1).to_s), csort("(100,70;100,270);(100,270;250,270);(250,270;250,70);(250,70;100,70)"))
|
||||
|
||||
r1.merged_semantics = true
|
||||
r2.merged_semantics = true
|
||||
|
||||
assert_equal(r1.in(r2).to_s, "(10,20;10,200);(10,200;100,200);(100,20;10,20)")
|
||||
assert_equal(r2.in(r1).to_s, "(10,20;10,200);(10,200;100,200);(100,20;10,20)")
|
||||
assert_equal(r1.not_in(r2).to_s, "(100,200;100,20);(50,70;50,270);(50,270;150,270);(150,270;150,70);(150,70;50,70)")
|
||||
assert_equal(r2.not_in(r1).to_s, "(100,270;250,270);(250,270;250,70);(250,70;100,70);(100,70;100,20);(100,200;100,270)")
|
||||
assert_equal(csort(r1.in(r2).to_s), csort("(10,20;10,200);(10,200;100,200);(100,20;10,20)"))
|
||||
assert_equal(csort(r2.in(r1).to_s), csort("(10,20;10,200);(10,200;100,200);(100,20;10,20)"))
|
||||
assert_equal(csort(r1.not_in(r2).to_s), csort("(100,200;100,20);(50,70;50,270);(50,270;150,270);(150,270;150,70);(150,70;50,70)"))
|
||||
assert_equal(csort(r2.not_in(r1).to_s), csort("(100,270;250,270);(250,270;250,70);(250,70;100,70);(100,70;100,20);(100,200;100,270)"))
|
||||
|
||||
end
|
||||
|
||||
|
|
@ -539,16 +546,16 @@ class DBEdges_TestClass < TestBase
|
|||
ee.select_inside_part(r)
|
||||
assert_equal(ee.to_s, "(0,100;100,100)")
|
||||
|
||||
assert_equal((e - r).to_s, "(-100,100;0,100);(100,100;200,100)")
|
||||
assert_equal(e.outside_part(r).to_s, "(-100,100;0,100);(100,100;200,100)")
|
||||
assert_equal(csort((e - r).to_s), csort("(-100,100;0,100);(100,100;200,100)"))
|
||||
assert_equal(csort(e.outside_part(r).to_s), csort("(-100,100;0,100);(100,100;200,100)"))
|
||||
|
||||
ee = e.dup
|
||||
ee -= r
|
||||
assert_equal(ee.to_s, "(-100,100;0,100);(100,100;200,100)")
|
||||
assert_equal(csort(ee.to_s), csort("(-100,100;0,100);(100,100;200,100)"))
|
||||
|
||||
ee = e.dup
|
||||
ee.select_outside_part(r)
|
||||
assert_equal(ee.to_s, "(-100,100;0,100);(100,100;200,100)")
|
||||
assert_equal(csort(ee.to_s), csort("(-100,100;0,100);(100,100;200,100)"))
|
||||
|
||||
e.clear
|
||||
e.insert(RBA::Edge::new(-100, 0, 200, 0))
|
||||
|
|
@ -563,16 +570,16 @@ class DBEdges_TestClass < TestBase
|
|||
ee.select_inside_part(r)
|
||||
assert_equal(ee.to_s, "")
|
||||
|
||||
assert_equal((e - r).to_s, "(-100,0;0,0);(100,0;200,0)")
|
||||
assert_equal(e.outside_part(r).to_s, "(-100,0;0,0);(0,0;100,0);(100,0;200,0)")
|
||||
assert_equal(csort((e - r).to_s), csort("(-100,0;0,0);(100,0;200,0)"))
|
||||
assert_equal(csort(e.outside_part(r).to_s), csort("(-100,0;0,0);(0,0;100,0);(100,0;200,0)"))
|
||||
|
||||
ee = e.dup
|
||||
ee -= r
|
||||
assert_equal(ee.to_s, "(-100,0;0,0);(100,0;200,0)")
|
||||
assert_equal(csort(ee.to_s), csort("(-100,0;0,0);(100,0;200,0)"))
|
||||
|
||||
ee = e.dup
|
||||
ee.select_outside_part(r)
|
||||
assert_equal(ee.to_s, "(-100,0;0,0);(0,0;100,0);(100,0;200,0)")
|
||||
assert_equal(csort(ee.to_s), csort("(-100,0;0,0);(0,0;100,0);(100,0;200,0)"))
|
||||
|
||||
end
|
||||
|
||||
|
|
@ -604,7 +611,7 @@ class DBEdges_TestClass < TestBase
|
|||
target.each_cell { |c| cells << c.name }
|
||||
assert_equal(cells.join(","), "TOP,C2")
|
||||
assert_equal(RBA::Edges::new(target.cell("TOP").shapes(target_li)).to_s, "")
|
||||
assert_equal(RBA::Edges::new(target.cell("C2").shapes(target_li)).to_s, "(-10,-20;-10,20);(-10,20;10,20);(10,20;10,-20);(10,-20;-10,-20)")
|
||||
assert_equal(csort(RBA::Edges::new(target.cell("C2").shapes(target_li)).to_s), csort("(-10,-20;-10,20);(-10,20;10,20);(10,20;10,-20);(10,-20;-10,-20)"))
|
||||
|
||||
r.flatten
|
||||
|
||||
|
|
|
|||
|
|
@ -23,6 +23,13 @@ end
|
|||
|
||||
load("test_prologue.rb")
|
||||
|
||||
# normalizes a specification string for region, edges etc.
|
||||
# such that the order of the objects becomes irrelevant
|
||||
def csort(s)
|
||||
# splits at ");(" without consuming the brackets
|
||||
s.split(/(?<=\));(?=\()/).sort.join(";")
|
||||
end
|
||||
|
||||
class DBRegion_TestClass < TestBase
|
||||
|
||||
# Basics
|
||||
|
|
@ -47,7 +54,7 @@ class DBRegion_TestClass < TestBase
|
|||
assert_equal(r.bbox.to_s, "(10,20;100,200)")
|
||||
assert_equal(r.is_merged?, true)
|
||||
assert_equal(r.is_box?, true)
|
||||
assert_equal(r.edges.to_s, "(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)")
|
||||
assert_equal(csort(r.edges.to_s), csort("(10,20;10,200);(10,200;100,200);(100,200;100,20);(100,20;10,20)"))
|
||||
|
||||
assert_equal(r.moved(RBA::Point::new(10, 20)).bbox.to_s, "(20,40;110,220)")
|
||||
assert_equal(r.moved(10, 20).bbox.to_s, "(20,40;110,220)")
|
||||
|
|
@ -115,7 +122,7 @@ class DBRegion_TestClass < TestBase
|
|||
RBA::Polygon::new(RBA::Box::new(10, 20, 100, 200)),
|
||||
RBA::Polygon::new(RBA::Box::new(20, 50, 120, 250))
|
||||
] )
|
||||
assert_equal(r.to_s, "(10,20;10,200;100,200;100,20);(20,50;20,250;120,250;120,50)")
|
||||
assert_equal(csort(r.to_s), csort("(10,20;10,200;100,200;100,20);(20,50;20,250;120,250;120,50)"))
|
||||
s = ""
|
||||
r.each do |p|
|
||||
s.empty? || s += ";"
|
||||
|
|
@ -156,7 +163,7 @@ class DBRegion_TestClass < TestBase
|
|||
c2.shapes(l2).insert(RBA::Text::new("BB", RBA::Vector::new(10, 20)))
|
||||
|
||||
r = RBA::Region::new(ly.begin_shapes(c1.cell_index, l1))
|
||||
assert_equal(r.to_s, "(-10,-20;-10,20;10,20;10,-20);(-10,80;-10,120;10,120;10,80);(190,80;190,120;210,120;210,80)")
|
||||
assert_equal(csort(r.to_s), csort("(-10,-20;-10,20;10,20;10,-20);(-10,80;-10,120;10,120;10,80);(190,80;190,120;210,120;210,80)"))
|
||||
assert_equal(r.is_empty?, false)
|
||||
assert_equal(r.count, 3)
|
||||
assert_equal(r.hier_count, 3)
|
||||
|
|
@ -172,19 +179,19 @@ class DBRegion_TestClass < TestBase
|
|||
assert_equal(r.is_merged?, false)
|
||||
|
||||
r = RBA::Region::new(ly.begin_shapes(c1.cell_index, l2), "*")
|
||||
assert_equal(r.to_s, "(-11,-21;-11,-19;-9,-19;-9,-21);(9,19;9,21;11,21;11,19);(-11,79;-11,81;-9,81;-9,79);(9,119;9,121;11,121;11,119);(189,79;189,81;191,81;191,79);(209,119;209,121;211,121;211,119)")
|
||||
assert_equal(csort(r.to_s), csort("(-11,-21;-11,-19;-9,-19;-9,-21);(9,19;9,21;11,21;11,19);(-11,79;-11,81;-9,81;-9,79);(9,119;9,121;11,121;11,119);(189,79;189,81;191,81;191,79);(209,119;209,121;211,121;211,119)"))
|
||||
r = RBA::Region::new(ly.begin_shapes(c1.cell_index, l2), "A*")
|
||||
assert_equal(r.to_s, "(-11,-21;-11,-19;-9,-19;-9,-21);(-11,79;-11,81;-9,81;-9,79);(189,79;189,81;191,81;191,79)")
|
||||
assert_equal(csort(r.to_s), csort("(-11,-21;-11,-19;-9,-19;-9,-21);(-11,79;-11,81;-9,81;-9,79);(189,79;189,81;191,81;191,79)"))
|
||||
r = RBA::Region::new(ly.begin_shapes(c1.cell_index, l2), "A*", false)
|
||||
assert_equal(r.to_s, "")
|
||||
r = RBA::Region::new(ly.begin_shapes(c1.cell_index, l2), "AA", false)
|
||||
assert_equal(r.to_s, "(-11,-21;-11,-19;-9,-19;-9,-21);(-11,79;-11,81;-9,81;-9,79);(189,79;189,81;191,81;191,79)")
|
||||
assert_equal(csort(r.to_s), csort("(-11,-21;-11,-19;-9,-19;-9,-21);(-11,79;-11,81;-9,81;-9,79);(189,79;189,81;191,81;191,79)"))
|
||||
|
||||
r = RBA::Region::new(ly.begin_shapes(c1.cell_index, l1), RBA::ICplxTrans::new(10, 20))
|
||||
assert_equal(r.to_s, "(0,0;0,40;20,40;20,0);(0,100;0,140;20,140;20,100);(200,100;200,140;220,140;220,100)")
|
||||
assert_equal(r.extents.to_s, "(0,0;0,40;20,40;20,0);(0,100;0,140;20,140;20,100);(200,100;200,140;220,140;220,100)")
|
||||
assert_equal(r.extents(10).to_s, "(-10,-10;-10,50;30,50;30,-10);(-10,90;-10,150;30,150;30,90);(190,90;190,150;230,150;230,90)")
|
||||
assert_equal(r.extents(5, -5).to_s, "(-5,5;-5,35;25,35;25,5);(-5,105;-5,135;25,135;25,105);(195,105;195,135;225,135;225,105)")
|
||||
assert_equal(csort(r.to_s), csort("(0,0;0,40;20,40;20,0);(0,100;0,140;20,140;20,100);(200,100;200,140;220,140;220,100)"))
|
||||
assert_equal(csort(r.extents.to_s), csort("(0,0;0,40;20,40;20,0);(0,100;0,140;20,140;20,100);(200,100;200,140;220,140;220,100)"))
|
||||
assert_equal(csort(r.extents(10).to_s), csort("(-10,-10;-10,50;30,50;30,-10);(-10,90;-10,150;30,150;30,90);(190,90;190,150;230,150;230,90)"))
|
||||
assert_equal(csort(r.extents(5, -5).to_s), csort("(-5,5;-5,35;25,35;25,5);(-5,105;-5,135;25,135;25,105);(195,105;195,135;225,135;225,105)"))
|
||||
assert_equal(r.is_empty?, false)
|
||||
assert_equal(r.is_box?, false)
|
||||
assert_equal(r.count, 3)
|
||||
|
|
@ -214,13 +221,13 @@ class DBRegion_TestClass < TestBase
|
|||
RBA::Polygon::new(RBA::Box::new(10, 20, 100, 200)),
|
||||
RBA::Polygon::new(RBA::Box::new(20, 50, 120, 250))
|
||||
] )
|
||||
assert_equal(r.to_s, "(10,20;10,200;100,200;100,20);(20,50;20,250;120,250;120,50)")
|
||||
assert_equal(csort(r.to_s), csort("(10,20;10,200;100,200;100,20);(20,50;20,250;120,250;120,50)"))
|
||||
r.clear
|
||||
r.insert(ly.begin_shapes(c1.cell_index, l1))
|
||||
assert_equal(r.to_s, "(-10,-20;-10,20;10,20;10,-20);(-10,80;-10,120;10,120;10,80);(190,80;190,120;210,120;210,80)")
|
||||
assert_equal(csort(r.to_s), csort("(-10,-20;-10,20;10,20;10,-20);(-10,80;-10,120;10,120;10,80);(190,80;190,120;210,120;210,80)"))
|
||||
r.clear
|
||||
r.insert(ly.begin_shapes(c1.cell_index, l1), RBA::ICplxTrans::new(10, 20))
|
||||
assert_equal(r.to_s, "(0,0;0,40;20,40;20,0);(0,100;0,140;20,140;20,100);(200,100;200,140;220,140;220,100)")
|
||||
assert_equal(csort(r.to_s), csort("(0,0;0,40;20,40;20,0);(0,100;0,140;20,140;20,100);(200,100;200,140;220,140;220,100)"))
|
||||
|
||||
r = RBA::Region::new
|
||||
rr = RBA::Region::new
|
||||
|
|
@ -281,15 +288,15 @@ class DBRegion_TestClass < TestBase
|
|||
|
||||
assert_equal((r1 ^ r2).to_s, "(-10,-20;-10,160;10,160;10,200;100,200;100,20;80,20;80,-20/10,20;80,20;80,160;10,160)")
|
||||
r1.min_coherence = true
|
||||
assert_equal((r1 ^ r2).to_s, "(-10,-20;-10,160;10,160;10,20;80,20;80,-20);(80,20;80,160;10,160;10,200;100,200;100,20)")
|
||||
assert_equal(csort((r1 ^ r2).to_s), csort("(-10,-20;-10,160;10,160;10,20;80,20;80,-20);(80,20;80,160;10,160;10,200;100,200;100,20)"))
|
||||
rr = r1.dup
|
||||
rr ^= r2
|
||||
assert_equal(rr.to_s, "(-10,-20;-10,160;10,160;10,20;80,20;80,-20);(80,20;80,160;10,160;10,200;100,200;100,20)")
|
||||
assert_equal(csort(rr.to_s), csort("(-10,-20;-10,160;10,160;10,20;80,20;80,-20);(80,20;80,160;10,160;10,200;100,200;100,20)"))
|
||||
|
||||
assert_equal((r1 + r2).to_s, "(10,20;10,200;100,200;100,20);(-10,-20;-10,160;80,160;80,-20)")
|
||||
assert_equal(csort((r1 + r2).to_s), csort("(10,20;10,200;100,200;100,20);(-10,-20;-10,160;80,160;80,-20)"))
|
||||
rr = r1.dup
|
||||
rr += r2
|
||||
assert_equal(rr.to_s, "(10,20;10,200;100,200;100,20);(-10,-20;-10,160;80,160;80,-20)")
|
||||
assert_equal(csort(rr.to_s), csort("(10,20;10,200;100,200;100,20);(-10,-20;-10,160;80,160;80,-20)"))
|
||||
|
||||
assert_equal((r1 | r2).to_s, "(-10,-20;-10,160;10,160;10,200;100,200;100,20;80,20;80,-20)")
|
||||
rr = r1.dup
|
||||
|
|
@ -318,15 +325,15 @@ class DBRegion_TestClass < TestBase
|
|||
rr.size(10, 2)
|
||||
assert_equal(rr.to_s, "(-20,-30;-20,170;0,170;0,210;110,210;110,10;90,10;90,-30)")
|
||||
|
||||
assert_equal((r1 + r2).sized(10, 2).to_s, "(0,10;0,210;110,210;110,10);(-20,-30;-20,170;90,170;90,-30)")
|
||||
assert_equal(csort((r1 + r2).sized(10, 2).to_s), csort("(0,10;0,210;110,210;110,10);(-20,-30;-20,170;90,170;90,-30)"))
|
||||
rr = (r1 + r2).dup
|
||||
rr.size(10, 2)
|
||||
assert_equal(rr.to_s, "(0,10;0,210;110,210;110,10);(-20,-30;-20,170;90,170;90,-30)")
|
||||
assert_equal(csort(rr.to_s), csort("(0,10;0,210;110,210;110,10);(-20,-30;-20,170;90,170;90,-30)"))
|
||||
|
||||
assert_equal((r1 + r2).sized(10, 20, 2).to_s, "(0,0;0,220;110,220;110,0);(-20,-40;-20,180;90,180;90,-40)")
|
||||
assert_equal(csort((r1 + r2).sized(10, 20, 2).to_s), csort("(0,0;0,220;110,220;110,0);(-20,-40;-20,180;90,180;90,-40)"))
|
||||
rr = (r1 + r2).dup
|
||||
rr.size(10, 20, 2)
|
||||
assert_equal(rr.to_s, "(0,0;0,220;110,220;110,0);(-20,-40;-20,180;90,180;90,-40)")
|
||||
assert_equal(csort(rr.to_s), csort("(0,0;0,220;110,220;110,0);(-20,-40;-20,180;90,180;90,-40)"))
|
||||
|
||||
end
|
||||
|
||||
|
|
@ -359,8 +366,8 @@ class DBRegion_TestClass < TestBase
|
|||
r2.insert(RBA::Box::new(40, 20, 60, 50))
|
||||
|
||||
r = r1 ^ r2
|
||||
assert_equal(r.holes.to_s, "(10,20;10,50;30,50;30,20);(40,20;40,50;60,50;60,20)")
|
||||
assert_equal(r.hulls.to_s, "(-10,-20;-10,200;100,200;100,-20);(-10,220;-10,400;100,400;100,220)")
|
||||
assert_equal(csort(r.holes.to_s), csort("(10,20;10,50;30,50;30,20);(40,20;40,50;60,50;60,20)"))
|
||||
assert_equal(csort(r.hulls.to_s), csort("(-10,-20;-10,200;100,200;100,-20);(-10,220;-10,400;100,400;100,220)"))
|
||||
|
||||
r1 = RBA::Region::new
|
||||
r1.insert(RBA::Box::new(0, 0, 1000, 100))
|
||||
|
|
@ -371,13 +378,13 @@ class DBRegion_TestClass < TestBase
|
|||
assert_equal(r2.to_s, "(0,0;0,100;900,100;900,1000;1000,1000;1000,0)")
|
||||
r2 = r1.dup
|
||||
r2.break(0, 3.0)
|
||||
assert_equal(r2.to_s, "(0,0;0,100;1000,100;1000,0);(900,100;900,1000;1000,1000;1000,100)")
|
||||
assert_equal(csort(r2.to_s), csort("(0,0;0,100;1000,100;1000,0);(900,100;900,1000;1000,1000;1000,100)"))
|
||||
r2 = r1.dup
|
||||
r2.break(4, 0.0)
|
||||
assert_equal(r2.to_s, "(0,0;0,100;1000,100;1000,0);(900,100;900,1000;1000,1000;1000,100)")
|
||||
assert_equal(csort(r2.to_s), csort("(0,0;0,100;1000,100;1000,0);(900,100;900,1000;1000,1000;1000,100)"))
|
||||
r2 = r1.dup
|
||||
r2.break(4, 3.0)
|
||||
assert_equal(r2.to_s, "(0,0;0,100;1000,100;1000,0);(900,100;900,1000;1000,1000;1000,100)")
|
||||
assert_equal(csort(r2.to_s), csort("(0,0;0,100;1000,100;1000,0);(900,100;900,1000;1000,1000;1000,100)"))
|
||||
|
||||
end
|
||||
|
||||
|
|
@ -392,42 +399,42 @@ class DBRegion_TestClass < TestBase
|
|||
|
||||
assert_equal(r.with_area(20000, false).to_s, "(0,0;0,200;100,200;100,0)")
|
||||
assert_equal(r.with_area(20000, true).to_s, "(0,0;0,100;400,100;400,0)")
|
||||
assert_equal(r.with_area(10000, nil, false).to_s, "(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)")
|
||||
assert_equal(csort(r.with_area(10000, nil, false).to_s), csort("(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)"))
|
||||
assert_equal(r.with_area(10000, 20000, false).to_s, "")
|
||||
assert_equal(r.with_area(nil, 20001, false).to_s, "(0,0;0,200;100,200;100,0)")
|
||||
assert_equal(r.with_area(10000, 20000, true).to_s, "(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)")
|
||||
assert_equal(csort(r.with_area(10000, 20000, true).to_s), csort("(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)"))
|
||||
|
||||
assert_equal(r.with_perimeter(600, false).to_s, "(0,0;0,200;100,200;100,0)")
|
||||
assert_equal(r.with_perimeter(600, true).to_s, "(0,0;0,100;400,100;400,0)")
|
||||
assert_equal(r.with_perimeter(600, nil, false).to_s, "(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)")
|
||||
assert_equal(csort(r.with_perimeter(600, nil, false).to_s), csort("(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)"))
|
||||
assert_equal(r.with_perimeter(600, 1000, false).to_s, "(0,0;0,200;100,200;100,0)")
|
||||
assert_equal(r.with_perimeter(nil, 1000, false).to_s, "(0,0;0,200;100,200;100,0)")
|
||||
assert_equal(r.with_perimeter(600, 1000, true).to_s, "(0,0;0,100;400,100;400,0)")
|
||||
|
||||
assert_equal(r.with_bbox_height(200, false).to_s, "(0,0;0,200;100,200;100,0)")
|
||||
assert_equal(r.with_bbox_height(200, true).to_s, "(0,0;0,100;400,100;400,0)")
|
||||
assert_equal(r.with_bbox_height(100, nil, false).to_s, "(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)")
|
||||
assert_equal(csort(r.with_bbox_height(100, nil, false).to_s), csort("(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)"))
|
||||
assert_equal(r.with_bbox_height(100, 200, false).to_s, "(0,0;0,100;400,100;400,0)")
|
||||
assert_equal(r.with_bbox_height(nil, 201, false).to_s, "(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)")
|
||||
assert_equal(csort(r.with_bbox_height(nil, 201, false).to_s), csort("(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)"))
|
||||
assert_equal(r.with_bbox_height(100, 200, true).to_s, "(0,0;0,200;100,200;100,0)")
|
||||
|
||||
assert_equal(r.with_bbox_width(400, false).to_s, "(0,0;0,100;400,100;400,0)")
|
||||
assert_equal(r.with_bbox_width(400, true).to_s, "(0,0;0,200;100,200;100,0)")
|
||||
assert_equal(r.with_bbox_width(100, nil, false).to_s, "(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)")
|
||||
assert_equal(csort(r.with_bbox_width(100, nil, false).to_s), csort("(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)"))
|
||||
assert_equal(r.with_bbox_width(100, 400, false).to_s, "(0,0;0,200;100,200;100,0)")
|
||||
assert_equal(r.with_bbox_width(nil, 401, false).to_s, "(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)")
|
||||
assert_equal(csort(r.with_bbox_width(nil, 401, false).to_s), csort("(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)"))
|
||||
assert_equal(r.with_bbox_width(100, 400, true).to_s, "(0,0;0,100;400,100;400,0)")
|
||||
|
||||
assert_equal(r.with_bbox_min(100, false).to_s, "(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)")
|
||||
assert_equal(csort(r.with_bbox_min(100, false).to_s), csort("(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)"))
|
||||
assert_equal(r.with_bbox_min(100, true).to_s, "")
|
||||
assert_equal(r.with_bbox_min(100, nil, false).to_s, "(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)")
|
||||
assert_equal(r.with_bbox_min(100, 101, false).to_s, "(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)")
|
||||
assert_equal(r.with_bbox_min(nil, 101, false).to_s, "(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)")
|
||||
assert_equal(csort(r.with_bbox_min(100, nil, false).to_s), csort("(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)"))
|
||||
assert_equal(csort(r.with_bbox_min(100, 101, false).to_s), csort("(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)"))
|
||||
assert_equal(csort(r.with_bbox_min(nil, 101, false).to_s), csort("(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)"))
|
||||
assert_equal(r.with_bbox_min(100, 101, true).to_s, "")
|
||||
|
||||
assert_equal(r.with_bbox_max(200, false).to_s, "(0,0;0,200;100,200;100,0)")
|
||||
assert_equal(r.with_bbox_max(200, true).to_s, "(0,0;0,100;400,100;400,0)")
|
||||
assert_equal(r.with_bbox_max(200, nil, false).to_s, "(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)")
|
||||
assert_equal(csort(r.with_bbox_max(200, nil, false).to_s), csort("(0,0;0,200;100,200;100,0);(0,0;0,100;400,100;400,0)"))
|
||||
assert_equal(r.with_bbox_max(200, 400, false).to_s, "(0,0;0,200;100,200;100,0)")
|
||||
assert_equal(r.with_bbox_max(nil, 400, false).to_s, "(0,0;0,200;100,200;100,0)")
|
||||
assert_equal(r.with_bbox_max(200, 400, true).to_s, "(0,0;0,100;400,100;400,0)")
|
||||
|
|
@ -470,13 +477,13 @@ class DBRegion_TestClass < TestBase
|
|||
assert_equal(r3a.separation_check(r1, 15, false, RBA::Region::Projection, nil, 380, 500).to_s, "")
|
||||
assert_equal(r3a.separation_check(r1, 15, false, RBA::Region::Projection, nil, 0, 300).to_s, "(-10,10;-10,0)/(0,0;0,10)")
|
||||
|
||||
assert_equal(r3b.overlap_check(r1, 15).to_s, "(-10,10;10,10)/(21,0;0,0);(10,10;10,-10)/(0,0;0,21)")
|
||||
assert_equal(r3b.overlap_check(r1, 15, false, RBA::Region::Projection, nil, nil, nil).to_s, "(0,10;10,10)/(10,0;0,0);(10,10;10,0)/(0,0;0,10)")
|
||||
assert_equal(r3b.overlap_check(r1, 15, true, RBA::Region::Projection, nil, nil, nil).to_s, "(-10,10;10,10)/(100,0;0,0);(10,10;10,-10)/(0,0;0,200)")
|
||||
assert_equal(csort(r3b.overlap_check(r1, 15).to_s), csort("(-10,10;10,10)/(21,0;0,0);(10,10;10,-10)/(0,0;0,21)"))
|
||||
assert_equal(csort(r3b.overlap_check(r1, 15, false, RBA::Region::Projection, nil, nil, nil).to_s), csort("(0,10;10,10)/(10,0;0,0);(10,10;10,0)/(0,0;0,10)"))
|
||||
assert_equal(csort(r3b.overlap_check(r1, 15, true, RBA::Region::Projection, nil, nil, nil).to_s), csort("(-10,10;10,10)/(100,0;0,0);(10,10;10,-10)/(0,0;0,200)"))
|
||||
assert_equal(r3b.overlap_check(r1, 15, true, RBA::Region::Projection, 0.0, nil, nil).to_s, "")
|
||||
assert_equal(r3b.overlap_check(r1, 15, false, RBA::Region::Projection, nil, 0, 500).to_s, "(0,10;10,10)/(10,0;0,0);(10,10;10,0)/(0,0;0,10)")
|
||||
assert_equal(csort(r3b.overlap_check(r1, 15, false, RBA::Region::Projection, nil, 0, 500).to_s), csort("(0,10;10,10)/(10,0;0,0);(10,10;10,0)/(0,0;0,10)"))
|
||||
assert_equal(r3b.overlap_check(r1, 15, false, RBA::Region::Projection, nil, 380, 500).to_s, "")
|
||||
assert_equal(r3b.overlap_check(r1, 15, false, RBA::Region::Projection, nil, 0, 300).to_s, "(0,10;10,10)/(10,0;0,0);(10,10;10,0)/(0,0;0,10)")
|
||||
assert_equal(csort(r3b.overlap_check(r1, 15, false, RBA::Region::Projection, nil, 0, 300).to_s), csort("(0,10;10,10)/(10,0;0,0);(10,10;10,0)/(0,0;0,10)"))
|
||||
|
||||
assert_equal((r1 | r2).merged.isolated_check(25).to_s, "(120,20;120,380)|(100,395;100,5)")
|
||||
assert_equal((r1 | r2).merged.isolated_check(25, false, RBA::Region::Projection, nil, nil, nil).to_s, "(120,20;120,380)|(100,380;100,20)")
|
||||
|
|
@ -497,16 +504,16 @@ class DBRegion_TestClass < TestBase
|
|||
assert_equal((r1 | r2).merged.notch_check(25, true, RBA::Region::Projection, nil, 40, 50).to_s, "(0,200;50,200)|(50,220;10,220)")
|
||||
assert_equal((r1 | r2).merged.notch_check(25, true, RBA::Region::Projection, nil, nil, 40).to_s, "")
|
||||
|
||||
assert_equal((r1 | r2).merged.space_check(25).to_s, "(120,20;120,380)|(100,395;100,5);(0,200;50,200)|(50,220;10,220)")
|
||||
assert_equal((r1 | r2).merged.space_check(25, false, RBA::Region::Projection, nil, nil, nil).to_s, "(120,20;120,380)|(100,380;100,20);(10,200;50,200)|(50,220;10,220)")
|
||||
assert_equal((r1 | r2).merged.space_check(25, true, RBA::Region::Projection, nil, nil, nil).to_s, "(120,20;120,380)|(100,400;100,0);(0,200;50,200)|(50,220;10,220)")
|
||||
assert_equal(csort((r1 | r2).merged.space_check(25).to_s), csort("(120,20;120,380)|(100,395;100,5);(0,200;50,200)|(50,220;10,220)"))
|
||||
assert_equal(csort((r1 | r2).merged.space_check(25, false, RBA::Region::Projection, nil, nil, nil).to_s), csort("(120,20;120,380)|(100,380;100,20);(10,200;50,200)|(50,220;10,220)"))
|
||||
assert_equal(csort((r1 | r2).merged.space_check(25, true, RBA::Region::Projection, nil, nil, nil).to_s), csort("(120,20;120,380)|(100,400;100,0);(0,200;50,200)|(50,220;10,220)"))
|
||||
assert_equal((r1 | r2).merged.space_check(25, true, RBA::Region::Projection, 0.0, nil, nil).to_s, "")
|
||||
assert_equal((r1 | r2).merged.space_check(25, true, RBA::Region::Projection, nil, 50, nil).to_s, "(120,20;120,380)|(100,400;100,0)")
|
||||
assert_equal((r1 | r2).merged.space_check(25, true, RBA::Region::Projection, nil, nil, 50).to_s, "(0,200;50,200)|(50,220;10,220)")
|
||||
|
||||
assert_equal((r1 | r2).merged.width_check(60).to_s, "(120,20;120,380)|(130,380;130,20);(50,200;50,220)|(100,253;100,167)")
|
||||
assert_equal((r1 | r2).merged.width_check(60, false, RBA::Region::Projection, nil, nil, nil).to_s, "(120,20;120,380)|(130,380;130,20);(50,200;50,220)|(100,220;100,200)")
|
||||
assert_equal((r1 | r2).merged.width_check(60, true, RBA::Region::Projection, nil, nil, nil).to_s, "(120,20;120,380)|(130,380;130,20);(50,200;50,220)|(100,400;100,0)")
|
||||
assert_equal(csort((r1 | r2).merged.width_check(60).to_s), csort("(120,20;120,380)|(130,380;130,20);(50,200;50,220)|(100,253;100,167)"))
|
||||
assert_equal(csort((r1 | r2).merged.width_check(60, false, RBA::Region::Projection, nil, nil, nil).to_s), csort("(120,20;120,380)|(130,380;130,20);(50,200;50,220)|(100,220;100,200)"))
|
||||
assert_equal(csort((r1 | r2).merged.width_check(60, true, RBA::Region::Projection, nil, nil, nil).to_s), csort("(120,20;120,380)|(130,380;130,20);(50,200;50,220)|(100,400;100,0)"))
|
||||
assert_equal((r1 | r2).merged.width_check(60, true, RBA::Region::Projection, 0.0, nil, nil).to_s, "")
|
||||
assert_equal((r1 | r2).merged.width_check(60, true, RBA::Region::Projection, nil, 50, nil).to_s, "(120,20;120,380)|(130,380;130,20)")
|
||||
assert_equal((r1 | r2).merged.width_check(60, true, RBA::Region::Projection, nil, nil, 50).to_s, "(50,200;50,220)|(100,400;100,0)")
|
||||
|
|
@ -529,67 +536,67 @@ class DBRegion_TestClass < TestBase
|
|||
assert_equal(r1.merged_semantics?, false)
|
||||
|
||||
assert_equal(r1.inside(r2).to_s, "(10,20;10,200;100,200;100,20)")
|
||||
assert_equal(r1.not_inside(r2).to_s, "(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)")
|
||||
assert_equal(r1.interacting(r2).to_s, "(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)")
|
||||
assert_equal(r1.interacting(r3, 1).to_s, "(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)")
|
||||
assert_equal(r1.interacting(r3, 2).to_s, "(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)")
|
||||
assert_equal(csort(r1.not_inside(r2).to_s), csort("(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)"))
|
||||
assert_equal(csort(r1.interacting(r2).to_s), csort("(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)"))
|
||||
assert_equal(csort(r1.interacting(r3, 1).to_s), csort("(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)"))
|
||||
assert_equal(csort(r1.interacting(r3, 2).to_s), csort("(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)"))
|
||||
assert_equal(r1.interacting(r3, 3).to_s, "")
|
||||
assert_equal(r1.interacting(r3, 1, 1).to_s, "(10,20;10,200;100,200;100,20)")
|
||||
assert_equal(r1.interacting(r3, 2, 2).to_s, "(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)")
|
||||
assert_equal(csort(r1.interacting(r3, 2, 2).to_s), csort("(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)"))
|
||||
assert_equal(r1.not_interacting(r2).to_s, "")
|
||||
assert_equal(r1.not_interacting(r3, 1).to_s, "")
|
||||
assert_equal(r1.not_interacting(r3, 2).to_s, "(10,20;10,200;100,200;100,20)")
|
||||
assert_equal(r1.not_interacting(r3, 3).to_s, "(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)")
|
||||
assert_equal(r1.not_interacting(r3, 1, 1).to_s, "(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)")
|
||||
assert_equal(csort(r1.not_interacting(r3, 3).to_s), csort("(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)"))
|
||||
assert_equal(csort(r1.not_interacting(r3, 1, 1).to_s), csort("(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)"))
|
||||
assert_equal(r1.not_interacting(r3, 2, 2).to_s, "(10,20;10,200;100,200;100,20)")
|
||||
assert_equal(r1.overlapping(r2).to_s, "(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70)")
|
||||
assert_equal(csort(r1.overlapping(r2).to_s), csort("(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70)"))
|
||||
assert_equal(r1.not_overlapping(r2).to_s, "(100,70;100,270;250,270;250,70)")
|
||||
assert_equal(r1.outside(r2).to_s, "(100,70;100,270;250,270;250,70)")
|
||||
assert_equal(r1.not_outside(r2).to_s, "(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70)")
|
||||
assert_equal(csort(r1.not_outside(r2).to_s), csort("(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70)"))
|
||||
|
||||
e2 = RBA::Edges::new(RBA::Edge::new(-10, -20, 100, 200))
|
||||
e3 = RBA::Edges::new(RBA::Edge::new(150, 270, 160, 280))
|
||||
e3 += e2
|
||||
|
||||
assert_equal(r1.interacting(e2).to_s, "(100,70;100,270;250,270;250,70);(50,70;50,270;150,270;150,70);(10,20;10,200;100,200;100,20)")
|
||||
assert_equal(r1.interacting(e3, 1).to_s, "(100,70;100,270;250,270;250,70);(50,70;50,270;150,270;150,70);(10,20;10,200;100,200;100,20)")
|
||||
assert_equal(r1.interacting(e3, 2).to_s, "(100,70;100,270;250,270;250,70);(50,70;50,270;150,270;150,70)")
|
||||
assert_equal(csort(r1.interacting(e2).to_s), csort("(100,70;100,270;250,270;250,70);(50,70;50,270;150,270;150,70);(10,20;10,200;100,200;100,20)"))
|
||||
assert_equal(csort(r1.interacting(e3, 1).to_s), csort("(100,70;100,270;250,270;250,70);(50,70;50,270;150,270;150,70);(10,20;10,200;100,200;100,20)"))
|
||||
assert_equal(csort(r1.interacting(e3, 2).to_s), csort("(100,70;100,270;250,270;250,70);(50,70;50,270;150,270;150,70)"))
|
||||
assert_equal(r1.interacting(e3, 3).to_s, "")
|
||||
assert_equal(r1.interacting(e3, 1, 1).to_s, "(10,20;10,200;100,200;100,20)")
|
||||
assert_equal(r1.interacting(e3, 2, 2).to_s, "(100,70;100,270;250,270;250,70);(50,70;50,270;150,270;150,70)")
|
||||
assert_equal(csort(r1.interacting(e3, 2, 2).to_s), csort("(100,70;100,270;250,270;250,70);(50,70;50,270;150,270;150,70)"))
|
||||
assert_equal(r1.not_interacting(e2).to_s, "")
|
||||
assert_equal(r1.not_interacting(e3, 1).to_s, "")
|
||||
assert_equal(r1.not_interacting(e3, 2).to_s, "(10,20;10,200;100,200;100,20)")
|
||||
assert_equal(r1.not_interacting(e3, 3).to_s, "(100,70;100,270;250,270;250,70);(50,70;50,270;150,270;150,70);(10,20;10,200;100,200;100,20)")
|
||||
assert_equal(r1.not_interacting(e3, 1, 1).to_s, "(100,70;100,270;250,270;250,70);(50,70;50,270;150,270;150,70)")
|
||||
assert_equal(csort(r1.not_interacting(e3, 3).to_s), csort("(100,70;100,270;250,270;250,70);(50,70;50,270;150,270;150,70);(10,20;10,200;100,200;100,20)"))
|
||||
assert_equal(csort(r1.not_interacting(e3, 1, 1).to_s), csort("(100,70;100,270;250,270;250,70);(50,70;50,270;150,270;150,70)"))
|
||||
assert_equal(r1.not_interacting(e3, 2, 2).to_s, "(10,20;10,200;100,200;100,20)")
|
||||
|
||||
t2 = RBA::Texts::new(RBA::Text::new("a", RBA::Trans::new(50, 100)))
|
||||
t3 = RBA::Texts::new(RBA::Text::new("b", RBA::Trans::new(150, 270)))
|
||||
t3 += t2
|
||||
|
||||
assert_equal(r1.interacting(t2).to_s, "(50,70;50,270;150,270;150,70);(10,20;10,200;100,200;100,20)")
|
||||
assert_equal(r1.interacting(t3, 1).to_s, "(100,70;100,270;250,270;250,70);(50,70;50,270;150,270;150,70);(10,20;10,200;100,200;100,20)")
|
||||
assert_equal(csort(r1.interacting(t2).to_s), csort("(50,70;50,270;150,270;150,70);(10,20;10,200;100,200;100,20)"))
|
||||
assert_equal(csort(r1.interacting(t3, 1).to_s), csort("(100,70;100,270;250,270;250,70);(50,70;50,270;150,270;150,70);(10,20;10,200;100,200;100,20)"))
|
||||
assert_equal(r1.interacting(t3, 2).to_s, "(50,70;50,270;150,270;150,70)")
|
||||
assert_equal(r1.interacting(t3, 3).to_s, "")
|
||||
assert_equal(r1.interacting(t3, 1, 1).to_s, "(100,70;100,270;250,270;250,70);(10,20;10,200;100,200;100,20)")
|
||||
assert_equal(csort(r1.interacting(t3, 1, 1).to_s), csort("(100,70;100,270;250,270;250,70);(10,20;10,200;100,200;100,20)"))
|
||||
assert_equal(r1.interacting(t3, 2, 2).to_s, "(50,70;50,270;150,270;150,70)")
|
||||
assert_equal(r1.not_interacting(t2).to_s, "(100,70;100,270;250,270;250,70)")
|
||||
assert_equal(r1.not_interacting(t3, 1).to_s, "")
|
||||
assert_equal(r1.not_interacting(t3, 2).to_s, "(100,70;100,270;250,270;250,70);(10,20;10,200;100,200;100,20)")
|
||||
assert_equal(r1.not_interacting(t3, 3).to_s, "(100,70;100,270;250,270;250,70);(50,70;50,270;150,270;150,70);(10,20;10,200;100,200;100,20)")
|
||||
assert_equal(csort(r1.not_interacting(t3, 2).to_s), csort("(100,70;100,270;250,270;250,70);(10,20;10,200;100,200;100,20)"))
|
||||
assert_equal(csort(r1.not_interacting(t3, 3).to_s), csort("(100,70;100,270;250,270;250,70);(50,70;50,270;150,270;150,70);(10,20;10,200;100,200;100,20)"))
|
||||
assert_equal(r1.not_interacting(t3, 1, 1).to_s, "(50,70;50,270;150,270;150,70)")
|
||||
assert_equal(r1.not_interacting(t3, 2, 2).to_s, "(100,70;100,270;250,270;250,70);(10,20;10,200;100,200;100,20)")
|
||||
assert_equal(csort(r1.not_interacting(t3, 2, 2).to_s), csort("(100,70;100,270;250,270;250,70);(10,20;10,200;100,200;100,20)"))
|
||||
|
||||
rr = r1.dup
|
||||
rr.select_interacting(r2)
|
||||
assert_equal(rr.to_s, "(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)")
|
||||
assert_equal(csort(rr.to_s), csort("(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)"))
|
||||
rr = r1.dup
|
||||
rr.select_interacting(r3, 2, 2)
|
||||
assert_equal(rr.to_s, "(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)")
|
||||
assert_equal(csort(rr.to_s), csort("(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)"))
|
||||
rr = r1.dup
|
||||
rr.select_interacting(e3, 2, 2)
|
||||
assert_equal(rr.to_s, "(100,70;100,270;250,270;250,70);(50,70;50,270;150,270;150,70)")
|
||||
assert_equal(csort(rr.to_s), csort("(100,70;100,270;250,270;250,70);(50,70;50,270;150,270;150,70)"))
|
||||
rr = r1.dup
|
||||
rr.select_interacting(t3, 2, 2)
|
||||
assert_equal(rr.to_s, "(50,70;50,270;150,270;150,70)")
|
||||
|
|
@ -605,11 +612,11 @@ class DBRegion_TestClass < TestBase
|
|||
assert_equal(rr.to_s, "(10,20;10,200;100,200;100,20)")
|
||||
rr = r1.dup
|
||||
rr.select_not_interacting(t3, 2, 2)
|
||||
assert_equal(rr.to_s, "(100,70;100,270;250,270;250,70);(10,20;10,200;100,200;100,20)")
|
||||
assert_equal(csort(rr.to_s), csort("(100,70;100,270;250,270;250,70);(10,20;10,200;100,200;100,20)"))
|
||||
|
||||
rr = r1.dup
|
||||
rr.select_overlapping(r2)
|
||||
assert_equal(rr.to_s, "(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70)")
|
||||
assert_equal(csort(rr.to_s), csort("(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70)"))
|
||||
|
||||
rr = r1.dup
|
||||
rr.select_not_overlapping(r2)
|
||||
|
|
@ -621,7 +628,7 @@ class DBRegion_TestClass < TestBase
|
|||
|
||||
rr = r1.dup
|
||||
rr.select_not_outside(r2)
|
||||
assert_equal(rr.to_s, "(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70)")
|
||||
assert_equal(csort(rr.to_s), csort("(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70)"))
|
||||
|
||||
rr = r1.dup
|
||||
rr.select_inside(r2)
|
||||
|
|
@ -629,7 +636,7 @@ class DBRegion_TestClass < TestBase
|
|||
|
||||
rr = r1.dup
|
||||
rr.select_not_inside(r2)
|
||||
assert_equal(rr.to_s, "(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)")
|
||||
assert_equal(csort(rr.to_s), csort("(50,70;50,270;150,270;150,70);(100,70;100,270;250,270;250,70)"))
|
||||
|
||||
r1.merged_semantics = true
|
||||
|
||||
|
|
@ -686,9 +693,9 @@ class DBRegion_TestClass < TestBase
|
|||
r1.insert(RBA::Polygon::new([ RBA::Point::new(0, 0), RBA::Point::new(0, 100), RBA::Point::new(50, 100), RBA::Point::new(50, 200), RBA::Point::new(100, 200), RBA::Point::new(100, 0) ]))
|
||||
|
||||
r1.merged_semantics = false
|
||||
assert_equal(r1.rectangles.to_s, "(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70)")
|
||||
assert_equal(r1.non_rectangles.to_s, "(0,0;100,100;100,0);(0,0;0,100;50,100;50,200;100,200;100,0)")
|
||||
assert_equal(r1.rectilinear.to_s, "(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70);(0,0;0,100;50,100;50,200;100,200;100,0)")
|
||||
assert_equal(csort(r1.rectangles.to_s), csort("(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70)"))
|
||||
assert_equal(csort(r1.non_rectangles.to_s), csort("(0,0;100,100;100,0);(0,0;0,100;50,100;50,200;100,200;100,0)"))
|
||||
assert_equal(csort(r1.rectilinear.to_s), csort("(10,20;10,200;100,200;100,20);(50,70;50,270;150,270;150,70);(0,0;0,100;50,100;50,200;100,200;100,0)"))
|
||||
assert_equal(r1.non_rectilinear.to_s, "(0,0;100,100;100,0)")
|
||||
|
||||
r1.merged_semantics = true
|
||||
|
|
@ -726,7 +733,7 @@ class DBRegion_TestClass < TestBase
|
|||
]
|
||||
r.insert(RBA::Polygon::new(pts))
|
||||
|
||||
assert_equal(r.strange_polygon_check.to_s, "(500,500;500,600;600,600;600,500);(2500,500;2500,1000;3000,1000;3000,500)")
|
||||
assert_equal(csort(r.strange_polygon_check.to_s), csort("(500,500;500,600;600,600;600,500);(2500,500;2500,1000;3000,1000;3000,500)"))
|
||||
r.merge
|
||||
assert_equal(r.strange_polygon_check.to_s, "")
|
||||
|
||||
|
|
@ -748,14 +755,14 @@ class DBRegion_TestClass < TestBase
|
|||
|
||||
r.insert(RBA::Polygon::new(pts))
|
||||
|
||||
assert_equal(r.with_angle(0, 180.0, false).to_s, "(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)")
|
||||
assert_equal(csort(r.with_angle(0, 180.0, false).to_s), csort("(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)"))
|
||||
assert_equal(r.with_angle(0, 180.0, true).to_s, "")
|
||||
assert_equal(r.with_angle(45.0, 45.1, false).to_s, "(0,1000;1000,2000)/(1000,2000;1000,0)")
|
||||
assert_equal(r.with_angle(45.0, false).to_s, "(0,1000;1000,2000)/(1000,2000;1000,0)")
|
||||
assert_equal(r.with_angle(0.0, 90.0, false).to_s, "(0,1000;1000,2000)/(1000,2000;1000,0)")
|
||||
assert_equal(r.with_angle(0.0, 90.0, true).to_s, "(0,0;0,1000)/(0,1000;1000,2000);(1000,2000;1000,0)/(1000,0;0,0);(1000,0;0,0)/(0,0;0,1000)")
|
||||
assert_equal(csort(r.with_angle(0.0, 90.0, true).to_s), csort("(0,0;0,1000)/(0,1000;1000,2000);(1000,2000;1000,0)/(1000,0;0,0);(1000,0;0,0)/(0,0;0,1000)"))
|
||||
assert_equal(r.with_angle(90.1, 180.0, false).to_s, "(0,0;0,1000)/(0,1000;1000,2000)")
|
||||
assert_equal(r.with_angle(90.1, 180.0, true).to_s, "(0,1000;1000,2000)/(1000,2000;1000,0);(1000,2000;1000,0)/(1000,0;0,0);(1000,0;0,0)/(0,0;0,1000)")
|
||||
assert_equal(csort(r.with_angle(90.1, 180.0, true).to_s), csort("(0,1000;1000,2000)/(1000,2000;1000,0);(1000,2000;1000,0)/(1000,0;0,0);(1000,0;0,0)/(0,0;0,1000)"))
|
||||
|
||||
end
|
||||
|
||||
|
|
@ -773,8 +780,8 @@ class DBRegion_TestClass < TestBase
|
|||
assert_equal(r.grid_check(0, 0).to_s, "")
|
||||
assert_equal(r.grid_check(5, 0).to_s, "")
|
||||
assert_equal(r.grid_check(0, 10).to_s, "")
|
||||
assert_equal(r.grid_check(10, 10).to_s, "(105,100;105,100)/(105,100;105,100);(105,290;105,290)/(105,290;105,290)")
|
||||
assert_equal(r.grid_check(10, 20).to_s, "(105,100;105,100)/(105,100;105,100);(910,290;910,290)/(910,290;910,290);(105,290;105,290)/(105,290;105,290)")
|
||||
assert_equal(csort(r.grid_check(10, 10).to_s), csort("(105,100;105,100)/(105,100;105,100);(105,290;105,290)/(105,290;105,290)"))
|
||||
assert_equal(csort(r.grid_check(10, 20).to_s), csort("(105,100;105,100)/(105,100;105,100);(910,290;910,290)/(910,290;910,290);(105,290;105,290)/(105,290;105,290)"))
|
||||
|
||||
end
|
||||
|
||||
|
|
@ -822,7 +829,7 @@ class DBRegion_TestClass < TestBase
|
|||
|
||||
r2 = RBA::Region::new;
|
||||
|
||||
assert_equal((r - r2).to_s, "(0,0;0,1000;500,1000;500,0);(200,300;200,1200;600,1200;600,300)")
|
||||
assert_equal(csort((r - r2).to_s), csort("(0,0;0,1000;500,1000;500,0);(200,300;200,1200;600,1200;600,300)"))
|
||||
assert_equal(r.strict_handling?, false)
|
||||
|
||||
r.strict_handling = true
|
||||
|
|
@ -840,12 +847,12 @@ class DBRegion_TestClass < TestBase
|
|||
p = RBA::Polygon::from_s("(0,40;0,50;10,50;10,40;0,40)")
|
||||
r.insert(p)
|
||||
|
||||
assert_equal(RBA::Region::new(r.decompose_convex).to_s, "(0,10;0,30;10,30;10,10);(10,30;10,40;40,40;40,30);(0,30;0,50;10,50;10,30);(30,0;30,30;40,30;40,0);(0,0;0,10;30,10;30,0)")
|
||||
assert_equal(r.decompose_convex_to_region.to_s, "(0,10;0,30;10,30;10,10);(10,30;10,40;40,40;40,30);(0,30;0,50;10,50;10,30);(30,0;30,30;40,30;40,0);(0,0;0,10;30,10;30,0)")
|
||||
assert_equal(RBA::Region::new(r.decompose_convex(RBA::Polygon::PO_horizontal)).to_s, "(0,10;0,30;10,30;10,10);(0,30;0,40;40,40;40,30);(0,40;0,50;10,50;10,40);(30,10;30,30;40,30;40,10);(0,0;0,10;40,10;40,0)")
|
||||
assert_equal(RBA::Region::new(r.decompose_trapezoids).to_s, "(0,0;0,10;40,10;40,0);(0,10;0,30;10,30;10,10);(30,10;30,30;40,30;40,10);(0,30;0,40;40,40;40,30);(0,40;0,50;10,50;10,40)")
|
||||
assert_equal(r.decompose_trapezoids_to_region.to_s, "(0,0;0,10;40,10;40,0);(0,10;0,30;10,30;10,10);(30,10;30,30;40,30;40,10);(0,30;0,40;40,40;40,30);(0,40;0,50;10,50;10,40)")
|
||||
assert_equal(RBA::Region::new(r.decompose_trapezoids(RBA::Polygon::TD_htrapezoids)).to_s, "(0,10;0,30;10,30;10,10);(10,30;10,40;40,40;40,30);(0,30;0,50;10,50;10,30);(30,0;30,30;40,30;40,0);(0,0;0,10;30,10;30,0)")
|
||||
assert_equal(csort(RBA::Region::new(r.decompose_convex).to_s), csort("(0,10;0,30;10,30;10,10);(10,30;10,40;40,40;40,30);(0,30;0,50;10,50;10,30);(30,0;30,30;40,30;40,0);(0,0;0,10;30,10;30,0)"))
|
||||
assert_equal(csort(r.decompose_convex_to_region.to_s), csort("(0,10;0,30;10,30;10,10);(10,30;10,40;40,40;40,30);(0,30;0,50;10,50;10,30);(30,0;30,30;40,30;40,0);(0,0;0,10;30,10;30,0)"))
|
||||
assert_equal(csort(RBA::Region::new(r.decompose_convex(RBA::Polygon::PO_horizontal)).to_s), csort("(0,10;0,30;10,30;10,10);(0,30;0,40;40,40;40,30);(0,40;0,50;10,50;10,40);(30,10;30,30;40,30;40,10);(0,0;0,10;40,10;40,0)"))
|
||||
assert_equal(csort(RBA::Region::new(r.decompose_trapezoids).to_s), csort("(0,0;0,10;40,10;40,0);(0,10;0,30;10,30;10,10);(30,10;30,30;40,30;40,10);(0,30;0,40;40,40;40,30);(0,40;0,50;10,50;10,40)"))
|
||||
assert_equal(csort(r.decompose_trapezoids_to_region.to_s), csort("(0,0;0,10;40,10;40,0);(0,10;0,30;10,30;10,10);(30,10;30,30;40,30;40,10);(0,30;0,40;40,40;40,30);(0,40;0,50;10,50;10,40)"))
|
||||
assert_equal(csort(RBA::Region::new(r.decompose_trapezoids(RBA::Polygon::TD_htrapezoids)).to_s), csort("(0,10;0,30;10,30;10,10);(10,30;10,40;40,40;40,30);(0,30;0,50;10,50;10,30);(30,0;30,30;40,30;40,0);(0,0;0,10;30,10;30,0)"))
|
||||
|
||||
end
|
||||
|
||||
|
|
@ -856,12 +863,12 @@ class DBRegion_TestClass < TestBase
|
|||
p = RBA::Polygon::from_s("(0,0;0,80;40,40;40,0/10,10;30,10;30,30;10,30)")
|
||||
r.insert(p)
|
||||
|
||||
assert_equal(r.corners.to_s, "(39,-1;39,1;41,1;41,-1);(-1,-1;-1,1;1,1;1,-1);(-1,79;-1,81;1,81;1,79);(39,39;39,41;41,41;41,39);(9,29;9,31;11,31;11,29);(9,9;9,11;11,11;11,9);(29,9;29,11;31,11;31,9);(29,29;29,31;31,31;31,29)")
|
||||
assert_equal(r.corners(-90.0, 90.0).to_s, "(39,-1;39,1;41,1;41,-1);(-1,-1;-1,1;1,1;1,-1);(39,39;39,41;41,41;41,39);(9,29;9,31;11,31;11,29);(9,9;9,11;11,11;11,9);(29,9;29,11;31,11;31,9);(29,29;29,31;31,31;31,29)")
|
||||
assert_equal(r.corners(-90.0, -90.0).to_s, "(39,-1;39,1;41,1;41,-1);(-1,-1;-1,1;1,1;1,-1)")
|
||||
assert_equal(csort(r.corners.to_s), csort("(39,-1;39,1;41,1;41,-1);(-1,-1;-1,1;1,1;1,-1);(-1,79;-1,81;1,81;1,79);(39,39;39,41;41,41;41,39);(9,29;9,31;11,31;11,29);(9,9;9,11;11,11;11,9);(29,9;29,11;31,11;31,9);(29,29;29,31;31,31;31,29)"))
|
||||
assert_equal(csort(r.corners(-90.0, 90.0).to_s), csort("(39,-1;39,1;41,1;41,-1);(-1,-1;-1,1;1,1;1,-1);(39,39;39,41;41,41;41,39);(9,29;9,31;11,31;11,29);(9,9;9,11;11,11;11,9);(29,9;29,11;31,11;31,9);(29,29;29,31;31,31;31,29)"))
|
||||
assert_equal(csort(r.corners(-90.0, -90.0).to_s), csort("(39,-1;39,1;41,1;41,-1);(-1,-1;-1,1;1,1;1,-1)"))
|
||||
assert_equal(r.corners(-45.0, -45.0).to_s, "(39,39;39,41;41,41;41,39)")
|
||||
assert_equal(r.corners(-90.0, -45.0).to_s, "(39,-1;39,1;41,1;41,-1);(-1,-1;-1,1;1,1;1,-1);(39,39;39,41;41,41;41,39)")
|
||||
assert_equal(r.corners(90.0, 90.0).to_s, "(9,29;9,31;11,31;11,29);(9,9;9,11;11,11;11,9);(29,9;29,11;31,11;31,9);(29,29;29,31;31,31;31,29)")
|
||||
assert_equal(csort(r.corners(-90.0, -45.0).to_s), csort("(39,-1;39,1;41,1;41,-1);(-1,-1;-1,1;1,1;1,-1);(39,39;39,41;41,41;41,39)"))
|
||||
assert_equal(csort(r.corners(90.0, 90.0).to_s), csort("(9,29;9,31;11,31;11,29);(9,9;9,11;11,11;11,9);(29,9;29,11;31,11;31,9);(29,29;29,31;31,31;31,29)"))
|
||||
|
||||
end
|
||||
|
||||
|
|
@ -994,19 +1001,19 @@ class DBRegion_TestClass < TestBase
|
|||
r.insert(RBA::Box::new(0, 10000, 2000, 12000))
|
||||
|
||||
assert_equal(r.with_bbox_width(1000, false).to_s, "(0,0;0,5000;1000,5000;1000,0)")
|
||||
assert_equal(r.with_bbox_width(1000, true).to_s, "(3000,0;3000,1000;7000,1000;7000,0);(0,10000;0,12000;2000,12000;2000,10000)")
|
||||
assert_equal(r.with_bbox_width(1000, 2001, false).to_s, "(0,0;0,5000;1000,5000;1000,0);(0,10000;0,12000;2000,12000;2000,10000)")
|
||||
assert_equal(csort(r.with_bbox_width(1000, true).to_s), csort("(3000,0;3000,1000;7000,1000;7000,0);(0,10000;0,12000;2000,12000;2000,10000)"))
|
||||
assert_equal(csort(r.with_bbox_width(1000, 2001, false).to_s), csort("(0,0;0,5000;1000,5000;1000,0);(0,10000;0,12000;2000,12000;2000,10000)"))
|
||||
assert_equal(r.with_bbox_width(1000, 2000, false).to_s, "(0,0;0,5000;1000,5000;1000,0)")
|
||||
assert_equal(r.with_bbox_width(1000, 2001, true).to_s, "(3000,0;3000,1000;7000,1000;7000,0)")
|
||||
|
||||
assert_equal(r.with_bbox_height(5000, false).to_s, "(0,0;0,5000;1000,5000;1000,0)")
|
||||
assert_equal(r.with_bbox_height(5000, true).to_s, "(3000,0;3000,1000;7000,1000;7000,0);(0,10000;0,12000;2000,12000;2000,10000)")
|
||||
assert_equal(r.with_bbox_height(1000, 2001, false).to_s, "(3000,0;3000,1000;7000,1000;7000,0);(0,10000;0,12000;2000,12000;2000,10000)")
|
||||
assert_equal(csort(r.with_bbox_height(5000, true).to_s), csort("(3000,0;3000,1000;7000,1000;7000,0);(0,10000;0,12000;2000,12000;2000,10000)"))
|
||||
assert_equal(csort(r.with_bbox_height(1000, 2001, false).to_s), csort("(3000,0;3000,1000;7000,1000;7000,0);(0,10000;0,12000;2000,12000;2000,10000)"))
|
||||
assert_equal(r.with_bbox_height(1000, 1001, false).to_s, "(3000,0;3000,1000;7000,1000;7000,0)")
|
||||
assert_equal(r.with_bbox_height(1000, 1001, true).to_s, "(0,0;0,5000;1000,5000;1000,0);(0,10000;0,12000;2000,12000;2000,10000)")
|
||||
assert_equal(csort(r.with_bbox_height(1000, 1001, true).to_s), csort("(0,0;0,5000;1000,5000;1000,0);(0,10000;0,12000;2000,12000;2000,10000)"))
|
||||
|
||||
assert_equal(r.with_bbox_aspect_ratio(1.0, false).to_s, "(0,10000;0,12000;2000,12000;2000,10000)")
|
||||
assert_equal(r.with_bbox_aspect_ratio(1.0, true).to_s, "(3000,0;3000,1000;7000,1000;7000,0);(0,0;0,5000;1000,5000;1000,0)")
|
||||
assert_equal(csort(r.with_bbox_aspect_ratio(1.0, true).to_s), csort("(3000,0;3000,1000;7000,1000;7000,0);(0,0;0,5000;1000,5000;1000,0)"))
|
||||
assert_equal(r.with_bbox_aspect_ratio(0.9, 1.0, false).to_s, "(0,10000;0,12000;2000,12000;2000,10000)")
|
||||
assert_equal(r.with_bbox_aspect_ratio(1.0, 1.1, false).to_s, "(0,10000;0,12000;2000,12000;2000,10000)")
|
||||
assert_equal(r.with_bbox_aspect_ratio(0.9, 0.95, false).to_s, "")
|
||||
|
|
@ -1014,17 +1021,17 @@ class DBRegion_TestClass < TestBase
|
|||
assert_equal(r.with_bbox_aspect_ratio(1.0, 1.1, false, false, true).to_s, "")
|
||||
|
||||
assert_equal(r.with_relative_height(1.0, false).to_s, "(0,10000;0,12000;2000,12000;2000,10000)")
|
||||
assert_equal(r.with_relative_height(1.0, true).to_s, "(3000,0;3000,1000;7000,1000;7000,0);(0,0;0,5000;1000,5000;1000,0)")
|
||||
assert_equal(csort(r.with_relative_height(1.0, true).to_s), csort("(3000,0;3000,1000;7000,1000;7000,0);(0,0;0,5000;1000,5000;1000,0)"))
|
||||
assert_equal(r.with_relative_height(0.9, 1.0, false).to_s, "(0,10000;0,12000;2000,12000;2000,10000)")
|
||||
assert_equal(r.with_relative_height(1.0, 1.1, false).to_s, "(0,10000;0,12000;2000,12000;2000,10000)")
|
||||
assert_equal(r.with_relative_height(0.9, 0.95, false).to_s, "")
|
||||
assert_equal(r.with_relative_height(0.9, 1.0, false, true, false).to_s, "")
|
||||
assert_equal(r.with_relative_height(1.0, 1.1, false, false, true).to_s, "")
|
||||
|
||||
assert_equal(r.rectangles.to_s, "(3000,0;3000,1000;7000,1000;7000,0);(0,0;0,5000;1000,5000;1000,0);(0,10000;0,12000;2000,12000;2000,10000)")
|
||||
assert_equal(csort(r.rectangles.to_s), csort("(3000,0;3000,1000;7000,1000;7000,0);(0,0;0,5000;1000,5000;1000,0);(0,10000;0,12000;2000,12000;2000,10000)"))
|
||||
assert_equal(r.non_rectangles.to_s, "")
|
||||
assert_equal(r.squares.to_s, "(0,10000;0,12000;2000,12000;2000,10000)")
|
||||
assert_equal(r.non_squares.to_s, "(3000,0;3000,1000;7000,1000;7000,0);(0,0;0,5000;1000,5000;1000,0)")
|
||||
assert_equal(csort(r.non_squares.to_s), csort("(3000,0;3000,1000;7000,1000;7000,0);(0,0;0,5000;1000,5000;1000,0)"))
|
||||
|
||||
r = RBA::Region::new
|
||||
r.insert(RBA::Box::new(0, 0, 1000, 2000))
|
||||
|
|
|
|||
|
|
@ -23,6 +23,13 @@ end
|
|||
|
||||
load("test_prologue.rb")
|
||||
|
||||
# normalizes a specification string for region, edges etc.
|
||||
# such that the order of the objects becomes irrelevant
|
||||
def csort(s)
|
||||
# splits at ");(" without consuming the brackets
|
||||
s.split(/(?<=\));(?=\()/).sort.join(";")
|
||||
end
|
||||
|
||||
class DBTexts_TestClass < TestBase
|
||||
|
||||
# Basics
|
||||
|
|
@ -106,9 +113,9 @@ class DBTexts_TestClass < TestBase
|
|||
r1.insert(RBA::Text::new("abc", RBA::Trans::new(RBA::Vector::new(101, -201))))
|
||||
r1.insert(RBA::Text::new("uvm", RBA::Trans::new(RBA::Vector::new(111, 211))))
|
||||
|
||||
assert_equal((r1 + r2).to_s, "('abc',r0 100,-200);('uvm',r0 110,210);('abc',r0 101,-201);('uvm',r0 111,211)")
|
||||
assert_equal(csort((r1 + r2).to_s), csort("('abc',r0 100,-200);('uvm',r0 110,210);('abc',r0 101,-201);('uvm',r0 111,211)"))
|
||||
r1 += r2
|
||||
assert_equal(r1.to_s, "('abc',r0 100,-200);('uvm',r0 110,210);('abc',r0 101,-201);('uvm',r0 111,211)")
|
||||
assert_equal(csort(r1.to_s), csort("('abc',r0 100,-200);('uvm',r0 110,210);('abc',r0 101,-201);('uvm',r0 111,211)"))
|
||||
|
||||
end
|
||||
|
||||
|
|
@ -119,7 +126,7 @@ class DBTexts_TestClass < TestBase
|
|||
text3 = RBA::Text::new("xyz", RBA::Trans::new(RBA::Vector::new(-101, 201)))
|
||||
|
||||
r1 = RBA::Texts::new([ text1, text2 ])
|
||||
assert_equal(r1.to_s, "('abc',r0 100,-200);('uvm',r0 110,210)")
|
||||
assert_equal(csort(r1.to_s), csort("('abc',r0 100,-200);('uvm',r0 110,210)"))
|
||||
assert_equal(r1.with_text("abc", false).to_s, "('abc',r0 100,-200)")
|
||||
assert_equal(r1.with_text("abc", true).to_s, "('uvm',r0 110,210)")
|
||||
assert_equal(r1.with_match("*b*", false).to_s, "('abc',r0 100,-200)")
|
||||
|
|
@ -132,7 +139,7 @@ class DBTexts_TestClass < TestBase
|
|||
s.insert(text1)
|
||||
s.insert(text2)
|
||||
r1 = RBA::Texts::new(s)
|
||||
assert_equal(r1.to_s, "('abc',r0 100,-200);('uvm',r0 110,210)")
|
||||
assert_equal(csort(r1.to_s), csort("('abc',r0 100,-200);('uvm',r0 110,210)"))
|
||||
|
||||
ly = RBA::Layout::new
|
||||
l1 = ly.layer("l1")
|
||||
|
|
|
|||
Loading…
Reference in New Issue