about summary refs log tree commit diff
path: root/test.c
diff options
context:
space:
mode:
Diffstat (limited to 'test.c')
-rw-r--r--test.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/test.c b/test.c
new file mode 100644
index 0000000..d414038
--- /dev/null
+++ b/test.c
@@ -0,0 +1,50 @@
+#include <stdio.h>
+#include <string.h>
+#include <float.h>
+#include <math.h>
+
+#include "senseless.h"
+
+double assert(const char *directions, double expected) {
+	size_t len = strlen(directions);
+	double degrees = senseless_directions(directions, len);
+
+	if (fabs(degrees - expected) <= DBL_EPSILON) {
+		printf("✅ ");
+	} else {
+		printf("❌ ");
+	}
+	printf("%s = %.2f\n", directions, expected);
+
+	return degrees;
+}
+
+int main(int argc, char **argv) {
+	// Cardinal
+	printf("== Cardinal ==\n");
+	assert("N", 0.0);
+	assert("E", 90.0);
+	assert("S", 180.0);
+	assert("W", 270.0);
+
+	// Ordinal
+	printf("\n=== Ordinal ==\n");
+	assert("NE", 45.0);
+	assert("SE", 135.0);
+	assert("SW", 225.0);
+	assert("NW", 315.0);
+
+	// Gross
+	printf("\n==== Gross ===\n");
+	printf("(pulls clockwise)\n");
+	assert("NS", 45.0);
+	assert("SN", 225.0);
+	assert("EW", 135.0);
+	assert("WE", 315.0);
+
+	// Exciting
+	printf("\n== Exciting ==\n");
+	assert("NNW", 337.5);
+	assert("SEESE", 118.125);
+	assert("NESW", 56.25);
+}
\ No newline at end of file