klayout/testdata/drc/drcSimpleTests_24.drc

62 lines
1.8 KiB
Plaintext

# shielded/transparent
source($drc_test_source, "TOP")
target($drc_test_target)
a = input(1, 0)
b = input(2, 0)
a.output(1, 0)
b.output(2, 0)
def split_vs_normal(r, f1, f2, *args)
d1 = r.send(f1, *args)[0].data
d2 = r.send(f2, *args).data
d1.each.collect(&:to_s).sort == d2.each.collect(&:to_s).sort || raise("#{f1.to_s} vs. #{f2.to_s} check failed: #{d1.to_s} != #{d2.to_s}")
end
def splitn_vs_normal(r, f1, f2, *args)
d1 = r.send(f1, *args)[1].data
d2 = r.send(f2, *args).data
d1.each.collect(&:to_s).sort == d2.each.collect(&:to_s).sort || raise("#{f1.to_s} vs. #{f2.to_s} check failed: #{d1.to_s} != #{d2.to_s}")
end
a.covering(b).output(100, 0)
a.covering(b, 1..1).output(101, 0)
a.covering(b, 2..2).output(102, 0)
a.covering(b, 3..3).output(103, 0)
b.inside(a).output(110, 0)
a.not_covering(b).output(120, 0)
b.not_inside(a).output(130, 0)
split_vs_normal(a, :split_covering, :covering, b)
split_vs_normal(a, :split_covering, :covering, b, 1..1)
split_vs_normal(a, :split_covering, :covering, b, 2..2)
split_vs_normal(a, :split_covering, :covering, b, 3..3)
split_vs_normal(b, :split_inside, :inside, a)
splitn_vs_normal(a, :split_covering, :not_covering, b)
splitn_vs_normal(b, :split_inside, :not_inside, a)
deep
a = input(1, 0)
b = input(2, 0)
a.covering(b).output(200, 0)
a.covering(b, 1..1).output(201, 0)
a.covering(b, 2..2).output(202, 0)
a.covering(b, 3..3).output(203, 0)
b.inside(a).output(210, 0)
a.not_covering(b).output(220, 0)
b.not_inside(a).output(230, 0)
split_vs_normal(a, :split_covering, :covering, b)
split_vs_normal(a, :split_covering, :covering, b, 1..1)
split_vs_normal(a, :split_covering, :covering, b, 2..2)
split_vs_normal(a, :split_covering, :covering, b, 3..3)
split_vs_normal(b, :split_inside, :inside, a)
splitn_vs_normal(a, :split_covering, :not_covering, b)
splitn_vs_normal(b, :split_inside, :not_inside, a)