def test_compute_affinity_matrix_args(almost_equal_decimals=5): """ test the compute_affinity_matrix parameter arguments """ input_types = ['data', 'adjacency', 'affinity'] params = [{'radius': 4}, {'radius': 5}] adjacency_method = 'auto' for affinity_method in affinity_methods(): X = np.random.uniform(size=(10, 2)) D = compute_adjacency_matrix(X, adjacency_method, **params[1]) A = compute_affinity_matrix(D, affinity_method, **params[1]) for init_params in params: for kwarg_params in params: true_params = init_params.copy() true_params.update(kwarg_params) affinity_true = compute_affinity_matrix( D, adjacency_method, **true_params) for input in input_types: G = Geometry(adjacency_method=adjacency_method, adjacency_kwds=params[1], affinity_method=affinity_method, affinity_kwds=init_params) if input in ['data', 'adjacency']: if input in ['data']: G.set_data_matrix(X) else: G.set_adjacency_matrix(D) affinity_queried = G.compute_affinity_matrix( **kwarg_params) assert_array_almost_equal(affinity_true.todense(), affinity_queried.todense(), almost_equal_decimals) else: G.set_affinity_matrix(A) msg = distance_error_msg assert_raise_message(ValueError, msg, G.compute_affinity_matrix)
def test_compute_affinity_matrix_args(almost_equal_decimals=5): """ test the compute_affinity_matrix parameter arguments """ input_types = ['data', 'adjacency', 'affinity'] params = [{'radius':4}, {'radius':5}] adjacency_method = 'auto' for affinity_method in affinity_methods(): X = np.random.uniform(size=(10, 2)) D = compute_adjacency_matrix(X, adjacency_method, **params[1]) A = compute_affinity_matrix(D, affinity_method, **params[1]) for init_params in params: for kwarg_params in params: true_params = init_params.copy() true_params.update(kwarg_params) affinity_true = compute_affinity_matrix(D, adjacency_method, **true_params) for input in input_types: G = Geometry(adjacency_method = adjacency_method, adjacency_kwds = params[1], affinity_method = affinity_method, affinity_kwds = init_params) if input in ['data', 'adjacency']: if input in ['data']: G.set_data_matrix(X) else: G.set_adjacency_matrix(D) affinity_queried = G.compute_affinity_matrix(**kwarg_params) assert_array_almost_equal(affinity_true.todense(), affinity_queried.todense(), almost_equal_decimals) else: G.set_affinity_matrix(A) msg = distance_error_msg assert_raise_message(ValueError, msg, G.compute_affinity_matrix)
def test_affinity_methods(): assert_equal(set(affinity_methods()), {'auto', 'gaussian'})