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
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
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
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])
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