Exemple #1
0
 def test_ComputingNextLevelNodes(self):
     m = Matrix(4, 4)
     m.addString([1, 1, 0, 1])
     m.addString([0, 1, 1, 1])
     m.addString([1, 1, 1, 0])
     m.addString([1, 0, 1, 1])  # tetrahedra
     graph = Hasse(m)
     workNode = Node({0})
     newSet = graph.computingNextLevelNodes(workNode)
     self.assertEqual(3, len(newSet))
Exemple #2
0
 def test_VfromT(self):
     m = Matrix(4, 4)
     m.addString([1, 1, 1, 0])
     m.addString([0, 1, 1, 1])
     m.addString([1, 1, 1, 1])
     m.addString([1, 0, 1, 1])
     graph = Hasse(m)
     newSet = graph.VfromT([0, 3])
     self.assertEqual([2], newSet[0])
     self.assertEqual([3], newSet[1])
Exemple #3
0
 def test_FfromS(self):
     m = Matrix(4, 3)
     m.addString([1, 1, 1])
     m.addString([0, 1, 1])
     m.addString([1, 0, 1])
     m.addString([1, 0, 1])
     graph = Hasse(m)
     newSet = graph.FfromS([0, 2, 3])
     self.assertEqual([0], newSet[0])
     self.assertEqual([2], newSet[1])
Exemple #4
0
 def test_Closure(self):
     m = Matrix(4, 4)
     m.addString([1, 1, 1, 1])
     m.addString([0, 0, 1, 1])
     m.addString([1, 1, 0, 1])
     m.addString([1, 0, 1, 1])
     graph = Hasse(m)
     node = Node({0, 3})
     expectedNode = Node({0, 2, 3})
     newNode = graph.closure(node, 2)
     self.assertSetEqual(expectedNode.getElements(), newNode.getElements())
Exemple #5
0
 def test_Constructor(self):
     m = Matrix(2, 3)
     m.addString([1, 1, 1])
     m.addString([0, 1, 1])
     graph = Hasse(m)
     self.assertEqual(2, len(graph.builtNodes))
     self.assertEqual(3, len(graph.AllNodes))
Exemple #6
0
def experimentSceleton(dimension, nameFile):
    f = open(nameFile, 'r')
    for i in f:
        i = i.split()
        vertex = int(i[0])
        facet = int(i[1])
        break

    m = Matrix(vertex, facet)

    m.values = np.zeros(shape=[int(vertex), 0])
    firstLine = True
    for line in f:
        incedence = list()
        # if firstLine:
        #     firstLine = False
        # else:
        line = line.split()
        for k in range(vertex):
            if (str(k) in line):
                incedence.append(1)
            else:
                incedence.append(0)
        m.addCol(incedence)
    graph = Hasse(m)
    start = time.time()
    graph.building()
    finish = time.time()
    graph.printGraph()
    timeRun = finish - start
    return timeRun
Exemple #7
0
 def test_Building(self):
     m = Matrix(4, 4)
     m.addString([1, 1, 0, 1])
     m.addString([0, 1, 1, 1])
     m.addString([1, 1, 1, 0])
     m.addString([1, 0, 1, 1])  # tetrahedra
     graph = Hasse(m)
     graph.building()
     graph.printGraph()
     self.assertEqual(16, graph.graphSize)
Exemple #8
0
 def test_Building2(self):
     m = Matrix(7, 7)
     m.addString([0, 1, 1, 1, 1, 1, 1])
     m.addString([1, 1, 0, 0, 0, 0, 1])
     m.addString([1, 1, 1, 0, 0, 0, 0])
     m.addString([1, 0, 1, 1, 0, 0, 0])
     m.addString([1, 0, 0, 1, 1, 0, 0])
     m.addString([1, 0, 0, 0, 1, 1, 0])
     m.addString([1, 0, 0, 0, 0, 1, 1])  # piramide
     graph = Hasse(m)
     graph.building()
     graph.printGraph()
     self.assertEqual(28, graph.graphSize)
Exemple #9
0
def experiment(dimension, nameFile, vertex, facet):

    m = Matrix(vertex, facet)
    f = open(nameFile, 'r')
    for line in f:
        m.addString(line)
    graph = Hasse(m)
    start = time.time()
    graph.building()
    finish = time.time()
    graph.printGraph()
    timeRun = finish - start
    return timeRun
Exemple #10
0
def experimentRandom(dimension, vertex, facet):
    m = Matrix(vertex, facet)
    adding = list()
    for i in range(vertex):
        adding.clear()
        for j in range(facet):
            adding.append(random.randint(0, 1))
        m.addString(adding)
    graph = Hasse(m)
    start = time.time()
    graph.building()
    finish = time.time()
    graph.printGraph()
    timeRun = finish - start
    return timeRun