def test_compute_laplacian_matrix_args(almost_equal_decimals=5): input_types = ['data', 'adjacency', 'affinity'] params = [{}, {'radius': 4}, {'radius': 5}] lapl_params = [{}, {'scaling_epps': 4}, {'scaling_epps': 10}] adjacency_method = 'auto' affinity_method = 'auto' for laplacian_method in laplacian_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 lapl_params: for kwarg_params in lapl_params: true_params = init_params.copy() true_params.update(kwarg_params) laplacian_true = compute_laplacian_matrix( A, laplacian_method, **true_params) for input in input_types: G = Geometry(adjacency_method=adjacency_method, adjacency_kwds=params[1], affinity_method=affinity_method, affinity_kwds=params[1], laplacian_method=laplacian_method, laplacian_kwds=lapl_params[0]) if input in ['data']: G.set_data_matrix(X) if input in ['adjacency']: G.set_adjacency_matrix(D) else: G.set_affinity_matrix(A) laplacian_queried = G.compute_laplacian_matrix(**kwarg_params) assert_array_almost_equal(laplacian_true.todense(), laplacian_queried.todense(), almost_equal_decimals)
def test_compute_laplacian_matrix_args(almost_equal_decimals=5): input_types = ['data', 'adjacency', 'affinity'] params = [{}, {'radius':4}, {'radius':5}] lapl_params = [{}, {'scaling_epps':4}, {'scaling_epps':10}] adjacency_method = 'auto' affinity_method = 'auto' for laplacian_method in laplacian_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 lapl_params: for kwarg_params in lapl_params: true_params = init_params.copy() true_params.update(kwarg_params) laplacian_true = compute_laplacian_matrix(A, laplacian_method, **true_params) for input in input_types: G = Geometry(adjacency_method = adjacency_method, adjacency_kwds = params[1], affinity_method = affinity_method, affinity_kwds = params[1], laplacian_method = laplacian_method, laplacian_kwds = lapl_params[0]) if input in ['data']: G.set_data_matrix(X) if input in ['adjacency']: G.set_adjacency_matrix(D) else: G.set_affinity_matrix(A) laplacian_queried = G.compute_laplacian_matrix(**kwarg_params) assert_array_almost_equal(laplacian_true.todense(), laplacian_queried.todense(), almost_equal_decimals)
def test_laplacian_methods(): assert_equal( set(laplacian_methods()), { 'auto', 'renormalized', 'symmetricnormalized', 'geometric', 'randomwalk', 'unnormalized' })
def test_laplacian_methods(): assert_equal(set(laplacian_methods()), {'auto', 'renormalized', 'symmetricnormalized', 'geometric', 'randomwalk', 'unnormalized'})