Mercurial > hg > octave-nkf
changeset 15951:dd4258398a59 classdef
Move tests for classdef from test/classes.
* test/classdef/foo_payment.m: Moved from test/classes.
* test/classdef/module.mk: New file.
* test/classdef/test_classes.m: Tests for classdef from
test/classes/test_classes.m
* test/classse/module.mk: Remvoe foo_payment from classes_FCN_FILES.
* test/classes/test_classes.m: Remove tests for classdef.
author | Ben Abbott <bpabbott@mac.com> |
---|---|
date | Mon, 14 Jan 2013 21:52:11 -0500 |
parents | 32fe9f6f229a |
children | 9c7e1c633e47 |
files | test/classdef/module.mk test/classdef/test_classes.m test/classes/module.mk test/classes/test_classes.m |
diffstat | 4 files changed, 56 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/test/classdef/module.mk @@ -0,0 +1,5 @@ +classes_FCN_FILES = \ + classes/foo_payment.m \ + classes/test_classes.m + +FCN_FILES += $(classes_FCN_FILES)
new file mode 100644 --- /dev/null +++ b/test/classdef/test_classes.m @@ -0,0 +1,51 @@ +## Copyright (C) 2013 Ben Abbott +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## <http://www.gnu.org/licenses/>. + +%% Test script for classdef OOP. +%% Requires the path to contain the test classes. +%% +%% Note: This script and all classes are also intended to run +%% in MATLAB to test compatibility. Don't break that! +%% +%% To Do: This script tests to ensure that things done correctly work +%% corrrectly. It should also check that things done incorrectly +%% error properly. +%% +%% The classes used for the tests reside in the test/classdef with others +%% in the test directory. +%% +%% The classes provide the ability to test most of the major features +%% of the classdef OOP facilities. There are a number of classes, mostly +%% kind of the same, that create a hierarchy. + +%% Basic classdef tests +%!shared p, i, amt +%! p = foo_payment (4, 4*12, 50e3); +%! i = p.rate / (12 * 100); +%! amt = (p.principle * i) / (1 - (1 + i)^(-p.term)); +%!assert (class (p), "foo_payment"); +%!assert (p.term, 48); +%!assert (p.rate, 4.0); +%!assert (p.principle, 50e3); +%!assert (p.amount, amt, eps ()) +%!xtest +%! assert (amount (p), amt, eps ()) +%!xtest +%! xassert (properties (p), {'rate'; 'term'; 'principle'}) +%!xtest +%! xassert (methods (p), {'amount'; 'foo_payment'})
--- a/test/classes/module.mk +++ b/test/classes/module.mk @@ -4,7 +4,6 @@ classes/@Blork/display.m \ classes/@Blork/get.m \ classes/@Blork/set.m \ - classes/foo_payment.m \ classes/@Cork/Cork.m \ classes/@Cork/click.m \ classes/@Cork/display.m \
--- a/test/classes/test_classes.m +++ b/test/classes/test_classes.m @@ -199,20 +199,3 @@ %! assert(isa(grk,'Blork')) %! assert(isa(grk,'Snork')) %! assert(isa(grk,'Spork')) - -%% Basic classdef tests -%!shared p, i, amt -%! p = foo_payment (4, 4*12, 50e3); -%! i = p.rate / (12 * 100); -%! amt = (p.principle * i) / (1 - (1 + i)^(-p.term)); -%!assert (class (p), "foo_payment"); -%!assert (p.term, 48); -%!assert (p.rate, 4.0); -%!assert (p.principle, 50e3); -%!assert (p.amount, amt, eps ()) -%!xtest -%! assert (amount (p), amt, eps ()) -%!xtest -%! xassert (properties (p), {'rate'; 'term'; 'principle'}) -%!xtest -%! xassert (methods (p), {'amount'; 'foo_payment'})