X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDRO_tests%2Ftest_HYDROData_PolylineXY.cxx;h=9b505914aaab94221c889a1aaf82577b0432e060;hb=1ad3406d04aa81800693d6811c7c36e87e0c95c1;hp=ff966ddcf3297bfd18cd3055af23334df5b8a714;hpb=07ccf1206abd36c104230ae2051110e8e2bf27c0;p=modules%2Fhydro.git diff --git a/src/HYDRO_tests/test_HYDROData_PolylineXY.cxx b/src/HYDRO_tests/test_HYDROData_PolylineXY.cxx index ff966ddc..9b505914 100644 --- a/src/HYDRO_tests/test_HYDROData_PolylineXY.cxx +++ b/src/HYDRO_tests/test_HYDROData_PolylineXY.cxx @@ -18,23 +18,36 @@ #include +#include #include #include +#include #include +#include #include +#include #include +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include #include #include #include #include #include +#include -void test_HYDROData_PolylineXY::testPolyline() +void test_HYDROData_PolylineXY::test_polyline() { Handle(HYDROData_Document) aDoc = HYDROData_Document::Document( 1 ); @@ -64,8 +77,7 @@ void test_HYDROData_PolylineXY::testPolyline() aDoc->Close(); } - -void test_HYDROData_PolylineXY::testCopy() +void test_HYDROData_PolylineXY::test_copy() { Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(1); Handle(HYDROData_PolylineXY) aPolyline1 = @@ -83,7 +95,7 @@ void test_HYDROData_PolylineXY::testCopy() aDoc->Close(); } -void test_HYDROData_PolylineXY::testSplit_refs_624() +void test_HYDROData_PolylineXY::test_split_refs_624() { Handle(HYDROData_Document) aDoc = HYDROData_Document::Document( 1 ); @@ -92,7 +104,7 @@ void test_HYDROData_PolylineXY::testSplit_refs_624() aPolyline->SetName( "test" ); QList aCoords = QList() << 10 << 10 << 20 << 10 << 20 << 20 << 10 << 20; - TopoDS_Wire aWire = Wire( aCoords, true ); + TopoDS_Wire aWire = Wire2d( aCoords, true ); aPolyline->SetShape( aWire ); gp_Pnt2d aPnt( 20, 20 ); @@ -116,3 +128,393 @@ void test_HYDROData_PolylineXY::testSplit_refs_624() aDoc->Close(); } +void test_HYDROData_PolylineXY::test_extraction_immersible_zone() +{ + Handle(HYDROData_Document) aDoc = HYDROData_Document::Document( 1 ); + + Handle(HYDROData_PolylineXY) aPolyline = + Handle(HYDROData_PolylineXY)::DownCast( aDoc->CreateObject( KIND_POLYLINEXY ) ); + aPolyline->SetName( "test" ); + + QList aCoords = QList() << 10 << 10 << 20 << 10 << 20 << 20 << 10 << 20; + TopoDS_Wire aWire = Wire2d( aCoords, true ); + aPolyline->SetShape( aWire ); + + Handle(HYDROData_ImmersibleZone) aZone = + Handle(HYDROData_ImmersibleZone)::DownCast( aDoc->CreateObject( KIND_IMMERSIBLE_ZONE ) ); + aZone->SetName( "zone" ); + aZone->SetPolyline( aPolyline ); + aZone->Update(); + + CPPUNIT_ASSERT_EQUAL( false, (bool)aZone->GetTopShape().IsNull() ); + + HYDROData_PolylineOperator anOp; + CPPUNIT_ASSERT_EQUAL( true, anOp.Extract( aDoc, aZone ) ); + + Handle(HYDROData_PolylineXY) anOuter = + Handle(HYDROData_PolylineXY)::DownCast( aDoc->FindObjectByName( "zone_Outer_1", KIND_POLYLINEXY ) ); + CPPUNIT_ASSERT_EQUAL( false, (bool)anOuter.IsNull() ); + + TestViewer::show( aZone->GetTopShape(), 1, true, "Extraction_ImmZone" ); + TestViewer::show( anOuter->GetShape(), 0, true, Qt::red ); + CPPUNIT_ASSERT_IMAGES + + aDoc->Close(); +} + +void test_HYDROData_PolylineXY::test_extraction_channel_refs_611() +{ + Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(1); + + Handle(HYDROData_PolylineXY) aPolyline2d = + Handle(HYDROData_PolylineXY)::DownCast( aDoc->CreateObject( KIND_POLYLINEXY ) ); + aPolyline2d->SetName( "polyline2d_1" ); + aPolyline2d->AddSection( "", HYDROData_IPolyline::SECTION_SPLINE, false ); + + Handle(HYDROData_Polyline3D) aPolyline3d = + Handle(HYDROData_Polyline3D)::DownCast( aDoc->CreateObject( KIND_POLYLINE ) ); + aPolyline3d->SetName( "polyline3d_1" ); + aPolyline3d->SetPolylineXY( aPolyline2d ); + + QList aCoords = QList() << 10 << 10 << 20 << 10 << 20 << 20 << 10 << 20; + TopoDS_Wire aWire = Wire2d( aCoords, false ); + aPolyline2d->SetShape( aWire ); + aPolyline3d->SetTopShape( aWire ); + aPolyline3d->SetShape3D( aWire ); + + Handle(HYDROData_Profile) aProfile = + Handle(HYDROData_Profile)::DownCast( aDoc->CreateObject( KIND_PROFILE ) ); + aProfile->SetName( "profile_1" ); + + QList aCoordsPr = QList() << 0.0 << 0.1 << 0.0 << 0.0 << 1.0 << 0.0; + TopoDS_Wire aWirePr = Wire3d( aCoordsPr, false ); + aProfile->SetTopShape( aWirePr ); + aProfile->SetShape3D( aWirePr ); + + + Handle(HYDROData_Channel) aChannel = + Handle(HYDROData_Channel)::DownCast( aDoc->CreateObject( KIND_CHANNEL ) ); + aChannel->SetName( "channel_1" ); + + aChannel->SetGuideLine( aPolyline3d ); + aChannel->SetProfile( aProfile ); + aChannel->Update(); + CPPUNIT_ASSERT_EQUAL( false, (bool)aChannel->GetTopShape().IsNull() ); + CPPUNIT_ASSERT_EQUAL( false, (bool)aChannel->GetShape3D().IsNull() ); + + HYDROData_PolylineOperator anOp; + CPPUNIT_ASSERT_EQUAL( true, anOp.Extract( aDoc, aChannel ) ); + + Handle(HYDROData_PolylineXY) aLeft = + Handle(HYDROData_PolylineXY)::DownCast( aDoc->FindObjectByName( "channel_1_Left_Bank_1", KIND_POLYLINEXY ) ); + Handle(HYDROData_PolylineXY) aRight = + Handle(HYDROData_PolylineXY)::DownCast( aDoc->FindObjectByName( "channel_1_Right_Bank_1", KIND_POLYLINEXY ) ); + CPPUNIT_ASSERT_EQUAL( false, (bool)aRight.IsNull() ); + + TestViewer::show( aChannel->GetTopShape(), 1, true, "Extraction_Channel" ); + TestViewer::show( aLeft->GetShape(), 0, true, Qt::red ); + TestViewer::show( aRight->GetShape(), 0, true, Qt::red ); + CPPUNIT_ASSERT_IMAGES + + aDoc->Close(); +} + +void test_HYDROData_PolylineXY::test_presentation() +{ + Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(1); + + Handle(HYDROData_PolylineXY) aPolyline2d = + Handle(HYDROData_PolylineXY)::DownCast( aDoc->CreateObject( KIND_POLYLINEXY ) ); + aPolyline2d->SetName( "polyline2d_1" ); + aPolyline2d->AddSection( "", HYDROData_IPolyline::SECTION_SPLINE, false ); + + QList aPoints = QList() << gp_XY( 0, 0 ) + << gp_XY( 10, 10 ) + << gp_XY( 20, 40 ) + << gp_XY( 30, 10 ) + << gp_XY( 40, 50 ) + << gp_XY( 50, 60 ) + << gp_XY( -10, 40 ) + << gp_XY( -9, 39 ) + << gp_XY( -8, 38 ) + << gp_XY( 0, 20 ); + Handle(TColgp_HArray1OfPnt) aPnts = new TColgp_HArray1OfPnt( 1, aPoints.size() ); + int i = 1; + foreach( gp_XY aPoint, aPoints ) + { + aPolyline2d->AddPoint( 0, aPoint ); + aPnts->SetValue( i, gp_Pnt( aPoint.X(), aPoint.Y(), 0 ) ); + i++; + } + aPolyline2d->Update(); + + CPPUNIT_ASSERT_EQUAL( false, (bool)aPolyline2d->GetShape().IsNull() ); + + Handle(AIS_PointCloud) aPointsPrs = new AIS_PointCloud(); + aPointsPrs->SetPoints( aPnts ); + aPointsPrs->SetColor( Quantity_NOC_BLUE1 ); + aPointsPrs->Attributes()->PointAspect()->SetTypeOfMarker( Aspect_TOM_O ); + + aPolyline2d->SetWireColor( Qt::darkGreen ); + HYDROGUI_Shape* aNewPolylinePrs = new HYDROGUI_Shape( TestViewer::context(), aPolyline2d ); + aNewPolylinePrs->update( true, true ); + + + // Check default type + Handle(HYDROGUI_Arrow) arr = Handle(HYDROGUI_Arrow)::DownCast( aNewPolylinePrs->getAISObjects()[1] ); + CPPUNIT_ASSERT_EQUAL( HYDROGUI_Arrow::Cone, arr->GetType() ); + CPPUNIT_ASSERT_EQUAL( 35, arr->GetSize() ); + + + // Check polyline presentation with default (cone) arrow + TestViewer::eraseAll(true); + TestViewer::show( aPointsPrs, AIS_PointCloud::DM_Points, 0, true, "Polyline_Presentation" ); + TestViewer::show( aPolyline2d->GetShape(), 0, true, Qt::red ); + //TestViewer::show( aNewPolylinePrs, AIS_PointCloud::DM_Points, 0, true, "" ); + aNewPolylinePrs->setBorderColor( Qt::blue ); + aNewPolylinePrs->display(); + TestViewer::fitAll(); + CPPUNIT_ASSERT_IMAGES + + + // Check polyline presentation with triangle arrow + arr->SetType( HYDROGUI_Arrow::Triangle ); + TestViewer::eraseAll(true); + TestViewer::show( aPointsPrs, AIS_PointCloud::DM_Points, 0, true, "Polyline_Presentation_triangle" ); + TestViewer::show( aPolyline2d->GetShape(), 0, true, Qt::red ); + //TestViewer::show( aNewPolylinePrs, AIS_PointCloud::DM_Points, 0, true, "" ); + TestViewer::context()->RecomputePrsOnly( arr ); + aNewPolylinePrs->display(); + TestViewer::fitAll(); + CPPUNIT_ASSERT_IMAGES + + //QTest::qWait( 50000 ); + aDoc->Close(); +} + +void test_HYDROData_PolylineXY::test_split_refs_627() +{ + Handle(HYDROData_Document) aDoc = HYDROData_Document::Document( 1 ); + + Handle(HYDROData_PolylineXY) aPolyline = + Handle(HYDROData_PolylineXY)::DownCast( aDoc->CreateObject( KIND_POLYLINEXY ) ); + aPolyline->SetName( "test" ); + + QList aCoords = QList() << 10 << 10 << 20 << 10 << 20 << 20 << 10 << 20; + TopoDS_Wire aWire = Wire2d( aCoords, false ); + aPolyline->SetShape( aWire ); + aPolyline->SetWireColor( Qt::red ); + + gp_Pnt2d aPnt( 20, 20 ); + + HYDROData_PolylineOperator anOp; + CPPUNIT_ASSERT_EQUAL( true, anOp.Split( aDoc, aPolyline, aPnt, 1E-3 ) ); + + TestViewer::show( TopoDS_Shape(), 0, true, "Split_Polylines_Colors" ); + HYDROData_Iterator anIt( aDoc, KIND_POLYLINEXY ); + for( ; anIt.More(); anIt.Next() ) + { + Handle(HYDROData_PolylineXY) anObj = Handle(HYDROData_PolylineXY)::DownCast( anIt.Current() ); + if( aPolyline->Label() != anObj->Label() ) + TestViewer::show( anObj->GetShape(), 0, true, anObj->GetWireColor() ); + } + CPPUNIT_ASSERT_IMAGES + + HYDROData_Iterator anIt2( aDoc, KIND_POLYLINEXY ); + CPPUNIT_ASSERT_EQUAL( true, anIt2.More() ); + CPPUNIT_ASSERT_EQUAL( QString( "test" ), anIt2.Current()->GetName() ); + CPPUNIT_ASSERT_EQUAL( QColor( Qt::red ), + Handle(HYDROData_PolylineXY)::DownCast( anIt2.Current() )->GetWireColor() ); + anIt2.Next(); + CPPUNIT_ASSERT_EQUAL( true, anIt2.More() ); + CPPUNIT_ASSERT_EQUAL( QString( "test_1" ), anIt2.Current()->GetName() ); + CPPUNIT_ASSERT_EQUAL( QColor( Qt::red ), + Handle(HYDROData_PolylineXY)::DownCast( anIt2.Current() )->GetWireColor() ); + anIt2.Next(); + CPPUNIT_ASSERT_EQUAL( true, anIt2.More() ); + CPPUNIT_ASSERT_EQUAL( QString( "test_2" ), anIt2.Current()->GetName() ); + CPPUNIT_ASSERT_EQUAL( QColor( Qt::red ), + Handle(HYDROData_PolylineXY)::DownCast( anIt2.Current() )->GetWireColor() ); + anIt2.Next(); + CPPUNIT_ASSERT_EQUAL( false, anIt2.More() ); + anIt2.Next(); + + aDoc->Close(); +} + +void test_HYDROData_PolylineXY::test_custom_polylines() +{ + Handle(HYDROData_Document) aDoc = HYDROData_Document::Document( 1 ); + + Handle(HYDROData_PolylineXY) aPolyline1 = + Handle(HYDROData_PolylineXY)::DownCast( aDoc->CreateObject( KIND_POLYLINEXY ) ); + Handle(HYDROData_PolylineXY) aPolyline2 = + Handle(HYDROData_PolylineXY)::DownCast( aDoc->CreateObject( KIND_POLYLINEXY ) ); + Handle(HYDROData_PolylineXY) aPolyline3 = + Handle(HYDROData_PolylineXY)::DownCast( aDoc->CreateObject( KIND_POLYLINEXY ) ); + + aPolyline1->SetName( "test1" ); + aPolyline2->SetName( "test2" ); + aPolyline3->SetName( "test3" ); + + CPPUNIT_ASSERT_EQUAL( false, aPolyline1->IsCustom() ); + aPolyline1->AddSection( "", HYDROData_IPolyline::SECTION_SPLINE, false ); + aPolyline1->Update(); + CPPUNIT_ASSERT_EQUAL( false, aPolyline1->IsCustom() ); + aPolyline1->AddPoint( 0, gp_XY( 0, 0 ) ); + aPolyline1->Update(); + CPPUNIT_ASSERT_EQUAL( false, aPolyline1->IsCustom() ); + + CPPUNIT_ASSERT_EQUAL( false, aPolyline2->IsCustom() ); + aPolyline2->SetShape( Wire2d( QList() << 0 << 0 << 10 << 10 << 20 << 0 ) ); + CPPUNIT_ASSERT_EQUAL( true, aPolyline2->IsCustom() ); + HYDROData_PolylineXY::PointsList aPointsList = aPolyline2->GetPoints( 0 ); + + CPPUNIT_ASSERT_EQUAL( false, aPolyline2->IsCustom() ); + CPPUNIT_ASSERT_EQUAL( 5, aPointsList.Size() ); + CPPUNIT_ASSERT_EQUAL( gp_XY( 0, 0 ), aPointsList.Value( 1 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( 5, 7.5 ), aPointsList.Value( 2 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( 10, 10 ), aPointsList.Value( 3 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( 15, 7.5 ), aPointsList.Value( 4 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( 20, 0 ), aPointsList.Value( 5 ) ); + + + CPPUNIT_ASSERT_EQUAL( false, aPolyline3->IsCustom() ); + aPolyline3->SetShape( WireCirc( gp_Pnt(), 10.0 ) ); + CPPUNIT_ASSERT_EQUAL( true, aPolyline3->IsCustom() ); + aPointsList = aPolyline3->GetPoints( 0 ); + + CPPUNIT_ASSERT_EQUAL( HYDROData_PolylineXY::SECTION_SPLINE, aPolyline3->GetSectionType( 0 ) ); + CPPUNIT_ASSERT_EQUAL( true, aPolyline3->IsClosedSection( 0 ) ); + CPPUNIT_ASSERT_EQUAL( 7, aPointsList.Size() ); + CPPUNIT_ASSERT_EQUAL( gp_XY( 10, 0 ), aPointsList.Value( 1 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( 6.2349, 7.81831 ), aPointsList.Value( 2 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( -2.225, 9.749 ), aPointsList.Value( 3 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( -9.01, 4.339 ), aPointsList.Value( 4 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( -9.01, -4.339 ), aPointsList.Value( 5 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( -2.225, -9.749 ), aPointsList.Value( 6 ) ); + CPPUNIT_ASSERT_EQUAL( gp_XY( 6.2349, -7.81831 ), aPointsList.Value( 7 ) ); + + aDoc->Close(); +} + +void test_HYDROData_PolylineXY::test_merge_refs_630() +{ + Handle(HYDROData_Document) aDoc = HYDROData_Document::Document( 1 ); + + Handle(HYDROData_PolylineXY) aPolyline1 = + Handle(HYDROData_PolylineXY)::DownCast( aDoc->CreateObject( KIND_POLYLINEXY ) ); + Handle(HYDROData_PolylineXY) aPolyline2 = + Handle(HYDROData_PolylineXY)::DownCast( aDoc->CreateObject( KIND_POLYLINEXY ) ); + + aPolyline1->SetName( "test1" ); + aPolyline1->AddSection( "", HYDROData_PolylineXY::SECTION_SPLINE, false ); + aPolyline1->AddPoint( 0, gp_XY( 0, 0 ) ); + aPolyline1->AddPoint( 0, gp_XY( 10, 0 ) ); + aPolyline1->AddPoint( 0, gp_XY( 10, 10 ) ); + aPolyline1->Update(); + + aPolyline2->SetName( "test2" ); + aPolyline2->AddSection( "", HYDROData_PolylineXY::SECTION_SPLINE, false ); + aPolyline2->AddPoint( 0, gp_XY( 20, 20 ) ); + aPolyline2->AddPoint( 0, gp_XY( 30, 20 ) ); + aPolyline2->AddPoint( 0, gp_XY( 30, 0 ) ); + aPolyline2->Update(); + + HYDROData_PolylineOperator anOp; + HYDROData_SequenceOfObjects aPolylines; + aPolylines.Append( aPolyline1 ); + aPolylines.Append( aPolyline2 ); + CPPUNIT_ASSERT_EQUAL( true, anOp.Merge( aDoc, "", aPolylines, true, 1E-3 ) ); + //TODO: check false in merge + + HYDROData_Iterator anIt( aDoc, KIND_POLYLINEXY ); + CPPUNIT_ASSERT_EQUAL( true, anIt.More() ); + CPPUNIT_ASSERT_EQUAL( QString( "test1" ), anIt.Current()->GetName() ); + anIt.Next(); + CPPUNIT_ASSERT_EQUAL( true, anIt.More() ); + CPPUNIT_ASSERT_EQUAL( QString( "test2" ), anIt.Current()->GetName() ); + anIt.Next(); + CPPUNIT_ASSERT_EQUAL( true, anIt.More() ); + CPPUNIT_ASSERT_EQUAL( QString( "merged_1" ), anIt.Current()->GetName() ); + Handle(HYDROData_PolylineXY) aMerged = + Handle(HYDROData_PolylineXY)::DownCast( anIt.Current() ); + anIt.Next(); + CPPUNIT_ASSERT_EQUAL( false, anIt.More() ); + + TestViewer::show( aMerged->GetShape(), 0, true, "Merge_Polylines" ); + CPPUNIT_ASSERT_IMAGES + + aDoc->Close(); +} + +void test_HYDROData_PolylineXY::test_split_straight_refs_634() +{ + Handle(HYDROData_Document) aDoc = HYDROData_Document::Document( 1 ); + + Handle(HYDROData_PolylineXY) aPolyline1 = + Handle(HYDROData_PolylineXY)::DownCast( aDoc->CreateObject( KIND_POLYLINEXY ) ); + Handle(HYDROData_PolylineXY) aPolyline2 = + Handle(HYDROData_PolylineXY)::DownCast( aDoc->CreateObject( KIND_POLYLINEXY ) ); + + aPolyline1->SetName( "test1" ); + aPolyline1->AddSection( "", HYDROData_PolylineXY::SECTION_POLYLINE, false ); + aPolyline1->AddPoint( 0, gp_XY( 0, 0 ) ); + aPolyline1->AddPoint( 0, gp_XY( 10, 20 ) ); + aPolyline1->AddPoint( 0, gp_XY( 30, 10 ) ); + aPolyline1->Update(); + + aPolyline2->SetName( "test2" ); + aPolyline2->AddSection( "", HYDROData_PolylineXY::SECTION_SPLINE, false ); + aPolyline2->AddPoint( 0, gp_XY( 0, 30 ) ); + aPolyline2->AddPoint( 0, gp_XY( 10, 10 ) ); + aPolyline2->AddPoint( 0, gp_XY( 30, 20 ) ); + aPolyline2->Update(); + + HYDROData_PolylineOperator anOp; + HYDROData_SequenceOfObjects aPolylines; + aPolylines.Append( aPolyline1 ); + aPolylines.Append( aPolyline2 ); + bool isIntersected; + CPPUNIT_ASSERT_EQUAL( true, anOp.Split( aDoc, aPolyline1, aPolyline2, 1E-3, isIntersected ) ); + CPPUNIT_ASSERT_EQUAL( true, isIntersected ); + + HYDROData_Iterator anIt( aDoc, KIND_POLYLINEXY ); + CPPUNIT_ASSERT_EQUAL( true, anIt.More() ); + CPPUNIT_ASSERT_EQUAL( QString( "test1" ), anIt.Current()->GetName() ); + anIt.Next(); + CPPUNIT_ASSERT_EQUAL( true, anIt.More() ); + CPPUNIT_ASSERT_EQUAL( QString( "test2" ), anIt.Current()->GetName() ); + anIt.Next(); + + CPPUNIT_ASSERT_EQUAL( true, anIt.More() ); + CPPUNIT_ASSERT_EQUAL( QString( "test1_1" ), anIt.Current()->GetName() ); + Handle(HYDROData_PolylineXY) aPart1 = + Handle(HYDROData_PolylineXY)::DownCast( anIt.Current() ); + CPPUNIT_ASSERT_EQUAL( HYDROData_PolylineXY::SECTION_POLYLINE, aPart1->GetSectionType( 0 ) ); + anIt.Next(); + + CPPUNIT_ASSERT_EQUAL( true, anIt.More() ); + CPPUNIT_ASSERT_EQUAL( QString( "test1_2" ), anIt.Current()->GetName() ); + Handle(HYDROData_PolylineXY) aPart2 = + Handle(HYDROData_PolylineXY)::DownCast( anIt.Current() ); + CPPUNIT_ASSERT_EQUAL( HYDROData_PolylineXY::SECTION_POLYLINE, aPart2->GetSectionType( 0 ) ); + anIt.Next(); + + CPPUNIT_ASSERT_EQUAL( true, anIt.More() ); + CPPUNIT_ASSERT_EQUAL( QString( "test1_3" ), anIt.Current()->GetName() ); + Handle(HYDROData_PolylineXY) aPart3 = + Handle(HYDROData_PolylineXY)::DownCast( anIt.Current() ); + CPPUNIT_ASSERT_EQUAL( HYDROData_PolylineXY::SECTION_POLYLINE, aPart3->GetSectionType( 0 ) ); + anIt.Next(); + + CPPUNIT_ASSERT_EQUAL( false, anIt.More() ); + + TestViewer::show( aPart1->GetShape(), 0, true, "Split_Straight" ); + TestViewer::show( aPart2->GetShape(), 0, true, Qt::red ); + TestViewer::show( aPart3->GetShape(), 0, true, Qt::green ); + TestViewer::show( aPolyline2->GetShape(), 0, true, Qt::darkGreen ); + CPPUNIT_ASSERT_IMAGES + + aDoc->Close(); +}