From 04002616418830f2bc84119531cb4c399a0069e9 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sat, 20 May 2023 23:26:20 +0200 Subject: [PATCH] Added testcase for issue-1366 --- src/db/unit_tests/dbEdgeProcessorTests.cc | 37 ++++++++++++++++++++++ testdata/bool/issue_1366.oas | Bin 0 -> 7074 bytes testdata/bool/issue_1366_au.gds | Bin 0 -> 1386 bytes 3 files changed, 37 insertions(+) create mode 100644 testdata/bool/issue_1366.oas create mode 100644 testdata/bool/issue_1366_au.gds diff --git a/src/db/unit_tests/dbEdgeProcessorTests.cc b/src/db/unit_tests/dbEdgeProcessorTests.cc index 238b854c9..ccadcd57e 100644 --- a/src/db/unit_tests/dbEdgeProcessorTests.cc +++ b/src/db/unit_tests/dbEdgeProcessorTests.cc @@ -2781,3 +2781,40 @@ TEST(135b) EXPECT_EQ (run_test135b (_this, db::Trans (db::Trans::m90)), "(-78,25;-33,34;-36,33;-37,33)"); EXPECT_EQ (run_test135b (_this, db::Trans (db::Trans::m135)), "(-26,-78;-35,-33;-33,-36;-33,-37)"); } + +// issue #1366 +TEST(136) +{ + db::Layout layout_1; + unsigned int l_l20000d0; + + { + std::string fn (tl::testdata ()); + fn += "/bool/"; + fn += "issue_1366.oas"; + tl::InputStream stream (fn); + db::Reader reader (stream); + + db::LoadLayoutOptions options; + reader.read (layout_1, options); + + l_l20000d0 = layout_1.get_layer (db::LayerProperties (20000, 0)); + } + + db::ShapeProcessor proc; + + db::Layout lr; + lr.dbu (0.0001); + db::Cell *lr_top = &lr.cell (lr.add_cell ("TOP")); + + unsigned int lr_l100d0 = lr.insert_layer (db::LayerProperties (100, 0)); + + proc.merge (layout_1, layout_1.cell (*layout_1.begin_top_down ()), l_l20000d0, + lr_top->shapes (lr_l100d0), false /*hierarchical*/, 0, true /*resolve holes*/, true /*min coherence*/); + + std::string au_fn (tl::testdata ()); + au_fn += "/bool/"; + au_fn += "issue_1366_au.gds"; + + db::compare_layouts (_this, lr, au_fn); +} diff --git a/testdata/bool/issue_1366.oas b/testdata/bool/issue_1366.oas new file mode 100644 index 0000000000000000000000000000000000000000..ee3f5741d0d87a7c89456903048f8a97f2f3633c GIT binary patch literal 7074 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 Wa+)AA5;8Ng`+plL`2X1;A^i^;U&O=! literal 0 HcmV?d00001 diff --git a/testdata/bool/issue_1366_au.gds b/testdata/bool/issue_1366_au.gds new file mode 100644 index 0000000000000000000000000000000000000000..fb136f5d7b6144e601b628a1cb10135f4ff352fa GIT binary patch literal 1386 zcmaKsduYvJ7{@=(wzFZIvtf!Qx8!m#w_%Ri#cUWG#)cec$8nElnEP$h(A?SB($b7D z{GqkP)ba<3B>9V#OL9w6SV;1H_bN*H)#>wlfA9Oe@AH12?{jeCaO4r&#u56O5IWI? z&UF6!oiK+pb5aU)3JMvw^hw#p)#3G{SAN>Q#M|DvPue^_3V4sZKH`FyK;xnh6o9~|{heS$JgeatiDtE%OO zxJ?jLAl=Vu@g5kKt(r-<;W|IGT6H+4+9}VGTGK9|dPtx4NiaGd!lmt)IEdH2OA z`FpgcgY->2CpN?QN8nP9$vV?@6;c!z6%DCHqI8+iAZl$|izt24&Ag#kd?^b>hfbxuXz~%vBu-M;@OSaf^ zYILutZ%{MDj%!_ZT&ulJ9%pnnGk@lZ9oM<-xNe{wUslb`x*I-eR4NZGQf)t~Zi$xH zeu`h9_Kx^nyl+`kt=gk}(nOP2hNY>yFVgzJ*US3Cm!xm^^pi%$H$LfWe3Y-c7+>Z4 ztO3}w(+6A$@+5Pd+XCch4t-X)y4RDvGg~-UeaKFzO2~#ez~+UeXyd)_Qguw z(e%lx3$||xKG;4gl-8!N)=ad0wpMYb@76WiJ}mknD#r~T+ou~fZ~AtV&NlVl;uO7q z`rN1U({--}OT|>(X{)GQbK_y+UFEu3oT1#LPnz~lm!@elT=EV1Yo@%ZyQC^UeyIEx zE061cCV3FJQ{>Nj=<9}YpP{Gj>nVqBs(HeC=&13i+w%Kb^@0As9Ey!=R&n&Ge_H!1 IRBaQ?FD^C;HUIzs literal 0 HcmV?d00001