From c24568b510229d4e2736a7d7dc64ecccdaf2775c Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sun, 10 Jan 2021 09:02:41 +0100 Subject: [PATCH] Added more tests, debugging. --- .../drc/built-in-macros/_drc_complex_ops.rb | 16 ++++++------ src/drc/unit_tests/drcGenericTests.cc | 10 ++++++++ testdata/drc/drcGenericTests_10.drc | 24 ++++++++++++++++++ testdata/drc/drcGenericTests_10.gds | Bin 0 -> 1246 bytes testdata/drc/drcGenericTests_5.drc | 3 +++ testdata/drc/drcGenericTests_au5.gds | Bin 6218 -> 6666 bytes testdata/drc/drcGenericTests_au5d.gds | Bin 5950 -> 6398 bytes 7 files changed, 45 insertions(+), 8 deletions(-) create mode 100644 testdata/drc/drcGenericTests_10.drc create mode 100644 testdata/drc/drcGenericTests_10.gds diff --git a/src/drc/drc/built-in-macros/_drc_complex_ops.rb b/src/drc/drc/built-in-macros/_drc_complex_ops.rb index ce8eb9640..fcb737383 100644 --- a/src/drc/drc/built-in-macros/_drc_complex_ops.rb +++ b/src/drc/drc/built-in-macros/_drc_complex_ops.rb @@ -269,7 +269,7 @@ CODE # The plain function is equivalent to "primary.bbox_min". def bbox_min - DRCOpNodeBBoxParameterFilter::new(@engine, RBA::CompoundRegionOperationNode::BoxMinDim, self) + DRCOpNodeBBoxParameterFilter::new(@engine, RBA::CompoundRegionOperationNode::ParameterType::BoxMinDim, self) end # %DRC% @@ -284,7 +284,7 @@ CODE # The plain function is equivalent to "primary.bbox_max". def bbox_max - DRCOpNodeBBoxParameterFilter::new(@engine, RBA::CompoundRegionOperationNode::BoxMaxDim, self) + DRCOpNodeBBoxParameterFilter::new(@engine, RBA::CompoundRegionOperationNode::ParameterType::BoxMaxDim, self) end # %DRC% @@ -302,7 +302,7 @@ CODE # The plain function is equivalent to "primary.bbox_width". def bbox_width - DRCOpNodeBBoxParameterFilter::new(@engine, RBA::CompoundRegionOperationNode::BoxWidth, self) + DRCOpNodeBBoxParameterFilter::new(@engine, RBA::CompoundRegionOperationNode::ParameterType::BoxWidth, self) end # %DRC% @@ -320,7 +320,7 @@ CODE # The plain function is equivalent to "primary.bbox_height". def bbox_height - DRCOpNodeBBoxParameterFilter::new(@engine, RBA::CompoundRegionOperationNode::BoxHeight, self) + DRCOpNodeBBoxParameterFilter::new(@engine, RBA::CompoundRegionOperationNode::ParameterType::BoxHeight, self) end # %DRC% @@ -1537,21 +1537,21 @@ class DRCOpNodeBBoxParameterFilter < DRCOpNodeWithCompare attr_accessor :parameter attr_accessor :inverse - def initialize(engine, parameter, input, description) + def initialize(engine, parameter, input) super(engine) self.parameter = parameter self.input = input self.inverse = false - self.description = description + self.description = parameter.to_s end def do_create_node(cache) - args = [ self.input.create_node(cache), self.inverse ] + args = [ self.input.create_node(cache), self.parameter, self.inverse ] args << (self.gt ? @engine._make_value(self.gt) + 1 : (self.ge ? @engine._make_value(self.ge) : 0)) if self.lt || self.le args << (self.lt ? @engine._make_value(self.lt) : @engine._make_value(self.le) + 1) end - RBA::CompoundRegionOperationNode::new_perimeter_filter(*args) + RBA::CompoundRegionOperationNode::new_bbox_filter(*args) end def inverted diff --git a/src/drc/unit_tests/drcGenericTests.cc b/src/drc/unit_tests/drcGenericTests.cc index cef4927dc..afdec0972 100644 --- a/src/drc/unit_tests/drcGenericTests.cc +++ b/src/drc/unit_tests/drcGenericTests.cc @@ -158,3 +158,13 @@ TEST(9d) { run_test (_this, "9", true); } + +TEST(10) +{ + run_test (_this, "10", false); +} + +TEST(10d) +{ + run_test (_this, "10", true); +} diff --git a/testdata/drc/drcGenericTests_10.drc b/testdata/drc/drcGenericTests_10.drc new file mode 100644 index 000000000..3cd607cf0 --- /dev/null +++ b/testdata/drc/drcGenericTests_10.drc @@ -0,0 +1,24 @@ + +source $drc_test_source +target $drc_test_target + +if $drc_test_deep + deep + threads(0) # easier to debug +end + +l1 = input(1, 0) +l2 = input(2, 0) +l3 = input(3, 0) + +l1.output(1, 0) +l2.output(2, 0) +l3.output(3, 0) + +# bbox_predicates + +l1.drc(bbox_min > 2.0).output(100, 0) +l1.drc(bbox_max <= 2.0).output(101, 0) +l1.drc(bbox_width > 3.0).output(102, 0) +l1.drc(bbox_height > 11.0).output(103, 0) + diff --git a/testdata/drc/drcGenericTests_10.gds b/testdata/drc/drcGenericTests_10.gds new file mode 100644 index 0000000000000000000000000000000000000000..b55983b6b84258d19c8b294fb35471898d2be2f5 GIT binary patch literal 1246 zcmaizKT88a5XE2a&*l=N(Wrz-N(&27I}w7An8Ki-ND8sCNNJJM!otErJA0dST3A~6 z0mRx5V5ty9B!~pDaNN0dxK;1s756*d+}oL(nS+AkY@?iV(vL_%p@138+0O_Zwce-! z6Ry8pJy~44J?|~muje~wJ57}R0Y0TRt6NQY0icE*K7GUiFgxn%yLC+-0B#o$S|M)? z@X{EVC#%%TYGb{w-^>C*!DP)@S;ABP#)zJd5ECQ%m=0?QV{z5H-O#J6CVFiG`A$TA zW~j^AfBi(CIrbaAFK{j*q3FqeAbkf6T^o)c1H+eqP;^bZe#h>irE?=Z_#%=F+Xo5 z*U2ok%s(R(eNg?~Q{EaP=J+wu^L|9pledN^&Qmt*SJ=&zdMxiRE= dxsO88e{G%nb8Ah_aa+gV!n$UdUvHh~;R|lEFs=Xq literal 0 HcmV?d00001 diff --git a/testdata/drc/drcGenericTests_5.drc b/testdata/drc/drcGenericTests_5.drc index 0e4cae5e7..33216870a 100644 --- a/testdata/drc/drcGenericTests_5.drc +++ b/testdata/drc/drcGenericTests_5.drc @@ -39,3 +39,6 @@ l1.drc(! rectangles).output(141, 0) l1.drc(if_all(! rectangles, area < 8.0)).output(150, 0) l1.drc(if_any(rectangles, area > 8.0)).output(151, 0) +l1.drc(if_any(corners.count > 4)).output(160, 0) +l1.drc(if_any(corners.count == 4)).output(161, 0) + diff --git a/testdata/drc/drcGenericTests_au5.gds b/testdata/drc/drcGenericTests_au5.gds index bab8736eb43ad745867bb3f113836e39159776c3..c904d68d31c7ae09901f9bf87c2bedd0f976b851 100644 GIT binary patch delta 101 zcmX?Q&}E{;z{bGD6u}_F$i)7XfsuieL7c&uK^2)jQAu48LvUl%D{&4E1_m}>CWZx* d?})`SE|}aS<_{!o#QPZ+PCg@U4;P8R6vF@j delta 71 zcmeA&Ic1>4z{bGD6u}_F$i)7XfsuieL5M+y!33E-QAu48LvUl%D{(e<1_l-u1^{tU B3DN)n diff --git a/testdata/drc/drcGenericTests_au5d.gds b/testdata/drc/drcGenericTests_au5d.gds index fa60a6bc5a096e8213f12bba9ea2ad9a00647316..cd162191ca4f8b78f5b19190ce2b7995a6ae810c 100644 GIT binary patch delta 141 zcmdm|_s>v?fsKKQDS|