Fixed #805 - introducing layer.count and layout.hier_count for DRC

This commit is contained in:
Matthias Koefferlein
2021-05-26 22:11:47 +02:00
parent 5e04ea6156
commit 2e63628ddd
5 changed files with 94 additions and 7 deletions
+11
View File
@@ -3,7 +3,17 @@ dbu 0.001
target($drc_test_target, "TOP")
def self.expect_count(layer, c, hc, where)
if layer.count != c
raise(where + ": Layer count #{layer.count} does not equal #{c}")
end
if layer.hier_count != hc
raise(where + ": Layer hier count #{layer.hier_count} does not equal #{c}")
end
end
x = polygon_layer
expect_count(x, 0, 0, "empty layer")
x.is_empty? == true || raise("unexpected value")
x.is_box? == false || raise("unexpected value")
x.insert(box(4.0, 0, 4.7, 0.7))
@@ -12,6 +22,7 @@ x.is_box? == true || raise("unexpected value")
x.insert(polygon([ p(0, 0), p(2.0, 0), p(1.0, 1.0) ]))
x.insert(polygon([ p(0, -5.0), p(2.0, -5.0), p(1.0, -6.0) ]))
x.insert(path([ p(0, -2), p(2.0, -2) ], 0.2))
expect_count(x, 4, 4, "after 3x insert")
x.is_box? == false || raise("unexpected value")
x.output(10, 0)
+12
View File
@@ -2,6 +2,15 @@
target($drc_test_target, "TOP")
source($drc_test_source, "TOP")
def self.expect_count(layer, c, hc, where)
if layer.count != c
raise(where + ": Layer count #{layer.count} does not equal #{c}")
end
if layer.hier_count != hc
raise(where + ": Layer hier count #{layer.hier_count} does not equal #{c}")
end
end
a1 = input(1)
b1 = input(2)
c1 = input(3)
@@ -89,3 +98,6 @@ a1.edges.collect_to_region { |p| p.length < 0.8 && p.bbox.transformed(RBA::VCplx
a1.width(1.5).collect { |p| p.transformed(RBA::VCplxTrans::new(1000.0)) }.output(1120, 0)
a1.width(1.5).collect_to_edge_pairs { |p| p.transformed(RBA::VCplxTrans::new(1000.0)) }.output(1121, 0)
expect_count(a1.edges, 9, 9, "a1.edges")
expect_count(a1.width(1.5), 5, 5, "a1.width(1.5)")
+13
View File
@@ -4,6 +4,15 @@
source($drc_test_source, "TOPTOP_SMALL")
target($drc_test_target)
def self.expect_count(layer, c, hc, where)
if layer.count != c
raise(where + ": Layer count #{layer.count} does not equal #{c}")
end
if layer.hier_count != hc
raise(where + ": Layer hier count #{layer.hier_count} does not equal #{c}")
end
end
cell("TOPTOP_SMALL")
l1_flat = input(1)
@@ -66,12 +75,16 @@ r.output(1023, 0)
r.extents.output(1123, 0)
r = l1.space(0.5)
expect_count(r, 3, 1, "r on l1")
r.output(1010, 0)
r.extents.output(1110, 0)
expect_count(l1, 15, 5, "l1 before flatten")
l1.flatten
expect_count(l1, 15, 15, "l1 after flatten")
r = l1.space(0.5)
r.output(1011, 0)
r.extents.output(1111, 0)
expect_count(r, 3, 1, "r on l1.flatten")