Salome HOME
replace abs by fabs for doubles
[modules/hydro.git] / src / HYDRO_tests / test_HYDROData_PolylineXY.cxx
index b804b1abad5b2b81a6518753bd4cb6ace287b316..914097681dc23b405dbba726f8e3f0806a43f7bc 100644 (file)
@@ -29,6 +29,8 @@
 #include <HYDROData_Tool.h>
 #include <HYDROGUI_Shape.h>
 #include <HYDROGUI_Polyline.h>
+#include <HYDROData_SinusX.h>
+#include <BRep_Builder.hxx>
 
 #include <AIS_DisplayMode.hxx>
 #include <AIS_PointCloud.hxx>
@@ -571,4 +573,53 @@ void test_HYDROData_PolylineXY::test_import_from_xyz()
   TestViewer::show( aPolyXY->GetShape(), 0, false, "Polyline_import_XYZ" );
   TestViewer::show( aPoly3D->GetShape3D(), 0, false, "Polyline_import_XYZ_3D" );
   CPPUNIT_ASSERT_IMAGES
-}
\ No newline at end of file
+}
+
+
+void test_HYDROData_PolylineXY::test_import_from_sx()
+{
+  Handle(HYDROData_Document) aDoc = HYDROData_Document::Document( 1 );
+  TCollection_AsciiString fname = REF_DATA_PATH.toLatin1().data();
+  fname += "/polylines_sx.sx";
+
+  HYDROData_SinusX aSinusXImporter;
+  NCollection_Sequence<Handle(HYDROData_Entity)> importedEntities;
+  //bool stat = aSinusXImporter.Import(QString(fname.ToCString()), aDoc, importedEntities);
+  bool ParseStat = aSinusXImporter.OpenAndParse(QString(fname.ToCString()));
+  CPPUNIT_ASSERT (ParseStat);
+  aSinusXImporter.Import(aDoc, importedEntities, NULL);
+  CPPUNIT_ASSERT_EQUAL (importedEntities.Size(), 9);
+
+  Handle(HYDROData_PolylineXY) aPolyXY1 = Handle(HYDROData_PolylineXY)::DownCast(importedEntities(1));   
+  Handle(HYDROData_PolylineXY) aPolyXY2 = Handle(HYDROData_PolylineXY)::DownCast(importedEntities(4));  
+  Handle(HYDROData_PolylineXY) aPolyXY3 = Handle(HYDROData_PolylineXY)::DownCast(importedEntities(7));   
+
+  CPPUNIT_ASSERT (!aPolyXY1.IsNull());
+  CPPUNIT_ASSERT (!aPolyXY2.IsNull());
+  CPPUNIT_ASSERT (!aPolyXY3.IsNull());
+
+  aPolyXY1->Update();
+  aPolyXY2->Update();
+  aPolyXY3->Update();
+
+  CPPUNIT_ASSERT_EQUAL (aPolyXY1->GetName(), QString("AXIS"));
+  CPPUNIT_ASSERT_EQUAL (aPolyXY2->GetName(), QString("LB"));
+  CPPUNIT_ASSERT_EQUAL (aPolyXY3->GetName(), QString("RB"));
+
+  TopoDS_Shape sh1 = aPolyXY1->GetShape();
+  TopoDS_Shape sh2 = aPolyXY2->GetShape();
+  TopoDS_Shape sh3 = aPolyXY3->GetShape();
+  CPPUNIT_ASSERT (!sh1.IsNull());
+  CPPUNIT_ASSERT (!sh2.IsNull());
+  CPPUNIT_ASSERT (!sh3.IsNull());
+
+  BRep_Builder BB;
+  TopoDS_Compound cmp;
+  BB.MakeCompound(cmp);
+  BB.Add(cmp, sh1);
+  BB.Add(cmp, sh2);
+  BB.Add(cmp, sh3);
+
+  TestViewer::show( cmp, 0, true, "Polylines_import_SX" );
+  CPPUNIT_ASSERT_IMAGES
+}