diff options
Diffstat (limited to 'test.c')
-rw-r--r-- | test.c | 50 |
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 |