def testDivideIntoSubgraphs(self):
     # 1 - tworzenie macierzy
     adjacencyMatrix = [[0, 1, 1, 0, 1, 1, 1, 1],
                        [1, 0, 1, 0, 1, 1, 1, 0],
                        [1, 1, 0, 1, 1, 1, 1, 1],
                        [0, 0, 1, 0, 1, 0, 0, 0],
                        [1, 1, 1, 1, 0, 1, 1, 1],
                        [1, 1, 1, 0, 1, 0, 0, 0],
                        [1, 1, 1, 0, 1, 0, 0, 0],
                        [1, 0, 1, 0, 1, 0, 0, 0]]
     
     network = Network(adjacencyMatrix)
     
     # sprawdzenie metody
     alg = PlanarMIS(network)
     
     
     alg.divideIntoSubgraphs()
     
     
     # wezly z podgrafu i musza miec jako sasiadow tylko inne wezly z podgrafu i - albo zadnych
     for node in network.ndList:
         if node.memory.has_key('tree_num'):
             i = node.memory['tree_num']
             neigh_cp = node.memory['neighbors_cp']
             
             for neigh in neigh_cp:
                 if not network.ndList[neigh].memory.has_key('tree_num'):
                     self.fail("sasiad nie jest w tym zadnym podgrafie")
                 else:
                     self.failIf(network.ndList[neigh].memory['tree_num'] != i)
                     
         else:
             # wszystkie wezly musza byc w jakims podgrafie
                 self.fail("sasiad nie jest w zadnym podgrafie")
                 
     # sprawdzanie ilosci sasiadow
     for node in network.ndList:
             neigh_len = len(node.memory['neighbors_cp'])
             self.failIf(neigh_len > 6)
             
     # wypisywanie pogrfaow
     for i in range(5):
         print 'wezly z podgrafu', i, ':'
         for node in network.ndList:
             if node.memory['tree_num'] == i:
                 print node.ID, 
                 
         print ' '
from graph_tool.all import *

adjacencyMatrix = getUnitDiskGraph(10)

# tworzenie sieci
network = Network(adjacencyMatrix)

alg = PlanarMIS()

network.algorithm = alg
alg.network = network

nodes = network.ndList

alg.divideIntoSubgraphs()

# czesc rysujaca
g = Graph(directed=False)

# dodawanie wezlow - indeksowanie bedzie sie zgadzalo
for node in nodes:
    g.add_vertex()
    
# dodawanie krawedzi - tu trzeba isc po macierzy incydencji
# i - wiersze macierzy
# j - kolumny macierzy
# n - ilosc wezlow

n = len(adjacencyMatrix)