X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDCoupling_Swig%2FMEDCouplingBasicsTest5.py;h=5929051f46621d2ba1319cca9a4c203e80f1fb2c;hb=080c53bebfe53ac8def9d03e2f1f14093025a6fe;hp=474c6ab7c26b32a40061b492268135329e9fb49d;hpb=08cc6cac32ce9e8f8829836ecf1bca59a0f795c2;p=tools%2Fmedcoupling.git diff --git a/src/MEDCoupling_Swig/MEDCouplingBasicsTest5.py b/src/MEDCoupling_Swig/MEDCouplingBasicsTest5.py index 474c6ab7c..5929051f4 100644 --- a/src/MEDCoupling_Swig/MEDCouplingBasicsTest5.py +++ b/src/MEDCoupling_Swig/MEDCouplingBasicsTest5.py @@ -31,7 +31,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): m=MEDCouplingDataForTest.build2DTargetMesh_1() f=MEDCouplingFieldDouble(ON_CELLS) f.setMesh(m) - arr=DataArrayDouble(5,2) ; arr[:,0]=range(7,12) ; arr[:,1]=100+arr[:,0] + arr = DataArrayDouble(5, 2) ; arr[:, 0] = list(range(7, 12)) ; arr[:, 1] = 100 + arr[:, 0] f.setArray(arr) f.checkConsistencyLight() ff=f[1:-1:2] @@ -61,7 +61,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): #ON_NODES f=MEDCouplingFieldDouble(ON_NODES) f.setMesh(m) - arr=DataArrayDouble(9,2) ; arr[:,0]=range(7,16) ; arr[:,1]=100+arr[:,0] + arr = DataArrayDouble(9, 2) ; arr[:, 0] = list(range(7, 16)) ; arr[:, 1] = 100 + arr[:, 0] f.setArray(arr) f.checkConsistencyLight() ff=f[1:-1:2] @@ -96,7 +96,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): #ON_GAUSS_NE f=MEDCouplingFieldDouble(ON_GAUSS_NE) f.setMesh(m) - arr=DataArrayDouble(18,2) ; arr[:,0]=range(7,25) ; arr[:,1]=100+arr[:,0] + arr = DataArrayDouble(18, 2) ; arr[:, 0] = list(range(7, 25)) ; arr[:, 1] = 100 + arr[:, 0] f.setArray(arr) f.checkConsistencyLight() ff=f[1:-1:2] @@ -130,7 +130,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): f.setGaussLocalizationOnCells([3],[0,0,1,0,1,1,1,0],[1.1,1.1,2.2,2.2,3.,3.],[0.2,0.4,0.4]); f.setGaussLocalizationOnCells([1],[0,0,1,0,1,0],[1.1,1.1,2.2,2.2,3.,3.,4.,4.],[0.1,0.1,0.4,0.4]); f.setGaussLocalizationOnCells([2],[0,0,1,0,1,0],[1.1,1.1,2.2,2.2,3.,3.,4.,4.,5.,5.],[0.1,0.1,0.4,0.3,0.1]); - arr=DataArrayDouble(16,2) ; arr[:,0]=range(7,23) ; arr[:,1]=100+arr[:,0] + arr = DataArrayDouble(16, 2) ; arr[:, 0] = list(range(7, 23)) ; arr[:, 1] = 100 + arr[:, 0] f.setArray(arr) f.checkConsistencyLight() ff=f[1:-1:2] @@ -230,7 +230,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): time_deb = datetime.now() a1=DataArrayDouble(len(d)) b1=DataArrayInt(len(d)) - m1s=[m1[i] for i in xrange(m1.getNumberOfCells())] + m1s = [m1[i] for i in range(m1.getNumberOfCells())] for j,pt in enumerate(d): eter=1e308 fter=-1 @@ -258,7 +258,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): m=MEDCouplingUMesh("mesh",2) m.setCoords(coo) m.allocateCells() - for i in xrange(24): + for i in range(24): m.insertNextCell(NORM_QUAD4,conn[4*i:4*i+4]) pass m.checkConsistency() @@ -288,7 +288,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): d[:,1]*=pi/180. # angle in radian d=d.fromPolarToCart() d+=zeBary - m=MEDCouplingUMesh("quad8",2) ; m.allocateCells() ; m.insertNextCell(NORM_QUAD8,range(8)) ; m.setCoords(d) + m = MEDCouplingUMesh("quad8", 2) ; m.allocateCells() ; m.insertNextCell(NORM_QUAD8, list(range(8))) ; m.setCoords(d) self.assertTrue(m.computeCellCenterOfMass().isEqual(DataArrayDouble(zeBary,1,2),1e-13)) self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),pi*zeRadius*zeRadius,12) tri32D=m.buildDescendingConnectivity()[0][0] ; tri32D.zipCoords() @@ -307,7 +307,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): d[:,1]*=pi/180. # angle in radian d=d.fromPolarToCart() d+=zeBary - m=MEDCouplingUMesh("tri6",2) ; m.allocateCells() ; m.insertNextCell(NORM_TRI6,range(6)) ; m.setCoords(d) + m = MEDCouplingUMesh("tri6", 2) ; m.allocateCells() ; m.insertNextCell(NORM_TRI6, list(range(6))) ; m.setCoords(d) self.assertTrue(m.computeCellCenterOfMass().isEqual(DataArrayDouble(zeBary,1,2),1e-13)) self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),pi*zeRadius*zeRadius,12) # spaceDim=3 TRI6 becomes TRI3 ... for the moment @@ -325,7 +325,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): d[:,1]*=pi/180. # angle in radian d=d.fromPolarToCart() d+=zeBary - m=MEDCouplingUMesh("qpolyg",2) ; m.allocateCells() ; m.insertNextCell(NORM_QPOLYG,range(10)) ; m.setCoords(d) + m = MEDCouplingUMesh("qpolyg", 2) ; m.allocateCells() ; m.insertNextCell(NORM_QPOLYG, list(range(10))) ; m.setCoords(d) self.assertTrue(m.computeCellCenterOfMass().isEqual(DataArrayDouble(zeBary,1,2),1e-13)) self.assertAlmostEqual(float(m.getMeasureField(False).getArray()),pi*zeRadius*zeRadius,12) # spaceDim=3 QPOLYG becomes POLYG ... for the moment @@ -469,7 +469,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): s=slice(18,1,-2) self.assertEqual(DataArray.GetNumberOfItemGivenBESRelative(s),9) self.assertRaises(InterpKernelException,DataArray.GetNumberOfItemGivenBES,s) - self.assertEqual(sum([DataArray.GetNumberOfItemGivenBESRelative(DataArray.GetSlice(s,i,4)) for i in xrange(4)]),DataArray.GetNumberOfItemGivenBESRelative(s)) + self.assertEqual(sum([DataArray.GetNumberOfItemGivenBESRelative(DataArray.GetSlice(s, i, 4)) for i in range(4)]), DataArray.GetNumberOfItemGivenBESRelative(s)) self.assertEqual(DataArray.GetSlice(s,0,4),slice(18,14,-2)) self.assertEqual(DataArray.GetSlice(s,1,4),slice(14,10,-2)) self.assertEqual(DataArray.GetSlice(s,2,4),slice(10,6,-2)) @@ -537,7 +537,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): # maxNbCSN=nbOfCellsSharingNodes.getMaxValue()[0] arr3=DataArrayDouble(f.getMesh().getNumberOfNodes(),f.getArray().getNumberOfComponents()) ; arr3[:]=0. - for i in xrange(1,maxNbCSN+1): + for i in range(1, maxNbCSN + 1): ids=nbOfCellsSharingNodes.findIdsEqual(i) if len(ids)==0: continue @@ -601,7 +601,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): m=MEDCoupling1SGTUMesh("m",NORM_QUAD4) mem_m=m.getHeapMemorySize() m.allocateCells(5) - self.assertIn(m.getHeapMemorySize()-mem_m,xrange(5*4*4,5*4*4+32)) + self.assertIn(m.getHeapMemorySize() - mem_m, list(range(5 * 4 * 4, 5 * 4 * 4 + 32))) self.assertEqual(m.getNodalConnectivity().getNbOfElemAllocated(),20) m.setCoords(um.getCoords()) m.insertNextCell([1,0,6,7]) @@ -1405,7 +1405,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): valuesToTest=f.getValueOnMulti(targetPointCoordsXY); self.assertEqual(196,valuesToTest.getNumberOfTuples()); self.assertEqual(1,valuesToTest.getNumberOfComponents()); - for i in xrange(40): + for i in range(40): self.assertAlmostEqual(targetFieldValsExpected[i],valuesToTest.getIJ(i,0),10) pass fd=f.getDiscretization() @@ -1552,7 +1552,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): # trs=[[0.,0.,-1.],[0.,0.,1.],[1.,0.,0.],[0.,-1.,0.],[-1.,0.,0.],[0.,1.,0.]] for i,t in enumerate(trs): - for j in xrange(64): + for j in range(64): j2=(j//16) ; j1=((j%16)//4) ; j0=(j%4) m11=m1.deepCopy() m11.rotate([0.,0.,0.],[0.,0.,1.],float(j0)*pi/2) @@ -1899,7 +1899,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): m=MEDCouplingUMesh("mesh",2) ; m.setCoords(coo) m.allocateCells() # the cell description is exactly those described in the description of TRI7 in MED file 3.0.7 documentation - m.insertNextCell(NORM_TRI7,range(7)) + m.insertNextCell(NORM_TRI7, list(range(7))) refCoords=[0.,0.,1.,0.,0.,1.,0.5,0.,0.5,0.5,0.,0.5,0.3333333333333333,0.3333333333333333] gaussCoords=[0.3333333333333333,0.3333333333333333,0.470142064105115,0.470142064105115,0.05971587178977,0.470142064105115,0.470142064105115,0.05971587178977,0.101286507323456,0.101286507323456,0.797426985353088,0.101286507323456,0.101286507323456,0.797426985353088] weights=[0.062969590272413,0.062969590272413,0.062969590272413,0.066197076394253,0.066197076394253,0.066197076394253,0.1125] @@ -2204,34 +2204,34 @@ class MEDCouplingBasicsTest5(unittest.TestCase): def testSwigBugOnUnpackingTuplesInDataArray1(self): inp=DataArrayDouble([(1,2,3),(4,5,6),(7,8,9),(10,11,12)]) it=inp.__iter__() - r=it.next() + r = next(it) self.assertRaises(StopIteration,r.__getitem__,4) self.assertEqual(len(r),3) a,b,c=r - r=it.next() + r = next(it) self.assertEqual(len(r),3) d,e,f=r - r=it.next() + r = next(it) self.assertEqual(len(r),3) g,h,i=r - r=it.next() + r = next(it) self.assertEqual(len(r),3) j,k,l=r self.assertTrue(inp.isEqual(DataArrayDouble([a,b,c,d,e,f,g,h,i,j,k,l],4,3),1e-12)) ######## inp=DataArrayInt([(1,2,3),(4,5,6),(7,8,9),(10,11,12)]) it=inp.__iter__() - r=it.next() + r = next(it) self.assertRaises(StopIteration,r.__getitem__,4) self.assertEqual(len(r),3) a,b,c=r - r=it.next() + r = next(it) self.assertEqual(len(r),3) d,e,f=r - r=it.next() + r = next(it) self.assertEqual(len(r),3) g,h,i=r - r=it.next() + r = next(it) self.assertEqual(len(r),3) j,k,l=r self.assertTrue(inp.isEqual(DataArrayInt([a,b,c,d,e,f,g,h,i,j,k,l],4,3))) @@ -2667,7 +2667,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): self.assertTrue(isinstance(g0[0],MEDCouplingCartesianAMRPatchGF)) g1=amr.retrieveGridsAt(1) self.assertEqual(5,len(g1)) - for i in xrange(5): + for i in range(5): self.assertTrue(isinstance(g1[i],MEDCouplingCartesianAMRPatch)) pass pass @@ -3087,7 +3087,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): NORM_SEG2,11,12,NORM_SEG2,12,13, NORM_SEG2,14,15]) cI = DataArrayInt([0,3,7,10,14,18,21,24,27,30]) - coords2 = DataArrayDouble([float(i) for i in range(32)], 16,2) + coords2 = DataArrayDouble([float(i) for i in range(32)], 16, 2) m2.setCoords(coords2); m2.setConnectivity(c, cI); m2.checkConsistency(1.0e-8); @@ -3261,7 +3261,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): def testSwig2DAIGetIdsStrictlyNegative1(self): d=DataArrayInt([4,-5,-1,0,3,99,-7]) - self.assertTrue(d.findIdsStricltyNegative().isEqual(DataArrayInt([1,2,6]))) + self.assertTrue(d.findIdsStrictlyNegative().isEqual(DataArrayInt([1,2,6]))) pass def testSwig2DAIReplaceOneValByInThis1(self): @@ -3310,7 +3310,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): li=[] liExp3D=[(0,0,0),(1,0,0),(2,0,0),(3,0,0),(0,1,0),(1,1,0),(2,1,0),(3,1,0),(0,2,0),(1,2,0),(2,2,0),(3,2,0),(0,0,1),(1,0,1),(2,0,1),(3,0,1),(0,1,1),(1,1,1),(2,1,1),(3,1,1),(0,2,1),(1,2,1),(2,2,1),(3,2,1)] self.assertEqual(24,m.getNumberOfCells()) - for i in xrange(m.getNumberOfCells()): + for i in range(m.getNumberOfCells()): li.append(m.getLocationFromCellId(i)) pass self.assertEqual(liExp3D,li) @@ -3323,7 +3323,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): li=[] liExp2D=[(0,0),(1,0),(2,0),(3,0),(0,1),(1,1),(2,1),(3,1),(0,2),(1,2),(2,2),(3,2)] self.assertEqual(12,m.getNumberOfCells()) - for i in xrange(m.getNumberOfCells()): + for i in range(m.getNumberOfCells()): li.append(m.getLocationFromCellId(i)) pass self.assertEqual(liExp2D,li) @@ -3333,7 +3333,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): arrX=DataArrayDouble(5) ; arrX.iota() m=MEDCouplingCMesh() ; m.setCoords(arrX) self.assertEqual(4,m.getNumberOfCells()) - for i in xrange(m.getNumberOfCells()): + for i in range(m.getNumberOfCells()): self.assertEqual((i,),m.getLocationFromCellId(i)) pass self.assertRaises(InterpKernelException,m.getLocationFromCellId,4) @@ -3349,7 +3349,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): li=[] liExp3D=[(0,0,0),(1,0,0),(2,0,0),(3,0,0),(4,0,0),(0,1,0),(1,1,0),(2,1,0),(3,1,0),(4,1,0),(0,2,0),(1,2,0),(2,2,0),(3,2,0),(4,2,0),(0,3,0),(1,3,0),(2,3,0),(3,3,0),(4,3,0),(0,0,1),(1,0,1),(2,0,1),(3,0,1),(4,0,1),(0,1,1),(1,1,1),(2,1,1),(3,1,1),(4,1,1),(0,2,1),(1,2,1),(2,2,1),(3,2,1),(4,2,1),(0,3,1),(1,3,1),(2,3,1),(3,3,1),(4,3,1),(0,0,2),(1,0,2),(2,0,2),(3,0,2),(4,0,2),(0,1,2),(1,1,2),(2,1,2),(3,1,2),(4,1,2),(0,2,2),(1,2,2),(2,2,2),(3,2,2),(4,2,2),(0,3,2),(1,3,2),(2,3,2),(3,3,2),(4,3,2)] self.assertEqual(60,m.getNumberOfNodes()) - for i in xrange(m.getNumberOfNodes()): + for i in range(m.getNumberOfNodes()): li.append(m.getLocationFromNodeId(i)) pass self.assertEqual(liExp3D,li) @@ -3362,7 +3362,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): li=[] liExp2D=[(0,0),(1,0),(2,0),(3,0),(4,0),(0,1),(1,1),(2,1),(3,1),(4,1),(0,2),(1,2),(2,2),(3,2),(4,2),(0,3),(1,3),(2,3),(3,3),(4,3)] self.assertEqual(20,m.getNumberOfNodes()) - for i in xrange(m.getNumberOfNodes()): + for i in range(m.getNumberOfNodes()): li.append(m.getLocationFromNodeId(i)) pass self.assertEqual(liExp2D,li) @@ -3372,7 +3372,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): arrX=DataArrayDouble(5) ; arrX.iota() m=MEDCouplingCMesh() ; m.setCoords(arrX) self.assertEqual(5,m.getNumberOfNodes()) - for i in xrange(m.getNumberOfNodes()): + for i in range(m.getNumberOfNodes()): self.assertEqual((i,),m.getLocationFromNodeId(i)) pass self.assertRaises(InterpKernelException,m.getLocationFromCellId,5) @@ -3390,7 +3390,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): st0=d.repr() ; st1=str(d) ; st2=d.reprNotTooLong() self.assertNotEqual(st0,st1) # 1001 tuples ( > 1000) -> str(d)==d.reprNotTooLong() self.assertEqual(st1,st2) - self.assertIn(len(st2),xrange(0,1000)) # no more than 1000 characters + self.assertIn(len(st2), list(range(0, 1000))) # no more than 1000 characters ## Now for DataArrayInt d=DataArrayInt(2000) ; d.iota() ; d.rearrange(2) st0=d.repr() ; st1=str(d) ; st2=d.reprNotTooLong() @@ -3401,7 +3401,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): st0=d.repr() ; st1=str(d) ; st2=d.reprNotTooLong() self.assertNotEqual(st0,st1) # 1001 tuples ( > 1000) -> str(d)==d.reprNotTooLong() self.assertEqual(st1,st2) - self.assertIn(len(st2),xrange(0,1000)) # no more than 1000 characters + self.assertIn(len(st2), list(range(0, 1000))) # no more than 1000 characters pass def testExtrudedMeshWithoutZipCoords1(self): @@ -3475,8 +3475,8 @@ class MEDCouplingBasicsTest5(unittest.TestCase): coo=DataArrayDouble([(0,2),(2,0),(6,4),(4,9)]) m=MEDCoupling1SGTUMesh("mesh",NORM_QUAD4) ; m.setCoords(coo) exp3=sqrt(85.) - for delta in xrange(4): - c=[(elt+delta)%4 for elt in xrange(4)] + for delta in range(4): + c = [(elt + delta) % 4 for elt in range(4)] m.setNodalConnectivity(DataArrayInt(c)) self.assertAlmostEqual(m.computeDiameterField().getArray()[0],exp3,12) m2=m.buildUnstructured() ; m2.convertLinearCellsToQuadratic(0) @@ -3493,8 +3493,8 @@ class MEDCouplingBasicsTest5(unittest.TestCase): # QUAD4 - spacedim = 3 coo=DataArrayDouble([(0.26570992384234871,2.0405889913271817,-0.079134238105786903),(2.3739976619218064,0.15779148692781009,0.021842842914139737),(6.1207841448393197,4.3755532938679655,0.43666375769970678),(3.8363255342943359,9.2521096041694229,0.41551170895942313)]) m=MEDCoupling1SGTUMesh("mesh",NORM_QUAD4) ; m.setCoords(coo) - for delta in xrange(4): - c=[(elt+delta)%4 for elt in xrange(4)] + for delta in range(4): + c = [(elt + delta) % 4 for elt in range(4)] m.setNodalConnectivity(DataArrayInt(c)) self.assertAlmostEqual(m.computeDiameterField().getArray()[0],exp3,12) m2=m.buildUnstructured() ; m2.convertLinearCellsToQuadratic(0) @@ -3514,8 +3514,8 @@ class MEDCouplingBasicsTest5(unittest.TestCase): m=MEDCoupling1SGTUMesh("mesh",NORM_PENTA6) ; m.setCoords(coo) exp4=2.5041256256889888 self.assertAlmostEqual(exp4,coo.buildEuclidianDistanceDenseMatrix().getMaxValue()[0],12)# <- the definition of diameter - for delta in xrange(3): - c=[(elt+delta)%3 for elt in xrange(3)] + for delta in range(3): + c = [(elt + delta) % 3 for elt in range(3)] c+=[elt+3 for elt in c] m.setNodalConnectivity(DataArrayInt(c)) self.assertAlmostEqual(m.computeDiameterField().getArray()[0],exp4,12) @@ -3532,8 +3532,8 @@ class MEDCouplingBasicsTest5(unittest.TestCase): m=MEDCoupling1SGTUMesh("mesh",NORM_HEXA8) ; m.setCoords(coo) exp5=2.5366409441884215 self.assertAlmostEqual(exp5,coo.buildEuclidianDistanceDenseMatrix().getMaxValue()[0],12)# <- the definition of diameter - for delta in xrange(4): - c=[(elt+delta)%4 for elt in xrange(4)] + for delta in range(4): + c = [(elt + delta) % 4 for elt in range(4)] c+=[elt+4 for elt in c] m.setNodalConnectivity(DataArrayInt(c)) self.assertAlmostEqual(m.computeDiameterField().getArray()[0],exp5,12) @@ -3550,8 +3550,8 @@ class MEDCouplingBasicsTest5(unittest.TestCase): m=MEDCoupling1SGTUMesh("mesh",NORM_PYRA5) ; m.setCoords(coo) exp6=2.1558368027391386 self.assertAlmostEqual(exp6,coo.buildEuclidianDistanceDenseMatrix().getMaxValue()[0],12)# <- the definition of diameter - for delta in xrange(4): - c=[(elt+delta)%4 for elt in xrange(4)] + for delta in range(4): + c = [(elt + delta) % 4 for elt in range(4)] c+=[4] m.setNodalConnectivity(DataArrayInt(c)) self.assertAlmostEqual(m.computeDiameterField().getArray()[0],exp6,12) @@ -3564,8 +3564,8 @@ class MEDCouplingBasicsTest5(unittest.TestCase): m=MEDCoupling1SGTUMesh("mesh",NORM_PYRA5) ; m.setCoords(coo) exp7=1.4413563787228953 self.assertAlmostEqual(exp7,coo.buildEuclidianDistanceDenseMatrix().getMaxValue()[0],12)# <- the definition of diameter - for delta in xrange(4): - c=[(elt+delta)%4 for elt in xrange(4)] + for delta in range(4): + c = [(elt + delta) % 4 for elt in range(4)] c+=[4] m.setNodalConnectivity(DataArrayInt(c)) self.assertAlmostEqual(m.computeDiameterField().getArray()[0],exp7,12) @@ -3579,7 +3579,7 @@ class MEDCouplingBasicsTest5(unittest.TestCase): exp8=1.7131322579364157 self.assertAlmostEqual(exp8,coo.buildEuclidianDistanceDenseMatrix().getMaxValue()[0],12)# <- the definition of diameter for c in [[0,1,2,3],[0,3,2,1],[0,1,3,2],[0,2,3,1],[0,3,1,2],[0,2,1,3]]: - for i in xrange(4): + for i in range(4): m.setNodalConnectivity(DataArrayInt([(elt+i)%4 for elt in c])) self.assertAlmostEqual(m.computeDiameterField().getArray()[0],exp8,12) m2=m.buildUnstructured() ; m2.convertLinearCellsToQuadratic(0) @@ -4462,6 +4462,60 @@ class MEDCouplingBasicsTest5(unittest.TestCase): self.assertTrue(f3.getArray().isEqual(DataArrayDouble([0,1,2,3]),1e-12)) pass + def testVoronoi3D_5(self): + """ Cell 0 of Barreau_Elga_V11.rmed and sslv07b.rmed. HEXA8 cut regularly into 8 parts""" + coo=DataArrayDouble([(0.024,0.024,1.2),(0.024,0.048,1.2),(0.048,0.024,1.2),(0.048,0.048,1.2),(0.024,0.024,1.6),(0.024,0.048,1.6),(0.048,0.024,1.6),(0.048,0.048,1.6)]) + m=MEDCouplingUMesh("",3) ; m.setCoords(coo) ; m.allocateCells() + m.insertNextCell(NORM_HEXA8,[0,2,6,4,1,3,7,5]) + f=MEDCouplingFieldDouble(ON_GAUSS_PT) ; f.setMesh(m) + f.setGaussLocalizationOnType(NORM_HEXA8,[-1.0, -1.0, -1.0, -1.0, 1.0, -1.0, 1.0, 1.0, -1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, 1.0],[-0.577350269189626, -0.577350269189626, -0.577350269189626, -0.577350269189626, -0.577350269189626, 0.577350269189626, -0.577350269189626, 0.577350269189626, -0.577350269189626, -0.577350269189626, 0.577350269189626, 0.577350269189626, 0.577350269189626, -0.577350269189626, -0.577350269189626, 0.577350269189626, -0.577350269189626, 0.577350269189626, 0.577350269189626, 0.577350269189626, -0.577350269189626, 0.577350269189626, 0.577350269189626, 0.577350269189626],[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]) + arr=DataArrayDouble(8) ; arr.iota() ; f.setArray(arr) + f.checkConsistencyLight() + # + vol=f.getMesh().getMeasureField(False).getIJ(0,0) + f2=f.voronoize(1e-12) + f2.checkConsistencyLight() + self.assertEqual(f2.getNumberOfTuples(),8) + volRef=vol/8 + self.assertTrue(f2.getMesh().getMeasureField(False).getArray().isUniform(volRef,1e-12)) + pass + + def testVoronoi3D_6(self): + """ Cell 0 of brokenshire.med (and pace.med). TETRA10 split into 4 parts""" + coo=DataArrayDouble([(50.,-50.,200.0),(50.0,-30.,200.0),(30.,-50.,200.0),(50.,-50.,180.0),(50.,-40.,200.0),(40.,-50.,200.0),(50.,-50.,190.0),(40.,-40.,200.0),(50.,-40.,190.0),(40.,-50.,190.0)]) + m=MEDCouplingUMesh("",3) ; m.setCoords(coo) ; m.allocateCells() + m.insertNextCell(NORM_TETRA10,[2,0,1,3,5,4,7,9,6,8]) + f=MEDCouplingFieldDouble(ON_GAUSS_PT) ; f.setMesh(m) + f.setGaussLocalizationOnType(NORM_TETRA10,[0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0.5, 0.5, 0.5, 0.5, 0, 0.5, 0, 0, 0.5, 0, 0.5],[0.1381966011250105, 0.1381966011250105, 0.1381966011250105, 0.1381966011250105, 0.1381966011250105, 0.5854101966249685, 0.1381966011250105, 0.5854101966249685, 0.1381966011250105, 0.5854101966249685, 0.1381966011250105, 0.1381966011250105],[0.041666666666666664, 0.041666666666666664, 0.041666666666666664, 0.041666666666666664]) + arr=DataArrayDouble(4) ; arr.iota() ; f.setArray(arr) + f.checkConsistencyLight() + f2=f.voronoize(1e-12) + f2.checkConsistencyLight() + self.assertEqual(f2.getNumberOfTuples(),4) + arr=f2.getMesh().getMeasureField(False).getArray() + self.assertTrue(f2.getMesh().getMeasureField(False).getArray().isEqual(DataArrayDouble([378.0546928833331, 318.42621348333586, 318.4262134833361, 318.4262134833278]),1e-6)) + pass + + def testVoronoi3D_7(self): + """ sslv07a.rmed. HEXA20 split into 27 parts """ + coo=DataArrayDouble([(-0.5,-0.5,0.0),(-0.25,-0.5,0.0),(0.0,-0.5,0.0),(-0.5,0.0,0.0),(-0.5,-0.25,0.0),(0.0,0.0,0.0),(0.0,-0.25,0.0),(-0.25,0.0,0.0),(-0.5,-0.5,1.0),(-0.25,-0.5,1.0),(0.0,-0.5,1.0),(0.0,-0.25,1.0),(0.0,0.0,1.0),(-0.25,0.0,1.0),(-0.5,0.0,1.0),(-0.5,-0.25,1.0),(-0.5,-0.5,0.5),(0.0,-0.5,0.5),(0.0,0.0,0.5),(-0.5,0.0,0.5)]) + m=MEDCouplingUMesh("",3) ; m.setCoords(coo) ; m.allocateCells() + m.insertNextCell(NORM_HEXA20,[0,3,5,2,8,14,12,10,4,7,6,1,15,13,11,9,16,19,18,17]) + f=MEDCouplingFieldDouble(ON_GAUSS_PT) ; f.setMesh(m) + f.setGaussLocalizationOnType(NORM_HEXA20, + [-1,-1,-1,-1,1,-1,1,1,-1,1,-1,-1,-1,-1,1,-1,1,1,1,1,1,1,-1,1,-1,0,-1,0,1,-1,1,0,-1,0,-1,-1,-1,0,1,0,1,1,1,0,1,0,-1,1,-1,-1,0,-1,1,0,1,1,0,1,-1,0], + [-0.774597,-0.774597,-0.774597,-0.774597,-0.774597,0,-0.774597,-0.774597,0.774597,-0.774597,0,-0.774597,-0.774597,0,0,-0.774597,0,0.774597,-0.774597,0.774597,-0.774597,-0.774597,0.774597,0,-0.774597,0.774597,0.774597,0,-0.774597,-0.774597,0,-0.774597,0,0,-0.774597,0.774597,0,0,-0.774597,0,0,0,0,0,0.774597,0,0.774597,-0.774597,0,0.774597,0,0,0.774597,0.774597,0.774597,-0.774597,-0.774597,0.774597,-0.774597,0,0.774597,-0.774597,0.774597,0.774597,0,-0.774597,0.774597,0,0,0.774597,0,0.774597,0.774597,0.774597,-0.774597,0.774597,0.774597,0,0.774597,0.774597,0.774597], + [0.171468,0.274348,0.171468,0.274348,0.438957,0.274348,0.171468,0.274348,0.171468,0.274348,0.438957,0.274348,0.438957,0.702332,0.438957,0.274348,0.438957,0.274348,0.171468,0.274348,0.171468,0.274348,0.438957,0.274348,0.171468,0.274348,0.171468]) + arr=DataArrayDouble(27) ; arr.iota() ; f.setArray(arr) + f.checkConsistencyLight() + f2=f.voronoize(1e-12) + a=0.007187820185770747 ; b=0.0090870678008658 ; c=0.011488156225861077 ; d=0.014523687548277797 + ref=DataArrayDouble(27) ; ref[::2]=a ; ref[1::2]=b + ref[[4,10,12,14,16,22]]=c ; ref[13]=d # 6 cells 4,10,12,14,16,22 are the 6 cells boarding the most inner cell 13 + # + self.assertTrue(f2.getMesh().getMeasureField(False).getArray().isEqual(ref,1e-7)) + pass + def testConvertQuadToLin4Gauss_1(self): coo=DataArrayDouble([0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.5,0.0,0.0,0.0,0.5,0.0,0.5,0.5,0.5,0.5,0.0,0.5,0.0,0.0,0.5,0.0,0.5],10,3) m=MEDCouplingUMesh("mesh",3) @@ -4518,6 +4572,163 @@ class MEDCouplingBasicsTest5(unittest.TestCase): d4.sortEachPairToMakeALinkedList() self.assertTrue(d4.fromLinkedListOfPairToList().isEqual(zeRes)) pass + + def testUMeshExplodeIntoEdges1(self): + m=MEDCouplingCMesh() ; arr=DataArrayDouble(5) ; arr.iota() ; m.setCoords(arr,arr,arr) ; m=m.buildUnstructured() + self.assertEqual(m.getMeshDimension(),3) + a0,a1,a2,a3,a4=m.explodeIntoEdges() + b0,b1,b2,b3,b4=m.explode3DMeshTo1D() + self.assertTrue(a0.isEqual(b0,1e-12)) + self.assertTrue(a1.isEqual(b1)) ; self.assertTrue(a2.isEqual(b2)) ; self.assertTrue(a3.isEqual(b3)) ; self.assertTrue(a4.isEqual(b4)) + # + m=MEDCouplingCMesh() ; arr=DataArrayDouble(5) ; arr.iota() ; m.setCoords(arr,arr) ; m=m.buildUnstructured() + self.assertEqual(m.getMeshDimension(),2) + a0,a1,a2,a3,a4=m.explodeIntoEdges() + b0,b1,b2,b3,b4=m.buildDescendingConnectivity() + self.assertTrue(a0.isEqual(b0,1e-12)) + self.assertTrue(a1.isEqual(b1)) ; self.assertTrue(a2.isEqual(b2)) ; self.assertTrue(a3.isEqual(b3)) ; self.assertTrue(a4.isEqual(b4)) + pass + + def testUMeshComputeEnlargedNeighborsOfNodes(self): + m=MEDCouplingCMesh() ; arr=DataArrayDouble(4) ; arr.iota() ; m.setCoords(arr,arr) ; m=m.buildUnstructured() + a,b=m.computeEnlargedNeighborsOfNodes() + self.assertTrue(a.isEqual(DataArrayInt([1,4,5,0,2,4,5,6,1,3,5,6,7,2,6,7,0,1,5,8,9,0,1,2,4,6,8,9,10,1,2,3,5,7,9,10,11,2,3,6,10,11,4,5,9,12,13,4,5,6,8,10,12,13,14,5,6,7,9,11,13,14,15,6,7,10,14,15,8,9,13,8,9,10,12,14,9,10,11,13,15,10,11,14]))) + self.assertTrue(b.isEqual(DataArrayInt([0,3,8,13,16,21,29,37,42,47,55,63,68,71,76,81,84]))) + pass + + def testDAIfindIdsExt1(self): + d=DataArrayInt([4,6,-2,3,7,0,10]) + self.assertTrue(d.findIdsGreaterOrEqualTo(3).isEqual(DataArrayInt([0,1,3,4,6]))) + self.assertTrue(d.findIdsGreaterThan(3).isEqual(DataArrayInt([0,1,4,6]))) + self.assertTrue(d.findIdsLowerThan(3).isEqual(DataArrayInt([2,5]))) + self.assertTrue(d.findIdsLowerOrEqualTo(3).isEqual(DataArrayInt([2,3,5]))) + pass + + def testDAFacto1(self): + """Test focused of new wrapped methods for MEDCouplingFieldInt thanks to code factorization.""" + d=DataArrayDouble(7) ; d.iota() + m=MEDCouplingUMesh.Build1DMeshFromCoords(d) + f=MEDCouplingFieldInt(ON_CELLS) ; f.setMesh(m) ; arr=DataArrayInt(6) ; arr.iota() ; f.setArray(arr) ; f.checkConsistencyLight() + f_0=f[::2] # test is here + self.assertTrue(f_0.getArray().isEqual(DataArrayInt([0,2,4]))) + self.assertTrue(f_0.getMesh().isEqual(m[[0,2,4]],1e-12)) + # + f2=MEDCouplingFieldInt(ON_NODES) ; f2.setMesh(m) ; arr=DataArrayInt(7) ; arr.iota() ; f2.setArray(arr) ; f2.checkConsistencyLight() + f_1=f2[::2] # test is here + self.assertTrue(f_1.getArray().isEqual(DataArrayInt([0,1,2,3,4,5]))) + m_1=m[[0,2,4]] ; m_1.zipCoords() + self.assertTrue(f_1.getMesh().isEqual(m_1,1e-12)) + pass + + def testFieldFloatIsOnStage1(self): + """ My first test with field int.""" + m=MEDCouplingCMesh() + m.setName("mesh") + arrX=DataArrayDouble([0,1,2,3]) + m.setCoords(arrX,arrX) + f=MEDCouplingFieldFloat(ON_CELLS) + f.setMesh(m) + arr=DataArrayFloat(8) ; arr.iota() ;f.setArray(arr) + self.assertRaises(InterpKernelException,f.checkConsistencyLight) + arr=DataArrayFloat(9) ; arr.iota() ;f.setArray(arr) + f.checkConsistencyLight() + f.setTimeUnit("ms") + self.assertEqual(f.getTimeUnit(),"ms") + f.setTime(3.2,5,6) + a,b,c=f.getTime() + self.assertEqual(b,5) + self.assertEqual(c,6) + self.assertEqual(a,3.2,12) + pass + + def testFieldFloatIsOnStage2(self): + """ Very important test to check that isEqual of MEDCouplingFieldFloat is OK !""" + m1=MEDCouplingCMesh() ; m1.setCoords(DataArrayDouble([0,1,2,3]),DataArrayDouble([0,1,2,3,4])) + m1=m1.buildUnstructured() ; m1.setName("mesh") + f1=MEDCouplingFieldFloat(ON_CELLS) ; f1.setMesh(m1) + arr1=DataArrayFloat([(0,1),(2,3),(4,5),(6,7),(8,9),(10,11),(12,13),(14,15),(16,17),(18,19),(20,21),(22,23)]) ; arr1.setInfoOnComponents(["aa","bbb"]) + f1.setArray(arr1) ; f1.setName("f1") ; f1.setTime(2.,3,4) + # + m2=MEDCouplingCMesh() ; m2.setCoords(DataArrayDouble([0,1,2,3]),DataArrayDouble([0,1,2,3,4])) + m2=m2.buildUnstructured() ; m2.setName("mesh") + f2=MEDCouplingFieldFloat(ON_CELLS) ; f2.setMesh(m2) + arr2=DataArrayFloat([(0,1),(2,3),(4,5),(6,7),(8,9),(10,11),(12,13),(14,15),(16,17),(18,19),(20,21),(22,23)]) ; arr2.setInfoOnComponents(["aa","bbb"]) + f2.setArray(arr2) ; f2.setName("f1") ; f2.setTime(2.,3,4) + # + self.assertTrue(f1.isEqual(f2,1e-12,0.)) + f1.getArray()[:]*=2 + self.assertTrue(not f1.isEqual(f2,1e-12,0.)) + self.assertTrue(not f1.isEqualWithoutConsideringStr(f2,1e-12,0.)) + f1.getArray()[:]/=2 + self.assertTrue(f1.isEqual(f2,1e-12,0.)) + # + f1.setName("F1") + self.assertTrue(not f1.isEqual(f2,1e-12,0.)) + f1.setName("f1") + self.assertTrue(f1.isEqual(f2,1e-12,0.)) + # + f1.getArray().setInfoOnComponents(["aa","bbbb"]) + self.assertTrue(not f1.isEqual(f2,1e-12,0.)) + self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,0.)) + f1.getArray().setInfoOnComponents(["aa","bbb"]) + self.assertTrue(f1.isEqual(f2,1e-12,0.)) + # + f3=f2.deepCopy() + self.assertTrue(f1.isEqual(f3,1e-12,0.)) + # + for fd,expected in ((ON_NODES,False),(ON_CELLS,True)): + f4=MEDCouplingFieldFloat(fd) ; f4.setMesh(m2) ; f4.setTime(2.,3,4) + arr4=DataArrayFloat([(0,1),(2,3),(4,5),(6,7),(8,9),(10,11),(12,13),(14,15),(16,17),(18,19),(20,21),(22,23)]) ; arr4.setInfoOnComponents(["aa","bbb"]) + f4.setArray(arr4) ; f4.setName("f1") + self.assertEqual(f1.isEqual(f4,1e-12,0.),expected) + pass + pass + + def testLTGTDAD1(self): + d=DataArrayDouble(10) ; d.iota() + self.assertTrue(d.findIdsLowerThan(0).empty()) + self.assertTrue(d.findIdsLowerThan(1).isEqual(DataArrayInt([0]))) + d-=5. + self.assertTrue(d.findIdsStrictlyNegative().isEqual(DataArrayInt([0,1,2,3,4]))) + self.assertTrue(d.findIdsGreaterThan(0.).isEqual(DataArrayInt([6,7,8,9]))) + self.assertTrue(d.convertToFloatArr().isEqual(DataArrayFloat([-5,-4,-3,-2,-1,0,1,2,3,4]),1e-7)) + self.assertTrue(d.convertToFloatArr().convertToDblArr().isEqual(d,1e-12)) + pass + + def testMapII1(self): + """ Test optimized maps for renumbering. Typical usage local to global in parallel mode""" + d=DataArrayInt([1003,1007]) + m=d.invertArrayN2O2O2NOptimized() + d2=DataArrayInt([1003,1003,1007,1003,1007]) + d2.transformWithIndArr(m) + self.assertTrue(d2.isEqual(DataArrayInt([0,0,1,0,1]))) + pass + + def testDAICheckUniformAndGuess1(self): + d=DataArrayInt([3,3],1,2) + self.assertRaises(InterpKernelException,d.checkUniformAndGuess)# non single compo + d=DataArrayInt([]) + self.assertRaises(InterpKernelException,d.checkUniformAndGuess)# empty + d=DataArrayInt() + self.assertRaises(InterpKernelException,d.checkUniformAndGuess)# non allocated + d=DataArrayInt([3,3,3]) + self.assertEqual(3,d.checkUniformAndGuess()) + d=DataArrayInt([7]) + self.assertEqual(7,d.checkUniformAndGuess()) + d=DataArrayInt([3,4,3]) + self.assertRaises(InterpKernelException,d.checkUniformAndGuess)# non uniform + pass + + def testUMComputePlaneEquationOf3DFaces1(self): + """ Consequence of an invalid traduction of matrix inversion transposition.""" + m=MEDCoupling1SGTUMesh("msh",NORM_QUAD4) + m.setCoords(DataArrayDouble([(0,0,0),(1,0,0),(2,0,0),(0,2,0),(1,2,0),(2,2,0),(0,4,0),(1,4,0),(2,4,0),(0,0,3),(1,0,3),(2,0,3),(0,2,3),(1,2,3),(2,2,3),(0,4,3),(1,4,3),(2,4,3)])) + m.setNodalConnectivity(DataArrayInt([0,1,4,3,9,12,13,10,0,9,10,1,1,10,13,4,4,13,12,3,3,12,9,0,1,2,5,4,10,13,14,11,1,10,11,2,2,11,14,5,5,14,13,4,3,4,7,6,12,15,16,13,4,13,16,7,7,16,15,6,6,15,12,3,4,5,8,7,13,16,17,14,5,14,17,8,8,17,16,7])) + m=m.buildUnstructured() + ref=DataArrayDouble([(0,0,1,0),(0,0,1,-3),(0,1,0,0),(1,0,0,-1),(0,1,0,-2),(1,0,0,0),(0,0,1,0),(0,0,1,-3),(0,1,0,0),(1,0,0,-2),(0,1,0,-2),(0,0,1,0),(0,0,1,-3),(1,0,0,-1),(0,1,0,-4),(1,0,0,0),(0,0,1,0),(0,0,1,-3),(1,0,0,-2),(0,1,0,-4)]) + res=m.computePlaneEquationOf3DFaces() + self.assertTrue(res.isEqual(ref,1e-12)) + pass pass