X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDCoupling_Swig%2FMEDCouplingRemapperTest.py;h=50157d00b6251da826b9cd5d7bf06e35a8205da5;hb=0d89ead3756a73241e61fc46b60e59104b4be02c;hp=ba5ba6428de3f48e3b263fce123994e59c474a8d;hpb=95cadd9b5d549b9eb20de896f2f4526ba65a1e1a;p=tools%2Fmedcoupling.git diff --git a/src/MEDCoupling_Swig/MEDCouplingRemapperTest.py b/src/MEDCoupling_Swig/MEDCouplingRemapperTest.py index ba5ba6428..50157d00b 100644 --- a/src/MEDCoupling_Swig/MEDCouplingRemapperTest.py +++ b/src/MEDCoupling_Swig/MEDCouplingRemapperTest.py @@ -809,7 +809,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): mExp0=csr_matrix((data,(row,col)),shape=(4,11)) # compute diff and check diff=abs(m-mExp0) - self.assertAlmostEqual(diff.max(),0.,14) + self.assertAlmostEqual(diff.sum(),0.,14) ## full specific case 1D where target=source rem=MEDCouplingRemapper() rem.setIntersectionType(PointLocator) @@ -820,7 +820,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): # expected matrix mExp1=identity(11) diff=abs(m-mExp1) - self.assertAlmostEqual(diff.max(),0.,14) + self.assertAlmostEqual(diff.sum(),0.,14) ## case where some points in target are not in source arrT=DataArrayDouble([-0.2,0.1,1.7,5.5,10.3]) mT=MEDCouplingCMesh() ; mT.setCoords(arrT) @@ -834,7 +834,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): data=array([0.9,0.1,0.3,0.7,0.5,0.5]) mExp2=csr_matrix((data,(row,col)),shape=(5,11)) diff=abs(m-mExp2) - self.assertAlmostEqual(diff.max(),0.,14) + self.assertAlmostEqual(diff.sum(),0.,14) ## basic case 2D Curve arrS=DataArrayInt.Range(0,11,1).convertToDblArr() arrT=DataArrayDouble([0.1,1.7,5.5,9.6]) @@ -851,7 +851,48 @@ class MEDCouplingBasicsTest(unittest.TestCase): rowSum=m.sum(axis=1) m=diags(array(1/rowSum.transpose()),[0])*m diff=abs(m-mExp0) - self.assertAlmostEqual(diff.max(),0.,14) + self.assertAlmostEqual(diff.sum(),0.,14) + pass + + def test3D2Dand2D3DPointLocator1(self): + """ Non regression test solving SIGSEGV when using 3D<->3Dsurf pointlocator.""" + arrX=DataArrayDouble([0,1,2]) + arrY=DataArrayDouble([0,1]) + arrZ=DataArrayDouble([0,1]) + ms=MEDCouplingCMesh() ; ms.setCoords(arrX,arrY,arrZ) + ms=ms.buildUnstructured() ; ms.setName("source") + # + mt=MEDCouplingUMesh("target",2) ; mt.allocateCells() + mt.insertNextCell(NORM_TRI3,[0,4,6]) + mt.insertNextCell(NORM_TRI3,[1,5,7]) + mt.setCoords(ms.getCoords()[:]) + mt.zipCoords() + # + rem=MEDCouplingRemapper() + rem.setIntersectionType(PointLocator) + rem.prepare(ms,mt,"P0P0") + self.assertEqual(rem.getCrudeMatrix(),[{0: 1.0}, {1: 1.0}]) + rem2=MEDCouplingRemapper() + rem2.setIntersectionType(PointLocator) + rem2.prepare(mt,ms,"P0P0") # reverse mt<->ms + self.assertEqual(rem2.getCrudeMatrix(),[{0: 1.0}, {1: 1.0}]) + pass + + def test2D1Dand1D2DPointLocator1(self): + arrX=DataArrayDouble([0,1,2]) + arrY=DataArrayDouble([0,1]) + ms=MEDCouplingCMesh() ; ms.setCoords(arrX,arrY) ; ms=ms.buildUnstructured() + mt=MEDCouplingUMesh("target",1) ; mt.setCoords(ms.getCoords()[:]) + mt.allocateCells() + mt.insertNextCell(NORM_SEG2,[0,4]) ; mt.insertNextCell(NORM_SEG2,[1,5]) + rem=MEDCouplingRemapper() + rem.setIntersectionType(PointLocator) + rem.prepare(ms,mt,"P0P0") + self.assertEqual(rem.getCrudeMatrix(),[{0:1.},{1:1.}]) + rem=MEDCouplingRemapper() + rem.setIntersectionType(PointLocator) + rem.prepare(mt,ms,"P0P0") + self.assertEqual(rem.getCrudeMatrix(),[{0:1.},{1:1.}]) pass def build2DSourceMesh_1(self):