Salome HOME
Correction for hydro_test
[modules/hydro.git] / src / HYDRO_tests / test_HYDROData_ShapeFile.cxx
index e0369578ef897484ed4439ba8ce1bec0f607c839..de1a1289958d5250b2ea130596f7313b6026b6cf 100644 (file)
@@ -21,7 +21,7 @@
 #include <QStringList>
 #include <vector>
 
-const QString REF_PATH = qgetenv( "HYDRO_REFERENCE_DATA" );
+extern QString REF_DATA_PATH;
 
 bool test_HYDROData_ShapeFile::compare_two_files(const QString& File1, const QString& File2)
 {
@@ -48,7 +48,7 @@ bool test_HYDROData_ShapeFile::compare_two_files(const QString& File1, const QSt
 
 void test_HYDROData_ShapeFile::test_openDbf()
 {
-  QString aDBFPath = REF_PATH + "/cyprus_natural.dbf";
+  QString aDBFPath = REF_DATA_PATH + "/cyprus_natural.dbf";
   HYDROData_ShapeFile aSHPFile;
   bool Stat = aSHPFile.DBF_OpenDBF(aDBFPath);
   CPPUNIT_ASSERT_EQUAL( true, Stat );  
@@ -57,7 +57,7 @@ void test_HYDROData_ShapeFile::test_openDbf()
 
 void test_HYDROData_ShapeFile::test_NbFieldsDbf()
 {
-  QString aDBFPath = REF_PATH + "/cyprus_natural.dbf";
+  QString aDBFPath = REF_DATA_PATH + "/cyprus_natural.dbf";
   HYDROData_ShapeFile aSHPFile;
   CPPUNIT_ASSERT_EQUAL(true, aSHPFile.DBF_OpenDBF(aDBFPath));
   int NbF = aSHPFile.DBF_GetNbFields();
@@ -67,7 +67,7 @@ void test_HYDROData_ShapeFile::test_NbFieldsDbf()
 
 void test_HYDROData_ShapeFile::test_FieldListDbf()
 {
-  QString aDBFPath = REF_PATH + "/cyprus_natural.dbf";
+  QString aDBFPath = REF_DATA_PATH + "/cyprus_natural.dbf";
   HYDROData_ShapeFile aSHPFile;
   CPPUNIT_ASSERT_EQUAL(true, aSHPFile.DBF_OpenDBF(aDBFPath));
 
@@ -79,7 +79,7 @@ void test_HYDROData_ShapeFile::test_FieldListDbf()
 
 void test_HYDROData_ShapeFile::test_FieldTypeListDbf()
 {
-  QString aDBFPath = REF_PATH + "/cyprus_natural.dbf";
+  QString aDBFPath = REF_DATA_PATH + "/cyprus_natural.dbf";
   HYDROData_ShapeFile aSHPFile;
   CPPUNIT_ASSERT_EQUAL(true, aSHPFile.DBF_OpenDBF(aDBFPath));
 
@@ -92,7 +92,7 @@ void test_HYDROData_ShapeFile::test_FieldTypeListDbf()
 
 void test_HYDROData_ShapeFile::test_NbRecordsDbf()
 {
-  QString aDBFPath = REF_PATH + "/cyprus_natural.dbf";
+  QString aDBFPath = REF_DATA_PATH + "/cyprus_natural.dbf";
   HYDROData_ShapeFile aSHPFile;
   CPPUNIT_ASSERT_EQUAL(true, aSHPFile.DBF_OpenDBF(aDBFPath));
   int NbR = aSHPFile.DBF_GetNbRecords();
@@ -103,7 +103,7 @@ void test_HYDROData_ShapeFile::test_NbRecordsDbf()
 void test_HYDROData_ShapeFile::test_GetAttrListIndex()
 {
   { //cyprus_natural
-    QString aDBFPath = REF_PATH + "/cyprus_natural.dbf";
+    QString aDBFPath = REF_DATA_PATH + "/cyprus_natural.dbf";
     HYDROData_ShapeFile aSHPFile;
     CPPUNIT_ASSERT_EQUAL(true, aSHPFile.DBF_OpenDBF(aDBFPath));
     std::vector<HYDROData_ShapeFile::DBF_AttrValue> theAttrV;
@@ -134,7 +134,7 @@ void test_HYDROData_ShapeFile::test_GetAttrListIndex()
     aSHPFile.DBF_CloseDBF();
   }
   { //CLC06
-    QString aDBFPath = REF_PATH + "/CLC06.dbf";
+    QString aDBFPath = REF_DATA_PATH + "/CLC06.dbf";
     HYDROData_ShapeFile aSHPFile;
     CPPUNIT_ASSERT_EQUAL (true, aSHPFile.DBF_OpenDBF(aDBFPath));
     std::vector<HYDROData_ShapeFile::DBF_AttrValue> theAttrV;
@@ -163,8 +163,8 @@ void test_HYDROData_ShapeFile::test_DbfWrite()
 {
   {
     HYDROData_ShapeFile aSHPFile; 
-    QString tempFN = REF_PATH + "/temp_dbf1.dbf";
-    QString refFN = REF_PATH + "/ref_dbf1.dbf";
+    QString tempFN = REF_DATA_PATH + "/temp_dbf1.dbf";
+    QString refFN = REF_DATA_PATH + "/ref_dbf1.dbf";
     std::vector<HYDROData_ShapeFile::DBF_AttrValue> theAttrV;
     HYDROData_ShapeFile::DBF_AttrValue theAttr1;
     theAttr1.myFieldType = HYDROData_ShapeFile::DBF_FieldType_String;
@@ -187,8 +187,8 @@ void test_HYDROData_ShapeFile::test_DbfWrite()
 
   {
     HYDROData_ShapeFile aSHPFile; 
-    QString tempFN = REF_PATH + "/temp_dbf2.dbf";
-    QString refFN = REF_PATH + "/ref_dbf2.dbf";
+    QString tempFN = REF_DATA_PATH + "/temp_dbf2.dbf";
+    QString refFN = REF_DATA_PATH + "/ref_dbf2.dbf";
     std::vector<HYDROData_ShapeFile::DBF_AttrValue> theAttrV;
     HYDROData_ShapeFile::DBF_AttrValue theAttr1;
     theAttr1.myFieldType = HYDROData_ShapeFile::DBF_FieldType_String;
@@ -217,5 +217,27 @@ void test_HYDROData_ShapeFile::test_DbfWrite()
     CPPUNIT_ASSERT_EQUAL( 0, remove (tempFN.toStdString().c_str()));
   }
 
+  {
+    HYDROData_ShapeFile aSHPFile; 
+    QString tempFN = REF_DATA_PATH + "/temp_dbf3.dbf";
+    QString refFN = REF_DATA_PATH + "/ref_dbf3.dbf";
+    std::vector<HYDROData_ShapeFile::DBF_AttrValue> theAttrV;
+    HYDROData_ShapeFile::DBF_AttrValue theAttr1;
+    theAttr1.myFieldType = HYDROData_ShapeFile::DBF_FieldType_Integer;
+    theAttr1.myIsNull = false;
+
+    for (int ii = 0; ii < 100; ii++)
+    {
+      theAttr1.myIntVal = ii;
+      theAttrV.push_back(theAttr1);
+    }
+
+    //
+    CPPUNIT_ASSERT(aSHPFile.DBF_WriteFieldAndValues(tempFN, "test_field_name", HYDROData_ShapeFile::DBF_FieldType_Integer, theAttrV, false));
+
+    CPPUNIT_ASSERT(compare_two_files(tempFN, refFN));
+    CPPUNIT_ASSERT_EQUAL( 0, remove (tempFN.toStdString().c_str()));
+  }
+
 }