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))
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])
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])
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())
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))
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
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)
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)
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
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