From 7a00e93240a442a8b424f326ba826a2b5f36d483 Mon Sep 17 00:00:00 2001 From: isn Date: Thu, 20 Sep 2018 16:41:15 +0300 Subject: [PATCH] automatic tests for boundary polygons --- src/HYDRO_tests/CMakeLists.txt | 2 + src/HYDRO_tests/reference_data/CMakeLists.txt | 2 + .../test_boundary_polygon_calc_case_1.cbf | Bin 0 -> 51680 bytes .../test_boundary_polygon_calc_case_2.cbf | Bin 0 -> 43266 bytes .../test_boundary_polygon_calc_case_1.cbf | Bin 0 -> 51587 bytes .../test_boundary_polygon_calc_case_2.cbf | Bin 0 -> 43266 bytes .../test_HYDROData_BoundaryPolygons.cxx | 148 ++++++++++++++++++ .../test_HYDROData_BoundaryPolygons.h | 37 +++++ 8 files changed, 189 insertions(+) create mode 100644 src/HYDRO_tests/reference_data/linux/test_boundary_polygon_calc_case_1.cbf create mode 100644 src/HYDRO_tests/reference_data/linux/test_boundary_polygon_calc_case_2.cbf create mode 100644 src/HYDRO_tests/reference_data/win32/test_boundary_polygon_calc_case_1.cbf create mode 100644 src/HYDRO_tests/reference_data/win32/test_boundary_polygon_calc_case_2.cbf create mode 100644 src/HYDRO_tests/test_HYDROData_BoundaryPolygons.cxx create mode 100644 src/HYDRO_tests/test_HYDROData_BoundaryPolygons.h diff --git a/src/HYDRO_tests/CMakeLists.txt b/src/HYDRO_tests/CMakeLists.txt index fa147744..9b0cd57c 100644 --- a/src/HYDRO_tests/CMakeLists.txt +++ b/src/HYDRO_tests/CMakeLists.txt @@ -28,6 +28,7 @@ set(PROJECT_HEADERS test_Dependencies.h test_HYDROData_DTM.h + test_HYDROData_BoundaryPolygons.h test_GraphicsView.h test_Overview.h @@ -52,6 +53,7 @@ set(PROJECT_SOURCES test_HYDROData_ShapeFile.cxx test_HYDROData_StricklerTable.cxx test_HYDROData_DTM.cxx + test_HYDROData_BoundaryPolygons.cxx test_HYDROGUI_ListModel.cxx test_HYDROGUI_Shape.cxx test_HYDROGUI_LandCoverMapDlg.cxx diff --git a/src/HYDRO_tests/reference_data/CMakeLists.txt b/src/HYDRO_tests/reference_data/CMakeLists.txt index abc9163d..6732da78 100644 --- a/src/HYDRO_tests/reference_data/CMakeLists.txt +++ b/src/HYDRO_tests/reference_data/CMakeLists.txt @@ -121,6 +121,8 @@ SET(REFERENCE_DATA stream_dtm_2d.png stream_dtm_3d.png pb_1066.cbf + test_boundary_polygon_calc_case_1.cbf + test_boundary_polygon_calc_case_2.cbf f_cmp.brep rebuild_cmp_out.png garonne.png diff --git a/src/HYDRO_tests/reference_data/linux/test_boundary_polygon_calc_case_1.cbf b/src/HYDRO_tests/reference_data/linux/test_boundary_polygon_calc_case_1.cbf new file mode 100644 index 0000000000000000000000000000000000000000..127ffc3dbc36bdbcaafd3e4a6d2b05ba9b7de207 GIT binary patch literal 51680 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 literal 0 HcmV?d00001 diff --git a/src/HYDRO_tests/reference_data/linux/test_boundary_polygon_calc_case_2.cbf b/src/HYDRO_tests/reference_data/linux/test_boundary_polygon_calc_case_2.cbf new file mode 100644 index 0000000000000000000000000000000000000000..ccc0d1803c3c17cf5c5630212f3d08b78737359b GIT binary patch literal 43266 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�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 literal 0 HcmV?d00001 diff --git a/src/HYDRO_tests/reference_data/win32/test_boundary_polygon_calc_case_1.cbf b/src/HYDRO_tests/reference_data/win32/test_boundary_polygon_calc_case_1.cbf new file mode 100644 index 0000000000000000000000000000000000000000..e66f44d837efb63c054ba18738450361cc40bf92 GIT binary patch literal 51587 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 literal 0 HcmV?d00001 diff --git a/src/HYDRO_tests/reference_data/win32/test_boundary_polygon_calc_case_2.cbf b/src/HYDRO_tests/reference_data/win32/test_boundary_polygon_calc_case_2.cbf new file mode 100644 index 0000000000000000000000000000000000000000..ccc0d1803c3c17cf5c5630212f3d08b78737359b GIT binary patch literal 43266 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�DDAh4?{rZm$2L3RfKk#OOM+Uxs&yB3To^KB>eW&Ik zlX>$Yp!_8`3!MIR|FGTi&z_~ejGW(_pEVfxv`|rT>*L<4Ga+=p=KaQ zC?Ai>44uy&jH-4p-xu2>tNpd<>kS4ze^eaEMpZpk;l9Z~`3{HA2wir>q=)}Kr1>ypPN?(ipWU;s=X*R? zTYk54!XiV!=^5vm;_Key*L=^>p!46fS@w}3z{gVa@yg7Q*>TmDpSR|FcC~dM?sfJv zLx9h(=5v@?VDGw4Cud*%%2z5PsOlGQnVzEmKRo03aA7|5mn;2f{i%m)oXYp4wzxE< z_r_0*R^n5L`E+0wIOyL>K8~08xMDs=m=j99_RDV%pFiOFvHzXbmmRxk2=KYaeBLk% z4A1Mi=3>kV-}V*19Dc}S`q9J(AoIb*EFdi|7&+#~=bmE+W_ADKD^myJlal!aV;1;i zY>O!|Baixab*S<2(Z&~yO7oG*eAF=u?7ncW&e*#@@f2}=xMfJ5iGj~v<};C5;I)LX znGwl5e8J1Vn}4yl$(Hz#W^ru&W5C$~5jEEP%GMZrea0aZ1E1#1rz|r=(<-&+)l8f2 znfF`&S$7tg82DITK1P=X%D&!V=a57Bp7Op!J9gb+nlJJBy?ov-3-tVT=-jyvUi7`# zE$-ownTHL<@j<_QFfR-IlvN?<$yf4yONxB-hf7 zSAQSB-(cXwi23kf76^T1eQuA1$32%1z zyG#t)LAQMHEDMBQ3mx#~fOEc~9lwY<+Vq6Mz$fDJ3AHScQ+(I#Ws@#>p8g;*w$W4H z84P@ME+1vf0xtKxotIX*;A>QE`j!!&nCif1?DCnnEKss>+uW_!E_qsIkMHtBjok(V zAI8gvp6bO=)`ktna9@`eUjzAMeY@ z?Xp19pOfFa_U>t4!qt--YQB8RC=#Co%;)m5K$)B?(~>5C>lxK+V!h#2O+Ahea^(YA zSzugB&W4C%`JV7*K|vj#USlxuiLZQeD+^3cU$Um@x?E3_?F-I@v@{I@d^9W{@yY@{ zzbNtWmaF-`(r4DTdhGtCMl10dvV0aS3w*miH|?Nnwr6Rxm-c1cG}VC*59Px@SwOx1 zqL-cHB|c?T6lgzhaLkOC*LvbcxgKiwqp1#j94Q|w$~nc}_|y0M&3xZm;g?%g?DLXQ z2R^ry&mU!hm|`E)81h+?r_T=wXRn(_K0dIL51M3w6G5RRhtRLx#r4bFyt3wFy)F`; zY{@55vOvL#+-c9sd7eoveZ`*1$uo+?M_}^Nl`K%&}(rJ6XZ(8=;2gXkS%n;y1HTf`17ASH#IrQR=L%zcw-?w5=j%hK6Pv7KI zGg)Bwv=5s+HtvEaXz=IpC*pt9D;=AWHYp_|y-gQd^VPz=)B9znCZ?y1Pt#X}`;N~X znV6KE|^OBr}6{&GEnfqSb}30$RV-O)5uvYIB(h(^u4# z?~5Bzr`x0=vW`&$IoiE;<&62NrCKf~f}w*K75(LyvK9%hSicAE&8kfD=(D#`w2=)cV@;cX&~QUCOmC^liN^(4hj&C;otQwv zh9NkE$?0v7JriEjncY1V_s7(^@wLIk1QIqn!5K_WuaWGTN~q%c-|+Rbnm^clx52~& z(pe2-Fgd+{vS-38WwUElacRlKZO38dp1%wTeQ$7auj4MJwua_8E2R*b=~9*v0!q@OgH!Q}LE&Yr2PnTEopMnzTG zf5oIHCXlc<6wY9BdaGy8gne^n7rHj;!qlCIjXE)bggvcr29wk4Kzk;KZ! zcg6>s4JIa#_G>VM$?46dJrnklnBB}5AIhG$Xq&;r1k!gJ%wTeQ}AlJyTVI>H8PfX72i7 zhrz@I(oPGL)7x2lChU+gyWS&WkACzI(^$>~(l;8+Xg#Oby7o-f%`_Bl8I_qnWtwT+ zV*+Wrg~{oCusu@^fhoD$>J70~uN$q$1kzRulhY!*JyT7AsmPb*MvhyE-_hC#%LLNb z7AB`R(DqE&dt`P`om}(iFAw0&tH#6x(pMVH(38`vYkMZ~?7Yt6Sk45}7ZxU`ci#3) zb<7o_@PY_W6?rz+o3uJHf#kC=IlU~mXTmv?W;bHQ!&2s;lLiwLNS|piqxBr$K%kWL zuc_a>yq=kc!ecsn6G}`uV=ys+w9&%k^m^XDPB`Jx?CO+yRc^QlzwEWvV*+Wt1~cm9 z^j_bdDcDRy;dL$lTHUeeF@uQ-q_q|%r#u66=CnTut4+rR!Ljq3s@ zo#Vh64&W0N#hv892@V|N0KWQB96mZy98Tg?+#wDe;J`i(?B&324t&djTn_Buz%~wS z;lO4Ne8~Zs1D|tX69+bMU>yh6aNrXTtm42*4t&Ic54AwkVlMp`KBr-TLHGm4=*tDS zYhj@gQ)^et!oo5wL3-a(roa{!?hu$P3kysjEwL~Kwy_J3VSx#x*DXweEiAMYm@Eqm zOd!2#Vd5XG;;vu&M_Ma^$+ED(1kx)Oroa{!!UQJE!U7XWFI$)bTUcl2$uVavh- z6G%^3m;zf^h!B`83kysjO|dXJZNjr3jXDWTmr7O~a`41aV}i^C(qk5;z!nzn7MN;% z+oEE*7k@UGm_T~O!W7uT!aV|$WnqB{q)8U0z!nzn6__jw3rrwAY+(v)VS$>-&si20 zm_QnDVRG7`Xm1f-KOUFsdZkLA5AAWl&=V6#Sr(?i78W7}rp0@o2>vqpxWU8((nA&| zr#+GOb?PiIMZP`yRGZNzCMJ+FEKE+DDeak}1g6*x-`qR(dlM5ANMkKbfh{a_5tuHV zJL0V|>JOv!m_Qn1VG3+vAzEOvEG#gAlxkrLY+<3Rz+_oiU;-({!W7uT!hHghWnqB{ zq-19DTUh8O$XgZ`SWMy{m&U@vQkGrJfkhlx$bkhMn8$&)IWUI4$S7jEDpTH zff*clkps_j;8_kl&4Fngn96}14m{3*M>#N=0~0wgfdknb$mGB{4y1D+jRT`OFp2{s zIWU3)Nm{^oggb5f)w`#@yx_FoS4a9OxI0s7*W^Jvr*1p_m(jfvwFGIH7BI@>v{Bfe z>3&U~FI78aU#e2kw35pN(ohSN(+*>MrXEb8T~F_yC%co1c@;F`m_T|^Ll|{(+L~<7 z)Kin^iyV;+#q!yOY=b!_X5GNCPcQPMe|anR*FK za}TfW8#!F^>UClQDc-{5w2RuFskgxN__21|_U$NYFfoDD&%)%i{o0->R$%J4a@&{1 zrW7}rm_UlNFgfkpwrA=iFul2P{pOF#mo%7|K;km_zlGpr&Sv3(xsNvTmN(>COyZ7d z47dp_G=u{Wa9|Jz25_K12l{eAFS@Q5HU*=5IPFQ-8$%z4oHnEDNWWo7FN9W@J%>i@ z*qTf1B%D8qI7?4BFPuY7&VXgwy7cz*5Qk#vjKGI;XI61)Gb zdex9;F^Nsf=t%mbN}v982BPSGs@)jae_UQK7gp%xVCpLGHc)<)5CxXqzDaRFa0WOl)x0)wdKQ4m#bITH05CeskMd4>B|j!reOlp zn%A}rIn}3#S3x6<38YrIBWGBI(!94$#?iVNqZ(Rfz*_l{Cd9r3qec$s_jdc zt9)*E1=2rx#qPRt$7fesvK$ALB+2;)FY4z%DvGY&N2Kw~Xnw7=7rGe z$?2mVdnWz~&V=<3h79g<*=;Z}fz*JR{MtnS9jT=*d?P;p@Wh&iJc~)(IEGDxYBH`6 z4!AiGtOX3EI)7S3#!LSUq|-M=_6?BAl-hOl@bB(uKen=0Z|Ztlf>c)v7)(wdBiS>J z*5vu}NAt76)qZK<)tQ(;s%>F%`ijY(X$(_n*Ev62Sn}zfY6cS%NHv+sPpN5wd~QmK zjG93qhCGW&+&G3(>#%Gs4%Fa4buC~tpwqWjdbRYP>hzJ7j`XVlFUv9W4^LgIIEH8-;if9i4|@bYGszK$bs@4D9eG;90<|^rp-1*IE^>k47Xy6 sikKKHrkIGi*NQ1FV(zqJN*EX_5xM$SOi2Sn&wO&#te8?Fh9jE(KT*M1U;qFB literal 0 HcmV?d00001 diff --git a/src/HYDRO_tests/test_HYDROData_BoundaryPolygons.cxx b/src/HYDRO_tests/test_HYDROData_BoundaryPolygons.cxx new file mode 100644 index 00000000..18675aee --- /dev/null +++ b/src/HYDRO_tests/test_HYDROData_BoundaryPolygons.cxx @@ -0,0 +1,148 @@ +// Copyright (C) 2014-2015 EDF-R&D +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +extern QString REF_DATA_PATH; + +void test_HYDROData_BoundaryPolygons::test_bp_1() +{ + TCollection_AsciiString fname = REF_DATA_PATH.toLatin1().data(); + fname += "/test_boundary_polygon_calc_case_1.cbf"; + CPPUNIT_ASSERT_EQUAL( (int)DocError_OK, (int)HYDROData_Document::Load( fname.ToCString(), 1 ) ); + + Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(1); + //Calc case already contains already contains 4 boundary poltgons (3 cut, 1 include) + //Update it to recalculate the shape groups + Handle(HYDROData_CalculationCase) aCase = + Handle(HYDROData_CalculationCase)::DownCast( aDoc->FindObjectByName( "Case_1" ) ); + CPPUNIT_ASSERT_EQUAL( false, aCase.IsNull() ); + aCase->Update(); + CPPUNIT_ASSERT_EQUAL(4, aCase->GetBoundaryPolygons().Size()); + HYDROData_SequenceOfObjects aSplitGroups = aCase->GetSplitGroups(); + CPPUNIT_ASSERT_EQUAL(1, aSplitGroups.Size()); + + Handle(HYDROData_ShapesGroup) aGroup = Handle(HYDROData_ShapesGroup)::DownCast( aSplitGroups.First() ); + std::string name = aGroup->GetName().toStdString(); + CPPUNIT_ASSERT_EQUAL( name, std::string("Case_1_Immersible zone_1_Outer") ); + + TopTools_SequenceOfShape aSeqShapes; + aGroup->GetShapes( aSeqShapes ); + CPPUNIT_ASSERT_EQUAL( 78, aSeqShapes.Size()); + BRep_Builder BB; + TopTools_IndexedMapOfShape ME, MV; + GProp_GProps G; + double total_len = 0; + for (int i=1; i<=aSeqShapes.Size();i++) + { + const TopoDS_Shape& aCSH = aSeqShapes(i); + TopExp::MapShapes(aCSH, TopAbs_EDGE, ME); + TopExp::MapShapes(aCSH, TopAbs_VERTEX, MV); + BRepGProp::LinearProperties(aCSH, G); + total_len += G.Mass(); + } + CPPUNIT_ASSERT_EQUAL( 78, ME.Extent()); + CPPUNIT_ASSERT_EQUAL( 78, MV.Extent()); + CPPUNIT_ASSERT_DOUBLES_EQUAL( 22.074, total_len , 0.001); + + aDoc->Close(); +} + +void test_HYDROData_BoundaryPolygons::test_bp_2() +{ + TCollection_AsciiString fname = REF_DATA_PATH.toLatin1().data(); + fname += "/test_boundary_polygon_calc_case_2.cbf"; + CPPUNIT_ASSERT_EQUAL( (int)DocError_OK, (int)HYDROData_Document::Load( fname.ToCString(), 1 ) ); + Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(1); + //add boundary polygons to case_1 + Handle(HYDROData_CalculationCase) aCase = + Handle(HYDROData_CalculationCase)::DownCast( aDoc->FindObjectByName( "Case_1" ) ); + CPPUNIT_ASSERT_EQUAL( false, aCase.IsNull() ); + double len1=0, len2=0; + { + //check linear properties before applying of boundary polygons + CPPUNIT_ASSERT_EQUAL(0, aCase->GetBoundaryPolygons().Size()); + HYDROData_SequenceOfObjects aSplitGroups = aCase->GetSplitGroups(); + Handle(HYDROData_ShapesGroup) aGroup = Handle(HYDROData_ShapesGroup)::DownCast( aSplitGroups.First() ); + std::string name = aGroup->GetName().toStdString(); + CPPUNIT_ASSERT_EQUAL( name, std::string("Case_1_Immersible zone_1_Outer") ); + TopTools_SequenceOfShape aSeqShapes; + aGroup->GetShapes( aSeqShapes ); + CPPUNIT_ASSERT_EQUAL( 36, aSeqShapes.Size()); + TopTools_IndexedMapOfShape ME, MV; + GProp_GProps G; + for (int i=1; i<=aSeqShapes.Size();i++) + { + const TopoDS_Shape& aCSH = aSeqShapes(i); + BRepGProp::LinearProperties(aCSH, G); + len1 += G.Mass(); + } + CPPUNIT_ASSERT_DOUBLES_EQUAL( 22.074, len1 , 0.001); + } + + //add boudnary polygons to case_1. (3 cut tools, 1 include tool) + Handle(HYDROData_BCPolygon) aBP3 = Handle(HYDROData_BCPolygon)::DownCast( aDoc->FindObjectByName("BP_poly3")); + aCase->AddBoundaryPolygon(aBP3); + Handle(HYDROData_BCPolygon) aBP4 = Handle(HYDROData_BCPolygon)::DownCast( aDoc->FindObjectByName("BP_poly4")); + aCase->AddBoundaryPolygon(aBP4); + Handle(HYDROData_BCPolygon) aBP5 = Handle(HYDROData_BCPolygon)::DownCast( aDoc->FindObjectByName("BP_poly5")); + aCase->AddBoundaryPolygon(aBP5); + Handle(HYDROData_BCPolygon) aBP6 = Handle(HYDROData_BCPolygon)::DownCast( aDoc->FindObjectByName("BP_poly6")); + aCase->AddBoundaryPolygon(aBP6); + + aCase->Update(); + { + //check linear properties after applying of boundary polygons + HYDROData_SequenceOfObjects aSplitGroups = aCase->GetSplitGroups(); + Handle(HYDROData_ShapesGroup) aGroup = Handle(HYDROData_ShapesGroup)::DownCast( aSplitGroups.First() ); + std::string name = aGroup->GetName().toStdString(); + CPPUNIT_ASSERT_EQUAL( name, std::string("Case_1_Immersible zone_1_Outer") ); + + TopTools_SequenceOfShape aSeqShapes; + aGroup->GetShapes( aSeqShapes ); + CPPUNIT_ASSERT_EQUAL( 78, aSeqShapes.Size()); + BRep_Builder BB; + TopTools_IndexedMapOfShape ME, MV; + GProp_GProps G; + + for (int i=1; i<=aSeqShapes.Size();i++) + { + const TopoDS_Shape& aCSH = aSeqShapes(i); + TopExp::MapShapes(aCSH, TopAbs_EDGE, ME); + TopExp::MapShapes(aCSH, TopAbs_VERTEX, MV); + BRepGProp::LinearProperties(aCSH, G); + len2 += G.Mass(); + } + CPPUNIT_ASSERT_EQUAL( 78, ME.Extent()); + CPPUNIT_ASSERT_EQUAL( 78, MV.Extent()); + //len1 == len2 + CPPUNIT_ASSERT_DOUBLES_EQUAL( 22.074, len2, 0.001); + } + + aDoc->Close(); +} + diff --git a/src/HYDRO_tests/test_HYDROData_BoundaryPolygons.h b/src/HYDRO_tests/test_HYDROData_BoundaryPolygons.h new file mode 100644 index 00000000..52833da8 --- /dev/null +++ b/src/HYDRO_tests/test_HYDROData_BoundaryPolygons.h @@ -0,0 +1,37 @@ +// Copyright (C) 2014-2015 EDF-R&D +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +#include + +class test_HYDROData_BoundaryPolygons : public CppUnit::TestFixture +{ + CPPUNIT_TEST_SUITE( test_HYDROData_BoundaryPolygons ); + CPPUNIT_TEST( test_bp_1 ); + CPPUNIT_TEST( test_bp_2 ); + CPPUNIT_TEST_SUITE_END(); + +public: + //void setUp(); + //void tearDown() {} + void test_bp_1(); + void test_bp_2(); + +}; + +CPPUNIT_TEST_SUITE_REGISTRATION( test_HYDROData_BoundaryPolygons ); +CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( test_HYDROData_BoundaryPolygons, "HYDROData_BoundaryPolygons" ); -- 2.39.2