def test_Triangle(self): t0 = Triangle(0,nodes=[Node(0, 0.0, 0.0, 0.0), Node(1, 0.0, 1.0, 0.0), Node(2, 1.0, 0.0, 0.0)]) t1 = Triangle(0,nodes=[Node(3, 1.0, 1.0, 0.0), Node(1, 0.0, 1.0, 0.0), Node(2, 1.0, 0.0, 0.0)]) ok_(not t0.hasGeometricInfo) ok_(t0.nodes < t1.nodes) t0.computeGeometricInfo() ok_((t0.barycenter == EVec(1.0/3.0,1.0/3.0,0.0)).all())
def test_Edge(): edge0 = Edge(0, nodes=[Node(0, 0.0, 0.0, 0.0), Node(1, 1.0, 1.0, 1.0)]) edge1 = Edge(1, nodes=[Node(1, 1.0, 1.0, 1.0), Node(2, 2.0, 1.0, 1.0)]) edgesOrdered = [edge0, edge1] edgesDisordered = {edge1.nodes: edge1, edge0.nodes: edge0} edgeKeys = edgesDisordered.keys() edgeKeys.sort() for e1, e2_key in zip(edgesOrdered, edgeKeys): ok_(e1.nodes == edgesDisordered[e2_key].nodes) edge0.computeGeometricInfo() ok_((edge0.barycenter == EVec(0.5, 0.5, 0.5)).all()) ok_(edge0.length == math.sqrt(3.0)) ok_(edge0.diameter == math.sqrt(3.0)) ok_(edge0.innerDiameter == math.sqrt(3.0)) ok_(edge0.hasGeometricInfo) nodeSet = set(edge0.nodes + edge1.nodes) ok_(nodeSet == set(getNodesFromEdges([edge0, edge1])))
def test_Node(self): origin_default = Node() origin = Node(nodeNumber=0,x=0.0,y=0.0,z=0.0) ppp = Node(nodeNumber=1, x= 0.5, y= 0.5, z= 0.5) ppm = Node(nodeNumber=2, x= 0.5, y= 0.5, z=-0.5) pmp = Node(nodeNumber=3, x= 0.5, y=-0.5, z= 0.5) pmm = Node(nodeNumber=4, x= 0.5, y=-0.5, z=-0.5) mpp = Node(nodeNumber=5, x=-0.5, y= 0.5, z= 0.5) mpm = Node(nodeNumber=6, x=-0.5, y= 0.5, z=-0.5) mmp = Node(nodeNumber=7, x=-0.5, y=-0.5, z= 0.5) mmm = Node(nodeNumber=8, x=-0.5, y=-0.5, z=-0.5) lexicographic_ordering = [ppp, ppm, pmp, pmm, mpp, mpm, mmp, mmm] ok_(origin.N == 0) ok_(origin.p[0] == 0.0) ok_(origin.p[1] == 0.0) ok_(origin.p[2] == 0.0) ok_(origin.length == 1.0) ok_(origin.diameter == 1.0) ok_((origin.unitNormal == Node.xUnitVector).all()) ok_(origin == origin_default) ok_(str(origin) == str(origin_default)) ok_(hash(origin) == hash(origin_default)) ok_(ppp > origin) for i in range(8): p = lexicographic_ordering[i] for pg in lexicographic_ordering[:i]: ok_(pg > p) ok_(pg >= p) ok_(pg != p) for pl in lexicographic_ordering[i+1:]: ok_(pl < p) ok_(pl <= p) ok_(pl != p) v = EVec(0.25,0.35,0.45) ntest = Node(29,0.0,0.0,0.0) ntest.p +=v ok_((ntest.p == (0.25, 0.35, 0.45)).all())