From 6bf853653225dfdfb49486e91fe5e79ad1c82440 Mon Sep 17 00:00:00 2001 From: asl Date: Mon, 7 Dec 2015 08:57:21 +0300 Subject: [PATCH] refs #751: automatic test for bug --- src/HYDRO_tests/reference_data/Channel.png | Bin 7698 -> 0 bytes src/HYDRO_tests/test_HYDROData_Channel.cxx | 57 +++++++++++++++------ src/HYDRO_tests/test_HYDROData_Channel.h | 4 +- 3 files changed, 42 insertions(+), 19 deletions(-) delete mode 100644 src/HYDRO_tests/reference_data/Channel.png diff --git a/src/HYDRO_tests/reference_data/Channel.png b/src/HYDRO_tests/reference_data/Channel.png deleted file mode 100644 index f30b4949e76e848c7a2675073564e908ab052798..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7698 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 wUj6|el4R52A( #include #include +#include #include #include @@ -34,35 +35,55 @@ TopoDS_Edge Spline( const QList& theXYList, bool isClosed = false ); -void test_HYDROData_Channel::test_2d_prs() +void test_HYDROData_Channel::test_channel_prs_refs_751() { Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(1); - Handle(HYDROData_PolylineXY) aPolyline2d = + Handle(HYDROData_PolylineXY) Polyline_2 = Handle(HYDROData_PolylineXY)::DownCast( aDoc->CreateObject( KIND_POLYLINEXY ) ); - aPolyline2d->SetName( "polyline2d_1" ); - aPolyline2d->AddSection( "", HYDROData_IPolyline::SECTION_SPLINE, false ); + Polyline_2->SetName( "polyline2d_1" ); + Polyline_2->AddSection( "", HYDROData_IPolyline::SECTION_SPLINE, false ); + Polyline_2->AddPoint( 0, gp_XY( -192.40, 397.86 ) ); + Polyline_2->AddPoint( 0, gp_XY( -53.44, 293.35 ) ); + Polyline_2->AddPoint( 0, gp_XY( 102.14, 225.65 ) ); + Polyline_2->AddPoint( 0, gp_XY( 251.78, 108.08 ) ); + Polyline_2->Update(); + + CPPUNIT_ASSERT_EQUAL( false, (bool)Polyline_2->GetShape().IsNull() ); + + Handle(HYDROData_Profile) aProfile0 = + Handle(HYDROData_Profile)::DownCast( aDoc->CreateObject( KIND_PROFILE ) ); + aProfile0->SetName( "profile_0" ); + + HYDROData_IPolyline::PointsList aPoints; + aPoints.Append( gp_XY( 0.0, 0.0 ) ); + aPoints.Append( gp_XY( 1.0, 0.0 ) ); + aProfile0->GetProfileUZ( true ); + aProfile0->SetParametricPoints( aPoints ); + aProfile0->Update(); 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 = Wire( aCoords, false ); - aPolyline2d->SetShape( aWire ); - aPolyline3d->SetTopShape( aWire ); - aPolyline3d->SetShape3D( aWire ); + aPolyline3d->SetPolylineXY( Polyline_2 ); + aPolyline3d->SetProfileUZ( aProfile0->GetProfileUZ() ); + aPolyline3d->Update(); Handle(HYDROData_Profile) aProfile = Handle(HYDROData_Profile)::DownCast( aDoc->CreateObject( KIND_PROFILE ) ); aProfile->SetName( "profile_1" ); - QList aCoordsPr = QList() << 0.0 << 0.1 << 0.5 << 0.0 << 1.0 << 0.1; - TopoDS_Wire aWirePr = Wire( aCoordsPr, false ); - aProfile->SetTopShape( aWirePr ); - aProfile->SetShape3D( aWirePr ); + aPoints.Clear(); + aPoints.Append( gp_XY( 0.0, 0.1 ) ); + aPoints.Append( gp_XY( 12.5, 0.0 ) ); + aPoints.Append( gp_XY( 25.0, 0.1 ) ); + aProfile->GetProfileUZ( true ); + aProfile->SetParametricPoints( aPoints ); + aProfile->GetProfileUZ()->SetSectionType( 0, HYDROData_IPolyline::SECTION_SPLINE ); + aProfile->Update(); + CPPUNIT_ASSERT_EQUAL( false, (bool)aProfile->GetShape3D().IsNull() ); + CPPUNIT_ASSERT_EQUAL( false, (bool)aPolyline3d->GetShape3D().IsNull() ); Handle(HYDROData_Channel) aChannel = Handle(HYDROData_Channel)::DownCast( aDoc->CreateObject( KIND_CHANNEL ) ); @@ -77,8 +98,10 @@ void test_HYDROData_Channel::test_2d_prs() TestViewer::show( aChannel->GetTopShape(), AIS_Shaded, true, "Channel" ); TestViewer::show( aChannel->GetLeftShape(), AIS_WireFrame, true, Qt::red ); TestViewer::show( aChannel->GetRightShape(), AIS_WireFrame, true, Qt::red ); - //TestViewer::show( aWire, AIS_Shaded, true, "Channel" ); + Handle(HYDROGUI_Polyline) Polyline_Prs = new HYDROGUI_Polyline( aPolyline3d->GetShape3D() ); + Polyline_Prs->SetColor( Quantity_NOC_WHITE ); + TestViewer::show( Polyline_Prs, AIS_WireFrame, 0, true, "" ); CPPUNIT_ASSERT_IMAGES - + aDoc->Close(); } diff --git a/src/HYDRO_tests/test_HYDROData_Channel.h b/src/HYDRO_tests/test_HYDROData_Channel.h index c4e22a89..0d66258f 100644 --- a/src/HYDRO_tests/test_HYDROData_Channel.h +++ b/src/HYDRO_tests/test_HYDROData_Channel.h @@ -20,13 +20,13 @@ class test_HYDROData_Channel : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE( test_HYDROData_Channel ); - CPPUNIT_TEST( test_2d_prs ); + CPPUNIT_TEST( test_channel_prs_refs_751 ); CPPUNIT_TEST_SUITE_END(); private: public: - void test_2d_prs(); + void test_channel_prs_refs_751(); }; CPPUNIT_TEST_SUITE_REGISTRATION( test_HYDROData_Channel ); -- 2.39.2