1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// SPDX-FileCopyrightText: 2023 Erin Catto
// SPDX-License-Identifier: MIT
#pragma once
#include <assert.h>
#include <stdbool.h>
#include <stdio.h>
#define RUN_TEST( T ) \
do \
{ \
int result = T(); \
if ( result == 1 ) \
{ \
printf( "test failed: " #T "\n" ); \
return 1; \
} \
else \
{ \
printf( "test passed: " #T "\n" ); \
} \
} \
while ( false )
#define RUN_SUBTEST( T ) \
do \
{ \
int result = T(); \
if ( result == 1 ) \
{ \
printf( " subtest failed: " #T "\n" ); \
return 1; \
} \
else \
{ \
printf( " subtest passed: " #T "\n" ); \
} \
} \
while ( false )
#define ENSURE( C ) \
do \
{ \
if ( ( C ) == false ) \
{ \
printf( "condition false: " #C "\n" ); \
assert( false ); \
return 1; \
} \
} \
while ( false )
#define ENSURE_SMALL( C, tol ) \
do \
{ \
if ( ( C ) < -( tol ) || ( tol ) < ( C ) ) \
{ \
printf( "condition false: abs(" #C ") < %g\n", tol ); \
assert( false ); \
return 1; \
} \
} \
while ( false )
#define ARRAY_COUNT( A ) (int)( sizeof( A ) / sizeof( A[0] ) )
/// Used to prevent the compiler from warning about unused variables
#define MAYBE_UNUSED( x ) ( (void)( x ) )