X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDCoupling_Swig%2FMEDCouplingBasicsTest1.py;h=d21899aad12f429924840b1d479e479ccb4710b0;hb=b832b15337be013a56e0976170e5e235b89fcb03;hp=cdc7565519432feff07e948f9e5b7f90c93b09bc;hpb=5da72d398d0eb1820c3ce6dd90b8579b6b14edf5;p=tools%2Fmedcoupling.git diff --git a/src/MEDCoupling_Swig/MEDCouplingBasicsTest1.py b/src/MEDCoupling_Swig/MEDCouplingBasicsTest1.py index cdc756551..d21899aad 100644 --- a/src/MEDCoupling_Swig/MEDCouplingBasicsTest1.py +++ b/src/MEDCoupling_Swig/MEDCouplingBasicsTest1.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2016 CEA/DEN, EDF R&D +# Copyright (C) 2007-2024 CEA, EDF # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -18,12 +18,14 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -from MEDCoupling import * +import sys +from medcoupling import * + import unittest from math import pi,e,sqrt,cos,sin from datetime import datetime from MEDCouplingDataForTest import MEDCouplingDataForTest -import rlcompleter,readline # this line has to be here, to ensure a usability of MEDCoupling/MEDLoader. B4 removing it please notify to anthony.geay@cea.fr +import rlcompleter,readline # this line has to be here, to ensure a usability of MEDCoupling/MEDLoader. B4 removing it please notify to anthony.geay@edf.fr class MEDCouplingBasicsTest1(unittest.TestCase): def testArray2(self): @@ -60,21 +62,21 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(7,arr4.getNumberOfTuples()); self.assertEqual(2,arr4.getNumberOfComponents()); tmp=arr4.getValues() - for i in xrange(14): + for i in range(14): self.assertTrue(abs(arr4Ref[i]-tmp[i])<1e-14); pass arr5=arr4.subArray(3); self.assertEqual(4,arr5.getNumberOfTuples()); self.assertEqual(2,arr5.getNumberOfComponents()); tmp=arr5.getValues() - for i in xrange(8): + for i in range(8): self.assertTrue(abs(arr4Ref[6+i]-tmp[i])<1e-14); pass arr6=arr4.subArray(2,5); self.assertEqual(3,arr6.getNumberOfTuples()); self.assertEqual(2,arr6.getNumberOfComponents()); tmp=arr6.getValues() - for i in xrange(6): + for i in range(6): self.assertTrue(abs(arr4Ref[4+i]-tmp[i])<1e-14); pass pass @@ -88,7 +90,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): coords=[ 0.024155, 0.04183768725682622, -0.305, 0.04831000000000001, -1.015761910347357e-17, -0.305, 0.09662000000000001, -1.832979297858306e-18, -0.305, 0.120775, 0.04183768725682623, -0.305, 0.09662000000000001, 0.08367537451365245, -0.305, 0.04831000000000001, 0.08367537451365246, - -0.305, 0.024155, 0.04183768725682622, -0.2863, 0.04831000000000001, -1.015761910347357e-17, -0.2863, + -0.305, 0.024155, 0.04183768725682622, -0.2863, 0.04831000000000001, -1.015761910347357e-17, -0.2863, 0.09662000000000001, -1.832979297858306e-18, -0.2863, 0.120775, 0.04183768725682623, -0.2863, 0.09662000000000001, 0.08367537451365245, -0.2863, 0.04831000000000001, 0.08367537451365246, -0.2863 ] self.assertEqual(MEDCouplingMesh.GetNumberOfNodesOfGeometricType(NORM_TRI3),3) @@ -133,7 +135,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): field.setNature(ExtensiveMaximum) myCoords=DataArrayDouble.New() sampleTab=[] - for i in range(nbOfCells*9): + for i in range(nbOfCells * 9): sampleTab.append(float(i)) myCoords.setValues(sampleTab,nbOfCells,9); field.setArray(myCoords) @@ -150,7 +152,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): field3=mesh3.fillFromAnalytic(ON_CELLS,2,"x*IVec+(y+z)*JVec") field3.applyFunc("u*u*u+cos(u)") pass - + def testMeshPointsCloud(self): targetCoords=[-0.3,-0.3,0.5, 0.2,-0.3,1., 0.7,-0.3,1.5, -0.3,0.2,0.5, 0.2,0.2,1., 0.7,0.2,1.5, -0.3,0.7,0.5, 0.2,0.7,1., 0.7,0.7,1.5] @@ -198,7 +200,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): fieldOnCells.setArray(array); fieldOnCells.checkConsistencyLight(); pass - + def testDeepCopy(self): array=DataArrayDouble.New(); array.setValues(5*3*[7.],5,3); @@ -212,7 +214,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): array4=array3.deepCopy(); self.assertEqual(array4.getIJ(3,2),17); pass - + def testRevNodal(self): mesh=MEDCouplingDataForTest.build2DTargetMesh_1() revNodal,revNodalIndx=mesh.getReverseNodalConnectivity(); @@ -223,7 +225,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(list(revNodal.getValues()),revNodalExpected) self.assertEqual(list(revNodalIndx.getValues()),revNodalIndexExpected) pass - + def testConvertToPolyTypes(self): mesh=MEDCouplingDataForTest.build2DTargetMesh_1(); elts=[1,3]; @@ -300,7 +302,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(expected5,list(connIndex.getValues())); self.assertEqual(expected6,list(conn.getValues())); pass - + def testDescConn3D(self): mesh=MEDCouplingDataForTest.build3DTargetMesh_1(); desc=DataArrayInt.New(); @@ -329,7 +331,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): 5, 5, 5, 14, 13, 4, 4, 3, 4, 7, 6, 4, 12, 15, 16, 13, 4, 4, 13, 16, 7, 4, 7, 16, 15, 6, 4, 6, 15, 12, 3, 5, 4, 5, 8, 7, 5, 13, 16, 17, 14, 5, 5, 14, 17, 8, 5, 8, 17, 16, 7, 4, 18, 21, 22, 19, 4, 9, 18, 19, 10, 4, 10, 19, 22, 13, 4, 13, 22, 21, 12, 4, 12, 21, 18, 9, 4, 19, 22, 23, 20, 4, 10, 19, 20, 11, 4, 11, 20, 23, 14, 4, 14, 23, 22, 13, 4, 21, 24, 25, 22, 4, 13, 22, 25, 16, 4, 16, 25, 24, 15, 4, 15, 24, 21, 12, 4, 22, 25, 26, 23, 4, 14, 23, 26, 17, 4, 17, 26, 25, 16] - + self.assertEqual(expected1,list(descIndx.getValues())); self.assertEqual(expected2,list(desc.getValues())); self.assertEqual(expected3,list(revDescIndx.getValues())); @@ -420,7 +422,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): subMesh=subMesh.buildPartOfMySelf(dd,True); self.assertEqual("coucou",subMesh.getName()); pass - + def testBuildPartOfMySelfNode(self): mesh=MEDCouplingDataForTest.build2DTargetMesh_1(); tab1=[5,7,8,4] @@ -461,7 +463,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(NORM_QUAD4,subMesh.getAllGeoTypes()[1]); self.assertEqual(3,subMesh.getNumberOfCells()); pass - + def testZipCoords(self): mesh=MEDCouplingDataForTest.build2DTargetMesh_1(); self.assertEqual(2,len(mesh.getAllGeoTypes())); @@ -506,7 +508,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(subConn,list(subMesh.getNodalConnectivity().getValues())); self.assertEqual(subConnIndex,list(subMesh.getNodalConnectivityIndex().getValues())); pass - + def testZipConnectivity(self): m1=MEDCouplingDataForTest.build2DTargetMesh_1(); m2=MEDCouplingDataForTest.build2DTargetMesh_1(); @@ -531,7 +533,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertTrue(m7.isEqual(m6,1e-12)); self.assertEqual(7,m6.getNumberOfCells()); pass - + def testEqualMesh(self): mesh1=MEDCouplingDataForTest.build2DTargetMesh_1(); mesh2=MEDCouplingDataForTest.build2DTargetMesh_1(); @@ -581,7 +583,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertTrue(mesh1.isEqual(mesh2,1e-12)); self.assertTrue(mesh2.isEqual(mesh1,1e-12)); pass - + def testEqualFieldDouble(self): mesh1=MEDCouplingDataForTest.build2DTargetMesh_1(); mesh2=MEDCouplingDataForTest.build2DTargetMesh_1(); @@ -670,7 +672,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertRaises(InterpKernelException,field.setNature,ExtensiveMaximum); self.assertRaises(InterpKernelException,field.setNature,ExtensiveConservation); pass - + def testNatureOperations(self): """ Check nature constraints on field operations """ m = MEDCouplingCMesh() @@ -682,7 +684,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): f2.setNature(IntensiveMaximum) self.assertEqual(ExtensiveMaximum, f1.getNature()) self.assertEqual(IntensiveMaximum, f2.getNature()) - + da = DataArrayDouble([1.0,2.0,3.0,4.0]) f1.setMesh(m); f2.setMesh(m) f1.setArray(da); f2.setArray(da.deepCopy()) @@ -720,7 +722,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(NoNature, f3.getNature()) f3 = f1.dot(f2) self.assertEqual(NoNature, f3.getNature()) - + da = DataArrayDouble.Meld([da, da, da]) f1.setArray(da); f2.setArray(da.deepCopy()) f3 = MEDCouplingFieldDouble.CrossProductFields(f1,f2) @@ -754,7 +756,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): expected=[1,2,4,5,7,8] self.assertEqual(expected,list(toCheck)); pass - + def testExtrudedMesh1(self): mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1(); ext=MEDCouplingMappedExtrudedMesh.New(mesh3D,mesh2D,1); @@ -797,7 +799,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(5,m4.getMesh2D().getNumberOfCells()); self.assertEqual(3,m4.getMesh1D().getNumberOfCells()); m3DIds=m4.getMesh3DIds().getValues(); - self.assertEqual(range(15),list(m3DIds)); + self.assertEqual(list(range(15)), list(m3DIds)); #some random in cells to check that extrusion alg find it correctly expected1=[1,3,2,0,6,5,7,10,11,8,12,9,14,13,4] m3.renumberCells(expected1,False); @@ -853,7 +855,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): expected2=[0.075,0.0375,0.0375,0.075,0.075, 0.1125,0.05625,0.05625,0.1125,0.1125, 0.0625,0.03125,0.03125,0.0625,0.0625] - for i in xrange(15): + for i in range(15): self.assertAlmostEqual(expected2[rexpected1[i]],arrPtr[i],16); pass m5=m4.build3DUnstructuredMesh(); @@ -864,7 +866,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertTrue(isinstance(f.getMesh(),MEDCouplingMappedExtrudedMesh)) arr=f.getArray(); arrPtr=arr.getValues(); - for i in xrange(15): + for i in range(15): self.assertAlmostEqual(expected2[rexpected1[i]],arrPtr[i],15); pass pass @@ -877,7 +879,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): o2n,newNbOfNodes=targetMesh.buildNewNumberingFromCommonNodesFormat(comm,commI); self.assertEqual(27,newNbOfNodes); self.assertEqual(27,o2n.getNumberOfTuples()); - o2nExp1=range(27) + o2nExp1 = list(range(27)) self.assertEqual(o2nExp1,list(o2n.getValues())); # targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1(); @@ -920,8 +922,8 @@ class MEDCouplingBasicsTest1(unittest.TestCase): 200., 50., 0., 0., 200., 0., 50., 200., 0. , 200., 200., 0. , 0., 0., 50., 50., 0., 50. , 200., 0., 50. , 0., 50., 50., 50., 50., 50. , 200., 50., 50., 0., 200., 50., 50., 200., 50. , - 200., 200., 50. , 0., 0., 200., 50., 0., 200. , 200., 0., 200. - , 0., 50., 200., 50., 50., 200. , 200., 50., 200., + 200., 200., 50. , 0., 0., 200., 50., 0., 200. , 200., 0., 200. + , 0., 50., 200., 50., 50., 200. , 200., 50., 200., 0., 200., 200., 50., 200., 200. , 200., 200., 200. ] self.assertEqual(coordsExp,targetMesh.getCoords().getValues()); # 2D @@ -992,7 +994,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): def testMergeMeshOnSameCoords1(self): m1=MEDCouplingDataForTest.build2DTargetMesh_1(); m2=MEDCouplingDataForTest.build2DTargetMesh_1(); - cells=range(5); + cells = list(range(5)); m2.convertToPolyTypes(cells); m1.tryToShareSameCoords(m2,1e-12); m3=MEDCouplingDataForTest.build2DTargetMesh_1(); @@ -1025,6 +1027,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): f3=MEDCouplingFieldDouble.MergeFields(f1,f2); f3.checkConsistencyLight(); m4=MEDCouplingDataForTest.build2DTargetMeshMerged_1(); + m4.setName(f1.getMesh().getName()) self.assertTrue(f3.getMesh().isEqual(m4,1.e-12)); name=f3.getName(); self.assertEqual(name,"MeasureOfMesh_"); @@ -1035,7 +1038,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): values=[0.25,0.125,0.125,0.25,0.25,0.5,0.5] tmp=f3.getArray().getValues(); self.assertEqual(len(values),len(tmp)) - for i in xrange(7): + for i in range(7): self.assertTrue(abs(values[i]-tmp[i])<1e-12) pass pass @@ -1046,7 +1049,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): f1=m.fillFromAnalytic(ON_CELLS,1,"x+y"); self.assertAlmostEqual(3.4,f1.getTime()[0],12) ; self.assertEqual(5,f1.getTime()[1]) ; self.assertEqual(6,f1.getTime()[2]) self.assertEqual("us",f1.getTimeUnit()) - f1.checkConsistencyLight(); + f1.checkConsistencyLight(); self.assertEqual(f1.getTypeOfField(),ON_CELLS); self.assertEqual(f1.getTimeDiscretization(),ONE_TIME); self.assertEqual(1,f1.getNumberOfComponents()); @@ -1054,7 +1057,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): values1=[-0.1,0.23333333333333336,0.56666666666666665,0.4,0.9] tmp=f1.getArray().getValues(); self.assertEqual(len(values1),len(tmp)) - for i in xrange(len(tmp)): + for i in range(len(tmp)): self.assertTrue(abs(tmp[i]-values1[i])<1.e-12) pass # @@ -1067,7 +1070,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): values2=[-0.6,-0.1,0.4,-0.1,0.4,0.9,0.4,0.9,1.4] tmp=f1.getArray().getValues(); self.assertEqual(len(values2),len(tmp)) - for i in xrange(len(tmp)): + for i in range(len(tmp)): self.assertTrue(abs(tmp[i]-values2[i])<1.e-12) pass # @@ -1080,7 +1083,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): values3=[-0.6,-1.2,-0.1,-0.2,0.4,0.8,-0.1,-0.2,0.4,0.8,0.9,1.8,0.4,0.8,0.9,1.8,1.4,2.8] tmp=f1.getArray().getValues(); self.assertEqual(len(values3),len(tmp)) - for i in xrange(len(tmp)): + for i in range(len(tmp)): self.assertTrue(abs(tmp[i]-values3[i])<1.e-12) pass values4=f1.accumulate(); @@ -1088,9 +1091,10 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertTrue(abs(3.6-values4[0])<1.e-12); self.assertTrue(abs(7.2-values4[1])<1.e-12); values4=f1.integral(True); + #0.4 == 0.25/4*-0.6+(0.25/4+0.125/3)*-0.1+0.4*(0.125/3.+0.125/3)+(-0.1)*(0.25/4+0.25/4)+0.4*(0.25/4+0.125/3+0.125/3+0.25/4+0.25/4)+0.9*(0.25/4+0.125/3)+0.4*0.25/4+0.9*(0.25/4+0.25/4)+1.4*0.25/4 self.assertEqual(2,len(values4)) - self.assertTrue(abs(0.5-values4[0])<1.e-12); - self.assertTrue(abs(1.-values4[1])<1.e-12); + self.assertTrue(abs(0.4-values4[0])<1.e-12); + self.assertTrue(abs(0.8-values4[1])<1.e-12); # self.assertRaises(InterpKernelException,m.fillFromAnalytic,ON_NODES,1,"1./(x-0.2)"); pass @@ -1106,7 +1110,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): values1=[-0.1,0.23333333333333336,0.56666666666666665,0.4,0.9] tmp=f1.getArray().getValues(); self.assertEqual(len(values1),len(tmp)) - for i in xrange(len(values1)): + for i in range(len(values1)): self.assertTrue(abs(values1[i]-tmp[i])<1.e-12); pass # @@ -1119,7 +1123,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): values2=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1] tmp=f1.getArray().getValues(); self.assertEqual(len(values2),len(tmp)) - for i in xrange(len(values2)): + for i in range(len(values2)): self.assertTrue(abs(values2[i]-tmp[i])<1.e-12); pass f1=m.fillFromAnalytic(ON_NODES,1,"2.*x+y"); @@ -1131,7 +1135,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): tmp=f1.getArray().getValues(); values2Bis=[-0.9,0.1,1.1,-0.4,0.6,1.6,0.1,1.1,2.1] self.assertEqual(len(values2Bis),len(tmp)) - for i in xrange(len(values2Bis)): + for i in range(len(values2Bis)): self.assertTrue(abs(values2Bis[i]-tmp[i])<1.e-12); pass # @@ -1144,15 +1148,15 @@ class MEDCouplingBasicsTest1(unittest.TestCase): values3=[-0.6,-1.2,-0.1,-0.2,0.4,0.8,-0.1,-0.2,0.4,0.8,0.9,1.8,0.4,0.8,0.9,1.8,1.4,2.8] tmp=f1.getArray().getValues(); self.assertEqual(len(values3),len(tmp)) - for i in xrange(len(values3)): + for i in range(len(values3)): self.assertTrue(abs(values3[i]-tmp[i])<1.e-12); pass values4=f1.accumulate(); self.assertTrue(abs(3.6-values4[0])<1.e-12); self.assertTrue(abs(7.2-values4[1])<1.e-12); values4=f1.integral(True); - self.assertTrue(abs(0.5-values4[0])<1.e-12); - self.assertTrue(abs(1.-values4[1])<1.e-12); + self.assertTrue(abs(0.4-values4[0])<1.e-12); + self.assertTrue(abs(0.8-values4[1])<1.e-12); pass def testApplyFunc(self): @@ -1171,7 +1175,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): values1=[-1.8,-0.3,1.2,-0.3,1.2,2.7,1.2,2.7,4.2] tmp=f1.getArray().getValues(); self.assertEqual(len(values1),len(tmp)) - for i in xrange(len(tmp)): + for i in range(len(tmp)): self.assertTrue(abs(tmp[i]-values1[i])<1.e-12) pass pass @@ -1201,7 +1205,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): 5.0423700574830965, 17.435300118916864] tmp=f2.getArray().getValues(); self.assertEqual(len(tmp),len(values2)) - for i in xrange(len(tmp)): + for i in range(len(tmp)): self.assertTrue(abs(tmp[i]-values2[i])<1.e-12) pass # @@ -1213,7 +1217,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): values1=[-1.8,-0.3,1.2,-0.3,1.2,2.7,1.2,2.7,4.2] tmp=f1.getArray().getValues(); self.assertEqual(len(tmp),len(values1)) - for i in xrange(len(tmp)): + for i in range(len(tmp)): self.assertTrue(abs(tmp[i]-values1[i])<1.e-12) pass pass @@ -1231,7 +1235,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): values1=[-1.2,-0.2,0.8,-0.2,0.8,1.8,0.8,1.8,2.8] tmp=f3.getArray().getValues(); self.assertEqual(len(values1),len(tmp)) - for i in xrange(len(tmp)): + for i in range(len(tmp)): self.assertTrue(abs(tmp[i]-values1[i])<1.e-12) pass # @@ -1242,7 +1246,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): values2=[0.36,0.01,0.16,0.01,0.16,0.81,0.16,0.81,1.96] tmp=f3.getArray().getValues(); self.assertEqual(len(values2),len(tmp)) - for i in xrange(len(tmp)): + for i in range(len(tmp)): self.assertTrue(abs(tmp[i]-values2[i])<1.e-12) pass # @@ -1254,7 +1258,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): values3=[0.6,0.1,-0.4,0.1,-0.4,-0.9,-0.4,-0.9,-1.4] tmp=f4.getArray().getValues(); self.assertEqual(len(values3),len(tmp)) - for i in xrange(len(tmp)): + for i in range(len(tmp)): self.assertTrue(abs(tmp[i]-values3[i])<1.e-12) pass # @@ -1264,7 +1268,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(f4.getTypeOfField(),ON_NODES); self.assertEqual(f4.getTimeDiscretization(),ONE_TIME); tmp=f4.getArray().getValues(); - for i in xrange(len(tmp)): + for i in range(len(tmp)): self.assertTrue(abs(tmp[i]-2.)<1.e-12) pass # @@ -1280,7 +1284,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): tmp=f3.getArray().getValues(); values4=[-1.2,-0.2,0.8,-0.2,0.8,1.8,0.8,1.8,2.8] self.assertEqual(len(values3),len(tmp)) - for i in xrange(len(tmp)): + for i in range(len(tmp)): self.assertTrue(abs(tmp[i]-values4[i])<1.e-12) pass # @@ -1296,7 +1300,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): tmp=f3.getArray().getValues(); values5=[-1.2,-0.2,0.8,-0.2,0.8,1.8,0.8,1.8,2.8] self.assertEqual(len(values5),len(tmp)) - for i in xrange(len(tmp)): + for i in range(len(tmp)): self.assertTrue(abs(tmp[i]-values5[i])<1.e-12) pass pass @@ -1316,7 +1320,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(1,f3.getNumberOfComponents()); self.assertEqual(9,f3.getNumberOfTuples()); val=f3.getArray().getValues(); - for i in xrange(9): + for i in range(9): self.assertTrue(abs(expected1[i]-val[i])<1.e-12); # f1=m.buildOrthogonalField(); @@ -1326,13 +1330,13 @@ class MEDCouplingBasicsTest1(unittest.TestCase): f3=f1*f2; expected2=[-0.035355339059327376,0.,0.035355339059327376, 0.2592724864350674,0.,-0.2592724864350674, 0.37712361663282529,0.,-0.37712361663282529, -0.035355339059327376,0.,0.035355339059327376, 0.31819805153394637,0.,-0.31819805153394637] val=f3.getArray().getValues(); - for i in xrange(15): + for i in range(15): self.assertTrue(abs(expected2[i]-val[i])<1.e-12); pass # f3=f2*f1; val=f3.getArray().getValues(); - for i in xrange(15): + for i in range(15): self.assertTrue(abs(expected2[i]-val[i])<1.e-12); pass pass @@ -1351,7 +1355,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(1,f1.getNumberOfComponents()); self.assertEqual(9,f1.getNumberOfTuples()); val=f1.getArray().getValues(); - for i in xrange(9): + for i in range(9): self.assertTrue(abs(expected1[i]-val[i])<1.e-12); pass # @@ -1360,7 +1364,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): f1*=f2 expected2=[-0.035355339059327376,0.,0.035355339059327376, 0.2592724864350674,0.,-0.2592724864350674, 0.37712361663282529,0.,-0.37712361663282529, -0.035355339059327376,0.,0.035355339059327376, 0.31819805153394637,0.,-0.31819805153394637] val=f1.getArray().getValues(); - for i in xrange(15): + for i in range(15): self.assertTrue(abs(expected2[i]-val[i])<1.e-12); pass # @@ -1450,7 +1454,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertTrue(abs(42.075-res[1])<1.e-12); self.assertTrue(abs(72.075-res[2])<1.e-12); pass - + def testMergeNodesOnField(self): targetMesh=MEDCouplingDataForTest.build3DTargetMeshMergeNode_1(); f1=targetMesh.fillFromAnalytic(ON_NODES,1,"x+y+z"); @@ -1546,7 +1550,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(3,len(corr)); expectedVals1=[3,3,2] expectedVals2=[[0,1,2],[3,0,2],[3,0]] - for i in xrange(3): + for i in range(3): arr=corr[i]; self.assertEqual(1,arr.getNumberOfComponents()); nbOfVals=expectedVals1[i]; @@ -1561,7 +1565,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(1,arr2.getNumberOfComponents()); self.assertEqual(4,arr2.getNumberOfTuples()); self.assertEqual(fidExp,list(arr2.getValues())); - for i in xrange(3): + for i in range(3): nbOfVals=expectedVals1[i]; self.assertEqual(list(fidsOfGroups[i]),fidsGrp[i]); pass @@ -1595,7 +1599,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(5,field.getNumberOfTuples()); self.assertEqual(3,field.getNumberOfComponents()); vals=field.getArray().getValues(); - for i in xrange(15): + for i in range(15): self.assertTrue(abs(expected[i%3]-vals[i])<1e-12); # testing targetCoords=[0.,0.,0.,0.5,0.,0.5,1.,0.,1.,0.,1.,0.] @@ -1699,7 +1703,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): fieldOnCells.setMesh(targetMesh); array=DataArrayDouble.New(); tmp=2*nbOfCells*[None] - for i in xrange(nbOfCells): + for i in range(nbOfCells): tmp[2*i]=7.+float(i); tmp[2*i+1]=17.+float(i) pass @@ -1719,7 +1723,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): fieldOnNodes.setMesh(targetMesh); array=DataArrayDouble.New(); tmp=2*nbOfNodes*[None] - for i in xrange(nbOfNodes): + for i in range(nbOfNodes): tmp[2*i]=17.+float(i); tmp[2*i+1]=27.+float(i) pass @@ -1744,7 +1748,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): mesh=MEDCouplingCMesh.New(); meshEmpty=mesh.clone(True); self.assertTrue(meshEmpty.isEqual(mesh, 1e-12)); - + coordsX=DataArrayDouble.New(); arrX=[ -1., 1., 2., 4. ] coordsX.setValues(arrX, 4, 1); @@ -1763,9 +1767,9 @@ class MEDCouplingBasicsTest1(unittest.TestCase): 4., 1., 3., 4., 6., 2., 4., 5., 7., 4., 6., 7., 9., 0., 2., 3., 5., 2., 4., 5., 7., 3., 5., 6., 8., 5., 7., 8., 10., 2., 4., 5., 7., 4., 6., 7., 9., 5., 7., 8., 10., 7., 9., 10., 12.]; - + val=fieldOnNodes.getArray().getValues(); - for i in xrange(64): + for i in range(64): self.assertAlmostEqual(expected1[i], val[i], 12) res=fieldOnNodes.getValueOnPos(1, 3, 2); self.assertAlmostEqual(7., res[0], 12); @@ -1776,23 +1780,23 @@ class MEDCouplingBasicsTest1(unittest.TestCase): val=fieldOnCells.getArray().getValues(); expected2=[0, 1.5, 3, 1.5, 3, 4.5, 3, 4.5, 6, 1.5, 3, 4.5, 3, 4.5, 6, 4.5, 6, 7.5, 3, 4.5, 6, 4.5, 6, 7.5, 6, 7.5, 9]; - for i in xrange(27): + for i in range(27): self.assertAlmostEqual(expected2[i], val[i], 12); #res=fieldOnCells.getValueOnPos(1,2,1); #self.assertAlmostEqual(6.,res,12); # meshDeepCopy=mesh.deepCopy(); meshClone=mesh.clone(False); - + meshEmpty.copyTinyStringsFrom(mesh); #no data in meshEmpty, expected False self.assertTrue(not meshEmpty.isEqual(mesh, 1e-12)); - + self.assertTrue(meshDeepCopy.isEqual(mesh, 1e-12)); meshDeepCopy.copyTinyStringsFrom(mesh); self.assertTrue(meshDeepCopy.isEqual(mesh, 1e-12)); self.assertTrue(meshClone.isEqual(mesh, 1e-12)); - + self.assertEqual(CARTESIAN, mesh.getType()); self.assertEqual(CARTESIAN, meshEmpty.getType()); self.assertEqual(CARTESIAN, meshDeepCopy.getType()); @@ -1811,7 +1815,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): arrZ1=[ -3., 3., 6., 12. ] coordsZ1.setValues(arrZ1, 4, 1); mesh1.setCoords(coordsX1, coordsY1, coordsZ1); - + mesh2=MEDCouplingCMesh.New(); coordsX2=DataArrayDouble.New(); arrX2=[ -1., 1., 2., 4. ] @@ -1823,7 +1827,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): arrZ2=[ -3., 3., 6., 12.+1e-6 ] coordsZ2.setValues(arrZ2, 4, 1); mesh2.setCoords(coordsX2, coordsY2, coordsZ2); - + mesh3=MEDCouplingCMesh.New(); coordsX3=DataArrayDouble.New(); arrX3=[-1.] @@ -1835,24 +1839,24 @@ class MEDCouplingBasicsTest1(unittest.TestCase): arrZ3=[-3.] coordsZ3.setValues(arrZ3, 1, 1); mesh3.setCoords(coordsX3, coordsY3, coordsZ3); - + self.assertEqual(3, mesh1.getSpaceDimension()); self.assertEqual(3, mesh1.getMeshDimension()); - + self.assertTrue(not mesh1.isEqual(mesh2, 1e-12)); self.assertTrue(not mesh2.isEqual(mesh1, 1e-12)); self.assertTrue(not mesh2.isEqualWithoutConsideringStr(mesh1, 1e-12)); self.assertTrue(mesh1.isEqual(mesh2, 1e-5)); self.assertTrue(not mesh1.isEqual(mesh2, 1e-7)); - + self.assertRaises(InterpKernelException, mesh3.checkConsistency, 1e-12); mesh1.checkConsistency(1e-12); self.assertEqual(NORM_HEXA8, mesh1.getTypeOfCell(1)); - + self.assertEqual(NORM_HEXA8, mesh1.getAllGeoTypes()[0]); self.assertEqual(27, mesh1.getNumberOfCellsWithType(NORM_HEXA8)); self.assertRaises(InterpKernelException, mesh1.getNumberOfCellsWithType, NORM_QUAD4); - + coo=mesh1.getCoordinatesOfNode(0); self.assertEqual(3, len(coo)); self.assertAlmostEqual(-1., coo[0], 14); @@ -1863,7 +1867,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertAlmostEqual(4., coo[0], 14); self.assertAlmostEqual(8., coo[1], 14); self.assertAlmostEqual(12., coo[2], 14); - + a=str(mesh1) repr=mesh1.simpleRepr(); repr=mesh1.advancedRepr(); @@ -1885,13 +1889,13 @@ class MEDCouplingBasicsTest1(unittest.TestCase): arrZ1=[ -3., 3., 6., 12. ] coordsZ1.setValues(arrZ1, 4, 1); mesh1.setCoords(coordsX1, coordsY1, coordsZ1); - + dis=mesh1.getDistributionOfTypes(); self.assertEqual(1, len(dis)); self.assertEqual(NORM_HEXA8, dis[0][0]); self.assertEqual(27, dis[0][1]); self.assertEqual(-1, dis[0][2]); - + idsPerType=[] self.assertTrue(not mesh1.checkTypeConsistencyAndContig(dis, idsPerType)); dis[0][0]=NORM_QUAD4; @@ -1905,7 +1909,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): check=mesh1.checkTypeConsistencyAndContig(dis, idsPerType); self.assertTrue(check); self.assertTrue(check.isEqual(ids)); - + code, idsInPflPerType, pfls=mesh1.splitProfilePerType(ids); self.assertEqual(1, len(code)); self.assertEqual(NORM_HEXA8, code[0][0]); @@ -1915,29 +1919,29 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(1, len(pfls)); self.assertTrue(idsInPflPerType[0].isEqual(DataArrayInt([0,1,2,3,4,5,6,7,8,9]))); self.assertTrue(pfls[0].isEqual(ids)); - + cells1=[0, 1, 25, 26] partMesh1=mesh1.buildPart(cells1) self.assertTrue(isinstance(partMesh1,MEDCouplingMesh)) self.assertEqual(4, partMesh1.getNumberOfCellsWithType(NORM_HEXA8)); self.assertEqual(64, mesh1.getNumberOfNodes()); self.assertEqual(64, partMesh1.getNumberOfNodes()); - + cells2=[25, 26] partMesh2, arr1=mesh1.buildPartAndReduceNodes(cells2) self.assertTrue(isinstance(partMesh2,MEDCouplingCMesh)) self.assertEqual(2,partMesh2.getNumberOfCellsWithType(NORM_HEXA8)); self.assertEqual(12,partMesh2.getNumberOfNodes()); - + cells3=[2, 3] partMesh3, arr2=partMesh1.buildPartAndReduceNodes(cells3) self.assertTrue(isinstance(partMesh3,MEDCouplingUMesh)) self.assertEqual(2, partMesh3.getNumberOfCellsWithType(NORM_HEXA8)); self.assertEqual(12, partMesh3.getNumberOfNodes()); - + self.assertRaises(InterpKernelException, mesh1.simplexize, 0); self.assertRaises(InterpKernelException, mesh1.getMeasureFieldOnNode, True); - + #double bbox1[6]; #double bbox2[6]; bbox1=mesh1.getBoundingBox(); #[(-1.0, 4.0), (-2.0, 8.0), (-3.0, 12.0)] @@ -1946,12 +1950,12 @@ class MEDCouplingBasicsTest1(unittest.TestCase): bbox1=partMesh3.getBoundingBox(); bbox2=partMesh2.getBoundingBox(); self.assertTrue(bbox1==bbox2); - + self.assertRaises(InterpKernelException, mesh1.buildOrthogonalField); mesh2d=MEDCouplingCMesh.New(); mesh2d.setCoords(coordsX1, coordsY1); f1=mesh2d.buildOrthogonalField(); - + pass def testScale(self): @@ -1962,7 +1966,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): -0.05,0.45, 0.2,0.45, 0.45,0.45] val=mesh.getCoords().getValues(); self.assertEqual(18,len(val)) - for i in xrange(18): + for i in range(18): self.assertTrue(abs(expected1[i]-val[i])<1e-12); pass pass @@ -2049,7 +2053,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(3,m1.getSpaceDimension()); expected=[-0.3,-0.3,0., 0.2,-0.3,0., 0.7,-0.3,0., -0.3,0.2,0., 0.2,0.2,0., 0.7,0.2,0., -0.3,0.7,0., 0.2,0.7,0., 0.7,0.7,0.] val=m1.getCoords().getValues(); - for i in xrange(27): + for i in range(27): self.assertTrue(abs(expected[i]-val[i])<1e-14); pass pass @@ -2084,7 +2088,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(2,f.getNbOfGaussLocalization()); array=DataArrayDouble.New(); ptr=18*2*[None] - for i in xrange(18*2): + for i in range(18 * 2): ptr[i]=float(i+1) array.setValues(ptr,18,2); ptr=array.getPointer(); @@ -2146,7 +2150,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): f.setDescription("MyDescriptionNE"); array=DataArrayDouble.New(); tmp=18*2*[None] - for i in xrange(18*2): + for i in range(18 * 2): tmp[i]=float(i+7) pass array.setValues(tmp,18,2); @@ -2228,7 +2232,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(1,f3.getNumberOfComponents()); f3Ptr=f3.getArray().getValues(); expected1=[0.075,0.0375,0.0375,0.075,0.075, 0.1125,0.05625,0.05625,0.1125,0.1125, 0.0625,0.03125,0.03125,0.0625,0.0625]; - for i in xrange(15): + for i in range(15): self.assertTrue(abs(expected1[i]-f3Ptr[i])<1e-12); pass f4=m5.computeCellCenterOfMass(); @@ -2236,32 +2240,137 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(3,f4.getNumberOfComponents()); f4Ptr=f4.getValues(); expected2=[-0.05,-0.05,0.15, 0.3666666666666667,-0.13333333333333333,0.15, 0.53333333333333333,0.033333333333333333,0.15, -0.05,0.45,0.15, 0.45,0.45,0.15,-0.05,-0.05,0.525, 0.3666666666666667,-0.13333333333333333,0.525, 0.53333333333333333,0.033333333333333333,0.525, -0.05,0.45,0.525, 0.45,0.45,0.525,-0.05,-0.05,0.875, 0.3666666666666667,-0.13333333333333333,0.875, 0.53333333333333333,0.033333333333333333,0.875, -0.05,0.45,0.875, 0.45,0.45,0.875]; - for i in xrange(45): + for i in range(45): self.assertTrue(abs(expected2[i]-f4Ptr[i])<1e-12); pass pass def testCellOrientation3(self): - from cmath import rect + from cmath import rect - c = [rect(1.0, i*pi/4.0) for i in range(8)] + c = [rect(1.0, i * pi / 4.0) for i in range(8)] coords = [c[-1].real,c[-1].imag, c[3].real,c[3].imag, c[5].real,c[5].imag, c[1].real,c[1].imag] - connec = [0,1,2,3] - baseMesh = MEDCouplingUMesh.New("circle", 2) + connec = [0,1,2,3] + baseMesh = MEDCouplingUMesh.New("circle", 2) baseMesh.allocateCells(1) meshCoords = DataArrayDouble.New(coords, 4, 2) baseMesh.setCoords(meshCoords) baseMesh.insertNextCell(NORM_QPOLYG, connec) # a circle - baseMesh.finishInsertingCells() + baseMesh.finishInsertingCells() baseMesh.changeSpaceDimension(3) - Oz = [0.0, 0.0, -1.0] + Oz = [0.0, 0.0, -1.0] cell_lst = baseMesh.are2DCellsNotCorrectlyOriented(Oz, False) self.assertEqual(cell_lst.getNumberOfTuples(), 0) Oz[2] = 1.0 cell_lst = baseMesh.are2DCellsNotCorrectlyOriented(Oz, False) self.assertEqual(cell_lst.getNumberOfTuples(), 1) + def testCellOrientation4(self): + """ Non regression for NORM_QPOLYG whose linear version is self-intersecting. """ + mesh = MEDCouplingUMesh('merge', 2) + coo = DataArrayDouble([(38.45,0),(37.8659,6.67677),(38.57,0),(38.51,0),(38.3563,2.68214),(38.4266,1.34189),(38.0758,5.35121),(38.2394,4.01912),(37.6098,7.9942),(37.1398,9.95159),(37.2558,9.98265),(38.24,5.0344),(37.1978,9.96712),(37.3876,8.97597)]) + mesh.setCoords(coo) + c = DataArrayInt([32, 9, 8, 6, 4, 0, 2, 10, 13, 1, 7, 5, 3, 11, 12]) + cI = DataArrayInt([0, 15]) + mesh.setConnectivity(c, cI) + vec = [0., 0., -1.] + mesh.changeSpaceDimension(3) + mesh.orientCorrectly2DCells(vec, False) + mesh.changeSpaceDimension(2) + cRef = [32, 9, 10, 2, 0, 4, 6, 8, 12, 11, 3, 5, 7, 1, 13] + cIRef = [0, 15] + self.assertEqual(mesh.getNodalConnectivity().getValues(), cRef) + self.assertEqual(mesh.getNodalConnectivityIndex().getValues(), cIRef) + pass + + def testCellOrientation5(self): + """ Non regression for NORM_QPOLYG """ + mesh = MEDCouplingUMesh('Mesh_3', 2) + coo = DataArrayDouble([(-34.3035,5.1),(-35.2018,4.59163),(-34.9509,6.21985),(-35.0858,5.4072),(-34.7527,4.84582),(-34.6641,5.63857)]) + mesh.setCoords(coo) + c = DataArrayInt([6, 2, 1, 0, 3, 4, 5]) + cI = DataArrayInt([0, 7]) + mesh.setConnectivity(c, cI) + vec = [0., 0., -1.] + mesh.changeSpaceDimension(3) + mesh.orientCorrectly2DCells(vec, False) + mesh.changeSpaceDimension(2) + cRef = [6, 2, 0, 1, 5, 4, 3] + cIRef = [0, 7] + self.assertEqual(mesh.getNodalConnectivity().getValues(), cRef) + self.assertEqual(mesh.getNodalConnectivityIndex().getValues(), cIRef) + # Second call doest not change anything: + mesh.changeSpaceDimension(3) + mesh.orientCorrectly2DCells(vec, False) + mesh.changeSpaceDimension(2) + self.assertEqual(mesh.getNodalConnectivity().getValues(), cRef) + self.assertEqual(mesh.getNodalConnectivityIndex().getValues(), cIRef) + pass + + def testCellOrientation6(self): + # CCTP 2.3.1 (bos #26452) + mesh = MEDCouplingUMesh('Orientation', 3) + coo = [0,0,0, 0,10,0, 10,0,0, 10,10,0, -10,0,0, -10,10,-0, 0,0,10, 10,0,10, -10,0,10, 0,-10,0, 10,-10,0, -10,-10,0, 0,5,0, 5,0,0, 10,5,0, 5,10,0, -5,0,-0, -10,5,-0, -5,10,-0, 0,0,5, 10,0,5, 5,0,10, -10,0,5, -5,0,10, 0,-5,0, 10,-5,0, 5,-10,0, -10,-5,0, -5,-10,0, 5,5,0, -5,5,-0, 5,0,5, -5,0,5, 5,-5,0, -5,-5,0] + meshCoords = DataArrayDouble.New(coo, 35, 3) + mesh.setCoords(meshCoords) + mesh.setMeshDimension( 2 ) + conn = [ 1,12,29,15, 15,29,14, 3, 12, 0,13,29, 29,13, 2,14, 1,12,30,18, 18,30,17, 5, 12, 0,16,30, 30,16, 4,17, 6,19,31,21, 21,31,20, 7, 19, 0,13,31, 31,13, 2,20, 6,19,32,23, 23,32,22, 8, 19, 0,16,32, 32,16, 4,22, 9,24,33,26, 26,33,25,10, 24, 0,13,33, 33,13, 2,25, 9,24,34,28, 28,34,27,11, 24, 0,16,34, 34,16, 4,27] + mesh.allocateCells(24) + for i in range(24): + mesh.insertNextCell(NORM_QUAD4,4,conn[4*i:4*(i+1)]); + mesh.finishInsertingCells() + Group_1 = list( range( 0, 4 )) + Group_2 = list( range( 4, 8 )) + Group_3 = list( range( 8, 12 )) + Group_5 = list( range( 16, 20 )) + Group_7 = Group_3 + Group_8 = list( range( 12, 16 )) + + # example 1.1 - check failure on non-manifold + objMesh = mesh.buildPartOfMySelf( Group_1 + Group_3 + Group_5 ) + refMesh = mesh.buildPartOfMySelf( Group_1 ) + self.assertRaisesRegex(Exception, "Non-manifold", + objMesh.orientCorrectly2DCells, refMesh ) + # example 1.2 + # - do nothing, as request "de non-appartenance de la reference a la cible" dropped + # + # example 1.3 - fix orientation of Group_1 and Group_8 + objMesh = mesh.buildPartOfMySelf( Group_1 + Group_2 + Group_7 + Group_8 ) + refMesh = mesh.buildPartOfMySelf( Group_7 ) + objMesh.orientCorrectly2DCells( refMesh ) + # check Group_1 + self.assertEqual( objMesh.getNodeIdsOfCell( 0 ), [ 1, 15, 29, 12 ]) + self.assertEqual( objMesh.getNodeIdsOfCell( 1 ), [ 15, 3, 14, 29 ]) + self.assertEqual( objMesh.getNodeIdsOfCell( 2 ), [ 12, 29, 13, 0 ]) + self.assertEqual( objMesh.getNodeIdsOfCell( 3 ), [ 29, 14, 2, 13 ]) + # check Group_8 + self.assertEqual( objMesh.getNodeIdsOfCell( 12 ), [ 6, 23, 32, 19 ]) + self.assertEqual( objMesh.getNodeIdsOfCell( 13 ), [ 23, 8, 22, 32 ]) + self.assertEqual( objMesh.getNodeIdsOfCell( 14 ), [ 19, 32, 16, 0 ]) + self.assertEqual( objMesh.getNodeIdsOfCell( 15 ), [ 32, 22, 4, 16 ]) + # + # Case with no reference given. Group_2 and Group_7 must reverse + objMesh = mesh.buildPartOfMySelf( Group_1 + Group_2 + Group_7 + Group_8 ) + objMesh.orientCorrectly2DCells( None ) + # check Group_2 + self.assertEqual( objMesh.getNodeIdsOfCell( 4 ), [ 1, 18, 30, 12 ]) + self.assertEqual( objMesh.getNodeIdsOfCell( 5 ), [ 18, 5, 17, 30 ]) + self.assertEqual( objMesh.getNodeIdsOfCell( 6 ), [ 12, 30, 16, 0 ]) + self.assertEqual( objMesh.getNodeIdsOfCell( 7 ), [ 30, 17, 4, 16 ]) + # check Group_7 + self.assertEqual( objMesh.getNodeIdsOfCell( 8 ), [ 6, 21, 31, 19 ]) + self.assertEqual( objMesh.getNodeIdsOfCell( 9 ), [ 21, 7, 20, 31 ]) + self.assertEqual( objMesh.getNodeIdsOfCell( 10 ), [ 19, 31, 13, 0 ]) + self.assertEqual( objMesh.getNodeIdsOfCell( 11 ), [ 31, 20, 2, 13 ]) + # + # Case with differently oriented reference faces. Expect an exception + objMesh = mesh.buildPartOfMySelf( Group_1 + Group_2 + Group_7 + Group_8 ) + refMesh = mesh.buildPartOfMySelf( Group_1 + Group_2 ) + self.assertRaisesRegex(Exception, "Different orientation", + objMesh.orientCorrectly2DCells, refMesh ) + pass + def testPolyhedronBarycenter(self): connN=[0,3,2,1, -1, 4,5,6,7, -1, 0,4,7,3, -1, 3,7,6,2, -1, 2,6,5,1, -1, 1,5,4,0]; coords=[0.,0.,0., 1.,0.,0., 1.,1.,0., 0.,1.,0., 0.,0.,1., 1.,0.,1., 1.,1.,1., 0.,1.,1., 0.5, 0.5, 0.5]; @@ -2284,7 +2393,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(3,da.getNumberOfComponents()); daPtr=da.getValues(); ref=meshN.getCoords().getValues()[24:]; - for i in xrange(3): + for i in range(3): self.assertTrue(abs(ref[i]-daPtr[i])<1e-12); pass # @@ -2293,7 +2402,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): da=meshN.computeCellCenterOfMass(); daPtr=da.getValues(); ref=meshN.getCoords().getValues()[24:]; - for i in xrange(3): + for i in range(3): self.assertTrue(abs(ref[i]-daPtr[i])<1e-12); pass # @@ -2302,7 +2411,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): da=meshN.computeCellCenterOfMass(); daPtr=da.getValues(); ref=meshN.getCoords().getValues()[24:]; - for i in xrange(3): + for i in range(3): self.assertTrue(abs(ref[i]-daPtr[i])<1e-12); pass # @@ -2313,7 +2422,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): da=meshN.computeCellCenterOfMass(); daPtr=da.getValues(); ref=meshN.getCoords().getValues()[24:]; - for i in xrange(3): + for i in range(3): self.assertTrue(abs(ref[i]-daPtr[i])<1e-10); pass pass @@ -2332,7 +2441,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(1,f3.getNumberOfComponents()); expected9=[0.75,5.105,0.8,5.155] ptr=f3.getValues(); - for i in xrange(4): + for i in range(4): self.assertTrue(abs(expected9[i]-ptr[i])<1e-12); pass # @@ -2341,13 +2450,13 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(1,f2.getNumberOfComponents()); expected1=[0.5,0.21,-0.6,-0.31] ptr=f2.getArray().getValues(); - for i in xrange(4): + for i in range(4): self.assertTrue(abs(expected1[i]-ptr[i])<1e-12); pass expected2=[0.5,0.21,0.6,0.31] f2=m1.getMeasureField(True); ptr=f2.getArray().getValues(); - for i in xrange(4): + for i in range(4): self.assertTrue(abs(expected2[i]-ptr[i])<1e-12); pass #integral @@ -2355,7 +2464,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): res=f1.integral(False); self.assertTrue(3,len(res)) expected3=[0.9866,-0.3615,0.4217] - for i in xrange(3): + for i in range(3): self.assertTrue(abs(expected3[i]-res[i])<1e-12); pass self.assertTrue(abs(expected3[0]-f1.integral(0,False))<1e-12); @@ -2363,14 +2472,14 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertTrue(abs(expected3[2]-f1.integral(2,False))<1e-12); res=f1.integral(True); expected4=[-3.4152,8.7639,-14.6879] - for i in xrange(3): + for i in range(3): self.assertTrue(abs(expected4[i]-res[i])<1e-12); pass #normL1 res=f1.normL1(); self.assertTrue(3,len(res)) expected5=[6.979506172839505, 16.89018518518518, 27.02969135802469] - for i in xrange(3): + for i in range(3): self.assertTrue(abs(expected5[i]-res[i])<1e-12); pass self.assertTrue(abs(expected5[0]-f1.normL1(0))<1e-12); @@ -2380,7 +2489,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): res=f1.normL2(); self.assertTrue(3,len(res)) expected7=[7.090910979452395, 16.9275542960123, 27.053271464160858] - for i in xrange(3): + for i in range(3): self.assertTrue(abs(expected7[i]-res[i])<1e-9); pass self.assertTrue(abs(expected7[0]-f1.normL2(0))<1e-9); @@ -2397,14 +2506,14 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(4,f2.getArray().getNumberOfTuples()); self.assertEqual(1,f2.getNumberOfComponents()); ptr=f2.getArray().getValues(); - for i in xrange(4): + for i in range(4): self.assertTrue(abs(sqrt(2.)*expected2[i]-ptr[i])<1e-12); pass f2=m1.getMeasureField(True); self.assertEqual(4,f2.getArray().getNumberOfTuples()); self.assertEqual(1,f2.getNumberOfComponents()); ptr=f2.getArray().getValues(); - for i in xrange(4): + for i in range(4): self.assertTrue(abs(expected2[i]*sqrt(2.)-ptr[i])<1e-12); pass #bary @@ -2413,7 +2522,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(2,f3.getNumberOfComponents()); expected10=[0.75,0.75,5.105,5.105,0.8,0.8,5.155,5.155] ptr=f3.getValues(); - for i in xrange(8): + for i in range(8): self.assertTrue(abs(expected10[i]-ptr[i])<1e-12); pass # @@ -2423,19 +2532,19 @@ class MEDCouplingBasicsTest1(unittest.TestCase): array.setValues(arr,m1.getNumberOfCells(),3); f1.setArray(array); res=f1.integral(False); - for i in xrange(3): + for i in range(3): self.assertTrue(abs(sqrt(2.)*expected4[i]-res[i])<1e-12); pass res=f1.integral(True); - for i in xrange(3): + for i in range(3): self.assertTrue(abs(sqrt(2.)*expected4[i]-res[i])<1e-12); pass res=f1.normL1(); - for i in xrange(3): + for i in range(3): self.assertTrue(abs(expected5[i]-res[i])<1e-12); pass res=f1.normL2(); - for i in xrange(3): + for i in range(3): self.assertTrue(abs(expected7[i]-res[i])<1e-12); pass pass @@ -2447,12 +2556,12 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(1,f1.getNumberOfComponents()); expected1=[-0.5,-1,-1.5,-0.5,-1, 0.5,1,1.5,0.5,1] ptr=f1.getArray().getValues(); - for i in xrange(10): + for i in range(10): self.assertTrue(abs(expected1[i]-ptr[i])<1e-12); pass f1=m1.getMeasureField(True); ptr=f1.getArray().getValues(); - for i in xrange(10): + for i in range(10): self.assertTrue(abs(abs(expected1[i])-ptr[i])<1e-12); pass f2=m1.computeCellCenterOfMass(); @@ -2460,7 +2569,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(2,f2.getNumberOfComponents()); expected2=[0.5,0.3333333333333333,0.5,0.5,0.5,0.77777777777777777,0.5,0.3333333333333333,0.5,0.5,0.5,0.3333333333333333,0.5,0.5,0.5,0.77777777777777777,0.5,0.3333333333333333,0.5,0.5] ptr=f2.getValues(); - for i in xrange(20): + for i in range(20): self.assertTrue(abs(expected2[i]-ptr[i])<1e-12); pass m1.changeSpaceDimension(3); @@ -2468,7 +2577,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(10,f1.getArray().getNumberOfTuples()); self.assertEqual(1,f1.getNumberOfComponents()); ptr=f1.getArray().getValues(); - for i in xrange(10): + for i in range(10): self.assertTrue(abs(abs(expected1[i])-ptr[i])<1e-12); pass f2=m1.computeCellCenterOfMass(); @@ -2476,7 +2585,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(3,f2.getNumberOfComponents()); ptr=f2.getValues(); expected3=[0.5,0.3333333333333333,0.,0.5,0.5,0.,0.5,0.77777777777777777,0.,0.5,0.3333333333333333,0.,0.5,0.5,0., 0.5,0.3333333333333333,0.,0.5,0.5,0.,0.5,0.77777777777777777,0.,0.5,0.3333333333333333,0.,0.5,0.5,0.] - for i in xrange(30): + for i in range(30): self.assertTrue(abs(expected3[i]-ptr[i])<1e-12); pass pass @@ -2517,7 +2626,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): 0.0719302438309 , -0.178468260473 , -0.211432157345 , 0.142871843159 , -0.208769948542 , 0.0454101128246 , 0.167803379307 , -0.207851396623 , -0.088802726124 , 0.12868717152 , -0.230920439715 , 0.00760508389036 , -0.0372812069535 , -0.286740286332 , 0.00963701291166 ] - + connN = [ #polyhedron 0 0 , 1 , 3 , 4 , 2 , -1 , 1 , 5 , 6 , 7 , 0 , -1 , 0 , 7 , 8 , 10 , 11 , 9 , 2 , -1 , 1 , 5 , 12 , 14 , 15 , 13 , 3 , -1 , 16 , 9 , 2 , 4 , 17 , -1 , 4 , 3 , 13 , 18 , 17 , -1 , 5 , 6 , 19 , 21 , 20 , 12 , -1 , 6 , 7 , 8 , 23 , 22 , 19 , -1 , 23 , 24 , 10 , 8 , -1 , 25 , 11 , 9 , 16 , -1 @@ -2536,7 +2645,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): , 60 , 61 , 21 , 19 , 38 , 49 , -1 , 62 , 50 , 48 , 58 , -1 , 60 , 63 , 64 , 62 , 50 , 49 , -1 , 5 , 6 , 19 , 21 , 20 , 12 , -1 , 55 , 5 , 12 , 65 , -1 , 66 , 67 , 65 , 55 , 56 , 57 , -1 , 63 , 66 , 57 , 59 , 64 , -1 , 64 , 62 , 58 , 59 , -1 , 60 , 63 , 66 , 67 , 68 , 61 , -1 , 61 , 68 , 20 , 21 , -1 , 67 , 68 , 20 , 12 , 65] - + barys = [ -0.0165220465527 , -0.0190922868195 , 0.158882733414 , 0.0287618656076 , 0.135874379934 , -0.14601588119 , -0.147128055553 , 0.0465995097041 , -0.049391174453 , @@ -2563,7 +2672,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(4,da.getNumberOfTuples()); self.assertEqual(3,da.getNumberOfComponents()); daPtr=da.getValues(); - for i in xrange(12): + for i in range(12): self.assertTrue(abs(barys[i]-daPtr[i])<1e-12); pass pass @@ -2579,22 +2688,22 @@ class MEDCouplingBasicsTest1(unittest.TestCase): f.setArray(arr); renumber1=[3,1,0,4,2] loc=[-0.05,-0.05, 0.55,-0.25, 0.55,0.15, -0.05,0.45, 0.45,0.45] - for j in xrange(5): + for j in range(5): res=f.getValueOn(loc[2*j:2*j+2]); - for i in xrange(3): + for i in range(3): self.assertTrue(abs(values1[i+3*j]-res[i])<1e-12); pass pass f.renumberCells(renumber1,False); ptr=f.getArray().getValues(); expected1=[9.,109.,10009.,8.,108.,10008.,11.,111.,10011.,7.,107.,10007.,10.,110.,10010.] - for i in xrange(15): + for i in range(15): self.assertTrue(abs(expected1[i]-ptr[i])<1e-12); pass #check that fields remains the same geometrically - for j in xrange(5): + for j in range(5): res=f.getValueOn(loc[2*j:2*(j+1)]); - for i in xrange(3): + for i in range(3): self.assertTrue(abs(values1[i+3*j]-res[i])<1e-12); pass pass @@ -2628,7 +2737,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertTrue(not f.isEqual(fCpy,1e-12,1e-12)); expected2=[21.,1021.,22.,1022.,23.,1023.,24.,1024.,25.,1025.,26.,1026., 11.,1011.,12.,1012.,13.,1013.,14.,1014.,15.,1015.,16.,1016., 41.,1041.,42.,1042., 1.,1001.,2.,1002., 31.,1031.,32.,1032.] ptr=f.getArray().getValues(); - for i in xrange(36): + for i in range(36): self.assertTrue(abs(expected2[i]-ptr[i])<1e-12); pass renumber2=[2,1,4,0,3] @@ -2648,7 +2757,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertTrue(not f.isEqual(fCpy,1e-12,1e-12)); expected3=[21.,1021.,22.,1022.,23.,1023.,11.,1011.,12.,1012.,13.,1013.,41.,1041.,42.,1042.,43.,1043.,44.,1044.,1.,1001.,2.,1002.,3.,1003.,4.,1004.,31.,1031.,32.,1032.,33.,1033.,34.,1034.] ptr=f.getArray().getValues(); - for i in xrange(36): + for i in range(36): self.assertTrue(abs(expected3[i]-ptr[i])<1e-12); pass f.renumberCells(renumber2,False);#perform reverse operation of renumbering to check that the resulting field is equal. @@ -2670,9 +2779,9 @@ class MEDCouplingBasicsTest1(unittest.TestCase): renumber1=[0,4,1,3,5,2,6,7,8] loc=[0.5432,-0.2432, 0.5478,0.1528] expected1=[9.0272, 109.0272, 10009.0272, 11.4124,111.4124,10011.4124] - for j in xrange(2): + for j in range(2): res=f.getValueOn(loc[2*j:2*j+2]); - for i in xrange(3): + for i in range(3): self.assertTrue(abs(expected1[i+3*j]-res[i])<1e-12); pass pass @@ -2680,14 +2789,14 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertTrue(f.isEqual(fCpy,1e-12,1e-12)); f.renumberNodes(renumber1); self.assertTrue(not f.isEqual(fCpy,1e-12,1e-12)); - for j in xrange(2): + for j in range(2): res=f.getValueOn(loc[2*j:2*j+2]); - for i in xrange(3): + for i in range(3): self.assertTrue(abs(expected1[i+3*j]-res[i])<1e-12); pass pass expected2=[7.,107.,10007.,9.,109.,10009.,12.,112.,10012.,10.,110.,10010.,8.,108.,10008.,11.,111.,10011.,13.,113.,10013.,14.,114.,10014.,15.,115.,10015.] - for i in xrange(27): + for i in range(27): self.assertTrue(abs(expected2[i]-f.getArray().getValues()[i])<1e-12); pass renumber2=[0,2,5,3,1,4,6,7,8] @@ -2701,7 +2810,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): types=mesh.getAllGeoTypes(); types.sort() self.assertEqual(5,len(types)); - expected1=[NORM_POLYGON, NORM_TRI3, NORM_QUAD4, NORM_TRI6, NORM_QUAD8] + expected1 = [NORM_POLYGON, NORM_TRI3, NORM_QUAD4, NORM_TRI6, NORM_QUAD8] expected1.sort() self.assertEqual(expected1,types); self.assertTrue(mesh.isPresenceOfQuadratic()); @@ -2824,11 +2933,11 @@ class MEDCouplingBasicsTest1(unittest.TestCase): self.assertEqual(None,cellCor); self.assertNotEqual(None,nodeCor); expected1=[0, 1, 3, 4, 5, 6, 7, 8, 9] - for i in xrange(9): + for i in range(9): self.assertEqual(expected1[i],nodeCor.getIJ(i,0)); pass pass - + def testSwig2CheckDeepEquivalWith1(self): eps = 1.0e-8 mcart = MEDCouplingCMesh() @@ -2943,7 +3052,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): f2=m2.getMeasureField(False); self.assertEqual(5,f1.getArray().getNumberOfTuples()); self.assertEqual(1,f2.getArray().getNumberOfTuples()); - for i in xrange(5): + for i in range(5): self.assertAlmostEqual(expected1[i],f1.getIJ(i,0),12); pass self.assertAlmostEqual(expected1[0],f2.getIJ(0,0),12); @@ -2954,7 +3063,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): f2=m2.getMeasureField(False); self.assertEqual(5,f1.getArray().getNumberOfTuples()); self.assertEqual(1,f2.getArray().getNumberOfTuples()); - for i in xrange(5): + for i in range(5): self.assertAlmostEqual(expected1[i],f1.getIJ(i,0),12); pass self.assertAlmostEqual(expected1[0],f2.getIJ(0,0),12); @@ -2978,7 +3087,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): f1.changeUnderlyingMesh(mesh2,10,1e-12); #self.assertTrue(f1.getMesh()==mesh2); expected1=[7.,107.,9.,109.,8.,108.,10.,110.,11.,111.,12.,112.,13.,113.,15.,115.,14.,114.,16.,116.] - for i in xrange(20): + for i in range(20): self.assertAlmostEqual(expected1[i],f1.getArray().getIJ(0,i),12); pass # @@ -2995,7 +3104,7 @@ class MEDCouplingBasicsTest1(unittest.TestCase): f1.changeUnderlyingMesh(mesh2,10,1e-12); #self.assertTrue(f1.getMesh()==mesh2); expected2=[7.,107.,17.,117.,8.,108.,10.,110.,11.,111.,12.,112.,13.,113.,15.,115.,14.,114.,16.,116.,9.,109.] - for i in xrange(22): + for i in range(22): self.assertAlmostEqual(expected2[i],f1.getArray().getIJ(0,i),12); pass pass @@ -3076,13 +3185,13 @@ class MEDCouplingBasicsTest1(unittest.TestCase): # f3=f1.dot(f2); expected1=[842.,1820.,2816.,3830.,4862.,5912.,6980.,8066.,9170.,10292.] - for i in xrange(10): + for i in range(10): self.assertAlmostEqual(expected1[i],f3.getIJ(i,0),9); pass # f4=f1.crossProduct(f2); expected2=[-93., 186., -93., -392., 784., -392., -691., 1382., -691., -990., 1980., -990., -1289., 2578., -1289., -1588., 3176., -1588., -1887., 3774., -1887., -2186., 4372., -2186., -2485., 4970., -2485., -2784., 5568., -2784.] - for i in xrange(30): + for i in range(30): self.assertAlmostEqual(expected2[i],f4.getIJ(0,i),9); pass pass