Source code for tests.integration_tests.network.test_graph_metrics

import networkx as nx
import numpy as np
import pytest

from yawning_titan.experiment_helpers import graph_metrics


[docs]@pytest.mark.integration_test @pytest.mark.parametrize( "input_list, answer", [ ([10, 20, 30, 50, 100], 31.291346445319), ([0.33, 0.42, 0.88, 0.41, 0.21], 0.402021991652), ], ) def test_geometric_mean_overflow(input_list, answer): """ Test to check geometric mean with overflow returns correct values. :param input_list: The values used to derive a geometric mean. :param answer: The geometric mean. """ result = graph_metrics.geometric_mean_overflow(input_list) assert np.isclose(result, answer, rtol=1e-7)
[docs]@pytest.mark.integration_test @pytest.mark.parametrize( "input_list, expected_len", [ ([[20, 20], [20, 20, 30], [20, 20]], 7), ([[20, 10, 30, 40], [0.5, 10, 19999]], 7), ], ) def test_flatten_list(input_list, expected_len): """ Test to check helper function works as intended. :param input_list: A ragged list of lists. :param expected_len: The expected length once flattened. """ res = graph_metrics.flatten_list(input_list) assert len(res) == expected_len
[docs]@pytest.mark.integration_test def test_get_func_summary_statistics(default_network): """Test graph summary stats function returns expected number of elements.""" metrics = graph_metrics.get_func_summary_statistics( nx.average_degree_connectivity(default_network) ) assert len(metrics) == 6
[docs]@pytest.mark.integration_test def test_get_graph_metric_bundle(default_network): """Test size and number of elements returned by graph metric bundle method.""" metric_bundle = graph_metrics.get_graph_metric_bundle(default_network) assert len(metric_bundle) == 5 for row in metric_bundle: assert len(row) == 7