From 1b52f921966d463c816b13bccdd1adc6991b1d30 Mon Sep 17 00:00:00 2001 From: Frederik Beimgraben Date: Sat, 11 Jan 2025 18:15:53 +0100 Subject: [PATCH] Add a few tests --- .gitignore | 2 +- MMS24-25.c | 54 +++++++++++++++++++++++-------- Makefile | 12 +++++-- testInterpolation | Bin 16040 -> 0 bytes testInterpolation.c | 31 ------------------ tests | Bin 0 -> 16328 bytes tests.c | 77 ++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 128 insertions(+), 48 deletions(-) delete mode 100755 testInterpolation delete mode 100644 testInterpolation.c create mode 100755 tests create mode 100644 tests.c diff --git a/.gitignore b/.gitignore index 254bdcf..cb50d2d 100644 --- a/.gitignore +++ b/.gitignore @@ -54,4 +54,4 @@ dkms.conf main -result.txt \ No newline at end of file +*result.txt \ No newline at end of file diff --git a/MMS24-25.c b/MMS24-25.c index e210532..1f08442 100644 --- a/MMS24-25.c +++ b/MMS24-25.c @@ -17,12 +17,39 @@ #include #include "MMS24-25.h" #include +#include -// NULL Pointer +// Define NULL if not already provided #ifndef NULL #define NULL 0 #endif +void _error(char* fmt,...) { + printf("<\x1B[31;1m ERROR \x1B[0m: \x1B[34m'"); + + va_list args; + va_start(args, fmt); + printf(fmt, args); + va_end(args); + + printf("'\x1B[0m >\n"); + + exit(-1); +} + +void _debug(char* fmt,...) { + printf("[\x1B[31;1m DEBUG \x1B[0m] \x1B[34m'"); + + va_list args; + va_start(args, fmt); + printf(fmt, args); + va_end(args); + + printf("'\x1B[0m\n"); + + exit(-1); +} + double interpolateLine( double dX1, double dY1, @@ -30,13 +57,18 @@ double interpolateLine( double dY2, double dXq ) { - double y = ( - (dY2 - dY1) / (dX2 - dX1) - ) * (dXq + dX1); + if (dX2 == dX1) + _error("interpolateLine: dX1 and dX2 must differ!"); + + double y = dY1 * ( + (dX2 - dXq) / (dX2 - dX1) + ) + dY2 * ( + (dXq - dX1) / (dX2 - dX1) + ); #ifdef _DEBUG_ // DEBUG: print the parameters and result - printf("interpolateLine(%lf, %lf, %lf, %lf, %lf) -> %lf\n", + _debug("interpolateLine(%lf, %lf, %lf, %lf, %lf) -> %lf\n", dX1,dY1,dX2,dY2,dXq,y); #endif @@ -77,10 +109,8 @@ double *generateSineValues( double* sineArray = NULL; sineArray = (double*) malloc(sizeof(double) * iNumValues); - if (sineArray == NULL) { - printf("Failed to allocate memory for SineArray\n"); - exit(-1); - } + if (sineArray == NULL) + _error("*generateSineValues: Failed to allocate memory for Sine Array\n"); for (int i=0; iJOtC|0<$zj66bXxl>Z}9^!L1C0TxZ_S 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 -#include - - -int main (int iArgC, char** ppcArgV){ - int iRes = -1; - - if (iArgC != 6){ - printf("Number of Arguments != 6\n"); - printf("Usage testInterpolation \n"); - exit(iRes); - }; - - double dX1 = atof(ppcArgV[1]); - double dY1 = atof(ppcArgV[2]); - double dX2 = atof(ppcArgV[3]); - double dY2 = atof(ppcArgV[4]); - double dX = atof(ppcArgV[5]); - - for(int i=0; i<4; i++){ - double dRes = interpolateLine(dX1, dY1, dX2, dY2, dX+(double)i); - printf ("%f\n",dRes); - } - - return iRes; -} diff --git a/tests b/tests new file mode 100755 index 0000000000000000000000000000000000000000..0b0af51e5982bc4400102625d7c7a9fc66513516 GIT binary patch literal 16328 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 jo;x{qhq<^|tEeWIbFP +#include +#include +#include + +void info(char* fmt,...) { + printf("[\x1B[37;1m INFO \x1B[0m]\t\x1B[34m'"); + + va_list args; + va_start(args, fmt); + vprintf(fmt, args); + va_end(args); + + printf("'\x1B[0m\n"); +} + +void success(char* fmt,...) { + printf("[\x1B[32;1m SUCCESS \x1B[0m]\t\x1B[34m'"); + + va_list args; + va_start(args, fmt); + vprintf(fmt, args); + va_end(args); + + printf("'\x1B[0m\n"); +} + +void error(const char* fmt, ...) { + va_list args; + + printf("<\x1B[31;1m ERROR \x1B[0m: \x1B[34m'"); + va_start(args, fmt); + vprintf(fmt, args); + va_end(args); + printf("'\x1B[0m >\n"); + exit(-1); +} + +void testInterpolation() { + info("testInterpolation();"); + + double dRangeMin = -10; + double dRangeMax = 10; + double dRangeStep = 0.5; + + for (double dX1=dRangeMin;dX1 (%lf, %lf); %lf", dX1, dY1, dX2, dY2, dX, dR1, dR2); + } + } + } + } + } + + success("testInterpolation();"); +} + +int main (int iArgC, char** ppcArgV){ + testInterpolation(); + + return 0; +}