From e894724605617ee1ae95607cd0117f0a51e1dab7 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Wed, 5 Dec 2018 23:14:06 +0100 Subject: [PATCH] Some more debugging and more test cases. Net processor starts getting stable ... --- src/db/db/dbHierNetworkProcessor.cc | 23 ++++++++---------- src/db/db/dbHierNetworkProcessor.h | 6 +++++ .../unit_tests/dbHierNetworkProcessorTests.cc | 15 ++++++++++++ testdata/algo/hc_test_au10.gds | Bin 0 -> 3484 bytes testdata/algo/hc_test_au11.gds | Bin 0 -> 15224 bytes testdata/algo/hc_test_au9.gds | Bin 0 -> 2636 bytes testdata/algo/hc_test_l10.gds | Bin 0 -> 1048 bytes testdata/algo/hc_test_l11.gds | Bin 0 -> 1076 bytes testdata/algo/hc_test_l9.gds | Bin 0 -> 960 bytes 9 files changed, 31 insertions(+), 13 deletions(-) create mode 100644 testdata/algo/hc_test_au10.gds create mode 100644 testdata/algo/hc_test_au11.gds create mode 100644 testdata/algo/hc_test_au9.gds create mode 100644 testdata/algo/hc_test_l10.gds create mode 100644 testdata/algo/hc_test_l11.gds create mode 100644 testdata/algo/hc_test_l9.gds diff --git a/src/db/db/dbHierNetworkProcessor.cc b/src/db/db/dbHierNetworkProcessor.cc index f3db932aa..b424ed4cd 100644 --- a/src/db/db/dbHierNetworkProcessor.cc +++ b/src/db/db/dbHierNetworkProcessor.cc @@ -740,7 +740,6 @@ private: hier_clusters *mp_tree; const cell_clusters_box_converter *mp_cbc; const db::Connectivity *mp_conn; - connector_map m_connectors; std::map *> m_cm2join_map; std::list > m_cm2join_sets; @@ -846,31 +845,29 @@ private: ClusterInstance k1 = make_path (i->id (), p1); ClusterInstance k2 = make_path (j->id (), p2); - typename connector_map::iterator x1 = m_connectors.find (k1); - typename connector_map::iterator x2 = m_connectors.find (k2); + id_type x1 = mp_cell_clusters->find_cluster_with_connection (k1); + id_type x2 = mp_cell_clusters->find_cluster_with_connection (k2); - if (x1 == m_connectors.end ()) { + if (x1 == 0) { - if (x2 == m_connectors.end ()) { + if (x2 == 0) { id_type connector = mp_cell_clusters->insert_dummy (); - m_connectors [k1] = connector; mp_cell_clusters->add_connection (connector, k1); mp_cell_clusters->add_connection (connector, k2); } else { - mp_cell_clusters->add_connection (x2->second, k1); + mp_cell_clusters->add_connection (x2, k1); } - } else if (x2 == m_connectors.end ()) { + } else if (x2 == 0) { - mp_cell_clusters->add_connection (x1->second, k2); + mp_cell_clusters->add_connection (x1, k2); - } else if (x1->second != x2->second) { + } else if (x1 != x2) { - mp_cell_clusters->join_cluster_with (x1->second, x2->second); - mp_cell_clusters->remove_cluster (x2->second); - x2->second = x1->second; + mp_cell_clusters->join_cluster_with (x1, x2); + mp_cell_clusters->remove_cluster (x2); } diff --git a/src/db/db/dbHierNetworkProcessor.h b/src/db/db/dbHierNetworkProcessor.h index 69918db97..1c57b9513 100644 --- a/src/db/db/dbHierNetworkProcessor.h +++ b/src/db/db/dbHierNetworkProcessor.h @@ -342,6 +342,12 @@ public: // .. nothing yet .. } + ClusterInstance () + : m_id (0), m_inst () + { + // .. nothing yet .. + } + /** * @brief Gets the cluster ID */ diff --git a/src/db/unit_tests/dbHierNetworkProcessorTests.cc b/src/db/unit_tests/dbHierNetworkProcessorTests.cc index 6ed5f38ad..fab9c5d49 100644 --- a/src/db/unit_tests/dbHierNetworkProcessorTests.cc +++ b/src/db/unit_tests/dbHierNetworkProcessorTests.cc @@ -585,3 +585,18 @@ TEST(48_HierClusters) { run_hc_test (_this, "hc_test_l8.gds", "hc_test_au8.gds"); } + +TEST(49_HierClusters) +{ + run_hc_test (_this, "hc_test_l9.gds", "hc_test_au9.gds"); +} + +TEST(50_HierClusters) +{ + run_hc_test (_this, "hc_test_l10.gds", "hc_test_au10.gds"); +} + +TEST(51_HierClusters) +{ + run_hc_test (_this, "hc_test_l11.gds", "hc_test_au11.gds"); +} diff --git a/testdata/algo/hc_test_au10.gds b/testdata/algo/hc_test_au10.gds new file mode 100644 index 0000000000000000000000000000000000000000..d7c92fb935d018da10d349f0310b76a1a850054f GIT binary patch literal 3484 zcmbW3J4{qj5QcyDaanaC3ldSYg@v6YN@AiW#wc1~G(tgPh=qlvg@uI$1qqmlF@YE# zD31`u2)aIEEGR4}jG>^gu&|&Y#==(&3MeY!_|LtJ=WcLu;wH3s*fb{%S6LSX2b+!^ zLn;FV6$z9fs7wH;%O&|Y_A2Y)KNEm5b}3Z_U7!5;AM1l{^1GS39IHkhFzR~! z&3MetEl%s3vDU@kstXZ|xp=+ncWx=`oa+aYTYz+pQgvbJ_48+)o6S2XTx@f0VZl@N z*?j5s-zT}g-8td>YhcYuPt|AJi`FONIZwXh&YWV*Wa=o_KlfCfjNgB3y>oMo&i(u( zWbWpi`!TLmU07;8P@duStwMk`i*+qZ)kDUAKk4Il?%Q6;y-?x~bG=N}!@ViFey$+< z#rVlgujJoTb?$44_1y0%<~tYh*Ha*ycTTA~8C#!xACKQye^Jc`ta;XPtbdBUjJ0U+ zit0i4f0ep0c^UWE;AP%#lb3PtOL={W@1wDgOv)4+z2sNQ)k;I(=Lo6Fjz&C&;R(>%KP3cq`vz59LA_T9qB-@hwf z`E)~T=(_CN`wXZk6!qLYzwduy3}fB68yMUPC>gunLzI)EnZ*N-6O`v}Y=U0r)LeTB z5LWUu@0;>eom`ROzjZHl*)?0SoIY3yOrPp3h)k%}rwF#Nd%spAo?izUMsXA%$8pr_aFVKVB zM8DewPt{42R~M(|(kq}VAML^AHl^wzOo)E=-?hE zJAsS5$B3$jGlh$h z*a1B3_f(xUd5xT4Zdnh)S=MXekf-XT$?IOTbDvoE!kOp5lTJ_7Nt2hvBTuFyCs_YI mz=Nz(^^hj7;apgY7|umKKFS`Do|gPc4KH6`;l(MKO5ry+f@D1a literal 0 HcmV?d00001 diff --git a/testdata/algo/hc_test_au11.gds b/testdata/algo/hc_test_au11.gds new file mode 100644 index 0000000000000000000000000000000000000000..9552f7549880432170d0ea8fa0f69d2708f1ef60 GIT binary patch literal 15224 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 rK7V?$bI=WOnm~LQ+|zv`k@k(^FGuq=4(M zqXsun2hbi&_!(Ta`~2qxU<{TTLoom3(|`E8~6s`y2|p4HqdHSQwUCCy&crl)^rRqMt0$#hBcU(xKWYY%_c z`!(}D==t+0kmVvqvy*{;@*#{rvj2R~JN7*LIM_d3T9LgNq2>F*>c2-{L}^9VI6^DB z-ceeSweO|%F|1?cK916g+|yB7k^3`3E4tTrY5ik5r_RkxU*q=emFfACE^$7r`Tpm3Q+`*^qGGL|^XFjKoZ&6*_;Yy5;(=*g2MX z&UI@wZ}~Z;9NYlE1f9;%DyY0%JS{7|l*bX}R;j@Hzt~$1-4GzM|R5 zC@qbv*70%anUL=Ivq5QgGD-`2%@v<$Jn{K4nw^Z&D(eiT=4pVl*U0)8cG7Eg{YLm( zC9|Aw)7Dnwn=&$0GMb%?icB+{-1Ze1Jxs0OHai)m*boqw4KYEc5J)5vF@wM%moO3>6O#x8 z0zn93e*glppb!X>ZEV28<6XO>C0WUuG@tf+_q}`feFp(u--WB`v1d52kirtQ@HcE- z_RQZJyT!>`gM zVa{N*pK3(k4iVJ=V;-=Qib|J^_ID47+Afjg;E1T-52*CE8}08k*^=e$djXZ+ zuKe-q!TGt?7fxc|r5@@?AZGLUf+WD* z$5csC=^n%T8$ta<@2fIjK+I_sc`PfJX!#p?bB{TzUUR&;jr!=hyd1BaE&I#DTeo@x#2dePnI?V! D6Z#a0 literal 0 HcmV?d00001 diff --git a/testdata/algo/hc_test_l11.gds b/testdata/algo/hc_test_l11.gds new file mode 100644 index 0000000000000000000000000000000000000000..21037004cb4160a5f1e0c54cc2ba4e1999ffb412 GIT binary patch literal 1076 zcma)*KP&`M5XQg#dy6H9qmV5~loAmVxkMzKg1Fo%t`JculuA)4uGJ|8g^oh0P%1E+R0@)IEGS=)o99P;~&5gkJ0Jq(Q0k^{hFqF24J}deH#!&oKT?o4q zzx!#Q=*uUfeZcAmoQzU+VY0uzPE-wugrA#4udfkRuLjBfmn-&{iG=lApk*bZ>eccO zzZvbHYklBOtTt%p*?-O(ZBlh+eE%^&QEis!{ZYuhs}a4ODODFH`GJ(j{|AKtPakb1 zrRpK$`K_paqUQNsVxjQcIpZ0{9%Gvqm)z$jW552Hr&L_vcD3<+=#rb^_8A<*51i?x zW-PB;?nx_xv;||?2ilL7L^o^UI?NT1Q4V9|(v?P#A29~_e7{`5Xpm_4I$UcEkL!@V Zi^t*2k{27xK<^QZEYF6iYu%%5;~TSeAr$}s literal 0 HcmV?d00001 diff --git a/testdata/algo/hc_test_l9.gds b/testdata/algo/hc_test_l9.gds new file mode 100644 index 0000000000000000000000000000000000000000..ebbf2798e476f765014aa86d88bc21660f0ba0fa GIT binary patch literal 960 zcma)*y-UMT6va=zUZbW`wKzxy2gibR5>m*IdI?qUgxUW0TlP1Jgs*qN$ZkT_JI!By zJJ~4d_acUhJxX2H5x?AU&M{L%|NKt9w#{*k^8YX?e}