function y = testReadFromFile12 filename = fullfile(pwd,'test-data', 'l2v4-all.xml'); m = TranslateSBML(filename); test = 75; Totalfail = 0; Totalfail = Totalfail + fail_unless(m.SBML_level == 2); Totalfail = Totalfail + fail_unless(m.SBML_version == 4); % % % % % % x % % % % x % 3 % % % % % Totalfail = Totalfail + fail_unless( length(m.functionDefinition) == 1); Totalfail = Totalfail + fail_unless( strcmp(m.functionDefinition.id, 'fd')); Totalfail = Totalfail + fail_unless( strcmp(m.functionDefinition.math, 'lambda(x,power(x,3))')); % % % % % % % Totalfail = Totalfail + fail_unless( length(m.unitDefinition) == 1); Totalfail = Totalfail + fail_unless( strcmp(m.unitDefinition.id, 'ud1')); Totalfail = Totalfail + fail_unless( length(m.unitDefinition.unit) == 1); Totalfail = Totalfail + fail_unless( strcmp(m.unitDefinition.unit.kind, 'mole')); % % % Totalfail = Totalfail + fail_unless( length(m.compartmentType) == 1); Totalfail = Totalfail + fail_unless( strcmp(m.compartmentType.id, 'hh')); % % % Totalfail = Totalfail + fail_unless( length(m.speciesType) == 1); Totalfail = Totalfail + fail_unless( strcmp(m.speciesType.id, 'gg')); % % % Totalfail = Totalfail + fail_unless( length(m.compartment) == 1); Totalfail = Totalfail + fail_unless( strcmp(m.compartment.id, 'a')); Totalfail = Totalfail + fail_unless( m.compartment.constant == 0); Totalfail = Totalfail + fail_unless( m.compartment.size == 1); % % % Totalfail = Totalfail + fail_unless( length(m.species) == 1); Totalfail = Totalfail + fail_unless( strcmp(m.species.id, 's')); Totalfail = Totalfail + fail_unless( strcmp(m.species.compartment, 'a')); Totalfail = Totalfail + fail_unless( m.species.initialAmount == 0); % % % % % % % Totalfail = Totalfail + fail_unless( length(m.parameter) == 5); Totalfail = Totalfail + fail_unless( strcmp(m.parameter(1).id, 'p')); Totalfail = Totalfail + fail_unless( strcmp(m.parameter(1).units, 'second')); Totalfail = Totalfail + fail_unless( m.parameter(1).constant == 0); Totalfail = Totalfail + fail_unless( m.parameter(1).value == 2); Totalfail = Totalfail + fail_unless( strcmp(m.parameter(2).id, 'p1')); Totalfail = Totalfail + fail_unless( strcmp(m.parameter(2).units, 'litre')); Totalfail = Totalfail + fail_unless( m.parameter(2).constant == 0); Totalfail = Totalfail + fail_unless( m.parameter(2).value == 2); Totalfail = Totalfail + fail_unless( strcmp(m.parameter(3).id, 'p2')); Totalfail = Totalfail + fail_unless( strcmp(m.parameter(3).units, 'litre')); Totalfail = Totalfail + fail_unless( m.parameter(3).constant == 0); Totalfail = Totalfail + fail_unless( m.parameter(3).value == 2); Totalfail = Totalfail + fail_unless( strcmp(m.parameter(4).id, 'p3')); Totalfail = Totalfail + fail_unless( strcmp(m.parameter(4).units, 'litre')); Totalfail = Totalfail + fail_unless( m.parameter(4).constant == 0); Totalfail = Totalfail + fail_unless( m.parameter(4).value == 2); Totalfail = Totalfail + fail_unless( strcmp(m.parameter(5).id, 'x')); Totalfail = Totalfail + fail_unless( strcmp(m.parameter(5).units, 'dimensionless')); Totalfail = Totalfail + fail_unless( m.parameter(5).constant == 0); Totalfail = Totalfail + fail_unless( m.parameter(5).value == 2); % % % % % % x % p3 % % % % Totalfail = Totalfail + fail_unless( length(m.initialAssignment) == 1); Totalfail = Totalfail + fail_unless( strcmp(m.initialAssignment.symbol, 'p1')); Totalfail = Totalfail + fail_unless( strcmp(m.initialAssignment.math, 'x*p3')); % % % % % % x % 3 % % % % % % % % x % p3 % % % % % % % % p1 % p % % % % Totalfail = Totalfail + fail_unless( length(m.rule) == 3); Totalfail = Totalfail + fail_unless( strcmp(m.rule(1).typecode, 'SBML_ALGEBRAIC_RULE')); Totalfail = Totalfail + fail_unless( strcmp(m.rule(1).formula, 'power(x,3)')); Totalfail = Totalfail + fail_unless( strcmp(m.rule(2).typecode, 'SBML_ASSIGNMENT_RULE')); Totalfail = Totalfail + fail_unless( strcmp(m.rule(2).formula, 'x*p3')); Totalfail = Totalfail + fail_unless( strcmp(m.rule(2).variable, 'p2')); Totalfail = Totalfail + fail_unless( strcmp(m.rule(3).typecode, 'SBML_RATE_RULE')); Totalfail = Totalfail + fail_unless( strcmp(m.rule(3).formula, 'p1/p')); Totalfail = Totalfail + fail_unless( strcmp(m.rule(3).variable, 'p3')); % % % % % % x % 3 % % % % Totalfail = Totalfail + fail_unless( length(m.constraint) == 1); Totalfail = Totalfail + fail_unless( strcmp(m.constraint.math, 'lt(x,3)')); % % % % % % % % % s % p % % % % % % % % % % % % s % k % % p % % % % % % % % Totalfail = Totalfail + fail_unless( length(m.reaction) == 1); Totalfail = Totalfail + fail_unless( strcmp(m.reaction.id, 'r')); Totalfail = Totalfail + fail_unless( length(m.reaction.reactant) == 1); Totalfail = Totalfail + fail_unless( length(m.reaction.product) == 0); Totalfail = Totalfail + fail_unless( length(m.reaction.modifier) == 0); Totalfail = Totalfail + fail_unless( strcmp(m.reaction.reactant.species, 's')); Totalfail = Totalfail + fail_unless( strcmp(m.reaction.reactant.stoichiometryMath.math, 's*p')); Totalfail = Totalfail + fail_unless( strcmp(m.reaction.kineticLaw.math, 's * k / p')); Totalfail = Totalfail + fail_unless( length(m.reaction.kineticLaw.parameter) == 1); Totalfail = Totalfail + fail_unless( strcmp(m.reaction.kineticLaw.parameter(1).id, 'k')); Totalfail = Totalfail + fail_unless( strcmp(m.reaction.kineticLaw.parameter(1).units, 'litre')); Totalfail = Totalfail + fail_unless( m.reaction.kineticLaw.parameter(1).constant == 1); Totalfail = Totalfail + fail_unless( m.reaction.kineticLaw.parameter(1).value == 9); % % % % % % % x % 3 % % % % % % % % x % 3 % % % % % % % % % x % p3 % % % % % % Totalfail = Totalfail + fail_unless( length(m.event) == 1); Totalfail = Totalfail + fail_unless( m.event.useValuesFromTriggerTime == 0); Totalfail = Totalfail + fail_unless( strcmp(m.event.trigger.math, 'lt(x,3)')); Totalfail = Totalfail + fail_unless( length(m.event.eventAssignment) == 1); Totalfail = Totalfail + fail_unless( strcmp(m.event.eventAssignment.variable, 'a')); Totalfail = Totalfail + fail_unless( strcmp(m.event.eventAssignment.math, 'x*p3')); disp('Testing readFromFile12:'); disp(sprintf('Number tests: %d', test)); disp(sprintf('Number fails: %d', Totalfail)); disp(sprintf('Pass rate: %d%%\n', ((test-Totalfail)/test)*100)); if (Totalfail == 0) y = 0; else y = 1; end; function y = fail_unless(arg) if (~arg) y = 1; else y = 0; end;