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);
%
%
%
%
%
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);
%
%
%
%
%
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'));
%
%
%
%
%
%
%
%
%
%
%
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'));
%
%
%
%
%
Totalfail = Totalfail + fail_unless( length(m.constraint) == 1);
Totalfail = Totalfail + fail_unless( strcmp(m.constraint.math, 'lt(x,3)'));
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
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);
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
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;