0001
0002
0003 function tests = modelAbilitiesTests
0004 tests = functiontests(localfunctions);
0005 end
0006
0007 function canConsumeTest(testCase)
0008
0009 sourceDir=fileparts(fileparts(fileparts(which(mfilename))));
0010 load(fullfile(sourceDir,'testing','unit_tests','test_data','ecoli_textbook.mat'), 'model');
0011
0012 testOut=canConsume(model,{'r5p_c';'ru5p_DASH_D_c';'s7p_c';'succ_c';'succ_e';'succoa_c';'xu5p_DASH_D_c'});
0013
0014 testCheck=[true;true;true;true;true;false;true];
0015
0016 verifyEqual(testCase,testOut,testCheck)
0017 end
0018
0019 function canProduceTest(testCase)
0020
0021 sourceDir=fileparts(fileparts(fileparts(which(mfilename))));
0022 load(fullfile(sourceDir,'testing','unit_tests','test_data','ecoli_textbook.mat'), 'model');
0023
0024 testOut=canProduce(model,{'r5p_c';'ru5p_DASH_D_c';'s7p_c';'succ_c';'succ_e';'succoa_c';'xu5p_DASH_D_c'});
0025
0026 testCheck=[true;true;true;true;true;false;true];
0027
0028 verifyEqual(testCase,testOut,testCheck)
0029 end
0030
0031 function checkProductionTest(testCase)
0032
0033 sourceDir=fileparts(fileparts(fileparts(which(mfilename))));
0034 load(fullfile(sourceDir,'testing','unit_tests','test_data','ecoli_textbook.mat'), 'model');
0035
0036 [testOut.np, testOut.npn, testOut.nfpm,testOut.mtc,~]=checkProduction(model,true,model.comps,false);
0037
0038 testCheck.np=[10;13;16;17;21;30;32;37;49;50;51;52;53;64;65;71];
0039 testCheck.npn={'Acetyl-CoA[c]';'ADP[c]';'AMP[c]';'ATP[c]';'Coenzyme A[c]';'D-Fructose[e]';'Fumarate[e]';'L-Glutamine[e]';'L-Malate[e]';'NAD[c]';'NADH[c]';'NADP[c]';'NADPH[c]';'Ubiquinone-8[c]';'Ubiquinol-8[c]';'Succinyl-CoA[c]'};
0040 testCheck.nfpm=[true,false,false,false,true,false,false,false,false,false,false,false,false,false,false,true;false,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false;false,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false;false,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false;true,false,false,false,true,false,false,false,false,false,false,false,false,false,false,true;false,false,false,false,false,true,false,false,false,false,false,false,false,false,false,false;false,false,false,false,false,false,true,false,false,false,false,false,false,false,false,false;false,false,false,false,false,false,false,true,false,false,false,false,false,false,false,false;false,false,false,false,false,false,false,false,true,false,false,false,false,false,false,false;false,false,false,false,false,false,false,false,false,true,true,false,false,false,false,false;false,false,false,false,false,false,false,false,false,true,true,false,false,false,false,false;false,false,false,false,false,false,false,false,false,false,false,true,true,false,false,false;false,false,false,false,false,false,false,false,false,false,false,true,true,false,false,false;false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,false;false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,false;true,false,false,false,true,false,false,false,false,false,false,false,false,false,false,true];
0041 testCheck.mtc={'Acetyl-CoA[c] (connects 3 metabolites)';'ADP[c] (connects 3 metabolites)';'NAD[c] (connects 2 metabolites)';'NADP[c] (connects 2 metabolites)';'Ubiquinone-8[c] (connects 2 metabolites)';'D-Fructose[e] (connects 1 metabolites)';'Fumarate[e] (connects 1 metabolites)';'L-Glutamine[e] (connects 1 metabolites)';'L-Malate[e] (connects 1 metabolites)'};
0042
0043 verifyEqual(testCase,testOut,testCheck)
0044 end
0045
0046 function consumeSomethingTest(testCase)
0047
0048 sourceDir=fileparts(fileparts(fileparts(which(mfilename))));
0049 load(fullfile(sourceDir,'testing','unit_tests','test_data','ecoli_textbook.mat'), 'model');
0050
0051 [testOut.s, testOut.m]=consumeSomething(model,{'r5p_c';'ru5p_DASH_D_c';'s7p_c';'succ_c';'succ_e';'succoa_c';'xu5p_DASH_D_c'});
0052
0053
0054
0055 testCheck.s=[0;0;1.4591;0;0;1.4591;0;0;0;0;8.39;4.0126;0;1.4591;0;2.9183;0;1.4591;0;1.4591;0;0;1.4591;0;0;0;0;0;0;0;1.4591;0;0;0;0;-1.4591;1.4591;0;0;0;0;0;0;0;0;0;0;0;-1.4591;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2.9183;0;0;-1.4591;1.4591;0;0;0;-1.4591;0;1.4591;1.4591;0;0;0;-1.4591;1.4591;0;0;0;0;0;0;0;0;0;0;0;0];
0056 testCheck.m=[33];
0057
0058 verifyEqual(testCase,testOut,testCheck,'AbsTol',1e-4)
0059 end
0060
0061 function makeSomethingTest(testCase)
0062
0063 sourceDir=fileparts(fileparts(fileparts(which(mfilename))));
0064 load(fullfile(sourceDir,'testing','unit_tests','test_data','ecoli_textbook.mat'), 'model');
0065
0066 [testOut.s, testOut.m]=makeSomething(model,{'r5p_c';'ru5p_DASH_D_c';'s7p_c';'succ_c';'succ_e';'succoa_c';'xu5p_DASH_D_c'});
0067
0068
0069
0070
0071 testCheck.s=[0;0;1.8644;0;0;0;0;0;0;0;8.39;4.6611;0;0;0;3.7289;0;1.8644;0;0;0;0;0;0;0;0;0;-0.93220;0;0;0;0;0;0;0;-1.8644;0;0;0;0.93220;0;0;0;0;0;0;0;0;-1.8644;0.93220;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;3.7289;0;0;-1.8644;1.8644;0.93220;0;-0.93220;-1.8644;0;1.8644;0;0;0;0;-1.8644;0.93220;0;0;0;0;0;0;0;0;0;0;0;0.93220];
0072 testCheck.m=[6];
0073
0074 verifyEqual(testCase,testOut,testCheck,'AbsTol',1e-4)
0075 end
0076
0077 function getElementalBalanceTest(testCase)
0078
0079 sourceDir=fileparts(fileparts(fileparts(which(mfilename))));
0080 load(fullfile(sourceDir,'testing','unit_tests','test_data','ecoli_textbook.mat'), 'model');
0081
0082 testOut=getElementalBalance(model,1);
0083
0084 testCheck.balanceStatus=1;
0085 testCheck.elements.abbrevs={'C';'N';'O';'S';'P';'H'};
0086 testCheck.elements.names={'carbon';'nitrogen';'oxygen';'sulfur';'phosphorus';'hydrogen'};
0087 testCheck.leftComp=[44,14,31,1,5,62];
0088 testCheck.rightComp=[44,14,31,1,5,62];
0089
0090 verifyEqual(testCase,testOut,testCheck)
0091 end
0092
0093 function getAllowedBoundsTest(testCase)
0094
0095 sourceDir=fileparts(fileparts(fileparts(which(mfilename))));
0096 load(fullfile(sourceDir,'testing','unit_tests','test_data','ecoli_textbook.mat'), 'model');
0097
0098
0099 evalc("[testOut.min, testOut.max, testOut.flag]=getAllowedBounds(model,[1:10],false);");
0100
0101
0102
0103
0104
0105
0106 testCheck.min=[-20;0;0;0;0;0;-166.610;0;0;0];
0107 testCheck.max=[0;20;20;20;20;20;0;20;10;20];
0108 testCheck.flag=[1,1;1,1;1,1;1,1;1,1;1,1;1,1;1,1;1,1;1,1];
0109
0110 verifyEqual(testCase,testOut,testCheck,'AbsTol',1e-4)
0111 end
0112
0113 function getEssentialRxnsTest(testCase)
0114
0115 sourceDir=fileparts(fileparts(fileparts(which(mfilename))));
0116 load(fullfile(sourceDir,'testing','unit_tests','test_data','ecoli_textbook.mat'), 'model');
0117
0118 [testOut.r, testOut.i]=getEssentialRxns(model);
0119
0120 testCheck.r={'EX_glc';'GLCpts'};
0121 testCheck.i=[28;50];
0122 verifyEqual(testCase,testOut,testCheck)
0123 end