mirror of
https://github.com/lcn2/calc.git
synced 2025-08-16 01:03:29 +03:00
Release calc version 2.10.2t30
This commit is contained in:
97
lib/test2300.cal
Normal file
97
lib/test2300.cal
Normal file
@@ -0,0 +1,97 @@
|
||||
/*
|
||||
* Copyright (c) 1995 Landon Curt Noll
|
||||
* Permission is granted to use, distribute, or modify this source,
|
||||
* provided that this copyright notice remains intact.
|
||||
*
|
||||
* By: Landon Curt Noll
|
||||
* chongo@toad.com -or- ...!{pyramid,sun,uunet}!hoptoad!chongo
|
||||
*
|
||||
* This library is used by the 2300 series of the regress.cal test suite.
|
||||
*/
|
||||
|
||||
|
||||
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;
|
||||
}
|
Reference in New Issue
Block a user