mirror of https://github.com/KLayout/klayout.git
Tests for polygon-to-edge and polygon-to-edge-pair processors
This commit is contained in:
parent
1a126ede45
commit
bbb535a0bf
|
|
@ -59,6 +59,34 @@ class ShrinkToHalfProcessor < RBA::PolygonProcessor
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class SomePolygonToEdgePairProcessor < RBA::PolygonToEdgePairProcessor
|
||||||
|
|
||||||
|
# Constructor
|
||||||
|
def initialize
|
||||||
|
self.is_isotropic_and_scale_invariant # scale or orientation do not matter
|
||||||
|
end
|
||||||
|
|
||||||
|
def process(polygon)
|
||||||
|
box = polygon.bbox
|
||||||
|
return [ RBA::EdgePair::new([ box.left, box.bottom, box.left, box.top ], [ box.right, box.bottom, box.right, box.top ]) ]
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
class SomePolygonToEdgeProcessor < RBA::PolygonToEdgeProcessor
|
||||||
|
|
||||||
|
# Constructor
|
||||||
|
def initialize
|
||||||
|
self.is_isotropic_and_scale_invariant # scale or orientation do not matter
|
||||||
|
end
|
||||||
|
|
||||||
|
def process(polygon)
|
||||||
|
box = polygon.bbox
|
||||||
|
return [ RBA::Edge::new(box.p1, box.p2) ]
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
class DBRegion_TestClass < TestBase
|
class DBRegion_TestClass < TestBase
|
||||||
|
|
||||||
# Basics
|
# Basics
|
||||||
|
|
@ -1249,9 +1277,9 @@ class DBRegion_TestClass < TestBase
|
||||||
end
|
end
|
||||||
|
|
||||||
# Generic processors
|
# Generic processors
|
||||||
def test_generic_processors
|
def test_generic_processors_pp
|
||||||
|
|
||||||
# Some basic tests for the filter class
|
# Some basic tests for the processor class
|
||||||
|
|
||||||
f = ShrinkToHalfProcessor::new
|
f = ShrinkToHalfProcessor::new
|
||||||
assert_equal(f.wants_variants?, true)
|
assert_equal(f.wants_variants?, true)
|
||||||
|
|
@ -1285,6 +1313,36 @@ class DBRegion_TestClass < TestBase
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Generic processors
|
||||||
|
def test_generic_processors_pep
|
||||||
|
|
||||||
|
p = SomePolygonToEdgePairProcessor::new
|
||||||
|
|
||||||
|
region = RBA::Region::new
|
||||||
|
|
||||||
|
region.insert(RBA::Polygon::new([[0,0], [100, 100], [100,0]]))
|
||||||
|
region.insert(RBA::Box::new(200, 0, 300, 100))
|
||||||
|
|
||||||
|
assert_equal(region.processed(p).to_s, "(0,0;0,100)/(100,0;100,100);(200,0;200,100)/(300,0;300,100)")
|
||||||
|
assert_equal(region.to_s, "(0,0;100,100;100,0);(200,0;200,100;300,100;300,0)")
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
# Generic processors
|
||||||
|
def test_generic_processors_pe
|
||||||
|
|
||||||
|
p = SomePolygonToEdgeProcessor::new
|
||||||
|
|
||||||
|
region = RBA::Region::new
|
||||||
|
|
||||||
|
region.insert(RBA::Polygon::new([[0,0], [100, 100], [100,0]]))
|
||||||
|
region.insert(RBA::Box::new(200, 0, 300, 100))
|
||||||
|
|
||||||
|
assert_equal(region.processed(p).to_s, "(0,0;100,100);(200,0;300,100)")
|
||||||
|
assert_equal(region.to_s, "(0,0;100,100;100,0);(200,0;200,100;300,100;300,0)")
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
load("test_epilogue.rb")
|
load("test_epilogue.rb")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue