/* * test5100 - 5100 series of the regress.cal test suite * * Copyright (C) 1999 Ernest Bowen and Landon Curt Noll * * Primary author: Ernest Bowen * * 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. * * @(#) $Revision: 30.1 $ * @(#) $Id: test5100.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $ * @(#) $Source: /usr/local/src/bin/calc/cal/RCS/test5100.cal,v $ * * Under source code control: 1996/12/02 23:57:10 * File existed as early as: 1996 * * Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/ */ defaultverbose = 1; /* default verbose value */ /* * We test the new code generator declaration scope and order. * * In this function two static variables a5100 and b5100 are created, * with zero value, when the definition is read. * * The variable a5100 is initialized with the value x if and when this * function is first called with a positive even x. The varable b5100 * is similarly initialized if and when this function is first called positive * odd x. * * Each time this function is called with positive integer x, a5100 or * b5100 is incremented. * * Finally the values of the static variables are assigned to the global * variables a5100 and b5100. * * Immediately after the last of several calls to this function * a5100 = 0 if none of the x's have been positive even, otherwise * a5100 = the first positive even x + the number of positive even x's, * and b5100 = 0 if none of the x's have been positive odd, otherwise * b5100 = the first positive odd x + the number of positive odd x's. */ define test5100(x) { if (isint(x) && x > 0) { if (iseven(x)) { static a5100 = x; a5100++; } else { static b5100 = x; b5100++; } } global a5100 = a5100, b5100 = b5100; }