1function y = testReadFromFile1(silent) 2 3filename = fullfile(pwd,'test-data', 'l1v1-branch.xml'); 4notes1 = sprintf('%s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n%s', ... 5 '<notes>', ... 6 '<body xmlns="http://www.w3.org/1999/xhtml">', ... 7 '<p>Simple branch system.</p>', ... 8 '<p>The reaction looks like this:</p>', ... 9 '<p>reaction-1: X0 -> S1; k1*X0;</p>', ... 10 '<p>reaction-2: S1 -> X1; k2*S1;</p>', ... 11 '<p>reaction-3: S1 -> X2; k3*S1;</p>', ... 12 '</body>', ... 13 '</notes>'); 14 15 16 17m = TranslateSBML(filename); 18 19test = 72; 20Totalfail = 0; 21 22Totalfail = Totalfail + fail_unless(m.SBML_level == 1); 23Totalfail = Totalfail + fail_unless(m.SBML_version == 1); 24Totalfail = Totalfail + fail_unless(strcmp(m.name,'Branch')); 25Totalfail = Totalfail + fail_unless(strcmp(m.notes, notes1)); 26 27% /** 28% * <listOfCompartments> 29% * <compartment name="compartmentOne" volume="1"/> 30% * </listOfCompartments> 31% */ 32 Totalfail = Totalfail + fail_unless( length(m.compartment) == 1); 33 34 Totalfail = Totalfail + fail_unless( strcmp(m.compartment.name, 'compartmentOne')); 35 Totalfail = Totalfail + fail_unless( m.compartment.volume == 1); 36 Totalfail = Totalfail + fail_unless( m.compartment.level == 1); 37 38 39 40% /** 41% * <listOfSpecies> 42% * <specie name="S1" initialAmount="0" compartment="compartmentOne" 43% * boundaryCondition="false"/> 44% * <specie name="X0" initialAmount="0" compartment="compartmentOne" 45% * boundaryCondition="true"/> 46% * <specie name="X1" initialAmount="0" compartment="compartmentOne" 47% * boundaryCondition="true"/> 48% * <specie name="X2" initialAmount="0" compartment="compartmentOne" 49% * boundaryCondition="true"/> 50% * </listOfSpecies> 51% */ 52 Totalfail = Totalfail + fail_unless( length(m.species) == 4); 53 54 Totalfail = Totalfail + fail_unless( strcmp( m.species(1).name, 'S1' )); 55 Totalfail = Totalfail + fail_unless( strcmp( m.species(1).compartment, 'compartmentOne' )); 56 Totalfail = Totalfail + fail_unless( m.species(1).initialAmount == 0); 57 Totalfail = Totalfail + fail_unless( m.species(1).boundaryCondition == 0); 58 59 Totalfail = Totalfail + fail_unless( strcmp( m.species(2).name, 'X0' )); 60 Totalfail = Totalfail + fail_unless( strcmp( m.species(2).compartment, 'compartmentOne' )); 61 Totalfail = Totalfail + fail_unless( m.species(2).initialAmount == 0); 62 Totalfail = Totalfail + fail_unless( m.species(2).boundaryCondition == 1); 63 64 Totalfail = Totalfail + fail_unless( strcmp( m.species(3).name, 'X1' )); 65 Totalfail = Totalfail + fail_unless( strcmp( m.species(3).compartment, 'compartmentOne' )); 66 Totalfail = Totalfail + fail_unless( m.species(3).initialAmount == 0); 67 Totalfail = Totalfail + fail_unless( m.species(3).boundaryCondition == 1); 68 69 Totalfail = Totalfail + fail_unless( strcmp( m.species(4).name, 'X2' )); 70 Totalfail = Totalfail + fail_unless( strcmp( m.species(4).compartment, 'compartmentOne' )); 71 Totalfail = Totalfail + fail_unless( m.species(4).initialAmount == 0); 72 Totalfail = Totalfail + fail_unless( m.species(4).boundaryCondition == 1); 73 Totalfail = Totalfail + fail_unless( m.species(4).version == 1); 74 75% 76% /** 77% * <listOfReactions> 78% * <reaction name="reaction_1" reversible="false"> ... </reaction> 79% * <reaction name="reaction_2" reversible="false"> ... </reaction> 80% * <reaction name="reaction_3" reversible="false"> ... </reaction> 81% * </listOfReactions> 82% */ 83 Totalfail = Totalfail + fail_unless( length(m.reaction) == 3); 84 85 Totalfail = Totalfail + fail_unless( strcmp(m.reaction(1).name, 'reaction_1')); 86 Totalfail = Totalfail + fail_unless( m.reaction(1).reversible == 0); 87 Totalfail = Totalfail + fail_unless( m.reaction(1).fast == 0); 88 89 Totalfail = Totalfail + fail_unless( strcmp(m.reaction(2).name, 'reaction_2')); 90 Totalfail = Totalfail + fail_unless( m.reaction(2).reversible == 0); 91 Totalfail = Totalfail + fail_unless( m.reaction(2).fast == 0); 92 93 Totalfail = Totalfail + fail_unless( strcmp(m.reaction(3).name, 'reaction_3')); 94 Totalfail = Totalfail + fail_unless( m.reaction(3).reversible == 0); 95 Totalfail = Totalfail + fail_unless( m.reaction(3).fast == 0); 96% 97% /** 98% * <reaction name="reaction_1" reversible="false"> 99% * <listOfReactants> 100% * <specieReference specie="X0" stoichiometry="1"/> 101% * </listOfReactants> 102% * <listOfProducts> 103% * <specieReference specie="S1" stoichiometry="1"/> 104% * </listOfProducts> 105% * <kineticLaw formula="k1 * X0"> 106% * <listOfParameters> 107% * <parameter name="k1" value="0"/> 108% * </listOfParameters> 109% * </kineticLaw> 110% * </reaction> 111% */ 112% 113 Totalfail = Totalfail + fail_unless( length(m.reaction(1).reactant) == 1); 114 Totalfail = Totalfail + fail_unless( length(m.reaction(1).product) == 1); 115 116 Totalfail = Totalfail + fail_unless( strcmp(m.reaction(1).reactant.species, 'X0')); 117 Totalfail = Totalfail + fail_unless( m.reaction(1).reactant.stoichiometry == 1); 118 Totalfail = Totalfail + fail_unless( m.reaction(1).reactant.denominator == 1); 119 120 Totalfail = Totalfail + fail_unless( strcmp(m.reaction(1).product.species, 'S1')); 121 Totalfail = Totalfail + fail_unless( m.reaction(1).product.stoichiometry == 1); 122 Totalfail = Totalfail + fail_unless( m.reaction(1).product.denominator == 1); 123 124 Totalfail = Totalfail + fail_unless( strcmp(m.reaction(1).kineticLaw.formula, 'k1*X0')); 125 Totalfail = Totalfail + fail_unless(length(m.reaction(1).kineticLaw.parameter) == 1); 126 127 Totalfail = Totalfail + fail_unless( strcmp(m.reaction(1).kineticLaw.parameter.name, 'k1')); 128 Totalfail = Totalfail + fail_unless( m.reaction(1).kineticLaw.parameter.value == 0); 129% 130% 131% /** 132% * <reaction name="reaction_2" reversible="false"> 133% * <listOfReactants> 134% * <specieReference specie="S1" stoichiometry="1"/> 135% * </listOfReactants> 136% * <listOfProducts> 137% * <specieReference specie="X1" stoichiometry="1"/> 138% * </listOfProducts> 139% * <kineticLaw formula="k2 * S1"> 140% * <listOfParameters> 141% * <parameter name="k2" value="0"/> 142% * </listOfParameters> 143% * </kineticLaw> 144% * </reaction> 145% */ 146 Totalfail = Totalfail + fail_unless( length(m.reaction(2).reactant) == 1); 147 Totalfail = Totalfail + fail_unless( length(m.reaction(2).product) == 1); 148 149 Totalfail = Totalfail + fail_unless( strcmp(m.reaction(2).reactant.species, 'S1')); 150 Totalfail = Totalfail + fail_unless( m.reaction(2).reactant.stoichiometry == 1); 151 Totalfail = Totalfail + fail_unless( m.reaction(2).reactant.denominator == 1); 152 153 Totalfail = Totalfail + fail_unless( strcmp(m.reaction(2).product.species, 'X1')); 154 Totalfail = Totalfail + fail_unless( m.reaction(2).product.stoichiometry == 1); 155 Totalfail = Totalfail + fail_unless( m.reaction(2).product.denominator == 1); 156 157 Totalfail = Totalfail + fail_unless( strcmp(m.reaction(2).kineticLaw.formula, 'k2*S1')); 158 Totalfail = Totalfail + fail_unless(length(m.reaction(2).kineticLaw.parameter) == 1); 159 160 Totalfail = Totalfail + fail_unless( strcmp(m.reaction(2).kineticLaw.parameter.name, 'k2')); 161 Totalfail = Totalfail + fail_unless( m.reaction(2).kineticLaw.parameter.value == 0); 162 163% 164% /** 165% * <reaction name="reaction_3" reversible="false"> 166% * <listOfReactants> 167% * <specieReference specie="S1" stoichiometry="1"/> 168% * </listOfReactants> 169% * <listOfProducts> 170% * <specieReference specie="X2" stoichiometry="1"/> 171% * </listOfProducts> 172% * <kineticLaw formula="k3 * S1"> 173% * <listOfParameters> 174% * <parameter name="k3" value="0"/> 175% * </listOfParameters> 176% * </kineticLaw> 177% * </reaction> 178% */ 179 Totalfail = Totalfail + fail_unless( length(m.reaction(3).reactant) == 1); 180 Totalfail = Totalfail + fail_unless( length(m.reaction(3).product) == 1); 181 182 Totalfail = Totalfail + fail_unless( strcmp(m.reaction(3).reactant.species, 'S1')); 183 Totalfail = Totalfail + fail_unless( m.reaction(3).reactant.stoichiometry == 1); 184 Totalfail = Totalfail + fail_unless( m.reaction(3).reactant.denominator == 1); 185 186 Totalfail = Totalfail + fail_unless( strcmp(m.reaction(3).product.species, 'X2')); 187 Totalfail = Totalfail + fail_unless( m.reaction(3).product.stoichiometry == 1); 188 Totalfail = Totalfail + fail_unless( m.reaction(3).product.denominator == 1); 189 190 Totalfail = Totalfail + fail_unless( strcmp(m.reaction(3).kineticLaw.formula, 'k3*S1')); 191 Totalfail = Totalfail + fail_unless(length(m.reaction(3).kineticLaw.parameter) == 1); 192 193 Totalfail = Totalfail + fail_unless( strcmp(m.reaction(3).kineticLaw.parameter.name, 'k3')); 194 Totalfail = Totalfail + fail_unless( m.reaction(3).kineticLaw.parameter.value == 0); 195 196if (silent == 0) 197disp('Testing readFromFile1:'); 198disp(sprintf('Number tests: %d', test)); 199disp(sprintf('Number fails: %d', Totalfail)); 200disp(sprintf('Pass rate: %d%%\n', ((test-Totalfail)/test)*100)); 201end; 202 203if (Totalfail == 0) 204 y = 0; 205else 206 y = 1; 207end; 208 209function y = fail_unless(arg) 210 211if (~arg) 212 y = 1; 213else 214 y = 0; 215end; 216 217