summaryrefslogtreecommitdiff
path: root/labs/datalab/datalab-handout/btest.h
diff options
context:
space:
mode:
Diffstat (limited to 'labs/datalab/datalab-handout/btest.h')
-rw-r--r--labs/datalab/datalab-handout/btest.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/labs/datalab/datalab-handout/btest.h b/labs/datalab/datalab-handout/btest.h
new file mode 100644
index 0000000..a011bc1
--- /dev/null
+++ b/labs/datalab/datalab-handout/btest.h
@@ -0,0 +1,32 @@
+/*
+ * CS:APP Data Lab
+ */
+
+/* Declare different function types */
+typedef int (*funct_t) (void);
+typedef int (*funct1_t)(int);
+typedef int (*funct2_t)(int, int);
+typedef int (*funct3_t)(int, int, int);
+
+/* Combine all the information about a function and its tests as structure */
+typedef struct {
+ char *name; /* String name */
+ funct_t solution_funct; /* Function */
+ funct_t test_funct; /* Test function */
+ int args; /* Number of function arguments */
+ char *ops; /* List of legal operators. Special case: "$" for floating point */
+ int op_limit; /* Max number of ops allowed in solution */
+ int rating; /* Problem rating (1 -- 4) */
+ int arg_ranges[3][2]; /* Argument ranges. Always defined for 3 args, even if */
+ /* the function takes fewer. Special case: First arg */
+ /* must be set to {1,1} for f.p. puzzles */
+} test_rec, *test_ptr;
+
+extern test_rec test_set[];
+
+
+
+
+
+
+