⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_statistics.m

📁 都是测试程序
💻 M
字号:
function test_statistics%%msgid = 'matlab_bgl:test_statistics';%% betweenness_centralityn = 10;A = cycle_graph(n);% the centrality index of all vertices in a cycle is the samebc = betweenness_centrality(A,struct('unweighted',1));if any(bc-bc(1))    error(msgid, 'betweenness_centrality returned incorrect values for a cycle');end% make sure we toss an error when the graph has logical weightstry     bc = betweenness_centrality(A);    error(msgid, 'betweenness_centrality did not report an error');catchend% make sure the edge centrality graphs are the same in a few casesA = sparse(1:n-1, 2:n, 1, n, n);[bc,Ec] = betweenness_centrality(A);if any(any(spones(A) - spones(Ec)))    error(msgid, 'different non-zero structure in edge centrality matrix');end[bc,Ec] = betweenness_centrality(A,struct('istrans',1));if any(any(spones(A) - spones(Ec)))    error(msgid, 'different non-zero structure in edge centrality matrix');end% make sure betweenness centrality can use an optional edge weight matrixbc = betweenness_centrality(A,struct('edge_weight',rand(nnz(A),1)));bc = betweenness_centrality(A);bc2 = betweenness_centrality(A,struct('edge_weight','matrix'));if any(bc-bc2)    error(msgid, 'edge_weight option error');endtry    bc = betweenness_centrality(A,struct('edge_weight',rand(2,1)));    error(msgid, 'betweenness_centrality(weight=rand(2,1)) did not report an error');    catchend%% clustering_coefficients% Create a clique, where all the clustering coefficients are equalA = sparse(ones(5));ccfs = clustering_coefficients(A);if any(ccfs ~= ccfs(1))    error(msgid, 'clustering_coefficients failed');end%% core_numbersload('../graphs/kt-7-2.mat');A = spones(A);cn = core_numbers(A);load('../graphs/cores_example.mat');cn = core_numbers(A);cn2 = core_numbers(A,struct('unweighted',0));if any(cn-cn2)    error(msgid, 'core_numbers failed equivalence test');endA = [0 -1 -2; -1 0 -2; -2 -2 0];cn = core_numbers(sparse(A),struct('unweighted',0));if any(cn-[-1; -1; -4])    error(msgid, 'core_numbers failed negative test');end%% dominator_treeload('../graphs/dominator_tree_example.mat');p = lengauer_tarjan_dominator_tree(A,1);if any(p ~= [ 0, 1,  2,  2,  4,   5,  5,  2])    error(msgid, 'lengauer_tarjan_dominator_tree failed test');end% graphs from boost example'sA=sparse(13,13);A(1,2)=1;A(1,3)=1;A(1,4)=1;A(2,5)=1;A(3,2)=1;A(3,5)=1;A(3,6)=1;A(4,7)=1;A(4,8)=1;A(5,13)=1;A(6,9)=1;A(7,10)=1;A(8,10)=1;A(8,11)=1;A(9,6)=1;A(9,12)=1;A(10,12)=1;A(11,10)=1;A(12,1)=1;A(12,10)=1;A(13,9)=1;pred=[0 1 1 1 1 1 4 4 1 1 8 1 5 ];p = lengauer_tarjan_dominator_tree(A,1);if any(p ~= pred)   error(msgid, 'lengauer_tarjan_dominator_tree failed test');endA=sparse(7,7);A(1,2)=1;A(2,3)=1;A(2,4)=1;A(3,5)=1;A(3,6)=1;A(5,7)=1;A(6,7)=1;A(7,2)=1;pred=[0 1 2 2 3 3 3 ];p = lengauer_tarjan_dominator_tree(A,1);if any(p ~= pred)   error(msgid, 'lengauer_tarjan_dominator_tree failed test');endA=sparse(13,13);A(1,2)=1;A(1,3)=1;A(2,4)=1;A(2,7)=1;A(3,5)=1;A(3,8)=1;A(4,6)=1;A(4,7)=1;A(5,8)=1;A(5,3)=1;A(6,9)=1;A(6,11)=1;A(7,10)=1;A(8,13)=1;A(9,12)=1;A(10,9)=1;A(11,12)=1;A(12,2)=1;A(12,13)=1;pred=[0 1 1 2 3 4 2 3 2 7 6 2 1 ];p = lengauer_tarjan_dominator_tree(A,1);if any(p ~= pred)   error(msgid, 'lengauer_tarjan_dominator_tree failed test');endA=sparse(8,8);A(1,2)=1;A(2,3)=1;A(2,4)=1;A(3,8)=1;A(4,5)=1;A(5,6)=1;A(5,7)=1;A(6,8)=1;A(7,5)=1;pred=[0 1 2 2 4 5 5 2 ];p = lengauer_tarjan_dominator_tree(A,1);if any(p ~= pred)   error(msgid, 'lengauer_tarjan_dominator_tree failed test');endA=sparse(8,8);A(1,2)=1;A(2,3)=1;A(3,4)=1;A(3,5)=1;A(4,3)=1;A(5,6)=1;A(5,7)=1;A(6,8)=1;A(7,8)=1;pred=[0 1 2 3 3 5 5 5 ];p = lengauer_tarjan_dominator_tree(A,1);if any(p ~= pred)   error(msgid, 'lengauer_tarjan_dominator_tree failed test');endA=sparse(8,8);A(1,2)=1;A(1,3)=1;A(2,7)=1;A(3,4)=1;A(3,5)=1;A(4,8)=1;A(6,8)=1;A(7,8)=1;pred=[0 1 1 3 3 0 2 1 ];p = lengauer_tarjan_dominator_tree(A,1);if any(p ~= pred)   error(msgid, 'lengauer_tarjan_dominator_tree failed test');endA=sparse(14,14);A(1,2)=1;A(1,14)=1;A(2,3)=1;A(3,4)=1;A(3,8)=1;A(4,5)=1;A(4,6)=1;A(5,7)=1;A(6,7)=1;A(7,9)=1;A(8,9)=1;A(9,10)=1;A(10,11)=1;A(10,12)=1;A(11,12)=1;A(12,10)=1;A(12,13)=1;A(13,3)=1;A(13,14)=1;pred=[0 1 2 3 4 4 4 3 3 9 10 10 12 1 ];p = lengauer_tarjan_dominator_tree(A,1);if any(p ~= pred)   error(msgid, 'lengauer_tarjan_dominator_tree failed test');end%% edmonds_maximum_cardinality_matchingload('../graphs/matching_example.mat');[m,v] = edmonds_maximum_cardinality_matching(A);if nnz(m)/2 ~= 8    error(msgid, 'edmonds_maximum_cardinality_matching failed');end%% matchingload('../graphs/dfs_example.mat');try    [m,v] = matching(A);    error(msgid,'matching failed');catchendload('../graphs/matching_example.mat');[m,v] = matching(A);%% test_dag% Test the dag_test function, which also tests topological orderA = sparse(6,6);A(3,6) = 1;A(1,2) = 1;A(3,5) = 1;A(1,4) = 1;A(2,5) = 1;A(5,4) = 1;dag = test_dag(A);if dag == 0    error(msgid, 'A dag was not identified as a dag');end% Test something that isn't a dagA = cycle_graph(n);dag = test_dag(A);if dag == 1    error(msgid, 'A cycle was identified as a dag');end    %% test_matchingload('../graphs/matching_example.mat');[m_max,v] = matching(A);[m_not_max,v] = matching(A,struct('augmenting_path','none'));if ~test_matching(A,m_max) || test_matching(A,m_not_max)    error(msgid, 'test_matching failed');end    %% topological_order% Test the topological order functionn = 10;A = sparse(1:n-1, 2:n, 1, n, n);p = topological_order(A);if any(p - (1:n)')    error(msgid, 'topological_order failed on simple case');end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -