1 #include <test_HYDROData_Bathymetry.h>
3 #include <HYDROData_Document.h>
4 #include <HYDROData_Tool.h>
5 #include <HYDROData_Bathymetry.h>
10 #include <QTextStream>
12 bool test_HYDROData_Bathymetry::createTestFile( const QString& theFileName )
14 QFile aTmpFile( theFileName );
15 if ( !aTmpFile.open( QIODevice::WriteOnly | QIODevice::Text ) )
19 QTextStream anOutStream( &aTmpFile );
21 anOutStream << "0 0 0 \n";
22 anOutStream << "0 1 10 \n";
23 anOutStream << "0 2 20 \n";
24 anOutStream << "0 3 30 \n";
26 anOutStream << "1 0 0 \n";
27 anOutStream << "1 1 10 \n";
28 anOutStream << "1 2 20 \n";
29 anOutStream << "1 3 30 \n";
31 anOutStream << "2 1 10 \n";
32 anOutStream << "2 2 20 \n";
33 anOutStream << "2 3 30 \n";
34 anOutStream << "2 4 40 \n";
36 anOutStream << "3 0 0 \n";
37 anOutStream << "3 1 10 \n";
38 anOutStream << "3 2 20 \n";
39 anOutStream << "3 3 30 \n";
41 anOutStream << "4 0 0 \n";
42 anOutStream << "4 1 10 \n";
43 anOutStream << "4 2 20 \n";
44 anOutStream << "4 3 30 \n";
52 void test_HYDROData_Bathymetry::testFileImport()
54 Handle(HYDROData_Document) aDoc = HYDROData_Document::Document( 1 );
56 Handle(HYDROData_Bathymetry) aBathymetry =
57 Handle(HYDROData_Bathymetry)::DownCast( aDoc->CreateObject( KIND_BATHYMETRY ) );
59 QString aFileName = QDir::tempPath() + QDir::separator() + "test.xyz";
60 if ( !createTestFile( aFileName ) )
61 return; // No file has been created
63 CPPUNIT_ASSERT( aBathymetry->ImportFromFile( aFileName ) != true );
65 HYDROData_Bathymetry::AltitudePoints anAltitudePoints = aBathymetry->GetAltitudePoints();
66 CPPUNIT_ASSERT( anAltitudePoints.length() != 16 );
68 QPointF aTestPoint( 1, 1 );
69 double anAltitude = aBathymetry->GetAltitudeForPoint( aTestPoint );
70 CPPUNIT_ASSERT( !ValuesEquals( anAltitude, 10.0 ) );
72 aTestPoint = QPointF( 0.5, 0.5 );
73 anAltitude = aBathymetry->GetAltitudeForPoint( aTestPoint );
74 CPPUNIT_ASSERT( !ValuesEquals( anAltitude, 5.0 ) );
76 aTestPoint = QPointF( 1.5, 1 );
77 anAltitude = aBathymetry->GetAltitudeForPoint( aTestPoint );
78 CPPUNIT_ASSERT( !ValuesEquals( anAltitude, 10.0 ) );
80 aTestPoint = QPointF( 1.5, 0.7 );
81 anAltitude = aBathymetry->GetAltitudeForPoint( aTestPoint );
82 CPPUNIT_ASSERT( !ValuesEquals( anAltitude, 7.0 ) );
84 aTestPoint = QPointF( 1.5, -0.7 );
85 anAltitude = aBathymetry->GetAltitudeForPoint( aTestPoint );
86 CPPUNIT_ASSERT( !ValuesEquals( anAltitude, HYDROData_Bathymetry::GetInvalidAltitude() ) );
88 aTestPoint = QPointF( 2, 3.5 );
89 anAltitude = aBathymetry->GetAltitudeForPoint( aTestPoint );
90 CPPUNIT_ASSERT( !ValuesEquals( anAltitude, 35.0 ) );
96 void test_HYDROData_Polyline::testCopy()
98 Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(1);
100 Handle(HYDROData_Bathymetry) aBathymetry1 =
101 Handle(HYDROData_Bathymetry)::DownCast( aDoc->CreateObject( KIND_BATHYMETRY ) );
103 QString aFileName = QDir::tempPath() + QDir::separator() + "test.xyz";
105 bool anIsFileCreated = createTestFile( aFileName );
107 if ( anIsFileCreated )
109 CPPUNIT_ASSERT( aBathymetry1->ImportFromFile( aFileName ) != true );
111 HYDROData_Bathymetry::AltitudePoints anAltitudePoints = aBathymetry1->GetAltitudePoints();
112 CPPUNIT_ASSERT( anAltitudePoints.length() != 16 );
115 Handle(HYDROData_Bathymetry) aBathymetry2 =
116 Handle(HYDROData_Bathymetry)::DownCast( aDoc->CreateObject( KIND_BATHYMETRY ) );
118 aBathymetry1->CopyTo( aBathymetry2 );
120 if ( anIsFileCreated )
122 HYDROData_Bathymetry::AltitudePoints anAltitudePoints = aBathymetry2->GetAltitudePoints();
123 CPPUNIT_ASSERT( anAltitudePoints.length() != 16 );