This repository has been archived on 2023-03-25. You can view files and clone it, but cannot push or open issues or pull requests.
mightyscape-1.1-deprecated/extensions/networkx/generators/tests/test_stochastic.py
2020-07-30 01:16:18 +02:00

62 lines
2.0 KiB
Python

# 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."""
import pytest
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 nx.is_isomorphic(G, S)
assert (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 (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 (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 (sorted(S.edges(data=True)) ==
[(0, 1, d), (0, 1, d), (0, 2, d), (0, 2, d)])
def test_graph_disallowed(self):
with pytest.raises(nx.NetworkXNotImplemented):
nx.stochastic_graph(nx.Graph())
def test_multigraph_disallowed(self):
with pytest.raises(nx.NetworkXNotImplemented):
nx.stochastic_graph(nx.MultiGraph())