Salome HOME
correct selection mode activation
[modules/hydro.git] / src / HYDRO_tests / test_HYDROData_LandCoverMap.cxx
index e05a4cd2ccbd0d1f75f047110af8bf9504de40cf..aa7f4d2b1539b330ebeeeed64d08382366a1072a 100644 (file)
@@ -37,7 +37,7 @@
 #include <Aspect_ColorScale.hxx>
 #include <QString>
 #include <QColor>
-
+#include <QMap>
 #include <BRepTools.hxx>
 #include <BRep_Builder.hxx>
 
@@ -448,6 +448,48 @@ void test_HYDROData_LandCoverMap::test_merge_faces_circles()
     CPPUNIT_ASSERT_IMAGES
     CPPUNIT_ASSERT(aMergedFace.ShapeType() == TopAbs_SHELL);
   }
+
+}
+
+void test_HYDROData_LandCoverMap::test_import_dbf()
+{
+  Handle(HYDROData_Document) aDoc = HYDROData_Document::Document(1);
+
+  Handle(HYDROData_LandCoverMap) aMap =
+    Handle(HYDROData_LandCoverMap)::DownCast( aDoc->CreateObject( KIND_LAND_COVER_MAP ) );
+
+  CPPUNIT_ASSERT_EQUAL( KIND_LAND_COVER_MAP, aMap->GetKind() );
+  QString aFileName = REF_DATA_PATH + "/t1.dbf";
+  QStringList aDBFV;
+  QStringList aST;
+  aDBFV.append("100");
+  aDBFV.append("200");
+  aDBFV.append("300");
+  aST.append("water");
+  aST.append("forest");
+  aST.append("road");
+  // aST.size() == aDBFV.size()!!
+  Handle(HYDROData_PolylineXY) aPolyline =
+    Handle(HYDROData_PolylineXY)::DownCast( aDoc->CreateObject( KIND_POLYLINEXY ) );
+  TopoDS_Wire aWire = BRepBuilderAPI_MakeWire( Spline( QList<double>() << 10 << 40 << 30 << 10 << 40 << 10 << 60 << 10 ) ).Wire();
+  aPolyline->SetShape( aWire );
+  for (int i = 0; i < 3; i++)
+    aMap->Add(aPolyline, "");
+  TopoDS_Face aLC1 = LandCover( QList<double>() << 10 << 10 << 50 << 20 << 30 << 50 << 15 << 30 );
+  CPPUNIT_ASSERT_EQUAL( true, aMap->LocalPartition( aLC1, "test1" ) );
+  
+  CPPUNIT_ASSERT_EQUAL( true, aMap->Split( aPolyline ) );
+  QMap<int, int> Inds;
+  Inds.insert(1, 1);
+  Inds.insert(2, 2);
+  Inds.insert(3, 3);
+  aMap->ImportDBF(aFileName, "TESTFIELD1", aDBFV, aST, Inds);
+  HYDROData_LandCoverMap::Iterator anIt( aMap );
+  CPPUNIT_ASSERT_EQUAL(true, "water" == anIt.StricklerType());
+  anIt.Next();
+  CPPUNIT_ASSERT_EQUAL(true, "forest" == anIt.StricklerType());
+
 }
 
 void test_HYDROData_LandCoverMap::test_land_cover_prs_by_types()
@@ -476,7 +518,7 @@ void test_HYDROData_LandCoverMap::test_land_cover_prs_by_types()
 
   Handle(HYDROGUI_LandCoverMapPrs) aPrs = new HYDROGUI_LandCoverMapPrs( aMap );
   aPrs->SetTable( aTable );
-  TestViewer::show( aPrs, AIS_Shaded, 1, true, "LandCoverMap_PrsByTypes" );
+  TestViewer::show( aPrs, AIS_Shaded, 4, true, "LandCoverMap_PrsByTypes" );
   CPPUNIT_ASSERT_IMAGES
 
   aDoc->Close();
@@ -508,9 +550,11 @@ void test_HYDROData_LandCoverMap::test_land_cover_prs_by_coeff()
 
   Handle(HYDROGUI_LandCoverMapPrs) aPrs = new HYDROGUI_LandCoverMapPrs( aMap );
   aPrs->SetTable( aTable );
-  aPrs->SetColorScale( TestViewer::showColorScale() );
-  TestViewer::show( aPrs, AIS_Shaded, 1, true, "LandCoverMap_PrsByCoeff" );
+  aPrs->SetColorScale( TestViewer::showColorScale( true ) );
+  TestViewer::show( aPrs, AIS_Shaded, 4, true, "LandCoverMap_PrsByCoeff" );
   CPPUNIT_ASSERT_IMAGES
 
+  TestViewer::showColorScale( false );
   aDoc->Close();
 }
+