def test_last_interval_weighter(): G = nx.MultiDiGraph() last_weighter = wiu.LastIntervalWeighter(2) # set weight=1 for edges that last 2 interval (time is measured by node arrivals) G.add_weighted_edges_from([(1,2,2)]) # initially 2 nodes w_in_degs = wiu.weighted_in_degree(G, G.nodes(), G.number_of_nodes(), last_weighter) assert w_in_degs[1] == 0 assert w_in_degs[2] == 1 G.add_weighted_edges_from([(2,3,3), (1,3,3)]) # 1 node enters w_in_degs = wiu.weighted_in_degree(G, G.nodes(), G.number_of_nodes(), last_weighter) assert w_in_degs[1] == 0 assert w_in_degs[2] == 1 assert w_in_degs[3] == 2 G.add_weighted_edges_from([(3,4,4), (1,5,5)]) # 2 node enters w_in_degs = wiu.weighted_in_degree(G, G.nodes(), G.number_of_nodes(), last_weighter) assert w_in_degs[1] == 0 assert w_in_degs[2] == 0 # indegree decreases from 1 to 0 assert w_in_degs[3] == 0 # indegree decreases from 2 to 0 (because 2 new nodes have entered the graph since 3 had an inedge) assert w_in_degs[4] == 1 assert w_in_degs[5] == 1 G.add_weighted_edges_from([(2,1,5), (1,6,6)]) # 1 node enters w_in_degs = wiu.weighted_in_degree(G, G.nodes(), G.number_of_nodes(), last_weighter) print w_in_degs assert w_in_degs[1] == 1 assert w_in_degs[2] == 0 assert w_in_degs[3] == 0 # indegree decreases from 2 to 0 assert w_in_degs[4] == 0 # indegree decreases from 2 to 0 (because 2 new nodes have entered the graph since 4 had an inedge) assert w_in_degs[5] == 1 assert w_in_degs[6] == 1
def test_constant_weighter(): edges = [] G = nx.MultiDiGraph() edges.append((1,2,2)) edges.append((1,3,3)) edges.append((1,4,4)) edges.append((2,3,4)) edges.append((4,2,4)) edges.append((4,5,5)) edges.append((5,1,5)) edges.append((3,5,5)) G.add_weighted_edges_from(edges) cons_weighter_1 = wiu.ConstantWeighter(1) # set weight=1 for all edges w_in_degs = wiu.weighted_in_degree(G, G.nodes(), G.number_of_nodes(), cons_weighter_1) assert w_in_degs[1] == 1 assert w_in_degs[2] == 2 assert w_in_degs[3] == 2 assert w_in_degs[4] == 1 assert w_in_degs[5] == 2 cons_weighter_3 = wiu.ConstantWeighter(3) # set weight=3 for all edges w_in_degs = wiu.weighted_in_degree(G, G.nodes(), G.number_of_nodes(), cons_weighter_3) assert w_in_degs[1] == 3 assert w_in_degs[2] == 6 assert w_in_degs[3] == 6 assert w_in_degs[4] == 3 assert w_in_degs[5] == 6