Convenience 'each' for recursive shape iterator / recursive instance iterator

This commit is contained in:
Matthias Koefferlein
2022-02-08 22:28:09 +01:00
parent e49b189f64
commit 1a53cd00d2
4 changed files with 135 additions and 1 deletions
+11
View File
@@ -27,7 +27,16 @@ class DBLayout_TestClass < TestBase
def collect(s, l)
# check native iteration here too ..
res2 = []
s.each do |s|
r = "[#{s.inst_cell.name}]"
r += (s.trans * s.inst_trans).to_s
res2.push(r)
end
res = []
s.reset
while !s.at_end?
r = "[#{s.inst_cell.name}]"
r += (s.trans * s.inst_trans).to_s
@@ -35,6 +44,8 @@ class DBLayout_TestClass < TestBase
s.next
end
assert_equal(res, res2)
return res.join("/")
end
+16
View File
@@ -27,7 +27,21 @@ class DBRecursiveShapeIterator_TestClass < TestBase
def collect(s, l)
# check native iteration here too ..
res2 = []
s.each do |s|
r = "[#{l.cell_name(s.cell_index)}]"
if s.shape.is_box?
box = s.shape.box
r += box.transformed(s.trans).to_s
else
r += "X";
end
res2.push(r)
end
res = []
s.reset
while !s.at_end?
r = "[#{l.cell_name(s.cell_index)}]"
if s.shape.is_box?
@@ -40,6 +54,8 @@ class DBRecursiveShapeIterator_TestClass < TestBase
res.push(r)
end
assert_equal(res, res2)
return res.join("/")
end