mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-23 22:02:27 +00:00
Initial import
This commit is contained in:
commit
c91b3c5006
14915 changed files with 590219 additions and 0 deletions
66
tool/viz/lib/formatstringtable-testlib.h
Normal file
66
tool/viz/lib/formatstringtable-testlib.h
Normal file
|
@ -0,0 +1,66 @@
|
|||
#ifndef COSMOPOLITAN_TOOL_VIZ_LIB_FORMATSTRINGTABLE_TESTLIB_H_
|
||||
#define COSMOPOLITAN_TOOL_VIZ_LIB_FORMATSTRINGTABLE_TESTLIB_H_
|
||||
#include "libc/macros.h"
|
||||
#include "libc/str/str.h"
|
||||
#include "libc/testlib/testlib.h"
|
||||
#include "tool/viz/lib/formatstringtable.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
/**
|
||||
* Tests matrix contains expected content w/ string compare.
|
||||
*
|
||||
* @param M is 2D double array
|
||||
* @param WANT is a multi-line string of formatted matrix
|
||||
*/
|
||||
#define EXPECT_DBLMATRIXEQ(DIGS, RND, YN, XN, M, WANT, ...) \
|
||||
EXPECT_MATRIXEQ_(__FILE__, __LINE__, __FUNCTION__, YN, XN, M, #M, WANT, \
|
||||
StringifyMatrixDouble, NULL, NULL, NULL, DIGS, RND)
|
||||
|
||||
/**
|
||||
* Tests matrix contains expected content w/ string compare.
|
||||
*
|
||||
* @param M is 2D float array
|
||||
* @param WANT is a multi-line string of formatted matrix
|
||||
*/
|
||||
#define EXPECT_FLTMATRIXEQ(DIGS, RND, YN, XN, M, WANT, ...) \
|
||||
EXPECT_MATRIXEQ_(__FILE__, __LINE__, __FUNCTION__, YN, XN, M, #M, WANT, \
|
||||
StringifyMatrixFloat, NULL, NULL, NULL, DIGS, RND)
|
||||
|
||||
/**
|
||||
* Tests matrix contains expected content w/ string compare.
|
||||
*
|
||||
* @param M is 2D unsigned char array
|
||||
* @param WANT is a multi-line string of formatted matrix
|
||||
*/
|
||||
#define EXPECT_BYTEMATRIXEQ(YN, XN, XW, M, WANT, ...) \
|
||||
EXPECT_MATRIXEQ_(__FILE__, __LINE__, __FUNCTION__, YN, XN, M, #M, WANT, \
|
||||
StringifyMatrixByte, NULL, NULL, NULL)
|
||||
|
||||
/**
|
||||
* Tests matrix contains expected content w/ string compare.
|
||||
*
|
||||
* @param M is 2D unsigned short array
|
||||
* @param WANT is a multi-line string of formatted matrix
|
||||
*/
|
||||
#define EXPECT_SHRTMATRIXEQ(YN, XN, M, WANT, ...) \
|
||||
EXPECT_MATRIXEQ_(__FILE__, __LINE__, __FUNCTION__, YN, XN, M, #M, WANT, \
|
||||
StringifyMatrixShort, NULL, NULL, NULL)
|
||||
|
||||
#define EXPECT_MATRIXEQ_(FILE, LINE, FUNC, YN, XN, M, MC, WANT, F, ...) \
|
||||
do { \
|
||||
char *Got; \
|
||||
const char *Want; \
|
||||
Want = (WANT); \
|
||||
Got = F(YN, XN, M, FormatStringTableForAssertion, __VA_ARGS__); \
|
||||
if (testlib_strequals(sizeof(char), Want, Got)) { \
|
||||
testlib_free(Got); \
|
||||
} else { \
|
||||
TESTLIB_ONFAIL(FILE, FUNC); \
|
||||
TESTLIB_SHOWERROR(testlib_showerror_expect_matrixeq, LINE, "...", MC, \
|
||||
testlib_formatstr(sizeof(char), Want, -1), \
|
||||
testlib_formatstr(sizeof(char), Got, -1), ""); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_TOOL_VIZ_LIB_FORMATSTRINGTABLE_TESTLIB_H_ */
|
Loading…
Add table
Add a link
Reference in a new issue