def test_create_random_dag(self): g = s.create_random_dag(13) for node in g: probs = [] for edge in g.edges_iter([node]): probs.append(g.get_edge_data(*edge)["prob"]) if g.out_degree(node) != 0: self.assertAlmostEqual(sum(probs), 1.0)
def test_get_longest_path_length(self): self.assertEqual(5, mc.get_longest_path_length(self.path_graph, self.path_graph_sources[0], self.path_graph_sinks[0]), "should return 5 for a path graph with") self.assertEqual(15, mc.get_longest_path_length(s.create_random_dag(15), 0, 14))
''' Created on Jul 11, 2012 @author: bantosik ''' import monte_carlo.utitities as utilities import monte_carlo.simulation as sim import networkx as nx import dynamic_programming.possible_collision_counter as dp from monte_carlo.simulation import get_sampled_distribution_of_collisions from pylab import * if __name__ == '__main__': g = sim.create_random_dag(15) s = [] for i in xrange(1000): s.append(get_sampled_distribution_of_collisions(g, 0, 14, 1000)) theoretic = dp.CollisionCounter(g, 0, 14).get_collision_distribution() empirical = zip(*s) means = [float(sum(x))/len(x) for x in empirical] summ = sum(means) means = [x / summ for x in means]