Salome HOME
Bug fix: CellModel - POLYL cell model was buggy (missing 'break' in a switch())
[tools/medcoupling.git] / src / MEDCoupling / Test / MEDCouplingBasicsTest1.cxx
index 5637740665f28e0598e9ac20008cc642c4909691..fc06ef5a3b80687316bed8a358b63bb8b4ea60c7 100644 (file)
@@ -1346,15 +1346,15 @@ void MEDCouplingBasicsTest1::testMergeMeshOnSameCoords1()
   CPPUNIT_ASSERT_EQUAL(15,m4->getNumberOfCells());
   const int cells1[5]={0,1,2,3,4};
   MEDCouplingPointSet *m1_1=m4->buildPartOfMySelf(cells1,cells1+5,true);
-  m1_1->setName(m1->getName());
+  m1_1->setName(m1->getName().c_str());
   CPPUNIT_ASSERT(m1->isEqual(m1_1,1e-12));
   const int cells2[5]={5,6,7,8,9};
   MEDCouplingPointSet *m2_1=m4->buildPartOfMySelf(cells2,cells2+5,true);
-  m2_1->setName(m2->getName());
+  m2_1->setName(m2->getName().c_str());
   CPPUNIT_ASSERT(m2->isEqual(m2_1,1e-12));
   const int cells3[5]={10,11,12,13,14};
   MEDCouplingPointSet *m3_1=m4->buildPartOfMySelf(cells3,cells3+5,true);
-  m3_1->setName(m3->getName());
+  m3_1->setName(m3->getName().c_str());
   CPPUNIT_ASSERT(m3->isEqual(m3_1,1e-12));
   m1_1->decrRef(); m2_1->decrRef(); m3_1->decrRef();
   //
@@ -2012,7 +2012,7 @@ void MEDCouplingBasicsTest1::testSplitByType()
   CPPUNIT_ASSERT_EQUAL(3,(int)v.size());
   std::vector<const MEDCouplingUMesh *> v2(v.begin(),v.end());
   MEDCouplingUMesh *m2=MEDCouplingUMesh::MergeUMeshesOnSameCoords(v2);
-  m2->setName(m1->getName());
+  m2->setName(m1->getName().c_str());
   CPPUNIT_ASSERT(m1->isEqual(m2,1.e-12));
   for(std::vector<MEDCouplingUMesh *>::const_iterator iter=v.begin();iter!=v.end();iter++)
     (*iter)->decrRef();
@@ -2162,25 +2162,24 @@ void MEDCouplingBasicsTest1::testGetCellsContainingPoint()
 {
   MEDCouplingUMesh *targetMesh=build2DTargetMesh_1();
   double pos[12]={0.,0.,0.4,0.4,0.,0.4,0.1,0.1,0.25,0.,0.65,0.};
-  std::vector<int> t1,t2;
+  MEDCouplingAutoRefCountObjectPtr<DataArrayInt> t1,t2;
   //2D basic
   targetMesh->getCellsContainingPoints(pos,6,1e-12,t1,t2);
-  CPPUNIT_ASSERT_EQUAL(6,(int)t1.size());
-  CPPUNIT_ASSERT_EQUAL(7,(int)t2.size());
+  CPPUNIT_ASSERT_EQUAL(6,(int)t1->getNbOfElems());
+  CPPUNIT_ASSERT_EQUAL(7,(int)t2->getNbOfElems());
   const int expectedValues1[6]={0,4,3,0,1,2};
   const int expectedValues2[7]={0,1,2,3,4,5,6};
-  CPPUNIT_ASSERT(std::equal(t1.begin(),t1.end(),expectedValues1));
-  CPPUNIT_ASSERT(std::equal(t2.begin(),t2.end(),expectedValues2));
+  CPPUNIT_ASSERT(std::equal(t1->begin(),t1->end(),expectedValues1));
+  CPPUNIT_ASSERT(std::equal(t2->begin(),t2->end(),expectedValues2));
   //2D with no help of bounding box.
   double center[2]={0.2,0.2};
   MEDCouplingPointSet::Rotate2DAlg(center,0.78539816339744830962,6,pos);
   targetMesh->rotate(center,0,0.78539816339744830962);
-  t1.clear(); t2.clear();
   targetMesh->getCellsContainingPoints(pos,6,1e-12,t1,t2);
-  CPPUNIT_ASSERT_EQUAL(6,(int)t1.size());
-  CPPUNIT_ASSERT_EQUAL(7,(int)t2.size());
-  CPPUNIT_ASSERT(std::equal(t1.begin(),t1.end(),expectedValues1));
-  CPPUNIT_ASSERT(std::equal(t2.begin(),t2.end(),expectedValues2));
+  CPPUNIT_ASSERT_EQUAL(6,(int)t1->getNbOfElems());
+  CPPUNIT_ASSERT_EQUAL(7,(int)t2->getNbOfElems());
+  CPPUNIT_ASSERT(std::equal(t1->begin(),t1->end(),expectedValues1));
+  CPPUNIT_ASSERT(std::equal(t2->begin(),t2->end(),expectedValues2));
   //2D outside
   const double pos1bis[2]={-0.3303300858899107,-0.11819805153394641};
   CPPUNIT_ASSERT_EQUAL(-1,targetMesh->getCellContainingPoint(pos1bis,1e-12));
@@ -2188,17 +2187,18 @@ void MEDCouplingBasicsTest1::testGetCellsContainingPoint()
   //test limits 2D
   targetMesh=build2DTargetMesh_1();
   const double pos2[2]={0.2,-0.05};
-  t1.clear();
-  targetMesh->getCellsContainingPoint(pos2,1e-12,t1);
-  CPPUNIT_ASSERT_EQUAL(2,(int)t1.size());
+  std::vector<int> t11;
+  t11.clear();
+  targetMesh->getCellsContainingPoint(pos2,1e-12,t11);
+  CPPUNIT_ASSERT_EQUAL(2,(int)t11.size());
   const int expectedValues3[2]={0,1};
-  CPPUNIT_ASSERT(std::equal(t1.begin(),t1.end(),expectedValues3));
+  CPPUNIT_ASSERT(std::equal(t11.begin(),t11.end(),expectedValues3));
   const double pos3[2]={0.2,0.2};
-  t1.clear();
-  targetMesh->getCellsContainingPoint(pos3,1e-12,t1);
-  CPPUNIT_ASSERT_EQUAL(5,(int)t1.size());
+  t11.clear();
+  targetMesh->getCellsContainingPoint(pos3,1e-12,t11);
+  CPPUNIT_ASSERT_EQUAL(5,(int)t11.size());
   const int expectedValues4[5]={0,1,2,3,4};
-  CPPUNIT_ASSERT(std::equal(t1.begin(),t1.end(),expectedValues4));
+  CPPUNIT_ASSERT(std::equal(t11.begin(),t11.end(),expectedValues4));
   CPPUNIT_ASSERT_EQUAL(0,targetMesh->getCellContainingPoint(pos3,1e-12));
   targetMesh->decrRef();
   //3D
@@ -2206,17 +2206,17 @@ void MEDCouplingBasicsTest1::testGetCellsContainingPoint()
   const double pos4[3]={25.,25.,25.};
   CPPUNIT_ASSERT_EQUAL(0,targetMesh->getCellContainingPoint(pos4,1e-12));
   const double pos5[3]={50.,50.,50.};
-  t1.clear();
-  targetMesh->getCellsContainingPoint(pos5,1e-12,t1);
-  CPPUNIT_ASSERT_EQUAL(8,(int)t1.size());
+  t11.clear();
+  targetMesh->getCellsContainingPoint(pos5,1e-12,t11);
+  CPPUNIT_ASSERT_EQUAL(8,(int)t11.size());
   const int expectedValues5[8]={0,1,2,3,4,5,6,7};
-  CPPUNIT_ASSERT(std::equal(t1.begin(),t1.end(),expectedValues5));
+  CPPUNIT_ASSERT(std::equal(t11.begin(),t11.end(),expectedValues5));
   const double pos6[3]={0., 50., 0.};
-  t1.clear();
-  targetMesh->getCellsContainingPoint(pos6,1e-12,t1);
-  CPPUNIT_ASSERT_EQUAL(2,(int)t1.size());
+  t11.clear();
+  targetMesh->getCellsContainingPoint(pos6,1e-12,t11);
+  CPPUNIT_ASSERT_EQUAL(2,(int)t11.size());
   const int expectedValues6[2]={0,2};
-  CPPUNIT_ASSERT(std::equal(t1.begin(),t1.end(),expectedValues6));
+  CPPUNIT_ASSERT(std::equal(t11.begin(),t11.end(),expectedValues6));
   //3D outside
   const double pos7[3]={-1.0,-1.0,0.};
   CPPUNIT_ASSERT_EQUAL(-1,targetMesh->getCellContainingPoint(pos7,1e-12));
@@ -2458,11 +2458,9 @@ void MEDCouplingBasicsTest1::testCMesh2()
   CPPUNIT_ASSERT_EQUAL(3,(int) dis.size());
   CPPUNIT_ASSERT_EQUAL((int) INTERP_KERNEL::NORM_HEXA8,dis[0]);
   CPPUNIT_ASSERT_EQUAL(27,dis[1]);
-  CPPUNIT_ASSERT_EQUAL(0,dis[2]);
+  CPPUNIT_ASSERT_EQUAL(-1,dis[2]);
   
   std::vector<const DataArrayInt *> idsPerType;
-  CPPUNIT_ASSERT_THROW(mesh1->checkTypeConsistencyAndContig(dis, idsPerType),INTERP_KERNEL::Exception);
-  dis[2]=-1;
   CPPUNIT_ASSERT(!(mesh1->checkTypeConsistencyAndContig(dis, idsPerType)));
   dis[0]=(int) INTERP_KERNEL::NORM_QUAD4;
   CPPUNIT_ASSERT_THROW(mesh1->checkTypeConsistencyAndContig(dis, idsPerType),INTERP_KERNEL::Exception);
@@ -2483,7 +2481,7 @@ void MEDCouplingBasicsTest1::testCMesh2()
   mesh1->splitProfilePerType(ids,code,idsInPflPerType,pfls);
   CPPUNIT_ASSERT_EQUAL(3,(int)code.size());
   CPPUNIT_ASSERT_EQUAL((int) INTERP_KERNEL::NORM_HEXA8,code[0]);
-  CPPUNIT_ASSERT_EQUAL(27,code[1]);
+  CPPUNIT_ASSERT_EQUAL(10,code[1]);
   CPPUNIT_ASSERT_EQUAL(0,code[2]);
   CPPUNIT_ASSERT_EQUAL(1,(int)idsInPflPerType.size());
   CPPUNIT_ASSERT_EQUAL(1,(int)pfls.size());
@@ -2506,8 +2504,8 @@ void MEDCouplingBasicsTest1::testCMesh2()
   
   int cells2[2]={25,26};
   DataArrayInt* arr1;
-  MEDCouplingUMesh *partMesh2=
-    dynamic_cast<MEDCouplingUMesh *>(mesh1->buildPartAndReduceNodes(cells2,cells2+2,arr1));
+  MEDCouplingCMesh *partMesh2=
+    dynamic_cast<MEDCouplingCMesh *>(mesh1->buildPartAndReduceNodes(cells2,cells2+2,arr1));
   CPPUNIT_ASSERT(partMesh2);
   CPPUNIT_ASSERT_EQUAL(2,partMesh2->getNumberOfCellsWithType(INTERP_KERNEL::NORM_HEXA8));
   CPPUNIT_ASSERT_EQUAL(12,partMesh2->getNumberOfNodes());
@@ -2668,7 +2666,7 @@ void MEDCouplingBasicsTest1::testChangeSpaceDimension()
   CPPUNIT_ASSERT_EQUAL(3,m1->getSpaceDimension());
   m1->changeSpaceDimension(2);
   CPPUNIT_ASSERT_EQUAL(2,m1->getSpaceDimension());
-  m1->setName(m2->getName());
+  m1->setName(m2->getName().c_str());
   CPPUNIT_ASSERT(m1->isEqual(m2,1e-12));
   m1->changeSpaceDimension(3);
   CPPUNIT_ASSERT_EQUAL(3,m1->getSpaceDimension());