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())
Exemple #2
0
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())