diff options
Diffstat (limited to 'lab1_datalab/decl.c')
-rw-r--r-- | lab1_datalab/decl.c | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/lab1_datalab/decl.c b/lab1_datalab/decl.c new file mode 100644 index 0000000..b5c7d96 --- /dev/null +++ b/lab1_datalab/decl.c @@ -0,0 +1,90 @@ +#include <stdio.h> +#include <stdlib.h> +#include <limits.h> + +#define TMin INT_MIN +#define TMax INT_MAX + +#include "btest.h" +#include "bits.h" + +test_rec test_set[] = { +/* Copyright (C) 1991-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library 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. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ +/* This header is separate from features.h so that the compiler can + include it implicitly at the start of every compilation. It must + not itself include <features.h> or any other header that includes + <features.h> because the implicit include comes before any feature + test macros that may be defined in a source file before it first + explicitly includes a system header. GCC knows the name of this + header in order to preinclude it. */ +/* glibc's intent is to support the IEC 559 math functionality, real + and complex. If the GCC (4.9 and later) predefined macros + specifying compiler intent are available, use them to determine + whether the overall intent is to support these features; otherwise, + presume an older compiler has intent to support these features and + define these macros by default. */ +/* wchar_t uses Unicode 10.0.0. Version 10.0 of the Unicode Standard is + synchronized with ISO/IEC 10646:2017, fifth edition, plus + the following additions from Amendment 1 to the fifth edition: + - 56 emoji characters + - 285 hentaigana + - 3 additional Zanabazar Square characters */ + {"bitAnd", (funct_t) bitAnd, (funct_t) test_bitAnd, 2, "| ~", 8, 1, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + {"evenBits", (funct_t) evenBits, (funct_t) test_evenBits, 0, + "! ~ & ^ | + << >>", 8, 1, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + {"isTmin", (funct_t) isTmin, (funct_t) test_isTmin, 1, "! ~ & ^ | +", 10, 1, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + {"allEvenBits", (funct_t) allEvenBits, (funct_t) test_allEvenBits, 1, + "! ~ & ^ | + << >>", 12, 2, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + {"getByte", (funct_t) getByte, (funct_t) test_getByte, 2, + "! ~ & ^ | + << >>", 6, 2, + {{TMin, TMax},{0,3},{TMin,TMax}}}, + {"isNegative", (funct_t) isNegative, (funct_t) test_isNegative, 1, + "! ~ & ^ | + << >>", 6, 2, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + {"conditional", (funct_t) conditional, (funct_t) test_conditional, 3, "! ~ & ^ | << >>", 16, 3, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + {"ezThreeFourths", (funct_t) ezThreeFourths, (funct_t) test_ezThreeFourths, 1, + "! ~ & ^ | + << >>", 12, 3, + {{TMin,TMax},{TMin,TMax},{TMin,TMax}}}, + {"isNonNegative", (funct_t) isNonNegative, (funct_t) test_isNonNegative, 1, + "! ~ & ^ | + << >>", 6, 3, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + {"isNonZero", (funct_t) isNonZero, (funct_t) test_isNonZero, 1, + "~ & ^ | + << >>", 10, 4, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + {"leftBitCount", (funct_t) leftBitCount, (funct_t) test_leftBitCount, 1, "! ~ & ^ | + << >>", 40, 4, + {{TMin, TMax},{TMin,TMax},{TMin,TMax}}}, + {"trueThreeFourths", (funct_t) trueThreeFourths, (funct_t) test_trueThreeFourths, 1, + "! ~ & ^ | + << >>", 20, 4, + {{TMin,TMax},{TMin,TMax},{TMin,TMax}}}, +/* + * Extra credit + */ + {"float_abs", (funct_t) float_abs, (funct_t) test_float_abs, 1, + "$", 10, 2, + {{1, 1},{1,1},{1,1}}}, + {"float_i2f", (funct_t) float_i2f, (funct_t) test_float_i2f, 1, + "$", 30, 4, + {{1, 1},{1,1},{1,1}}}, + {"", NULL, NULL, 0, "", 0, 0, + {{0, 0},{0,0},{0,0}}} +}; |