X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDRO_tests%2Ftest_HYDROData_Stream.cxx;h=a6dfe1cee142267e911d840a1231824f28322f44;hb=5ac23856072a615487ce98401d28fb3b7934150c;hp=52388f33737ab8df33cf6688dbae9c7b3f227115;hpb=58bb6b7459bebeeb089c9ed486c4683a8bae7288;p=modules%2Fhydro.git diff --git a/src/HYDRO_tests/test_HYDROData_Stream.cxx b/src/HYDRO_tests/test_HYDROData_Stream.cxx index 52388f33..a6dfe1ce 100644 --- a/src/HYDRO_tests/test_HYDROData_Stream.cxx +++ b/src/HYDRO_tests/test_HYDROData_Stream.cxx @@ -26,10 +26,15 @@ #include #include #include +#include #include #include #include +#include +#include +#include + extern QString REF_DATA_PATH; NCollection_Sequence points2; const double EPS = 1E-3; @@ -49,6 +54,9 @@ void test_HYDROData_Stream::tearDown() void test_HYDROData_Stream::test_dialog() { + return; + TestViewer::eraseAll( true, true ); + HYDROGUI_StreamDlg* aDlg = new HYDROGUI_StreamDlg( 0, "stream" ); aDlg->show(); qApp->processEvents(); @@ -67,7 +75,9 @@ void test_HYDROData_Stream::test_dialog() void test_HYDROData_Stream::test_alt_object() { - Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(1); + TestViewer::eraseAll( true, true ); + + Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(); Handle(HYDROData_Stream) aStream = Handle(HYDROData_Stream)::DownCast( aDoc->CreateObject( KIND_STREAM ) ); @@ -87,7 +97,9 @@ void test_HYDROData_Stream::test_alt_object() void test_HYDROData_Stream::test_params_sync() { - Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(1); + TestViewer::eraseAll( true, true ); + + Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(); Handle(HYDROData_Stream) aStream = Handle(HYDROData_Stream)::DownCast( aDoc->CreateObject( KIND_STREAM ) ); @@ -138,8 +150,10 @@ void test_HYDROData_Stream::test_params_sync() void test_HYDROData_Stream::test_dump() { + TestViewer::eraseAll( true, true ); + // Case 1. Without hydraulic axis - Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(1); + Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(); Handle(HYDROData_Stream) aStream1 = Handle(HYDROData_Stream)::DownCast( aDoc->CreateObject( KIND_STREAM ) ); @@ -227,7 +241,9 @@ void test_HYDROData_Stream::test_dump() void test_HYDROData_Stream::test_presentation() { - Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(1); + TestViewer::eraseAll( true, true ); + + Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(); TCollection_AsciiString fname = REF_DATA_PATH.toLatin1().data(); fname += "/Profiles.xyz"; @@ -260,7 +276,7 @@ void test_HYDROData_Stream::test_presentation() TopoDS_Shape aPrs3d = aStream->GetShape3D(); TopoDS_Shape aPrs2d = aStream->GetTopShape(); - TestViewer::show( aPrs2d, 0, true, "stream_dtm_2d" ); + TestViewer::show( aPrs2d, 0, true, "stream_dtm_2d", 1, 1 ); CPPUNIT_ASSERT_IMAGES; TestViewer::eraseAll( true ); @@ -270,3 +286,68 @@ void test_HYDROData_Stream::test_presentation() aDoc->Close(); } + +void test_HYDROData_Stream::test_lism_1() +{ + TCollection_AsciiString ref_path = REF_DATA_PATH.toLatin1().data(); + + TCollection_AsciiString fname = REF_DATA_PATH.toLatin1().data(); + fname += "/study_lism_1.cbf"; + CPPUNIT_ASSERT_EQUAL( (int)DocError_OK, (int)HYDROData_Document::Load( fname.ToCString() ) ); + + Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(); + + HYDROData_SequenceOfObjects profiles; + HYDROData_Iterator it( aDoc, KIND_PROFILE ); + for( int i=0; it.More(); it.Next(), i++ ) + { + if( i>=15 && i<=42 ) + profiles.Append( Handle(HYDROData_Profile)::DownCast( it.Current() ) ); + } + CPPUNIT_ASSERT_EQUAL( 28, (int)profiles.Size() ); + /// + + Handle(HYDROData_PolylineXY) aPolyXY_AX = Handle(HYDROData_PolylineXY)::DownCast(aDoc->FindObjectByName("AX")); + Handle(HYDROData_PolylineXY) aPolyXY_LB = Handle(HYDROData_PolylineXY)::DownCast(aDoc->FindObjectByName("LB")); + Handle(HYDROData_PolylineXY) aPolyXY_RB = Handle(HYDROData_PolylineXY)::DownCast(aDoc->FindObjectByName("RB")); + + aPolyXY_AX->Update(); + aPolyXY_LB->Update(); + aPolyXY_RB->Update(); + // + Handle(HYDROData_LISM) aLISM = Handle(HYDROData_LISM)::DownCast( aDoc->CreateObject( KIND_LISM ) ); + aLISM->SetProfiles( profiles ); + aLISM->SetHaxStep(2.0); + aLISM->SetNbProfilePoints( 200 ); + aLISM->SetHydraulicAxis(aPolyXY_AX); + aLISM->SetLeftBank(aPolyXY_LB); + aLISM->SetRightBank(aPolyXY_RB); + CPPUNIT_ASSERT_DOUBLES_EQUAL( 2.0, aLISM->GetHaxStep(), EPS ); + CPPUNIT_ASSERT_EQUAL( 200, aLISM->GetNbProfilePoints() ); + aLISM->Update(); + + CPPUNIT_ASSERT_EQUAL( 99000, (int)aLISM->GetAltitudePoints().size() ); + + Handle(AIS_InteractiveContext) aContext = TestViewer::context(); + HYDROGUI_ShapeBathymetry* aBathPrs = new HYDROGUI_ShapeBathymetry( 0, aContext, aLISM ); + //aBathPrs->Build(); + aBathPrs->update( true, false ); + aBathPrs->RescaleDefault(); + double min, max; + aBathPrs->GetRange( min, max ); + TestViewer::colorScale()->SetRange( min, max ); + CPPUNIT_ASSERT_DOUBLES_EQUAL( -0.98390276785714281, min, EPS ); + CPPUNIT_ASSERT_DOUBLES_EQUAL( 25.991840625000002, max, EPS ); + + aBathPrs->UpdateWithColorScale( TestViewer::colorScale() ); + + Handle(AIS_InteractiveObject) lism_prs = aBathPrs->getAISObjects()[0]; + CPPUNIT_ASSERT( !lism_prs.IsNull() ); + + TestViewer::show( lism_prs, 0, 0, true, "lism_prs" ); + CPPUNIT_ASSERT_IMAGES + + delete aBathPrs; + aDoc->Close(); +} +