Files
calc/cal/test2300.obj_incdec.cal
Landon Curt Noll d8603d3980 rename regression test calc resource files
To make the meaning a bit more clear in cal/regress.cal, we have
renamed the following test calc resource files that are related to
the calc regression test suite:

cal/test1700.cal -> cal/test8000.read.cal
cal/test2300.cal -> cal/test2300.obj_incdec.cal
cal/test2600.cal -> cal/test2600.numfunc.cal
cal/test2700.cal -> cal/test2700.isqrt.cal
cal/test3100.cal -> cal/test3100.matobj.cal
cal/test3400.cal -> cal/test3400.trig.cal
cal/test4000.cal -> cal/test4000.ptest.cal
cal/test4100.cal -> cal/test4100.redc.cal
cal/test4600.cal -> cal/test4600.fileop.cal
cal/test5100.cal -> cal/test5100.newdecl.cal
cal/test5200.cal -> cal/test5200.globstat.cal
cal/test8400.cal -> cal/test8400.quit.cal
cal/test8500.cal -> cal/test8500.divmod.cal
cal/test8600.cal -> cal/test8600.maxargs.cal
cal/set8700.cal -> cal/test8700.dotest.cal
cal/test8900.cal -> cal/test8900.special.cal
cal/test9300.cal -> cal/test9300.frem.cal

Added to test 94dd, read of a number of new calc resource files
that are not already read as a result of the calc regression test suite.
2023-09-08 12:15:04 -07:00

113 lines
2.4 KiB
Plaintext

/*
* test_obj_incdec.2300 - test object increment/decrement for test 23dd
*
* Copyright (C) 1999,2023 Landon Curt Noll
*
* Calc is open software; you can redistribute it and/or modify it under
* the terms of the version 2.1 of the GNU Lesser General Public License
* as published by the Free Software Foundation.
*
* Calc 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 Lesser General
* Public License for more details.
*
* A copy of version 2.1 of the GNU Lesser General Public License is
* distributed with calc under the filename COPYING-LGPL. You should have
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* Under source code control: 1995/07/09 06:12:13
* File existed as early as: 1995
*
* chongo <was here> /\oo/\ http://www.isthe.com/chongo/
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
*/
obj matrix {m}
/*
* matrix_inc - increment the matrix inside the object
*/
define matrix_inc(a)
{
local i;
/* increment each matrix member */
for (i= 0; i < size(a.m); i++)
++a.m[[i]];
return a;
}
/*
* matrix_dec - decrement the matrix inside the object
*/
define matrix_dec(a)
{
local i;
/* decrement each matrix member */
for (i= 0; i < size(a.m); i++)
--a.m[[i]];
return a;
}
/*
* mkmat - load the matrix inside the object
*/
define mkmat()
{
local s, M, i, v;
/* firewall */
s = param(0);
if (s == 0)
quit "Need at least one argument";
/* create the matrix */
mat M[s];
/* load the matrix with the args */
for (i = 0; i < s; i++)
M[i] = param(i + 1);
/* create the object with the matrix */
obj matrix v;
v.m = M;
return v;
}
/*
* ckmat - check if the matrix inside an object has a set of given values
*/
define ckmat()
{
local s, a, i;
/* firewall */
s = param(0);
if (s < 2)
quit "Need at least two arguments";
/* get the object to test */
a = param(1);
/* verify the matrix in the object is the right size */
if (size(a.m) != s-1) {
return 0;
}
/* check each matrix element with the args passed */
for (i = 2; i <= s; i++) {
if (a.m[i-2] != param(i)) {
/* args do not match */
return 0;
}
}
/* args match the matrix in the object */
return 1;
}