def test_statystyki_odrazu_po_kolorowaniu_duze(self): k = Kolorowanie(self.wzorzec_duze_przed) k.koloruj() statystyki = k.statystyki() self.assertEqual(30, statystyki['liczba_wierzcholkow']) self.assertEqual(61, statystyki['liczba_krawedzi']) self.assertEqual(16, statystyki['max_kolor']) self.assertAlmostEqual(0.0588888888889, statystyki['sredni_wspolczynnik_klasteryzacji'], delta=0.0000001) self.assertAlmostEqual(4.06666666667, statystyki['sredni_stopien_wierzcholka'], delta=0.0000001) self.assertAlmostEqual(2.41333333333, statystyki['srednia_dlugosc_sciezki'], delta=0.0000001) self.assertAlmostEqual(2.96666666667, statystyki['srednia_liczba_kolorow'], delta=0.0000001)
def setUpClass(cls): wzorzec_po = 'dane_testowe/wzorzec_po.dot' cls.k_po = Kolorowanie(wzorzec_po) cls.v1_po = list(cls.k_po.graph.vertices())[1] cls.v0_po = list(cls.k_po.graph.vertices())[0] cls.wzorzec_przed = 'dane_testowe/wzorzec_przed.dot' cls.k_przed = Kolorowanie(cls.wzorzec_przed) cls.v1_przed = list(cls.k_przed.graph.vertices())[1] cls.wzorzec_zly_iloczyn = 'dane_testowe/wzorzec_zly_iloczyn_po.dot' cls.k_zly_iloczyn = Kolorowanie(cls.wzorzec_zly_iloczyn) cls.v1_zly_iloczyn = list(cls.k_zly_iloczyn.graph.vertices())[1] cls.wzorzec_zly_niecialgy_przedzial = 'dane_testowe/wzorzec_zly_nieciagly_przedzial_po.dot' cls.k_zly_przedzial = Kolorowanie(cls.wzorzec_zly_niecialgy_przedzial) cls.v1_zly_przedzial = list(cls.k_zly_przedzial.graph.vertices())[1] cls.wzorzec_bez_wlasciwosci = 'dane_testowe/wzorzec_bez_wlasciwosci.dot' cls.k_bez_wl = Kolorowanie(cls.wzorzec_bez_wlasciwosci) cls.v1_bez_wl = list(cls.k_bez_wl.graph.vertices())[1] cls.wzorzec_po_niepelny = 'dane_testowe/wzorzec_po_niepelny.dot' cls.k_niepelny = Kolorowanie(cls.wzorzec_po_niepelny) cls.v5_niepelny = list(cls.k_niepelny.graph.vertices())[5] cls.v0_niepelny = list(cls.k_niepelny.graph.vertices())[0] cls.v1_niepelny = list(cls.k_niepelny.graph.vertices())[1] cls.wzorzec_duze_przed = 'dane_testowe/duze_przed.dot' cls.k_duze_przed = Kolorowanie(cls.wzorzec_duze_przed) cls.wzorzec_duze_po = 'dane_testowe/duze_po.dot' cls.k_duze_po = Kolorowanie(cls.wzorzec_duze_po)
def setUpClass(cls): wzorzec_po = 'dane_testowe/wzorzec_po.dot' k = Kolorowanie(wzorzec_po) cls.spr = Sprawdzenie(graph=k.graph) wzorzec_zly_iloczyn_po = 'dane_testowe/wzorzec_zly_iloczyn_po.dot' k_zly_iloczyn = Kolorowanie(file_input=wzorzec_zly_iloczyn_po) cls.spr_zly_iloczyn = Sprawdzenie(graph=k_zly_iloczyn.graph) wzorzec_zly_nieciagly_przdzial_po = 'dane_testowe/wzorzec_zly_nieciagly_przedzial_po.dot' k_zly_nieciagly_przedzial = Kolorowanie(file_input=wzorzec_zly_nieciagly_przdzial_po) cls.spr_zly_nieciagly_przedzial = Sprawdzenie(graph=k_zly_nieciagly_przedzial.graph) wzorzec_zla_liczebnosc = 'dane_testowe/wzorzec_zla_liczebnosc.dot' k_zla_liczebnosc = Kolorowanie(file_input=wzorzec_zla_liczebnosc) cls.spr_zla_liczebnosc = Sprawdzenie(graph=k_zla_liczebnosc.graph) wzorzec_przed = 'dane_testowe/wzorzec_przed.dot' k_przed = Kolorowanie(wzorzec_przed) cls.spr_przed = Sprawdzenie(graph=k_przed.graph)
def profiluj(): n_od = 5 n_do = 1405 n_krok = 200 e = 10 c = 4 logging.basicConfig(level=logging.INFO) start = time.time() for n in range(n_od, n_do + 1, n_krok): g = generuj(n, e, c) sciezka = 'profile_data/' + name(n, e, c) g.save(sciezka + '.dot') k = Kolorowanie(sciezka + '.dot') t_start = time.time() k.koloruj() t_end = time.time() t_delta = t_end - t_start stat = k.statystyki() slownik = {'czas': t_delta} slownik['statystyki'] = stat with open(sciezka + '.stat', 'wt') as f: json.dump(slownik, f, indent=4) print '\t' + str(float(n) / n_do * 100) + '%' e = 50 c = 4 for n in range(n_od, n_do + 1, n_krok): g = generuj(n, e, c) sciezka = 'profile_data/' + name(n, e, c) g.save(sciezka + '.dot') k = Kolorowanie(sciezka + '.dot') t_start = time.time() k.koloruj() t_end = time.time() t_delta = t_end - t_start stat = k.statystyki() slownik = {'czas': t_delta} slownik['statystyki'] = stat with open(sciezka + '.stat', 'wt') as f: json.dump(slownik, f, indent=4) print '\t' + str(float(n) / n_do * 100) + '%' e = 50 c = 15 for n in range(n_od, n_do + 1, n_krok): g = generuj(n, e, c) sciezka = 'profile_data/' + name(n, e, c) g.save(sciezka + '.dot') k = Kolorowanie(sciezka + '.dot') t_start = time.time() k.koloruj() t_end = time.time() t_delta = t_end - t_start stat = k.statystyki() slownik = {'czas': t_delta} slownik['statystyki'] = stat with open(sciezka + '.stat', 'wt') as f: json.dump(slownik, f, indent=4) print '\t' + str(float(n) / n_do * 100) + '%' stop = time.time() print '\n\tKONIEC -> laczny czas wykonania: ' + str(stop - start) + ' s'
def test_create(self): k = Kolorowanie(self.wzorzec_po)
def setUpClass(cls): cls.wzorzec_po = 'dane_testowe/wzorzec_po.dot' cls.k = Kolorowanie(file_input=cls.wzorzec_po) cls.g = cls.k.graph
def test_sprawdzenie_odrazu_po_kolorowaniu_duze(self): k = Kolorowanie(self.wzorzec_duze_przed) k.koloruj() self.assertTrue(k.sprawdzenie())
def test_sprawdzenie_z_pliku_po_kolorowaniu_duze(self): k = Kolorowanie(self.wzorzec_duze_po) self.assertTrue(k.sprawdzenie())
def test_koloruj3(self): k = Kolorowanie(self.wzorzec_zly_iloczyn) k.koloruj() self.assertEqual(True, k.sprawdzenie())
def test_koloruj2(self): k = Kolorowanie(self.wzorzec_po_niepelny) k.koloruj() self.assertEqual(True, k.sprawdzenie())
def test_koloruj(self): k = Kolorowanie(self.wzorzec_przed) k.koloruj() self.assertEqual(True, k.sprawdzenie())
def test_koloruj_wierzcholek4(self): k = Kolorowanie(self.wzorzec_przed) k._dodaj_i_inicjuj_wlasciwosc_przypisane_kolory() v3_przed = list(k.graph.vertices())[3] self.assertEqual([1, 2], k._koloruj_wierzcholek(v3_przed))
def test_sortuj_suma_przypisanych_kolorow_sasiadow(self): k = Kolorowanie(self.wzorzec_po_niepelny) lista_wezlow = list(k.graph.vertices()) k._sortuj_suma_przypisanych_kolorow_sasiadow(lista_wezlow) po = [int(str(v)) for v in lista_wezlow] self.assertEqual([0, 2, 3, 4, 5, 1], po)
def test_sortuj_stopien(self): k = Kolorowanie(self.wzorzec_przed) lista_wierzch = list(k.graph.vertices()) k._sortuj_stopien(lista_wierzch) po = [int(str(v)) for v in lista_wierzch] self.assertEqual([1, 0, 2, 4, 3, 5], po)
def test_dodaj_wlasciwosc_przypisane_kolory(self): k = Kolorowanie(self.wzorzec_przed) k._dodaj_i_inicjuj_wlasciwosc_przypisane_kolory() v1 = list(k.graph.vertices())[1] self.assertEqual([], k.graph.vertex_properties['przypisane_kolory'][v1])
def setUpClass(cls): wzorzec_po = 'dane_testowe/wzorzec_po.dot' k = Kolorowanie(wzorzec_po) cls.g = k.graph cls.stat = StatInfo(graph=k.graph)