# -*- 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
import sys
-if sys.platform == "win32":
- from MEDCouplingCompat import *
-else:
- from MEDCoupling import *
+from medcoupling import *
import unittest
from math import pi,e,sqrt,cos,sin
from datetime import datetime
self.assertTrue(f1.isEqualWithoutConsideringStr(f2,1e-12,1e-12));
#
pass
-
+
def testGetNodeIdsOfCell1(self):
mesh1=MEDCouplingDataForTest.build2DTargetMesh_1();
li=mesh1.getNodeIdsOfCell(1)
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);
#
f1=MEDCouplingFieldDouble.New(ON_NODES,NO_TIME);
f1.setMesh(m);
132.680430393685,255.37973247196,96.15235602819];
volHexa8=3258520.29637466;
baryHexa8=[43.925705821778, 155.31893955289, 65.874418109644]
-
+
coordsForPenta6=[-68.199829618726,178.938498373416,62.608505919588,
8.461744647847,76.653979804423,165.00018874933,
-27.273893776752,167.567731083961,192.830034145464,
132.680430393685,255.37973247196,96.15235602819];
volPenta6=944849.868507338;
baryPenta6=[39.631002313543,182.692711783428,106.98540473964]
-
+
coordsForPyra5=[132.680430393685,255.37973247196,96.15235602819,
-27.273893776752,167.567731083961,192.830034145464,
8.461744647847,76.653979804423,165.00018874933,
self.assertEqual(arr2[i],da3.getIJ(i,0));
pass
pass
-
+
def testKeepSetSelectedComponent1(self):
arr1=[1.,2.,3.,4., 11.,12.,13.,14., 21.,22.,23.,24., 31.,32.,33.,34., 41.,42.,43.,44.]
a1=DataArrayDouble.New();
pass
#
pass
-
+
def testElementaryDAThrowAndSpecialCases(self):
da=DataArrayInt.New();
self.assertRaises(InterpKernelException, da.checkAllocated);
da.alloc(7,1);
da.fillWithValue(11); #11,11,11,11...
da.iota(10); #10,11,12,13...
-
+
db=DataArrayInt.New();
db.alloc(7,2);
-
+
dbl2=DataArrayDouble.New();
dbl2.alloc(7,2);
self.assertRaises(InterpKernelException, dbl2.isUniform, 10., 1e-15);
self.assertRaises(InterpKernelException, dbl2.sort);
self.assertRaises(InterpKernelException, dbl2.iota, 10.);
-
+
dbl=DataArrayDouble.New();
#DataArrayDouble not allocated yet
self.assertRaises(InterpKernelException, dbl.iota, 10.);
self.assertRaises(InterpKernelException, dbl.sort);
self.assertRaises(InterpKernelException, dbl.fromNoInterlace);
self.assertRaises(InterpKernelException, dbl.toNoInterlace);
-
+
dbl.alloc(7,1);
dbl.iota(10.);
self.assertTrue(not dbl.isUniform(10.,1e-15));
self.assertTrue(dbl.isMonotonic(False, .99));
self.assertTrue(not dbl.isMonotonic(False, 1.1));
self.assertTrue(not dbl.isMonotonic(False, -1.1));
-
+
dc=DataArrayInt.New();
dc.alloc(14,1);
-
+
dd=DataArrayDouble.New();
self.assertRaises(InterpKernelException, dd.checkAllocated);
self.assertRaises(InterpKernelException, dd.fillWithValue, 1.);
self.assertRaises(InterpKernelException, dd.iota, 1.);
self.assertTrue(not ((dd.repr().find("No data"))==-1));
-
+
dd.alloc(0,1); #Allocated but nbOfElements==0!
self.assertTrue(not ((dd.repr().find("Number of tuples : 0"))==-1));
self.assertTrue(not ((dd.repr().find("Empty Data"))==-1));
dd.iota(10); #?!...ok
self.assertTrue(dd.isMonotonic(True, 1.)); #nothing is monotonic
self.assertTrue(dd.isMonotonic(False, 1.));
-
+
self.assertRaises(InterpKernelException, db.copyStringInfoFrom, da);
self.assertRaises(InterpKernelException, db.copyStringInfoFrom, da);
cIds=[2,2]
cIds[0]=1;
cIds[0]=-1;
self.assertRaises(InterpKernelException, da.copyPartOfStringInfoFrom, db, cIds);
-
+
info=["infoOfOneComponent"]*2;
self.assertRaises(InterpKernelException, da.setInfoOnComponents, info);
self.assertRaises(InterpKernelException, da.setInfoOnComponent, 1, info[0]);
db.setInfoOnComponents(info);
-
+
self.assertRaises(InterpKernelException, da.getInfoOnComponent, -1);
self.assertRaises(InterpKernelException, da.getInfoOnComponent, 2);
self.assertTrue(db.getInfoOnComponent(1)==db.getInfoOnComponent(0));
self.assertRaises(InterpKernelException, db.getVarOnComponent, 2);
self.assertRaises(InterpKernelException, db.getUnitOnComponent, -1);
self.assertRaises(InterpKernelException, db.getUnitOnComponent, 2);
-
+
self.assertTrue(da.GetVarNameFromInfo("varname unit ")=="varname unit ");
self.assertTrue(da.GetVarNameFromInfo("varname]unit[")=="varname]unit[");
self.assertTrue(da.GetVarNameFromInfo("[unit]")=="");
self.assertTrue(da.GetVarNameFromInfo("varname [unit]")=="varname");
-
+
self.assertTrue(da.GetUnitFromInfo("varname unit ")=="");
self.assertTrue(da.GetUnitFromInfo("varname]unit[")=="");
self.assertTrue(da.GetUnitFromInfo("[unit]")=="unit");
self.assertTrue(da.GetUnitFromInfo("varname [unit]")=="unit");
-
+
self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, db, "theMessageInThrow");
self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, dc, "theMessageInThrow");
self.assertRaises(InterpKernelException, db.checkNbOfTuplesAndComp, dc, "theMessageInThrow");
-
+
self.assertRaises(InterpKernelException, da.checkNbOfTuplesAndComp, 7, 2, "theMessageInThrow");
da.checkNbOfTuplesAndComp(7,1,"theMessageInThrow");
-
+
self.assertRaises(InterpKernelException, db.checkNbOfElems, 7*2+1, "theMessageInThrow");
db.checkNbOfElems(7*2,"theMessageInThrow");
-
+
self.assertRaises(InterpKernelException, db.GetNumberOfItemGivenBES, 10, 9, 1, "theMessageInThrow");
self.assertRaises(InterpKernelException, db.GetNumberOfItemGivenBES, 0, 1, -1, "theMessageInThrow");
self.assertEqual(10,db.GetNumberOfItemGivenBES(0,10,1,"theMessageInThrow"));
self.assertEqual(5,db.GetNumberOfItemGivenBES(0,10,2,"theMessageInThrow"));
self.assertEqual(6,db.GetNumberOfItemGivenBES(0,11,2,"theMessageInThrow"));
-
+
self.assertTrue(not ((da.repr().find("Number of components : 1"))==-1));
self.assertTrue(not ((dd.repr().find("Number of components : 1"))==-1));
self.assertTrue(not ((dbl.repr().find("Number of components : 1"))==-1));
-
+
self.assertTrue(not ((da.reprZip().find("Number of components : 1"))==-1));
self.assertTrue(not ((dd.reprZip().find("Number of components : 1"))==-1));
self.assertTrue(not ((dbl.reprZip().find("Number of components : 1"))==-1));
-
+
self.assertRaises(InterpKernelException, dbl.selectByTupleIdSafeSlice, 0, 1, -1);
self.assertRaises(InterpKernelException, dbl.subArray, -1, 1);
self.assertRaises(InterpKernelException, dbl.subArray, 8, 1);
self.assertRaises(InterpKernelException, dbl.subArray, 0, 8);
self.assertRaises(InterpKernelException, dbl.meldWith, dd);
-
+
self.assertRaises(InterpKernelException, dbl.setPartOfValuesAdv, dbl2, da); #dbl dbl2 not have the same number of components
self.assertRaises(InterpKernelException, dbl.setPartOfValuesAdv, dd, da); #da tuple selector DataArrayInt instance not have exactly 2 components
-
+
dbl3=DataArrayDouble.New();
dbl3.alloc(6,2);
dbl3.fillWithValue(11.);
self.assertRaises(InterpKernelException, dbl3.inverse);
self.assertRaises(InterpKernelException, dbl3.trace);
self.assertRaises(InterpKernelException, dbl3.deviator);
-
+
dbl3.setIJ(5,1,12.);
self.assertTrue(dbl3.getMaxValueInArray()==12.);
self.assertTrue(dbl3.getMinValueInArray()==11.);
-
+
db.fillWithValue(100); #bad Ids
self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
db.fillWithValue(-1); #bad Ids
self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
db.fillWithValue(6); #bad Ids for dbl3
self.assertRaises(InterpKernelException, dbl3.setPartOfValuesAdv, dbl2, db);
-
+
dbl3.checkNoNullValues();
dbl3.setIJ(5,0,0.);
self.assertRaises(InterpKernelException, dbl3.checkNoNullValues);
a=[]
self.assertRaises(InterpKernelException, DataArrayDouble_Aggregate, a);
self.assertRaises(InterpKernelException, DataArrayDouble_Meld, a);
-
+
a=[dbl2,dbl]; #Nb of components mismatch
self.assertRaises(InterpKernelException, DataArrayDouble_Aggregate, a);
-
+
self.assertRaises(InterpKernelException, DataArrayDouble_Dot, dbl2, dbl);
-
+
self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl2, dbl); #Nb of components mismatch
self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl2, dbl2); #Nb of components must be equal to 3
dbl4=DataArrayDouble.New();
dbl5=DataArrayDouble.New();
dbl5.alloc(7,3);
self.assertRaises(InterpKernelException, DataArrayDouble_CrossProduct, dbl4, dbl5); #Nb of tuples mismatch
-
+
a[0]=dbl4; #Nb of tuple mismatch
a[1]=dbl5; #Nb of tuple mismatch
self.assertRaises(InterpKernelException, DataArrayDouble_Meld, a);
self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),14);
pass
pass
-
+
def testDAToNoInterlace1(self):
tab1=[1,2,3,11,12,13,21,22,23,31,32,33,41,42,43]
da=DataArrayInt.New();
self.assertAlmostEqual(expected1[i],da4.getIJ(0,i),14);
pass
pass
-
+
def testDAIsUniform1(self):
tab1=[1,1,1,1,1]
da=DataArrayInt.New();
da=DataArrayInt() # non allocated array
self.assertRaises(InterpKernelException, da.hasUniqueValues)
pass
-
+
def testDADFromPolarToCart1(self):
tab1=[2.,0.2,2.5,0.7]
da=DataArrayDouble.New();
self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
pass
pass
-
+
def testDADFromCylToCart1(self):
tab1=[2.,0.2,4.,2.5,0.7,9.]
da=DataArrayDouble.New();
self.assertAlmostEqual(expected1[i],da2.getIJ(0,i),13);
pass
pass
-
+
def testDADFromSpherToCart1(self):
tab1=[2.,0.2,0.3,2.5,0.7,0.8]
da=DataArrayDouble.New();
coo = DataArrayDouble([0.0]*10) # Just to have some. Values do not matter.
mesh = MEDCouplingUMesh("m", 2)
mesh.setCoords(coo)
-
+
# Linear
c = [NORM_QUAD4, 0,1,0,2, NORM_TRI3, 0,1,1, NORM_TRI3, 0,1,2, NORM_QUAD4, 1,0,2,1, NORM_POLYGON, 1,0,1,1]
cI = [0, 5, 9, 13, 18, 23]
c, cI = mesh.getNodalConnectivity().getValues(), mesh.getNodalConnectivityIndex().getValues()
self.assertEqual(c, [NORM_QUAD4, 0,1,0,2, NORM_POLYGON, 0,1, NORM_TRI3, 0,1,2, NORM_TRI3, 1,0,2, NORM_POLYGON, 1,0])
self.assertEqual(cI, [0, 5, 8, 12, 16, 19])
-
+
res = mesh2.convertDegeneratedCellsAndRemoveFlatOnes()
c, cI = mesh2.getNodalConnectivity().getValues(), mesh2.getNodalConnectivityIndex().getValues()
self.assertEqual(c, [NORM_QUAD4, 0,1,0,2, NORM_TRI3, 0,1,2, NORM_TRI3, 1,0,2])
self.assertEqual(cI, [0, 5, 9, 13])
self.assertEqual(res.getValues(), [1,4])
-
+
# Quadratics now:
c = [NORM_TRI6, 0,1,0, 2,3,0, NORM_QUAD8, 0,1,1,3, 4,1,6,7, NORM_QPOLYG, 0,1, NORM_QPOLYG, 0,1,2,2, NORM_TRI6, 0,1,2, 3,4,5]
cI = [0, 7, 16, 19, 24, 31]
mesh3.setConnectivity(DataArrayInt(c),DataArrayInt(cI))
-
+
mesh3.convertDegeneratedCells()
c, cI = mesh3.getNodalConnectivity().getValues(), mesh3.getNodalConnectivityIndex().getValues()
self.assertEqual(c, [NORM_QPOLYG, 0,1, 2,3, NORM_TRI6, 0,1,3, 4,6,7, NORM_QPOLYG, 0,1, NORM_QPOLYG, 0,1,2,2, NORM_TRI6, 0,1,2, 3,4,5])
self.assertEqual(cI, [0, 5, 12, 15, 20, 27])
mesh4 = mesh3.deepCopy()
-
+
res = mesh4.convertDegeneratedCellsAndRemoveFlatOnes()
c, cI = mesh4.getNodalConnectivity().getValues(), mesh4.getNodalConnectivityIndex().getValues()
self.assertEqual(c, [NORM_QPOLYG, 0,1, 2,3, NORM_TRI6, 0,1,3, 4,6,7, NORM_TRI6, 0,1,2, 3,4,5])
self.assertEqual(cI, [0, 5, 12, 19])
self.assertEqual(res.getValues(), [2,3])
-
+
pass
def testGetNodeIdsNearPoints1(self):
pass
# test of static method DataArrayInt::meld
dai1=da1C.convertToIntArr();
- dai4=DataArrayInt.Meld(dai1,dai3);
- tmp=DataArrayInt.Meld([dai1,dai3]);
+ dai4=DataArrayInt32.Meld(dai1,dai3);
+ tmp=DataArrayInt32.Meld([dai1,dai3]);
self.assertTrue(dai4.isEqual(tmp))
self.assertEqual(5,dai4.getNumberOfComponents());
self.assertEqual(7,dai4.getNumberOfTuples());
self.assertEqual(0,a.getIJ(1,0));
self.assertEqual(4,a.getIJ(2,0));
pass
-
+
def testSwigErrorDaIntSelectByTupleId1(self):
a=DataArrayInt.New();
arr1=[1,11,2,12,3,13,4,14,5,15,6,16,7,17]
da.renumberInPlace(d)
da.renumber(d)
pass
-
+
pass
if __name__ == '__main__':