From 58d53636cbd0423cce41fae8962a324bb9895e96 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Tue, 25 Jun 2024 21:01:23 +0200 Subject: [PATCH] DRC tests for 'size/sized inside --- src/db/unit_tests/dbRegionTests.cc | 11 +++++ src/drc/unit_tests/drcSimpleTests.cc | 11 +++++ testdata/drc/drcSimpleTests_130.drc | 54 +++++++++++++++++++++++++ testdata/drc/drcSimpleTests_130.gds | Bin 0 -> 1442 bytes testdata/drc/drcSimpleTests_au130.gds | Bin 0 -> 4170 bytes testdata/drc/drcSimpleTests_au130d.gds | Bin 0 -> 4408 bytes 6 files changed, 76 insertions(+) create mode 100644 testdata/drc/drcSimpleTests_130.drc create mode 100644 testdata/drc/drcSimpleTests_130.gds create mode 100644 testdata/drc/drcSimpleTests_au130.gds create mode 100644 testdata/drc/drcSimpleTests_au130d.gds diff --git a/src/db/unit_tests/dbRegionTests.cc b/src/db/unit_tests/dbRegionTests.cc index 2056f924f..126dda6cc 100644 --- a/src/db/unit_tests/dbRegionTests.cc +++ b/src/db/unit_tests/dbRegionTests.cc @@ -2591,6 +2591,17 @@ TEST(60_sized_inside) EXPECT_EQ (r.sized_inside (inside, false, 1, 2, 0).to_string (), "(-10,20;-10,60;20,60;20,20);(20,20;20,60;30,60;30,20)"); EXPECT_EQ (r.sized_inside (inside, false, 10, 20, 10).to_string (), "(-10,10;-10,80;40,80;40,10)"); + db::Region d; + d = r; + d.size_inside (inside, false, 0, 20, 10); + EXPECT_EQ (d.to_string (), "(-10,10;-10,80;30,80;30,10)"); + d = r; + d.size_inside (inside, false, 1, 2, 0); + EXPECT_EQ (d.to_string (), "(-10,20;-10,60;20,60;20,20);(20,20;20,60;30,60;30,20)"); + d = r; + d.size_inside (inside, false, 10, 20, 10); + EXPECT_EQ (d.to_string (), "(-10,10;-10,80;40,80;40,10)"); + EXPECT_EQ (r.sized_inside (db::Region (), false, 0, 40).to_string (), ""); EXPECT_EQ (r.sized_inside (db::Region (), false, 1, 0).to_string (), "(-10,20;-10,60;20,60;20,20);(20,20;20,60;30,60;30,20)"); EXPECT_EQ (r.sized_inside (db::Region (), false, 1, -1).to_string (), "(-10,20;-10,60;20,60;20,20);(20,20;20,60;30,60;30,20)"); diff --git a/src/drc/unit_tests/drcSimpleTests.cc b/src/drc/unit_tests/drcSimpleTests.cc index 6cc8d2fb5..7f4dff7b7 100644 --- a/src/drc/unit_tests/drcSimpleTests.cc +++ b/src/drc/unit_tests/drcSimpleTests.cc @@ -1911,3 +1911,14 @@ TEST(121_ShapesOfTerminal) db::compare_layouts (_this, layout, au, db::NoNormalization); } + +TEST(130_size_inside_outside) +{ + run_test (_this, "130", false); +} + +TEST(130d_size_inside_outside) +{ + run_test (_this, "130", true); +} + diff --git a/testdata/drc/drcSimpleTests_130.drc b/testdata/drc/drcSimpleTests_130.drc new file mode 100644 index 000000000..3d538f929 --- /dev/null +++ b/testdata/drc/drcSimpleTests_130.drc @@ -0,0 +1,54 @@ + +source $drc_test_source +target $drc_test_target + +if $drc_test_deep + deep +end + +l1 = input(1, 0) +l2 = input(2, 0) + +l1.output(1, 0) +l2.output(2, 0) + +l1.sized(0.0, steps(50), inside(l2)).output(100, 0) +l1.sized(20.0, steps(0), inside(l2)).output(101, 0) + +l1.sized(20.0, steps(50), inside(l2)).output(110, 0) +l1.sized(50.0, steps(50), outside(l2)).output(111, 0) + +l1d = l1.dup +l1d.size(20.0, steps(50), inside(l2)) +l1d.output(120, 0) + +l1d = l1.dup +l1d.size(50.0, steps(50), outside(l2)) +l1d.output(121, 0) + +l1.sized(10.0, 20.0, steps(50), inside(l2)).output(130, 0) +l1.sized(25.0, 50.0, steps(50), outside(l2)).output(131, 0) + +error = nil +begin + l2.sized(-1.0, steps(50), outside(l2)) +rescue + error = true +end +if !error + raise "error expected!" +end + +error = nil +begin + l2.sized(-1.0, 2.0, steps(50), outside(l2)) +rescue + error = true +end +if !error + raise "error expected!" +end + + + + diff --git a/testdata/drc/drcSimpleTests_130.gds b/testdata/drc/drcSimpleTests_130.gds new file mode 100644 index 0000000000000000000000000000000000000000..3871953a1cdc7051417b66cb9d7d386ee30a1cf9 GIT binary patch literal 1442 zcmai!O=uHA6vzLwNv2C0HPwJ0tk9!}paBCWpvBhU2L`GohvLVrc=F&uq)>!F4pdbj|ig*z5BnXNDgHDHfz2Q!sc4z=!IXduWW>$KLaO8bD`=0QPk z_W%_0DgKUpvOU1R2M8mt(j%-N!dAPCZ@LT7ml9C*9gklp>UIF3#H&8+E}=^=ba^zN zBKq7UT3I#(PVFK3wkjn0-2%pfKHWOA-sRiEwXbz!@*Mjf=I-p&T!G%Fxbj?(nOF=v z;O{bBQwU7Qh8w`{Ya3|2Z_IHbzwDAkau7ZK2wZtSNay!|j+o-<0?`BRV4MRAcHZP8 zjJiF^r5U#av~IJuVxEkg>G6|4z*IYS2C+%W9^lCcp8{tc;q^j^Goxo1)324?`5Sg~ zz;`}Vp_z~HeN-Qr0bukhQG42upEl9kN}q=pfD+G?qpY*sEFVuk(fkb2SAOPafMX4! z&O@QZ4P*6)AA57=xCV1u4C}vu7p*=e&P>=JSZWcyW8X`xyU8=stqUb?nW$ec5xt)U z*12~V-#~d~p~Nkd^lAs+qaQw)Ttf$He@`fJ%S3$iC!-PhNh0G(|t;uY4!Xcl1}3v DvMWpH literal 0 HcmV?d00001 diff --git a/testdata/drc/drcSimpleTests_au130.gds b/testdata/drc/drcSimpleTests_au130.gds new file mode 100644 index 0000000000000000000000000000000000000000..4255d481c983584603691c0b97b184e363479f11 GIT binary patch literal 4170 zcmd6qPiRzE6vn?d#z~M^Bh5lfge(-Y7%*bMv{*q2V(CCNWFf8YqI40OO^^{S3{BAr zqbMk})I|hA7Y&pml0^_fCwzc5K*p7+`5Scn-?M=6-q*UR^?{5lQ}RV79stED&*LSLM|pr`yf~Gff9|@--3Afk z#8Hv+-GPkXZAi=a`{q8Y+5e!{yK_{;xL@~h^>iTPoui5MGjsjhYW-{O5gFZU)JNy} zqdjo5&eb{wcygR$yq-%qpU9~ppk=_bv{mGJ86c00iCicEB*(Q3q@7pfjP~l7_S^Wd z+42K_x-2sNiwMba$CCX|o>yz;>No1^^u5;6>Sb)!*d|v`BgduIPv0kze!V~c=+oZ~ zeA*>4c9CSf@vuZY%_NyZ&h^K(!=XhW3Kz3;z{sJ%!s z?wFe2p?!Kbi>O2Urst3LG?9!urscc39opyXcf92DNye3_`FGBWj9dYXc8<nogfAdwN}@4yvY}*KY;&C(``O z^wQIhGkv!_qv`tKOd#hyS+2N#{{Q|6eE8Vwx-s{IYV%NFMZNd_8h>AV=j!FoXZziJ zI_SLlndv@#&HT>lMc*?&w0au*Zi*Df=NZ+MfWr?!&d;lURB3&8zRA4P7pL>8OHOym zb$PGfr0O|!UCBJhO7oYjf4_Bz>>T$rKQ(_Ptsm?Q`!sgZ_sjQDYu)4P&F>WYD1Fs@ z&gxFz8`R&;=LYM;x;w`c=P$hF`^x!TKi|Q9<@&CltP|_@7VhiecYI&D{!-mn&i}sN z*YD=)zi%OWc%#qj;f=nadvX1{H01Tqn4*7Nui}0BDCgfdqv_w4Lf``RkMrm3Jj3?x zs=gWN6C~sM9T?Y_{&+nWtDk@U>en%jOap7$1F6IR(MzuP+WVJ#?Ddjdpk8wRqgIbw m1+QC1>Lh7;dAaEOXSBX9Rxb|@`~Dpq4(m`KYxRHh8oUIB(%1z6 literal 0 HcmV?d00001 diff --git a/testdata/drc/drcSimpleTests_au130d.gds b/testdata/drc/drcSimpleTests_au130d.gds new file mode 100644 index 0000000000000000000000000000000000000000..eee1ba69f710ac9cd0885ad23eb99e1334885e97 GIT binary patch literal 4408 zcmd6qe`wTo7{}k=+wJR@x$4Y8CMP7!FgR#)f?KFK9jox59EXVMe@j9}>yJ^!42~vg zFu@=}$v+kaO0+)`k^M1ZAP8E~z(ZGv9gNXZtII_EWAOAmpU*w_{oLKY+?f|#FveJjvZSHHRQ(+%4%o-TBBjlDeb z#qJD}_0f91?{@<60PvrR!Gr&F3_vPTNAz0@&=FW}86cX;0ZNs31c)yS_1}I-{g|u& zYnEs_Pb9oI0&Gr(RQYti%zu^sy%Es|UR^h zoClQOjRQY$lq^HLY~S_&;S=^hRP?{+!Ossgk8xG^S$@zA?B4=dR-d;uUB>ZJI?vomP^SOKdV5z0XBvS&c@in*E-5~D^_}}7^ew*BuQI}a znf@aD>m*IfB$-JQU0p8(-roc7nH3>drQyZ+newe4fjfLAOVu-U&!_f>rT)%#5p_>l zelkmRmnXOKNzuG@2`M<*XmHZ1e?@G!08SWS5V)DO_Z*R%J zOi}eyk#Fb!5wGQc15!s?S1mcK-;z_gp$J|Ci5+E}a8}Ja@gG*FvhC>FW2o?+4R) zAj@-9czBrTRyw50v$N6q$0vxcCy0d82Z>H`Eh<%hJrSi3tjY3z=PYl$!!J$EL`s!2 z-Tl8?-2XC+c$A6m!SZDwM literal 0 HcmV?d00001