コード例 #1
0
 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)
コード例 #2
0
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'