예제 #1
0
    def test_color_values_size(self):
        nodes = {"a": [1, 2, 3], "b": [4, 5, 6, 7, 8, 9]}
        graph = {"nodes": nodes}

        n_samples = np.max([i for s in graph["nodes"].values() for i in s]) + 1
        color_values = np.arange(n_samples)
        color_values = _scale_color_values(color_values)

        assert len(color_values) == len(nodes["a"]) + len(nodes["b"]) + 1
예제 #2
0
    def test_color_values_type(self):
        nodes = {"a": [1, 2, 3], "b": [4, 5, 6]}
        graph = {"nodes": nodes}

        n_samples = np.max([i for s in graph["nodes"].values() for i in s]) + 1
        color_values = np.arange(n_samples)
        color_values = _scale_color_values(color_values)

        assert type(color_values) == np.ndarray
        assert min(color_values) == 0
        assert max(color_values) == 1
예제 #3
0
    def test_color_values_scaled(self):
        nodes = {"a": [1, 2, 3], "b": [4, 5, 6]}
        graph = {"nodes": nodes}

        cv = np.array([6, 5, 4, 3, 2, 1])
        color_values = _scale_color_values(cv)

        # np.testing.assert_almost_equal(min(color_values), 0)
        # np.testing.assert_almost_equal(
        #     max(color_values), 1
        # ), "Scaler might have floating point issues, 1.0000...0002"

        # _build_histogram in visuals.py assumes/needs this
        assert min(color_values) == 0
        assert max(color_values) == 1
예제 #4
0
    def test_node_averages_multiple_color_value_vectors(self):
        nodes = {"a": [0, 1, 2], "b": [3, 4, 5]}
        graph = {"nodes": nodes, "links": {}}

        n_samples = np.max([i for s in graph["nodes"].values() for i in s]) + 1
        color_values_1 = np.arange(n_samples)
        color_values_2 = np.flip(color_values_1)
        color_values = np.column_stack((color_values_1, color_values_2))
        color_values = _scale_color_values(color_values)

        # (Pdb) color_values
        # array([[0. , 1. ],
        #        [0.2, 0.8],
        #        [0.4, 0.6],
        #        [0.6, 0.4],
        #        [0.8, 0.2],
        #        [1. , 0. ]])

        X = np.arange(n_samples).reshape(-1, 1)
        lens = np.copy(X)

        graph_data = _format_mapper_data(
            graph=graph,
            color_values=color_values,
            node_color_function="mean",
            X=None,
            X_names=[],
            lens=lens,
            lens_names=[],
            custom_tooltips=None,
        )

        nodes = {node["name"]: node for node in graph_data["nodes"]}
        assert len(nodes["a"]["color"][0]) == 2
        assert np.array(nodes["a"]["tooltip"]["histogram"]).shape[0] == 2

        np.testing.assert_almost_equal(np.array([0.2, 0.8]),
                                       nodes["a"]["color"][0])
        np.testing.assert_almost_equal(np.array([0.8, 0.2]),
                                       nodes["b"]["color"][0])
예제 #5
0
 def test__scale_color_values_many_columns(self):
     cv1 = np.array([6, 5, 4, 3, 2, 1])
     cv2 = np.array([1, 2, 3, 4, 5, 6])
     cv = np.column_stack([cv1, cv2])
     color_values = _scale_color_values(cv)
     assert color_values.shape[1] == 2