X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDRO_tests%2Ftest_HYDROData_DTM.cxx;h=9c06cc7e1fa22078972f99e30f6d2337a0d91427;hb=f50a01345c4f3761fbe64a838253558d4308931e;hp=7cc7b68212f07515bd6883a388ccb9f7502a09c2;hpb=4bef76eb65a4ad3c90ff28b84a1df70054fef8b4;p=modules%2Fhydro.git diff --git a/src/HYDRO_tests/test_HYDROData_DTM.cxx b/src/HYDRO_tests/test_HYDROData_DTM.cxx index 7cc7b682..9c06cc7e 100644 --- a/src/HYDRO_tests/test_HYDROData_DTM.cxx +++ b/src/HYDRO_tests/test_HYDROData_DTM.cxx @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -47,7 +48,7 @@ class DTM_item : public QGraphicsItem public: DTM_item( HYDROGUI_ShapeBathymetry* theDTM, double d ) { - Handle(AIS_PointCloud) pc = Handle(AIS_PointCloud)::DownCast( theDTM->getAISObject() ); + Handle(AIS_PointCloud) pc = Handle(AIS_PointCloud)::DownCast( theDTM->getAISObjects()[0] ); Handle(Graphic3d_ArrayOfPoints) pp = pc->GetPoints(); myBB = QRectF(); double xmin, xmax, ymin, ymax; @@ -305,7 +306,7 @@ void test_HYDROData_DTM::test_profile_properties() gp_Pnt lp; gp_Vec2d dd; double zmin, zmax; - HYDROData_DTM::GetProperties( aProfile, lp, dd, false, zmin, zmax ); + HYDROData_DTM::GetProperties( aProfile, lp, dd, zmin, zmax ); CPPUNIT_ASSERT_DOUBLES_EQUAL( 13.75, lp.X(), EPS ); CPPUNIT_ASSERT_DOUBLES_EQUAL( 15.625, lp.Y(), EPS ); CPPUNIT_ASSERT_DOUBLES_EQUAL( 0, lp.Z(), EPS ); @@ -314,14 +315,14 @@ void test_HYDROData_DTM::test_profile_properties() CPPUNIT_ASSERT_DOUBLES_EQUAL( 0.0, zmin, EPS ); CPPUNIT_ASSERT_DOUBLES_EQUAL( 5.0, zmax, EPS ); - HYDROData_DTM::GetProperties( aProfile, lp, dd, true, zmin, zmax ); + /* HYDROData_DTM::GetProperties( aProfile, lp, dd, true, zmin, zmax ); CPPUNIT_ASSERT_DOUBLES_EQUAL( 13.75, lp.X(), EPS ); CPPUNIT_ASSERT_DOUBLES_EQUAL( 15.625, lp.Y(), EPS ); CPPUNIT_ASSERT_DOUBLES_EQUAL( 0, lp.Z(), EPS ); CPPUNIT_ASSERT_DOUBLES_EQUAL( -15, dd.X(), EPS ); CPPUNIT_ASSERT_DOUBLES_EQUAL( 10, dd.Y(), EPS ); CPPUNIT_ASSERT_DOUBLES_EQUAL( 0.0, zmin, EPS ); - CPPUNIT_ASSERT_DOUBLES_EQUAL( 5.0, zmax, EPS ); + CPPUNIT_ASSERT_DOUBLES_EQUAL( 5.0, zmax, EPS );*/ aDoc->Close(); } @@ -338,9 +339,9 @@ void test_HYDROData_DTM::test_profile_discretization_polyline() aProfile->SetLeftPoint( gp_XY( 10, 10 ) ); aProfile->SetRightPoint( gp_XY( 20, 20 ) ); - HYDROData_DTM::CurveUZ aMid( 0.0, gp_Vec2d(), 0 ), aWid( 0.0, gp_Vec2d(), 0 ); + HYDROData_DTM::CurveUZ aMid( 0.0, gp_Vec2d(), 0, 0 ), aWid( 0.0, gp_Vec2d(), 0, 0 ); int dummy = 0; - HYDROData_DTM::ProfileDiscretization( aProfile, 0.0, 0.0, 5.0, 0.5, aMid, aWid, dummy ); + HYDROData_DTM::ProfileDiscretization( aProfile, 0.0, 0.0, 5.0, 5.0, 0.5, aMid, aWid, dummy ); CPPUNIT_ASSERT_EQUAL( 11, (int)aMid.size() ); CPPUNIT_ASSERT_DOUBLES_EQUAL( 0.0, aMid[0].U, EPS ); CPPUNIT_ASSERT_DOUBLES_EQUAL( 0.0, aMid[0].Z, EPS ); @@ -376,9 +377,9 @@ Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(1); aProfile->SetLeftPoint( gp_XY( 10, 10 ) ); aProfile->SetRightPoint( gp_XY( 20, 20 ) ); - HYDROData_DTM::CurveUZ aMid( 0.0, gp_Vec2d(), 0 ), aWid( 0.0, gp_Vec2d(), 0 ); + HYDROData_DTM::CurveUZ aMid( 0.0, gp_Vec2d(), 0, 0 ), aWid( 0.0, gp_Vec2d(), 0, 0 ); int dummy = 0 ; - HYDROData_DTM::ProfileDiscretization( aProfile, 0.0, 0.0, 5.0, 0.5, aMid, aWid, dummy ); + HYDROData_DTM::ProfileDiscretization( aProfile, 0.0, 0.0, 5.0, 5.0, 0.5, aMid, aWid, dummy ); CPPUNIT_ASSERT_EQUAL( 11, (int)aMid.size() ); CPPUNIT_ASSERT_DOUBLES_EQUAL( 0.242, aMid[0].U, EPS ); CPPUNIT_ASSERT_DOUBLES_EQUAL( 0.0, aMid[0].Z, EPS ); @@ -431,7 +432,7 @@ void operator << ( std::ostream& s, const HYDROData_DTM::CurveUZ& c ) void test_HYDROData_DTM::test_curves_interpolation() { - HYDROData_DTM::CurveUZ A(1.0, gp_Vec2d(), 0), B(2.0, gp_Vec2d(), 0); + HYDROData_DTM::CurveUZ A(1.0, gp_Vec2d(), 0, 0), B(2.0, gp_Vec2d(), 0, 0); A.push_back( HYDROData_DTM::PointUZ( 0, 0 ) ); A.push_back( HYDROData_DTM::PointUZ( 1, 1 ) ); A.push_back( HYDROData_DTM::PointUZ( 2, 2 ) ); @@ -498,10 +499,10 @@ void test_HYDROData_DTM::test_curve_to_3d() Handle(Geom2d_BSplineCurve) HA = HYDROData_DTM::CreateHydraulicAxis( profiles, distances ); HYDROData_DTM::AltitudePoints points; - HYDROData_DTM::CurveUZ mid( 5.0, gp_Vec2d(-10,10), 0 ); + HYDROData_DTM::CurveUZ mid( 5.0, gp_Vec2d(-10,10), 0, 0 ); mid.push_back( HYDROData_DTM::PointUZ( 0, 5 ) ); mid.push_back( HYDROData_DTM::PointUZ( 1, 6 ) ); - HYDROData_DTM::CurveUZ wid( 5.0, gp_Vec2d(-10,10), 0 ); + HYDROData_DTM::CurveUZ wid( 5.0, gp_Vec2d(-10,10), 0, 0 ); wid.push_back( HYDROData_DTM::PointUZ( 2, 5 ) ); wid.push_back( HYDROData_DTM::PointUZ( 6, 6 ) ); HYDROData_DTM::CurveTo3D( HA, mid, wid, points ); @@ -620,5 +621,45 @@ void test_HYDROData_DTM::test_garonne() TestViewer::showColorScale( ColorScaleIsDisp ); delete aBathPrs; aDoc->Close(); +} + +void test_HYDROData_DTM::test_classifier_1() +{ + TCollection_AsciiString fname = REF_DATA_PATH.toLatin1().data(); + fname += "/pb_1066.cbf"; + CPPUNIT_ASSERT_EQUAL( (int)DocError_OK, (int)HYDROData_Document::Load( fname.ToCString(), 1 ) ); + Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(1); + + Handle(HYDROData_CalculationCase) aCase = + Handle(HYDROData_CalculationCase)::DownCast( aDoc->FindObjectByName( "Case_1" ) ); + CPPUNIT_ASSERT_EQUAL( false, aCase.IsNull() ); + std::vector points; + points.push_back( gp_XY( 43.4842, 3.33176 ) ); + points.push_back( gp_XY( -125.777, 2.24728 ) ); + points.push_back( gp_XY( -60.1628, 168.262 ) ); + points.push_back( gp_XY( 21.8055587645, 154.699344457 ) ); + points.push_back( gp_XY( -84.4764138524, 79.2606012276 ) ); + points.push_back( gp_XY( -73.4132070504, 69.7096313266 ) ); + + std::vector values = aCase->GetStricklerCoefficientForPoints( points, 0.0, true ); + CPPUNIT_ASSERT_EQUAL( 6, (int)values.size() ); + CPPUNIT_ASSERT_DOUBLES_EQUAL( 1.0123, values[0], EPS ); + CPPUNIT_ASSERT_DOUBLES_EQUAL( 1.0123, values[1], EPS ); + CPPUNIT_ASSERT_DOUBLES_EQUAL( 1.0221, values[2], EPS ); + CPPUNIT_ASSERT_DOUBLES_EQUAL( 1.0123, values[3], EPS ); + CPPUNIT_ASSERT_DOUBLES_EQUAL( 1.0123, values[4], EPS ); + CPPUNIT_ASSERT_DOUBLES_EQUAL( 1.0123, values[5], EPS ); + + std::vector types = aCase->GetStricklerTypeForPoints( points ); + CPPUNIT_ASSERT_EQUAL( 6, (int)types.size() ); + CPPUNIT_ASSERT_EQUAL( 123, types[0] ); + CPPUNIT_ASSERT_EQUAL( 123, types[1] ); + CPPUNIT_ASSERT_EQUAL( 221, types[2] ); + CPPUNIT_ASSERT_EQUAL( 123, types[3] ); + CPPUNIT_ASSERT_EQUAL( 123, types[4] ); + CPPUNIT_ASSERT_EQUAL( 123, types[5] ); + + aDoc->Close(); } +