From 05b1023fd591d078d681a5356242eb492436549f Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Mon, 24 May 2021 16:49:00 +0200 Subject: [PATCH] Updated tests. --- src/db/db/dbOriginalLayerRegion.cc | 20 +++++++++++++++----- testdata/drc/drcSuiteTests_au5.oas | Bin 14837 -> 14839 bytes testdata/ruby/dbRegionTest.rb | 6 +++--- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/db/db/dbOriginalLayerRegion.cc b/src/db/db/dbOriginalLayerRegion.cc index 24cac3333..4a813d97f 100644 --- a/src/db/db/dbOriginalLayerRegion.cc +++ b/src/db/db/dbOriginalLayerRegion.cc @@ -190,7 +190,7 @@ OriginalLayerRegion::min_coherence_changed () size_t OriginalLayerRegion::count () const { - if (m_iter.has_complex_region () || m_iter.region () != db::Box::world ()) { + if (m_iter.has_complex_region () || m_iter.region () != db::Box::world () || ! m_iter.enables ().empty () || ! m_iter.disables ().empty ()) { // complex case with a search region - use the iterator to determine the count (expensive) size_t n = 0; @@ -210,6 +210,7 @@ OriginalLayerRegion::count () const std::set cells; m_iter.top_cell ()->collect_called_cells (cells); + cells.insert (m_iter.top_cell ()->cell_index ()); db::CellCounter cc (&layout); for (db::Layout::top_down_const_iterator c = layout.begin_top_down (); c != layout.end_top_down (); ++c) { @@ -217,8 +218,12 @@ OriginalLayerRegion::count () const continue; } size_t nn = 0; - for (std::vector::const_iterator l = m_iter.layers ().begin (); l != m_iter.layers ().end (); ++l) { - nn += layout.cell (*c).shapes (*l).size (m_iter.shape_flags ()); + if (m_iter.multiple_layers ()) { + for (std::vector::const_iterator l = m_iter.layers ().begin (); l != m_iter.layers ().end (); ++l) { + nn += layout.cell (*c).shapes (*l).size (m_iter.shape_flags ()); + } + } else { + nn += layout.cell (*c).shapes (m_iter.layer ()).size (m_iter.shape_flags ()); } n += cc.weight (*c) * nn; } @@ -244,13 +249,18 @@ OriginalLayerRegion::hier_count () const std::set cells; m_iter.top_cell ()->collect_called_cells (cells); + cells.insert (m_iter.top_cell ()->cell_index ()); for (db::Layout::top_down_const_iterator c = layout.begin_top_down (); c != layout.end_top_down (); ++c) { if (cells.find (*c) == cells.end ()) { continue; } - for (std::vector::const_iterator l = m_iter.layers ().begin (); l != m_iter.layers ().end (); ++l) { - n += layout.cell (*c).shapes (*l).size (m_iter.shape_flags ()); + if (m_iter.multiple_layers ()) { + for (std::vector::const_iterator l = m_iter.layers ().begin (); l != m_iter.layers ().end (); ++l) { + n += layout.cell (*c).shapes (*l).size (m_iter.shape_flags ()); + } + } else { + n += layout.cell (*c).shapes (m_iter.layer ()).size (m_iter.shape_flags ()); } } diff --git a/testdata/drc/drcSuiteTests_au5.oas b/testdata/drc/drcSuiteTests_au5.oas index ccb8035940ab0895c2099d88f6b2200af9ecd7d4..ca77bf7fca5362e3efdd4983f4aa5a259219ed5a 100644 GIT binary patch delta 1570 zcmaKsUrbwd6vywczu#JVTPS7s-tBHRR(#6*;?!!_dF2--f92W5w z{hDmi&k3h-Sv$q(TQlm^(w>r6niN;)C+gh*FI$c%vUVCmi-D>2z3=!SbO%D|2Y7@A zT4n832vu69lB(h3A5kTM@C{a@bD-x*o&K6h$GkdyDZ~vL2Kt0auZNHhp+9Nx9$9+{qlYMO@{P0O!}q0H@fPxFWk?U z*^z98U3Kw;vWG-@W_Ksmej@yU++}`EYd;f4SAHbd{8wkmJk7;qFQcpev+;FTk;zd; zv-aDz6~AFG+0v38MbCHsvm@91tEA8)slPx?Ns~TXCApX&_ii@9H@YS?vaS}I25+7hyM>pvn?`<3vM2hPyv z&e7}@<%-Mst_^jTLLZBUohJ^d%?|z0i6%$3rTanq@kw!Km6X_E;yi`3CgN8z-XWFK z+9@W)FIq2wXb#~fYnLW(+r*^$LkQ&GS0j3GE`o3vR={HLOGlNm=IybdM4h zNX}WZK&XSN&4$E-MvZq50V zDq71P>*P0h1KR zFtIUR!Brh92OYv4+6p6WuZ%gH9m&4gZvK4uiRphP1$SK?NXRL1~Xr4)X5@R0SS`Cl@oHKtm$_SL9{B Y)_e5?wpe{28uZCD>Vsw|&JeS( z)fqFK4=dj=!-TBW5$KDd>oh?VLordRIB4b)YBGf_G4x4^Goue?ey5jzn;PHFIlu4w z{l4$_opWyW|Jgrvn$UeOOYoxAM*@)W`&9PaswLi@^sq3*?e#EaQI+{KwA3SU{S`=7 zad^bWdWo#ij|tEyJElg*X{-%T7cCR!=m_<3{fJE8 zKBWy#-&?F7rh8m$K%J!{+ATlV`w*G*4_>J`*$4-y-;dBugi;T2{dI)at%ETw-N=qb z)g`$s1t^sxWhoe>t_rTdVUUYBn4!T<_UQoE`wjLoq{uCi4R!&&X|VrReZEex$7z{8 zBVQt=d$t-$n6siip*coAAQ_o){iq?g#*-d+Pu`OIteNX?8FJ$_R~ukK-eWa-8GSJG zm;9{*E-*LTuC9b??lkGwAj$6E+*18#0`;u+aUPcGcit0+E_>%l-Y0e$Wz{n4O)Eu9 ziY3Er>=!aevfUC3&s*cPsPpD!BGWnVi4O_fSCF&a@O!oA>43;PwQII7t&CQs7;jy{ zpxGbEW$!mbBu;t5^>Wh8vtQc_^1o>&%Axh+2(e?gV}%u;4xl=WA*+ zS6rVsTF=Uy2P*n{-{SWCN=fHKzR#xGR`Fe3ouX|3?VdMhw1dA5qgu?aKh< z0ylRj%;F`u!V<~aioMKR2XW)z=&DE=c`jB|jlrv)-5{_-E|t#%wp&E~0FyXV}5vE2S1bZME)e&QQUM zl3Nvvge7DuM8s;l)kR0{aJo^PW$j7NP!rs4^O={Ou{K;j7Iec)!AJwa=a)K|J1nBk zRn3v2F1j`3v56xLlu#Y~(eA8}NZyfd#IHb#J|Pcx*43fDu+Xp}#Zm|3PYITSob;@< zfTx4|vBN24U7ZeKj$7Tf!ziiLC5n^CMnwxDcN6Y%_#lk=l+=V7%`!z#6IXc*h^{y% zSy6`ronEss0`P}w6;v%+*44ZZ^1+%K44Y*6UhL`4xxq6XTok=AFs;Un6=2fn;x~Rk<^&@c8jpw9=3#x*+ZmLb4uhNW{rh{Fx*k=M)8El=zq&P xg4RtCJM@J-qB#6YdeLaKwuJAq)MJz82#23KUKOnw_6Y6m3u<_gdB5{D)8BR%;cox{ diff --git a/testdata/ruby/dbRegionTest.rb b/testdata/ruby/dbRegionTest.rb index 144d5cffd..a340781e3 100644 --- a/testdata/ruby/dbRegionTest.rb +++ b/testdata/ruby/dbRegionTest.rb @@ -166,7 +166,7 @@ class DBRegion_TestClass < TestBase assert_equal(csort(r.to_s), csort("(-10,-20;-10,20;10,20;10,-20);(-10,80;-10,120;10,120;10,80);(190,80;190,120;210,120;210,80)")) assert_equal(r.is_empty?, false) assert_equal(r.count, 3) - assert_equal(r.hier_count, 3) + assert_equal(r.hier_count, 1) assert_equal(r.bbox.to_s, "(-10,-20;210,120)") assert_equal(r.is_merged?, false) assert_equal(r.has_valid_polygons?, false) @@ -195,7 +195,7 @@ class DBRegion_TestClass < TestBase assert_equal(r.is_empty?, false) assert_equal(r.is_box?, false) assert_equal(r.count, 3) - assert_equal(r.hier_count, 3) + assert_equal(r.hier_count, 1) assert_equal(r.bbox.to_s, "(0,0;220,140)") assert_equal(r.is_merged?, false) @@ -972,7 +972,7 @@ class DBRegion_TestClass < TestBase assert_equal(r.hier_count, 1) assert_equal(rf.area, 53120000) assert_equal(rf.count, 10) - assert_equal(rf.hier_count, 10) + assert_equal(rf.hier_count, 1) ly_new = RBA::Layout::new tc = ly_new.add_cell("TOP")