From 2ac9336204eac599b7f0659b55770f2e0e909cd2 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Wed, 31 Aug 2022 17:57:23 +0200 Subject: [PATCH] Tests for new Edges GSI bindings. --- testdata/ruby/dbEdgesTest.rb | 86 ++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/testdata/ruby/dbEdgesTest.rb b/testdata/ruby/dbEdgesTest.rb index 96a1a9470..c199c0c10 100644 --- a/testdata/ruby/dbEdgesTest.rb +++ b/testdata/ruby/dbEdgesTest.rb @@ -336,6 +336,9 @@ class DBEdges_TestClass < TestBase r = r1 & r2 assert_equal(r.to_s, "(50,0;100,0)") assert_equal(r.is_merged?, true) + r = r1.andnot(r2)[0] + assert_equal(r.to_s, "(50,0;100,0)") + assert_equal(r.is_merged?, true) r = r1.dup r &= r2 assert_equal(r.to_s, "(50,0;100,0)") @@ -343,6 +346,9 @@ class DBEdges_TestClass < TestBase r = r1 - r2 assert_equal(r.to_s, "(0,0;50,0)") assert_equal(r.is_merged?, true) + r = r1.andnot(r2)[1] + assert_equal(r.to_s, "(0,0;50,0)") + assert_equal(r.is_merged?, true) r = r1.dup r -= r2 assert_equal(r.to_s, "(0,0;50,0)") @@ -482,7 +488,9 @@ class DBEdges_TestClass < TestBase g2.insert(RBA::Box::new(0, 10, 200, 20)) assert_equal(r.interacting(r2).to_s, "(100,0;100,50)") + assert_equal(r.split_interacting(r2)[0].to_s, "(100,0;100,50)") assert_equal(r.not_interacting(r2).to_s, "(0,0;100,0)") + assert_equal(r.split_interacting(r2)[1].to_s, "(0,0;100,0)") rr = r.dup rr.select_interacting(r2) assert_equal(rr.to_s, "(100,0;100,50)") @@ -491,7 +499,9 @@ class DBEdges_TestClass < TestBase assert_equal(rr.to_s, "(0,0;100,0)") assert_equal(r.interacting(g2).to_s, "(100,0;100,50)") + assert_equal(r.split_interacting(g2)[0].to_s, "(100,0;100,50)") assert_equal(r.not_interacting(g2).to_s, "(0,0;100,0)") + assert_equal(r.split_interacting(g2)[1].to_s, "(0,0;100,0)") rr = r.dup rr.select_interacting(g2) assert_equal(rr.to_s, "(100,0;100,50)") @@ -539,8 +549,11 @@ class DBEdges_TestClass < TestBase e.insert(RBA::Edge::new(-100, 100, 200, 100)) assert_equal((e & r).to_s, "(0,100;100,100)") assert_equal(e.inside_part(r).to_s, "(0,100;100,100)") + assert_equal(e.inside_outside_part(r)[0].to_s, "(0,100;100,100)") ee = e.dup + assert_equal((ee & r).to_s, "(0,100;100,100)") + assert_equal(ee.andnot(r)[0].to_s, "(0,100;100,100)") ee &= r assert_equal(ee.to_s, "(0,100;100,100)") @@ -550,8 +563,11 @@ class DBEdges_TestClass < TestBase 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)")) + assert_equal(csort(e.inside_outside_part(r)[1].to_s), csort("(-100,100;0,100);(100,100;200,100)")) ee = e.dup + assert_equal((ee - r).to_s, csort("(-100,100;0,100);(100,100;200,100)")) + assert_equal(ee.andnot(r)[1].to_s, csort("(-100,100;0,100);(100,100;200,100)")) ee -= r assert_equal(csort(ee.to_s), csort("(-100,100;0,100);(100,100;200,100)")) @@ -625,6 +641,76 @@ class DBEdges_TestClass < TestBase end + # inside + def test_10 + + r = RBA::Edges::new + r.insert(RBA::Edge::new(0, 0, 100, 0)) + r.insert(RBA::Edge::new(0, 10, 100, 10)) + r2 = RBA::Edges::new + r2.insert(RBA::Edge::new(0, 10, 200, 10)) + g2 = RBA::Region::new + g2.insert(RBA::Box::new(0, 10, 200, 20)) + + assert_equal(r.inside(r2).to_s, "(0,10;100,10)") + assert_equal(r.split_inside(r2)[0].to_s, "(0,10;100,10)") + assert_equal(r.not_inside(r2).to_s, "(0,0;100,0)") + assert_equal(r.split_inside(r2)[1].to_s, "(0,0;100,0)") + rr = r.dup + rr.select_inside(r2) + assert_equal(rr.to_s, "(0,10;100,10)") + rr = r.dup + rr.select_not_inside(r2) + assert_equal(rr.to_s, "(0,0;100,0)") + + assert_equal(r.inside(g2).to_s, "(0,10;100,10)") + assert_equal(r.split_inside(g2)[0].to_s, "(0,10;100,10)") + assert_equal(r.not_inside(g2).to_s, "(0,0;100,0)") + assert_equal(r.split_inside(g2)[1].to_s, "(0,0;100,0)") + rr = r.dup + rr.select_inside(g2) + assert_equal(rr.to_s, "(0,10;100,10)") + rr = r.dup + rr.select_not_inside(g2) + assert_equal(rr.to_s, "(0,0;100,0)") + + end + + # outside + def test_11 + + r = RBA::Edges::new + r.insert(RBA::Edge::new(0, 0, 100, 0)) + r.insert(RBA::Edge::new(0, 10, 100, 10)) + r2 = RBA::Edges::new + r2.insert(RBA::Edge::new(0, 0, 200, 0)) + g2 = RBA::Region::new + g2.insert(RBA::Box::new(0, -5, 200, 5)) + + assert_equal(r.outside(r2).to_s, "(0,10;100,10)") + assert_equal(r.split_outside(r2)[0].to_s, "(0,10;100,10)") + assert_equal(r.not_outside(r2).to_s, "(0,0;100,0)") + assert_equal(r.split_outside(r2)[1].to_s, "(0,0;100,0)") + rr = r.dup + rr.select_outside(r2) + assert_equal(rr.to_s, "(0,10;100,10)") + rr = r.dup + rr.select_not_outside(r2) + assert_equal(rr.to_s, "(0,0;100,0)") + + assert_equal(r.outside(g2).to_s, "(0,10;100,10)") + assert_equal(r.split_outside(g2)[0].to_s, "(0,10;100,10)") + assert_equal(r.not_outside(g2).to_s, "(0,0;100,0)") + assert_equal(r.split_outside(g2)[1].to_s, "(0,0;100,0)") + rr = r.dup + rr.select_outside(g2) + assert_equal(rr.to_s, "(0,10;100,10)") + rr = r.dup + rr.select_not_outside(g2) + assert_equal(rr.to_s, "(0,0;100,0)") + + end + end load("test_epilogue.rb")