From d505767bf15296699243464feb60517e4eaab8fc Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Thu, 7 Mar 2024 15:30:37 +0100 Subject: [PATCH] Added test for edge interactions with count --- src/drc/unit_tests/drcSimpleTests.cc | 9 +++ testdata/drc/drcSimpleTests_90.drc | 76 ++++++++++++++++++++++++++ testdata/drc/drcSimpleTests_90.gds | Bin 0 -> 672 bytes testdata/drc/drcSimpleTests_au90.gds | Bin 0 -> 35510 bytes testdata/drc/drcSimpleTests_au90d.gds | Bin 0 -> 16332 bytes 5 files changed, 85 insertions(+) create mode 100644 testdata/drc/drcSimpleTests_90.drc create mode 100644 testdata/drc/drcSimpleTests_90.gds create mode 100644 testdata/drc/drcSimpleTests_au90.gds create mode 100644 testdata/drc/drcSimpleTests_au90d.gds diff --git a/src/drc/unit_tests/drcSimpleTests.cc b/src/drc/unit_tests/drcSimpleTests.cc index 62d620168..e883d9e07 100644 --- a/src/drc/unit_tests/drcSimpleTests.cc +++ b/src/drc/unit_tests/drcSimpleTests.cc @@ -1617,3 +1617,12 @@ TEST(89_deep_with_mag_cop_size_aniso) run_test (_this, "89", true); } +TEST(90_edge_interaction_with_count) +{ + run_test (_this, "90", false); +} + +TEST(90d_edge_interaction_with_count) +{ + run_test (_this, "90", true); +} diff --git a/testdata/drc/drcSimpleTests_90.drc b/testdata/drc/drcSimpleTests_90.drc new file mode 100644 index 000000000..522536f93 --- /dev/null +++ b/testdata/drc/drcSimpleTests_90.drc @@ -0,0 +1,76 @@ + +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) + +e1 = l1.edges +e2 = l2.edges + +e1.output(10, 0) +e2.output(11, 0) + +e1.interacting(l2).output(100, 0) +e1.interacting(l2, 2).output(101, 0) +e1.interacting(l2, 2, 2).output(102, 0) +e1.interacting(l2, 3).output(103, 0) + +e1.split_interacting(l2)[0].output(110, 0) +e1.split_interacting(l2, 2)[0].output(111, 0) +e1.split_interacting(l2, 2, 2)[0].output(112, 0) +e1.split_interacting(l2, 3)[0].output(113, 0) + +e1.interacting(e2).output(200, 0) +e1.interacting(e2, 2).output(201, 0) +e1.interacting(e2, 2, 2).output(202, 0) +e1.interacting(e2, 3).output(203, 0) +e1.interacting(e2, 3..4).output(204, 0) + +e1.split_interacting(e2)[0].output(210, 0) +e1.split_interacting(e2, 2)[0].output(211, 0) +e1.split_interacting(e2, 2, 2)[0].output(212, 0) +e1.split_interacting(e2, 3)[0].output(213, 0) +e1.split_interacting(e2, 3..4)[0].output(214, 0) + +e1.not_interacting(l2).output(300, 0) +e1.not_interacting(l2, 2).output(301, 0) +e1.not_interacting(l2, 2, 2).output(302, 0) +e1.not_interacting(l2, 3).output(303, 0) + +e1.split_interacting(l2)[1].output(310, 0) +e1.split_interacting(l2, 2)[1].output(311, 0) +e1.split_interacting(l2, 2, 2)[1].output(312, 0) +e1.split_interacting(l2, 3)[1].output(313, 0) + +e1.not_interacting(e2).output(400, 0) +e1.not_interacting(e2, 2).output(401, 0) +e1.not_interacting(e2, 2, 2).output(402, 0) +e1.not_interacting(e2, 3).output(403, 0) +e1.not_interacting(e2, 3..4).output(404, 0) + +e1.split_interacting(e2)[1].output(410, 0) +e1.split_interacting(e2, 2)[1].output(411, 0) +e1.split_interacting(e2, 2, 2)[1].output(412, 0) +e1.split_interacting(e2, 3)[1].output(413, 0) +e1.split_interacting(e2, 3..4)[1].output(414, 0) + +# convex detection (the initial problem) + +c90 = l2.corners(as_dots, 90) +cm90 = l2.corners(as_dots, -90) +c90.output(1000, 0) +cm90.output(1001, 0) + +e2.interacting(c90, 2, 2).output(1100, 0) +e2.interacting(cm90, 2, 2).output(1101, 0) +e2.interacting(c90, 1, 1).output(1102, 0) +e2.interacting(cm90, 1, 1).output(1103, 0) + diff --git a/testdata/drc/drcSimpleTests_90.gds b/testdata/drc/drcSimpleTests_90.gds new file mode 100644 index 0000000000000000000000000000000000000000..e0c678c17bd028986211caceaa14735fce0941aa GIT binary patch literal 672 zcmaKpF-rqM5QX3F-OZihlBk3fa)qUZAlQf?qESRKphXHv<s^8c8E4Ms+4NTc!V+%0KQRv60dhksASkDRf>TgXtK$cCeu7fEkO>R{|- k^7m4{c3G{Ct+Qm^#rJS6_WeOOnf-8fr!<|kd&DvR0T%T-!2kdN literal 0 HcmV?d00001 diff --git a/testdata/drc/drcSimpleTests_au90.gds b/testdata/drc/drcSimpleTests_au90.gds new file mode 100644 index 0000000000000000000000000000000000000000..16dc09ad2aa9f5e9e4e33fea3776485a2dd9f75e GIT binary patch literal 35510 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 literal 0 HcmV?d00001 diff --git a/testdata/drc/drcSimpleTests_au90d.gds b/testdata/drc/drcSimpleTests_au90d.gds new file mode 100644 index 0000000000000000000000000000000000000000..c56a4433893542054190cb8b2792bb3e375f4c85 GIT binary patch literal 16332 zcmb`NJ&aXF6vxl|*t>7pWp^=z7()L4y`zQ4pLqN5vsXX)b@Qn&Hm+PceNy%>*j(3j zPl}8uBHiwx45V8fipYWWk^W!X=(dXsZ-}g%7YQ+Zu5rAF@QxN4TohTmvJ=DS8e@Lw z^^Ze;X-oh3nTv~>;I4;6LhO#Xd_u(MyPtM{M+}_C-0wez-^X`G54Z>(zZK%_-`D+T z8pHQA=6=ulbxlP4fA}3RA%@R2&iEzg_b%Vx?!lo9WwPd6-;3-Lw<;;kV0(;otSYIM z^E*@+(Q<~+3UyGgg?>eCjtqm=d>KZSSE&_chq{faWqZ7mYOSP_ny#c!ol%8WQb|2l zQpv2Uq>{N*Nx?(R81G6Yh3bVKqSA9v(DMDOq>?qGlFF?}etwaPiq?!d`n8x@t;$+( zJb0+FvR}}ejkME@sh8}TBHF@rBw05Ih0zUEvH}z+W8EMWGBnnWmz(-^_HI+e4Wb3g zaD!09jdM-?x^}lI;s((oZV-yN@pV(b2t_g^6v^-#o}p3m-*PI<%49ARiuCI{TZ>RP zYzl4|84?Owfl5}J0%goELXq*h+0-vW5f2GPGQ7nzG%D(QP6g+aiXs&0*AKRqO$`p% zlznH;D0moZqu;L*1rn`)FFJU*DMLcpHP5t=nb9wzWj_U!wDJ{IqL3w8;^8Ar9ukUp zNGN1xct|MXA)&kr;rTMUXB!kKkZ6gA8%-V(ig-vUWM+6sDB>ZZ$htu&?_JLM0tFH+ zasE(~^Mrzi;bDOSiI!w|xG6(Ik=h^>GBf%`C{i1Q@-E~?xj=zLOFVqE$wNXB4+(|L z3=auKJS3ENA?IO%0*RJ*xY^_(p@@fsLS}}Cgd!diimXwD^4{f~FHj)S66Y^AIZr5P z7#1#fC{i1QLS{z43KU4Rq+jnf^@~u@$lsX{2u0i=6toOC2t{h1P|yl3 z@$mg74+%xwAQZAQ+#nQLHwXnSbs@I`6ey5riH9FFc}OT|70UM zLP5)LgHX^4l*ahEl2FhJE%ET9CJzZk+#nRP3;jy=Z3snH075}aUC6Dy1qviu;^D_l z9uf)~MjaB0I8P{O8O{@mI8P{O8O|3dkZ679HE;JOMdoBboVEEF%@jt#!~6-|=oecn zoILs%YY}Q`%e@uh;~W%DR6+I6VOfU$tT%J!%P6=3Egvg0^k==9GvD!X+ruzk(CVL! zj-RusSW8chqYN44z00`4sNjaztkm)~F&nS>GSqKpMww-3pA?s<^vxT0mOXynb{?}N zoJuF-MX0zA>nUFonK~SwXv&aKBtt^wGF%k;PS~XDPM&x{mw;VrGYpZch<^@{=U9-7T)@ry+t)x)tUXJen;cv zNBwW#P7I%GjA~rSI~1ccJGA~N%knaZ+Ayr)Rm?x!|C+zpKz6PQQxkN zDe`W}+Rv^g<=8C76nQsf<*LZ?zd8q$(pW`Jr+)qHeWN>|_`j>S{czsIV%#YokrM)pyUq{wnM#a$1Yp z7+-c;8l&oEXNGMQX2|Y$^kSi!8mqLX(?1U4s^a46dXL($orhL;z-eiWwa9rFao(h; z^WjtB`3)Y=piRylH_fZ-vwZgrqkChbqgL_dQtElPp z_g9s=9%5~VaAWmF*DsB+7TK9VX1MS5v68}lZ~ktX?Jd&k&Uv;@hYwALpP(w;ZLhl0yA~^0A5vcjO_~Y4x8S`uFp;hv7*h#9FQR*`fcO z!nFQ+OP$x}6c=l?@Jtk*Zu&bDObZldrHi#%n9ECBZZ7LyRONV~KcHN!qg*8|AKH#p zTCS2np`tX-L19*c>OYOz9;)lQMuGCNQVa76E1QoI#daByS$^$hRD4b8Ume)KTD%_i z-C$H$dp#ZZi|m7jRn)JGl@z=SyFcnmCFMsqGhTMT`s+r2E|;hTJ{_mg(rGr|IpN;yK}Gb4D&lMVp41$Kwjfo`5hQW5jRXN>c;Cl QL&FV|%DbVbF5|KM2d7eYyZ`_I literal 0 HcmV?d00001