aboutsummaryrefslogtreecommitdiff
path: root/lab1_datalab/decl.c
diff options
context:
space:
mode:
Diffstat (limited to 'lab1_datalab/decl.c')
-rw-r--r--lab1_datalab/decl.c90
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}}}
+};