Repository URL to install this package:
|
Version:
2.1 ▾
|
# test_stochastic.py - unit tests for the stochastic module
#
# Copyright 2010, 2011, 2012, 2013, 2014, 2015 NetworkX developers.
#
# This file is part of NetworkX.
#
# NetworkX is distributed under a BSD license; see LICENSE.txt for more
# information.
"""Unit tests for the :mod:`networkx.generators.stochastic` module."""
from nose.tools import assert_true, assert_equal, raises
import networkx as nx
class TestStochasticGraph(object):
"""Unit tests for the :func:`~networkx.stochastic_graph` function.
"""
def test_default_weights(self):
G = nx.DiGraph()
G.add_edge(0, 1)
G.add_edge(0, 2)
S = nx.stochastic_graph(G)
assert_true(nx.is_isomorphic(G, S))
assert_equal(sorted(S.edges(data=True)),
[(0, 1, {'weight': 0.5}), (0, 2, {'weight': 0.5})])
def test_in_place(self):
"""Tests for an in-place reweighting of the edges of the graph.
"""
G = nx.DiGraph()
G.add_edge(0, 1, weight=1)
G.add_edge(0, 2, weight=1)
nx.stochastic_graph(G, copy=False)
assert_equal(sorted(G.edges(data=True)),
[(0, 1, {'weight': 0.5}), (0, 2, {'weight': 0.5})])
def test_arbitrary_weights(self):
G = nx.DiGraph()
G.add_edge(0, 1, weight=1)
G.add_edge(0, 2, weight=1)
S = nx.stochastic_graph(G)
assert_equal(sorted(S.edges(data=True)),
[(0, 1, {'weight': 0.5}), (0, 2, {'weight': 0.5})])
def test_multidigraph(self):
G = nx.MultiDiGraph()
G.add_edges_from([(0, 1), (0, 1), (0, 2), (0, 2)])
S = nx.stochastic_graph(G)
d = dict(weight=0.25)
assert_equal(sorted(S.edges(data=True)),
[(0, 1, d), (0, 1, d), (0, 2, d), (0, 2, d)])
@raises(nx.NetworkXNotImplemented)
def test_graph_disallowed(self):
nx.stochastic_graph(nx.Graph())
@raises(nx.NetworkXNotImplemented)
def test_multigraph_disallowed(self):
nx.stochastic_graph(nx.MultiGraph())