ENH: Add math test
This commit is contained in:
parent
a7d4b61699
commit
427ed70363
|
@ -0,0 +1,25 @@
|
||||||
|
PROJECT(MathTest)
|
||||||
|
|
||||||
|
|
||||||
|
# Expression test
|
||||||
|
|
||||||
|
SET(expressions
|
||||||
|
"5 * ( 3 + 4)"
|
||||||
|
"(1 | 2 | 4 | 8) & 16"
|
||||||
|
)
|
||||||
|
|
||||||
|
SET(FILE_EXPRESSIONS "")
|
||||||
|
FOREACH(expression
|
||||||
|
${expressions})
|
||||||
|
MATH(EXPR expr "${expression}")
|
||||||
|
SET(FILE_EXPRESSIONS "${FILE_EXPRESSIONS}TEST_EXPRESSION(${expression}, ${expr})\n")
|
||||||
|
ENDFOREACH(expression)
|
||||||
|
|
||||||
|
CONFIGURE_FILE(
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/MathTestTests.h.in"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/MathTestTests.h"
|
||||||
|
@ONLY)
|
||||||
|
|
||||||
|
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}")
|
||||||
|
ADD_EXECUTABLE(MathTestExec MathTestExec.cxx)
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#define TEST_EXPRESSION(x, y) \
|
||||||
|
if ( (x) != (y) ) \
|
||||||
|
{ \
|
||||||
|
printf("Problem with EXPR: Expression: \"%s\" in C returns %d while in CMake returns: %d\n", \
|
||||||
|
#x, (x), (y)); \
|
||||||
|
res ++; \
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
if ( argc > 1 )
|
||||||
|
{
|
||||||
|
printf("Usage: %s\n", argv[0]);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
int res = 0;
|
||||||
|
#include "MathTestTests.h"
|
||||||
|
if ( res != 0 )
|
||||||
|
{
|
||||||
|
printf("%s: %d math tests failed\n", argv[0], res);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
@FILE_EXPRESSIONS@
|
Loading…
Reference in New Issue