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