ContainerTracer  0.1
unity_internals.h
Go to the documentation of this file.
1 /* ==========================================
2  Unity Project - A Test Framework for C
3  Copyright (c) 2007-19 Mike Karlesky, Mark VanderVoord, Greg Williams
4  [Released under MIT License. Please refer to license.txt for details]
5 ========================================== */
6 
7 #ifndef UNITY_INTERNALS_H
8 #define UNITY_INTERNALS_H
9 
10 #ifdef UNITY_INCLUDE_CONFIG_H
11 #include "unity_config.h"
12 #endif
13 
14 #ifndef UNITY_EXCLUDE_SETJMP_H
15 #include <setjmp.h>
16 #endif
17 
18 #ifndef UNITY_EXCLUDE_MATH_H
19 #include <math.h>
20 #endif
21 
22 #ifndef UNITY_EXCLUDE_STDDEF_H
23 #include <stddef.h>
24 #endif
25 
26 #ifdef UNITY_INCLUDE_PRINT_FORMATTED
27 #include <stdarg.h>
28 #endif
29 
30 /* Unity Attempts to Auto-Detect Integer Types
31  * Attempt 1: UINT_MAX, ULONG_MAX in <limits.h>, or default to 32 bits
32  * Attempt 2: UINTPTR_MAX in <stdint.h>, or default to same size as long
33  * The user may override any of these derived constants:
34  * UNITY_INT_WIDTH, UNITY_LONG_WIDTH, UNITY_POINTER_WIDTH */
35 #ifndef UNITY_EXCLUDE_STDINT_H
36 #include <stdint.h>
37 #endif
38 
39 #ifndef UNITY_EXCLUDE_LIMITS_H
40 #include <limits.h>
41 #endif
42 
43 #if defined __GNUC__
44 #define UNITY_FUNCTION_ATTR(a) __attribute__((a))
45 #else
46 #define UNITY_FUNCTION_ATTR(a) /* ignore */
47 #endif
48 
49 /*-------------------------------------------------------
50  * Guess Widths If Not Specified
51  *-------------------------------------------------------*/
52 
53 /* Determine the size of an int, if not already specified.
54  * We cannot use sizeof(int), because it is not yet defined
55  * at this stage in the translation of the C program.
56  * Also sizeof(int) does return the size in addressable units on all platforms,
57  * which may not necessarily be the size in bytes.
58  * Therefore, infer it from UINT_MAX if possible. */
59 #ifndef UNITY_INT_WIDTH
60 #ifdef UINT_MAX
61 #if (UINT_MAX == 0xFFFF)
62 #define UNITY_INT_WIDTH (16)
63 #elif (UINT_MAX == 0xFFFFFFFF)
64 #define UNITY_INT_WIDTH (32)
65 #elif (UINT_MAX == 0xFFFFFFFFFFFFFFFF)
66 #define UNITY_INT_WIDTH (64)
67 #endif
68 #else /* Set to default */
69 #define UNITY_INT_WIDTH (32)
70 #endif /* UINT_MAX */
71 #endif
72 
73 /* Determine the size of a long, if not already specified. */
74 #ifndef UNITY_LONG_WIDTH
75 #ifdef ULONG_MAX
76 #if (ULONG_MAX == 0xFFFF)
77 #define UNITY_LONG_WIDTH (16)
78 #elif (ULONG_MAX == 0xFFFFFFFF)
79 #define UNITY_LONG_WIDTH (32)
80 #elif (ULONG_MAX == 0xFFFFFFFFFFFFFFFF)
81 #define UNITY_LONG_WIDTH (64)
82 #endif
83 #else /* Set to default */
84 #define UNITY_LONG_WIDTH (32)
85 #endif /* ULONG_MAX */
86 #endif
87 
88 /* Determine the size of a pointer, if not already specified. */
89 #ifndef UNITY_POINTER_WIDTH
90 #ifdef UINTPTR_MAX
91 #if (UINTPTR_MAX <= 0xFFFF)
92 #define UNITY_POINTER_WIDTH (16)
93 #elif (UINTPTR_MAX <= 0xFFFFFFFF)
94 #define UNITY_POINTER_WIDTH (32)
95 #elif (UINTPTR_MAX <= 0xFFFFFFFFFFFFFFFF)
96 #define UNITY_POINTER_WIDTH (64)
97 #endif
98 #else /* Set to default */
99 #define UNITY_POINTER_WIDTH UNITY_LONG_WIDTH
100 #endif /* UINTPTR_MAX */
101 #endif
102 
103 /*-------------------------------------------------------
104  * Int Support (Define types based on detected sizes)
105  *-------------------------------------------------------*/
106 
107 #if (UNITY_INT_WIDTH == 32)
108 typedef unsigned char UNITY_UINT8;
109 typedef unsigned short UNITY_UINT16;
110 typedef unsigned int UNITY_UINT32;
111 typedef signed char UNITY_INT8;
112 typedef signed short UNITY_INT16;
113 typedef signed int UNITY_INT32;
114 #elif (UNITY_INT_WIDTH == 16)
115 typedef unsigned char UNITY_UINT8;
116 typedef unsigned int UNITY_UINT16;
117 typedef unsigned long UNITY_UINT32;
118 typedef signed char UNITY_INT8;
119 typedef signed int UNITY_INT16;
120 typedef signed long UNITY_INT32;
121 #else
122 #error Invalid UNITY_INT_WIDTH specified! (16 or 32 are supported)
123 #endif
124 
125 /*-------------------------------------------------------
126  * 64-bit Support
127  *-------------------------------------------------------*/
128 
129 /* Auto-detect 64 Bit Support */
130 #ifndef UNITY_SUPPORT_64
131 #if UNITY_LONG_WIDTH == 64 || UNITY_POINTER_WIDTH == 64
132 #define UNITY_SUPPORT_64
133 #endif
134 #endif
135 
136 /* 64-Bit Support Dependent Configuration */
137 #ifndef UNITY_SUPPORT_64
138 /* No 64-bit Support */
141 #define UNITY_MAX_NIBBLES (8) /* Maximum number of nibbles in a UNITY_(U)INT */
142 #else
143 /* 64-bit Support */
144 #if (UNITY_LONG_WIDTH == 32)
145 typedef unsigned long long UNITY_UINT64;
146 typedef signed long long UNITY_INT64;
147 #elif (UNITY_LONG_WIDTH == 64)
148 typedef unsigned long UNITY_UINT64;
149 typedef signed long UNITY_INT64;
150 #else
151 #error Invalid UNITY_LONG_WIDTH specified! (32 or 64 are supported)
152 #endif
153 typedef UNITY_UINT64 UNITY_UINT;
154 typedef UNITY_INT64 UNITY_INT;
155 #define UNITY_MAX_NIBBLES (16) /* Maximum number of nibbles in a UNITY_(U)INT */
156 #endif
157 
158 /*-------------------------------------------------------
159  * Pointer Support
160  *-------------------------------------------------------*/
161 
162 #if (UNITY_POINTER_WIDTH == 32)
163 #define UNITY_PTR_TO_INT UNITY_INT32
164 #define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX32
165 #elif (UNITY_POINTER_WIDTH == 64)
166 #define UNITY_PTR_TO_INT UNITY_INT64
167 #define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX64
168 #elif (UNITY_POINTER_WIDTH == 16)
169 #define UNITY_PTR_TO_INT UNITY_INT16
170 #define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX16
171 #else
172 #error Invalid UNITY_POINTER_WIDTH specified! (16, 32 or 64 are supported)
173 #endif
174 
175 #ifndef UNITY_PTR_ATTRIBUTE
176 #define UNITY_PTR_ATTRIBUTE
177 #endif
178 
179 #ifndef UNITY_INTERNAL_PTR
180 #define UNITY_INTERNAL_PTR UNITY_PTR_ATTRIBUTE const void *
181 #endif
182 
183 /*-------------------------------------------------------
184  * Float Support
185  *-------------------------------------------------------*/
186 
187 #ifdef UNITY_EXCLUDE_FLOAT
188 
189 /* No Floating Point Support */
190 #ifndef UNITY_EXCLUDE_DOUBLE
191 #define UNITY_EXCLUDE_DOUBLE /* Remove double when excluding float support */
192 #endif
193 #ifndef UNITY_EXCLUDE_FLOAT_PRINT
194 #define UNITY_EXCLUDE_FLOAT_PRINT
195 #endif
196 
197 #else
198 
199 /* Floating Point Support */
200 #ifndef UNITY_FLOAT_PRECISION
201 #define UNITY_FLOAT_PRECISION (0.00001f)
202 #endif
203 #ifndef UNITY_FLOAT_TYPE
204 #define UNITY_FLOAT_TYPE float
205 #endif
207 
208 /* isinf & isnan macros should be provided by math.h */
209 #ifndef isinf
210 /* The value of Inf - Inf is NaN */
211 #define isinf(n) (isnan((n) - (n)) && !isnan(n))
212 #endif
213 
214 #ifndef isnan
215 /* NaN is the only floating point value that does NOT equal itself.
216  * Therefore if n != n, then it is NaN. */
217 #define isnan(n) ((n != n) ? 1 : 0)
218 #endif
219 
220 #endif
221 
222 /*-------------------------------------------------------
223  * Double Float Support
224  *-------------------------------------------------------*/
225 
226 /* unlike float, we DON'T include by default */
227 #if defined(UNITY_EXCLUDE_DOUBLE) || !defined(UNITY_INCLUDE_DOUBLE)
228 
229 /* No Floating Point Support */
230 #ifndef UNITY_EXCLUDE_DOUBLE
231 #define UNITY_EXCLUDE_DOUBLE
232 #else
233 #undef UNITY_INCLUDE_DOUBLE
234 #endif
235 
236 #ifndef UNITY_EXCLUDE_FLOAT
237 #ifndef UNITY_DOUBLE_TYPE
238 #define UNITY_DOUBLE_TYPE double
239 #endif
241 /* For parameter in UnityPrintFloat(UNITY_DOUBLE), which aliases to double or float */
242 #endif
243 
244 #else
245 
246 /* Double Floating Point Support */
247 #ifndef UNITY_DOUBLE_PRECISION
248 #define UNITY_DOUBLE_PRECISION (1e-12)
249 #endif
250 
251 #ifndef UNITY_DOUBLE_TYPE
252 #define UNITY_DOUBLE_TYPE double
253 #endif
255 
256 #endif
257 
258 /*-------------------------------------------------------
259  * Output Method: stdout (DEFAULT)
260  *-------------------------------------------------------*/
261 #ifndef UNITY_OUTPUT_CHAR
262 /* Default to using putchar, which is defined in stdio.h */
263 #include <stdio.h>
264 #define UNITY_OUTPUT_CHAR(a) (void)putchar(a)
265 #else
266 /* If defined as something else, make sure we declare it here so it's ready for use */
267 #ifdef UNITY_OUTPUT_CHAR_HEADER_DECLARATION
268 extern void UNITY_OUTPUT_CHAR_HEADER_DECLARATION;
269 #endif
270 #endif
271 
272 #ifndef UNITY_OUTPUT_FLUSH
273 #ifdef UNITY_USE_FLUSH_STDOUT
274 /* We want to use the stdout flush utility */
275 #include <stdio.h>
276 #define UNITY_OUTPUT_FLUSH() (void)fflush(stdout)
277 #else
278 /* We've specified nothing, therefore flush should just be ignored */
279 #define UNITY_OUTPUT_FLUSH()
280 #endif
281 #else
282 /* If defined as something else, make sure we declare it here so it's ready for use */
283 #ifdef UNITY_OUTPUT_FLUSH_HEADER_DECLARATION
284 extern void UNITY_OUTPUT_FLUSH_HEADER_DECLARATION;
285 #endif
286 #endif
287 
288 #ifndef UNITY_OUTPUT_FLUSH
289 #define UNITY_FLUSH_CALL()
290 #else
291 #define UNITY_FLUSH_CALL() UNITY_OUTPUT_FLUSH()
292 #endif
293 
294 #ifndef UNITY_PRINT_EOL
295 #define UNITY_PRINT_EOL() UNITY_OUTPUT_CHAR('\n')
296 #endif
297 
298 #ifndef UNITY_OUTPUT_START
299 #define UNITY_OUTPUT_START() (void)puts(">>>>>>>>>>>>>>>>>>>>>>>")
300 #endif
301 
302 #ifndef UNITY_OUTPUT_COMPLETE
303 #define UNITY_OUTPUT_COMPLETE() (void)puts("<<<<<<<<<<<<<<<<<<<<<<<\n")
304 #endif
305 
306 #ifdef UNITY_INCLUDE_EXEC_TIME
307 #if !defined(UNITY_EXEC_TIME_START) && !defined(UNITY_EXEC_TIME_STOP) && \
308  !defined(UNITY_PRINT_EXEC_TIME) && !defined(UNITY_TIME_TYPE)
309 /* If none any of these macros are defined then try to provide a default implementation */
310 
311 #if defined(UNITY_CLOCK_MS)
312 /* This is a simple way to get a default implementation on platforms that support getting a millisecond counter */
313 #define UNITY_TIME_TYPE UNITY_UINT
314 #define UNITY_EXEC_TIME_START() Unity.CurrentTestStartTime = UNITY_CLOCK_MS()
315 #define UNITY_EXEC_TIME_STOP() Unity.CurrentTestStopTime = UNITY_CLOCK_MS()
316 #define UNITY_PRINT_EXEC_TIME() \
317  { \
318  UNITY_UINT execTimeMs = (Unity.CurrentTestStopTime - \
319  Unity.CurrentTestStartTime); \
320  UnityPrint(" ("); \
321  UnityPrintNumberUnsigned(execTimeMs); \
322  UnityPrint(" ms)"); \
323  }
324 #elif defined(_WIN32)
325 #include <time.h>
326 #define UNITY_TIME_TYPE clock_t
327 #define UNITY_GET_TIME(t) t = (clock_t)((clock() * 1000) / CLOCKS_PER_SEC)
328 #define UNITY_EXEC_TIME_START() UNITY_GET_TIME(Unity.CurrentTestStartTime)
329 #define UNITY_EXEC_TIME_STOP() UNITY_GET_TIME(Unity.CurrentTestStopTime)
330 #define UNITY_PRINT_EXEC_TIME() \
331  { \
332  UNITY_UINT execTimeMs = (Unity.CurrentTestStopTime - \
333  Unity.CurrentTestStartTime); \
334  UnityPrint(" ("); \
335  UnityPrintNumberUnsigned(execTimeMs); \
336  UnityPrint(" ms)"); \
337  }
338 #elif defined(__unix__)
339 #include <time.h>
340 #define UNITY_TIME_TYPE struct timespec
341 #define UNITY_GET_TIME(t) clock_gettime(CLOCK_MONOTONIC, &t)
342 #define UNITY_EXEC_TIME_START() UNITY_GET_TIME(Unity.CurrentTestStartTime)
343 #define UNITY_EXEC_TIME_STOP() UNITY_GET_TIME(Unity.CurrentTestStopTime)
344 #define UNITY_PRINT_EXEC_TIME() \
345  { \
346  UNITY_UINT execTimeMs = ((Unity.CurrentTestStopTime.tv_sec - \
347  Unity.CurrentTestStartTime.tv_sec) * \
348  1000L); \
349  execTimeMs += ((Unity.CurrentTestStopTime.tv_nsec - \
350  Unity.CurrentTestStartTime.tv_nsec) / \
351  1000000L); \
352  UnityPrint(" ("); \
353  UnityPrintNumberUnsigned(execTimeMs); \
354  UnityPrint(" ms)"); \
355  }
356 #endif
357 #endif
358 #endif
359 
360 #ifndef UNITY_EXEC_TIME_START
361 #define UNITY_EXEC_TIME_START() \
362  do { \
363  } while (0)
364 #endif
365 
366 #ifndef UNITY_EXEC_TIME_STOP
367 #define UNITY_EXEC_TIME_STOP() \
368  do { \
369  } while (0)
370 #endif
371 
372 #ifndef UNITY_TIME_TYPE
373 #define UNITY_TIME_TYPE UNITY_UINT
374 #endif
375 
376 #ifndef UNITY_PRINT_EXEC_TIME
377 #define UNITY_PRINT_EXEC_TIME() \
378  do { \
379  } while (0)
380 #endif
381 
382 /*-------------------------------------------------------
383  * Footprint
384  *-------------------------------------------------------*/
385 
386 #ifndef UNITY_LINE_TYPE
387 #define UNITY_LINE_TYPE UNITY_UINT
388 #endif
389 
390 #ifndef UNITY_COUNTER_TYPE
391 #define UNITY_COUNTER_TYPE UNITY_UINT
392 #endif
393 
394 /*-------------------------------------------------------
395  * Internal Structs Needed
396  *-------------------------------------------------------*/
397 
398 typedef void (*UnityTestFunction)(void);
399 
400 #define UNITY_DISPLAY_RANGE_INT (0x10)
401 #define UNITY_DISPLAY_RANGE_UINT (0x20)
402 #define UNITY_DISPLAY_RANGE_HEX (0x40)
403 #define UNITY_DISPLAY_RANGE_CHAR (0x80)
404 
405 typedef enum {
411 #ifdef UNITY_SUPPORT_64
412  UNITY_DISPLAY_STYLE_INT64 = 8 + UNITY_DISPLAY_RANGE_INT,
413 #endif
414 
420 #ifdef UNITY_SUPPORT_64
421  UNITY_DISPLAY_STYLE_UINT64 = 8 + UNITY_DISPLAY_RANGE_UINT,
422 #endif
423 
427 #ifdef UNITY_SUPPORT_64
428  UNITY_DISPLAY_STYLE_HEX64 = 8 + UNITY_DISPLAY_RANGE_HEX,
429 #endif
430 
433 
436 
437 typedef enum {
447 
448 #ifndef UNITY_EXCLUDE_FLOAT
449 typedef enum UNITY_FLOAT_TRAIT {
460 #endif
461 
462 typedef enum {
466 } UNITY_FLAGS_T;
467 
469  const char *TestFile;
470  const char *CurrentTestName;
471 #ifndef UNITY_EXCLUDE_DETAILS
472  const char *CurrentDetail1;
473  const char *CurrentDetail2;
474 #endif
481 #ifdef UNITY_INCLUDE_EXEC_TIME
482  UNITY_TIME_TYPE CurrentTestStartTime;
483  UNITY_TIME_TYPE CurrentTestStopTime;
484 #endif
485 #ifndef UNITY_EXCLUDE_SETJMP_H
486  jmp_buf AbortFrame;
487 #endif
488 };
489 
490 extern struct UNITY_STORAGE_T Unity;
491 
492 /*-------------------------------------------------------
493  * Test Suite Management
494  *-------------------------------------------------------*/
495 
496 void UnityBegin(const char *filename);
497 int UnityEnd(void);
498 void UnitySetTestFile(const char *filename);
499 void UnityConcludeTest(void);
500 
501 #ifndef RUN_TEST
502 void UnityDefaultTestRun(UnityTestFunction Func, const char *FuncName,
503  const int FuncLineNum);
504 #else
505 #define UNITY_SKIP_DEFAULT_RUNNER
506 #endif
507 
508 /*-------------------------------------------------------
509  * Details Support
510  *-------------------------------------------------------*/
511 
512 #ifdef UNITY_EXCLUDE_DETAILS
513 #define UNITY_CLR_DETAILS()
514 #define UNITY_SET_DETAIL(d1)
515 #define UNITY_SET_DETAILS(d1, d2)
516 #else
517 #define UNITY_CLR_DETAILS() \
518  { \
519  Unity.CurrentDetail1 = 0; \
520  Unity.CurrentDetail2 = 0; \
521  }
522 #define UNITY_SET_DETAIL(d1) \
523  { \
524  Unity.CurrentDetail1 = (d1); \
525  Unity.CurrentDetail2 = 0; \
526  }
527 #define UNITY_SET_DETAILS(d1, d2) \
528  { \
529  Unity.CurrentDetail1 = (d1); \
530  Unity.CurrentDetail2 = (d2); \
531  }
532 
533 #ifndef UNITY_DETAIL1_NAME
534 #define UNITY_DETAIL1_NAME "Function"
535 #endif
536 
537 #ifndef UNITY_DETAIL2_NAME
538 #define UNITY_DETAIL2_NAME "Argument"
539 #endif
540 #endif
541 
542 #ifdef UNITY_PRINT_TEST_CONTEXT
543 void UNITY_PRINT_TEST_CONTEXT(void);
544 #endif
545 
546 /*-------------------------------------------------------
547  * Test Output
548  *-------------------------------------------------------*/
549 
550 void UnityPrint(const char *string);
551 
552 #ifdef UNITY_INCLUDE_PRINT_FORMATTED
553 void UnityPrintF(const UNITY_LINE_TYPE line, const char *format, ...);
554 #endif
555 
556 void UnityPrintLen(const char *string, const UNITY_UINT32 length);
557 void UnityPrintMask(const UNITY_UINT mask, const UNITY_UINT number);
558 void UnityPrintNumberByStyle(const UNITY_INT number,
559  const UNITY_DISPLAY_STYLE_T style);
560 void UnityPrintNumber(const UNITY_INT number_to_print);
561 void UnityPrintNumberUnsigned(const UNITY_UINT number);
562 void UnityPrintNumberHex(const UNITY_UINT number, const char nibbles_to_print);
563 
564 #ifndef UNITY_EXCLUDE_FLOAT_PRINT
565 void UnityPrintFloat(const UNITY_DOUBLE input_number);
566 #endif
567 
568 /*-------------------------------------------------------
569  * Test Assertion Functions
570  *-------------------------------------------------------
571  * Use the macros below this section instead of calling
572  * these directly. The macros have a consistent naming
573  * convention and will pull in file and line information
574  * for you. */
575 
576 void UnityAssertEqualNumber(const UNITY_INT expected, const UNITY_INT actual,
577  const char *msg, const UNITY_LINE_TYPE lineNumber,
578  const UNITY_DISPLAY_STYLE_T style);
579 
581  const UNITY_INT actual,
582  const UNITY_COMPARISON_T compare,
583  const char *msg,
584  const UNITY_LINE_TYPE lineNumber,
585  const UNITY_DISPLAY_STYLE_T style);
586 
588  UNITY_INTERNAL_PTR actual,
589  const UNITY_UINT32 num_elements, const char *msg,
590  const UNITY_LINE_TYPE lineNumber,
591  const UNITY_DISPLAY_STYLE_T style,
592  const UNITY_FLAGS_T flags);
593 
594 void UnityAssertBits(const UNITY_INT mask, const UNITY_INT expected,
595  const UNITY_INT actual, const char *msg,
596  const UNITY_LINE_TYPE lineNumber);
597 
598 void UnityAssertEqualString(const char *expected, const char *actual,
599  const char *msg, const UNITY_LINE_TYPE lineNumber);
600 
601 void UnityAssertEqualStringLen(const char *expected, const char *actual,
602  const UNITY_UINT32 length, const char *msg,
603  const UNITY_LINE_TYPE lineNumber);
604 
606  const char **actual,
607  const UNITY_UINT32 num_elements,
608  const char *msg,
609  const UNITY_LINE_TYPE lineNumber,
610  const UNITY_FLAGS_T flags);
611 
613  UNITY_INTERNAL_PTR actual,
614  const UNITY_UINT32 length,
615  const UNITY_UINT32 num_elements, const char *msg,
616  const UNITY_LINE_TYPE lineNumber,
617  const UNITY_FLAGS_T flags);
618 
619 void UnityAssertNumbersWithin(const UNITY_UINT delta, const UNITY_INT expected,
620  const UNITY_INT actual, const char *msg,
621  const UNITY_LINE_TYPE lineNumber,
622  const UNITY_DISPLAY_STYLE_T style);
623 
625  const UNITY_UINT delta, UNITY_INTERNAL_PTR expected,
626  UNITY_INTERNAL_PTR actual, const UNITY_UINT32 num_elements,
627  const char *msg, const UNITY_LINE_TYPE lineNumber,
628  const UNITY_DISPLAY_STYLE_T style, const UNITY_FLAGS_T flags);
629 
630 void UnityFail(const char *message, const UNITY_LINE_TYPE line)
631  UNITY_FUNCTION_ATTR(noreturn);
632 void UnityIgnore(const char *message, const UNITY_LINE_TYPE line)
633  UNITY_FUNCTION_ATTR(noreturn);
634 void UnityMessage(const char *message, const UNITY_LINE_TYPE line);
635 
636 #ifndef UNITY_EXCLUDE_FLOAT
637 void UnityAssertFloatsWithin(const UNITY_FLOAT delta,
638  const UNITY_FLOAT expected,
639  const UNITY_FLOAT actual, const char *msg,
640  const UNITY_LINE_TYPE lineNumber);
641 
643  UNITY_PTR_ATTRIBUTE const UNITY_FLOAT *actual,
644  const UNITY_UINT32 num_elements,
645  const char *msg,
646  const UNITY_LINE_TYPE lineNumber,
647  const UNITY_FLAGS_T flags);
648 
649 void UnityAssertFloatSpecial(const UNITY_FLOAT actual, const char *msg,
650  const UNITY_LINE_TYPE lineNumber,
651  const UNITY_FLOAT_TRAIT_T style);
652 #endif
653 
654 #ifndef UNITY_EXCLUDE_DOUBLE
655 void UnityAssertDoublesWithin(const UNITY_DOUBLE delta,
656  const UNITY_DOUBLE expected,
657  const UNITY_DOUBLE actual, const char *msg,
658  const UNITY_LINE_TYPE lineNumber);
659 
661  UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE *expected,
662  UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE *actual,
663  const UNITY_UINT32 num_elements, const char *msg,
664  const UNITY_LINE_TYPE lineNumber, const UNITY_FLAGS_T flags);
665 
666 void UnityAssertDoubleSpecial(const UNITY_DOUBLE actual, const char *msg,
667  const UNITY_LINE_TYPE lineNumber,
668  const UNITY_FLOAT_TRAIT_T style);
669 #endif
670 
671 /*-------------------------------------------------------
672  * Helpers
673  *-------------------------------------------------------*/
674 
676 #ifndef UNITY_EXCLUDE_FLOAT
677 UNITY_INTERNAL_PTR UnityFloatToPtr(const float num);
678 #endif
679 #ifndef UNITY_EXCLUDE_DOUBLE
680 UNITY_INTERNAL_PTR UnityDoubleToPtr(const double num);
681 #endif
682 
683 /*-------------------------------------------------------
684  * Error Strings We Might Need
685  *-------------------------------------------------------*/
686 
687 extern const char UnityStrOk[];
688 extern const char UnityStrPass[];
689 extern const char UnityStrFail[];
690 extern const char UnityStrIgnore[];
691 
692 extern const char UnityStrErrFloat[];
693 extern const char UnityStrErrDouble[];
694 extern const char UnityStrErr64[];
695 extern const char UnityStrErrShorthand[];
696 
697 /*-------------------------------------------------------
698  * Test Running Macros
699  *-------------------------------------------------------*/
700 
701 #ifndef UNITY_EXCLUDE_SETJMP_H
702 #define TEST_PROTECT() (setjmp(Unity.AbortFrame) == 0)
703 #define TEST_ABORT() longjmp(Unity.AbortFrame, 1)
704 #else
705 #define TEST_PROTECT() 1
706 #define TEST_ABORT() return
707 #endif
708 
709 /* This tricky series of macros gives us an optional line argument to treat it as RUN_TEST(func, num=__LINE__) */
710 #ifndef RUN_TEST
711 #ifdef __STDC_VERSION__
712 #if __STDC_VERSION__ >= 199901L
713 #define UNITY_SUPPORT_VARIADIC_MACROS
714 #endif
715 #endif
716 #ifdef UNITY_SUPPORT_VARIADIC_MACROS
717 #define RUN_TEST(...) RUN_TEST_AT_LINE(__VA_ARGS__, __LINE__, throwaway)
718 #define RUN_TEST_AT_LINE(func, line, ...) UnityDefaultTestRun(func, #func, line)
719 #endif
720 #endif
721 
722 /* If we can't do the tricky version, we'll just have to require them to always include the line number */
723 #ifndef RUN_TEST
724 #ifdef CMOCK
725 #define RUN_TEST(func, num) UnityDefaultTestRun(func, #func, num)
726 #else
727 #define RUN_TEST(func) UnityDefaultTestRun(func, #func, __LINE__)
728 #endif
729 #endif
730 
731 #define TEST_LINE_NUM (Unity.CurrentTestLineNumber)
732 #define TEST_IS_IGNORED (Unity.CurrentTestIgnored)
733 #define UNITY_NEW_TEST(a) \
734  Unity.CurrentTestName = (a); \
735  Unity.CurrentTestLineNumber = (UNITY_LINE_TYPE)(__LINE__); \
736  Unity.NumberOfTests++;
737 
738 #ifndef UNITY_BEGIN
739 #define UNITY_BEGIN() UnityBegin(__FILE__)
740 #endif
741 
742 #ifndef UNITY_END
743 #define UNITY_END() UnityEnd()
744 #endif
745 
746 #ifndef UNITY_SHORTHAND_AS_INT
747 #ifndef UNITY_SHORTHAND_AS_MEM
748 #ifndef UNITY_SHORTHAND_AS_NONE
749 #ifndef UNITY_SHORTHAND_AS_RAW
750 #define UNITY_SHORTHAND_AS_OLD
751 #endif
752 #endif
753 #endif
754 #endif
755 
756 /*-----------------------------------------------
757  * Command Line Argument Support
758  *-----------------------------------------------*/
759 
760 #ifdef UNITY_USE_COMMAND_LINE_ARGS
761 int UnityParseOptions(int argc, char **argv);
762 int UnityTestMatches(void);
763 #endif
764 
765 /*-------------------------------------------------------
766  * Basic Fail and Ignore
767  *-------------------------------------------------------*/
768 
769 #define UNITY_TEST_FAIL(line, message) \
770  UnityFail((message), (UNITY_LINE_TYPE)(line))
771 #define UNITY_TEST_IGNORE(line, message) \
772  UnityIgnore((message), (UNITY_LINE_TYPE)(line))
773 
774 /*-------------------------------------------------------
775  * Test Asserts
776  *-------------------------------------------------------*/
777 
778 #define UNITY_TEST_ASSERT(condition, line, message) \
779  do { \
780  if (condition) { \
781  } else { \
782  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), (message)); \
783  } \
784  } while (0)
785 #define UNITY_TEST_ASSERT_NULL(pointer, line, message) \
786  UNITY_TEST_ASSERT(((pointer) == NULL), (UNITY_LINE_TYPE)(line), \
787  (message))
788 #define UNITY_TEST_ASSERT_NOT_NULL(pointer, line, message) \
789  UNITY_TEST_ASSERT(((pointer) != NULL), (UNITY_LINE_TYPE)(line), \
790  (message))
791 #define UNITY_TEST_ASSERT_EMPTY(pointer, line, message) \
792  UNITY_TEST_ASSERT(((pointer[0]) == 0), (UNITY_LINE_TYPE)(line), \
793  (message))
794 #define UNITY_TEST_ASSERT_NOT_EMPTY(pointer, line, message) \
795  UNITY_TEST_ASSERT(((pointer[0]) != 0), (UNITY_LINE_TYPE)(line), \
796  (message))
797 
798 #define UNITY_TEST_ASSERT_EQUAL_INT(expected, actual, line, message) \
799  UnityAssertEqualNumber((UNITY_INT)(expected), (UNITY_INT)(actual), \
800  (message), (UNITY_LINE_TYPE)(line), \
801  UNITY_DISPLAY_STYLE_INT)
802 #define UNITY_TEST_ASSERT_EQUAL_INT8(expected, actual, line, message) \
803  UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8)(expected), \
804  (UNITY_INT)(UNITY_INT8)(actual), (message), \
805  (UNITY_LINE_TYPE)(line), \
806  UNITY_DISPLAY_STYLE_INT8)
807 #define UNITY_TEST_ASSERT_EQUAL_INT16(expected, actual, line, message) \
808  UnityAssertEqualNumber((UNITY_INT)(UNITY_INT16)(expected), \
809  (UNITY_INT)(UNITY_INT16)(actual), (message), \
810  (UNITY_LINE_TYPE)(line), \
811  UNITY_DISPLAY_STYLE_INT16)
812 #define UNITY_TEST_ASSERT_EQUAL_INT32(expected, actual, line, message) \
813  UnityAssertEqualNumber((UNITY_INT)(UNITY_INT32)(expected), \
814  (UNITY_INT)(UNITY_INT32)(actual), (message), \
815  (UNITY_LINE_TYPE)(line), \
816  UNITY_DISPLAY_STYLE_INT32)
817 #define UNITY_TEST_ASSERT_EQUAL_UINT(expected, actual, line, message) \
818  UnityAssertEqualNumber((UNITY_INT)(expected), (UNITY_INT)(actual), \
819  (message), (UNITY_LINE_TYPE)(line), \
820  UNITY_DISPLAY_STYLE_UINT)
821 #define UNITY_TEST_ASSERT_EQUAL_UINT8(expected, actual, line, message) \
822  UnityAssertEqualNumber((UNITY_INT)(UNITY_UINT8)(expected), \
823  (UNITY_INT)(UNITY_UINT8)(actual), (message), \
824  (UNITY_LINE_TYPE)(line), \
825  UNITY_DISPLAY_STYLE_UINT8)
826 #define UNITY_TEST_ASSERT_EQUAL_UINT16(expected, actual, line, message) \
827  UnityAssertEqualNumber((UNITY_INT)(UNITY_UINT16)(expected), \
828  (UNITY_INT)(UNITY_UINT16)(actual), (message), \
829  (UNITY_LINE_TYPE)(line), \
830  UNITY_DISPLAY_STYLE_UINT16)
831 #define UNITY_TEST_ASSERT_EQUAL_UINT32(expected, actual, line, message) \
832  UnityAssertEqualNumber((UNITY_INT)(UNITY_UINT32)(expected), \
833  (UNITY_INT)(UNITY_UINT32)(actual), (message), \
834  (UNITY_LINE_TYPE)(line), \
835  UNITY_DISPLAY_STYLE_UINT32)
836 #define UNITY_TEST_ASSERT_EQUAL_HEX8(expected, actual, line, message) \
837  UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8)(expected), \
838  (UNITY_INT)(UNITY_INT8)(actual), (message), \
839  (UNITY_LINE_TYPE)(line), \
840  UNITY_DISPLAY_STYLE_HEX8)
841 #define UNITY_TEST_ASSERT_EQUAL_HEX16(expected, actual, line, message) \
842  UnityAssertEqualNumber((UNITY_INT)(UNITY_INT16)(expected), \
843  (UNITY_INT)(UNITY_INT16)(actual), (message), \
844  (UNITY_LINE_TYPE)(line), \
845  UNITY_DISPLAY_STYLE_HEX16)
846 #define UNITY_TEST_ASSERT_EQUAL_HEX32(expected, actual, line, message) \
847  UnityAssertEqualNumber((UNITY_INT)(UNITY_INT32)(expected), \
848  (UNITY_INT)(UNITY_INT32)(actual), (message), \
849  (UNITY_LINE_TYPE)(line), \
850  UNITY_DISPLAY_STYLE_HEX32)
851 #define UNITY_TEST_ASSERT_EQUAL_CHAR(expected, actual, line, message) \
852  UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8)(expected), \
853  (UNITY_INT)(UNITY_INT8)(actual), (message), \
854  (UNITY_LINE_TYPE)(line), \
855  UNITY_DISPLAY_STYLE_CHAR)
856 #define UNITY_TEST_ASSERT_BITS(mask, expected, actual, line, message) \
857  UnityAssertBits((UNITY_INT)(mask), (UNITY_INT)(expected), \
858  (UNITY_INT)(actual), (message), \
859  (UNITY_LINE_TYPE)(line))
860 
861 #define UNITY_TEST_ASSERT_NOT_EQUAL_INT(threshold, actual, line, message) \
862  UnityAssertGreaterOrLessOrEqualNumber( \
863  (UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_NOT_EQUAL, \
864  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT)
865 #define UNITY_TEST_ASSERT_NOT_EQUAL_INT8(threshold, actual, line, message) \
866  UnityAssertGreaterOrLessOrEqualNumber( \
867  (UNITY_INT)(UNITY_INT8)(threshold), \
868  (UNITY_INT)(UNITY_INT8)(actual), UNITY_NOT_EQUAL, (message), \
869  (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8)
870 #define UNITY_TEST_ASSERT_NOT_EQUAL_INT16(threshold, actual, line, message) \
871  UnityAssertGreaterOrLessOrEqualNumber( \
872  (UNITY_INT)(UNITY_INT16)(threshold), \
873  (UNITY_INT)(UNITY_INT16)(actual), UNITY_NOT_EQUAL, (message), \
874  (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16)
875 #define UNITY_TEST_ASSERT_NOT_EQUAL_INT32(threshold, actual, line, message) \
876  UnityAssertGreaterOrLessOrEqualNumber( \
877  (UNITY_INT)(UNITY_INT32)(threshold), \
878  (UNITY_INT)(UNITY_INT32)(actual), UNITY_NOT_EQUAL, (message), \
879  (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32)
880 #define UNITY_TEST_ASSERT_NOT_EQUAL_UINT(threshold, actual, line, message) \
881  UnityAssertGreaterOrLessOrEqualNumber( \
882  (UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_NOT_EQUAL, \
883  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT)
884 #define UNITY_TEST_ASSERT_NOT_EQUAL_UINT8(threshold, actual, line, message) \
885  UnityAssertGreaterOrLessOrEqualNumber( \
886  (UNITY_INT)(UNITY_UINT8)(threshold), \
887  (UNITY_INT)(UNITY_UINT8)(actual), UNITY_NOT_EQUAL, (message), \
888  (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8)
889 #define UNITY_TEST_ASSERT_NOT_EQUAL_UINT16(threshold, actual, line, message) \
890  UnityAssertGreaterOrLessOrEqualNumber( \
891  (UNITY_INT)(UNITY_UINT16)(threshold), \
892  (UNITY_INT)(UNITY_UINT16)(actual), UNITY_NOT_EQUAL, (message), \
893  (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16)
894 #define UNITY_TEST_ASSERT_NOT_EQUAL_UINT32(threshold, actual, line, message) \
895  UnityAssertGreaterOrLessOrEqualNumber( \
896  (UNITY_INT)(UNITY_UINT32)(threshold), \
897  (UNITY_INT)(UNITY_UINT32)(actual), UNITY_NOT_EQUAL, (message), \
898  (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32)
899 #define UNITY_TEST_ASSERT_NOT_EQUAL_HEX8(threshold, actual, line, message) \
900  UnityAssertGreaterOrLessOrEqualNumber( \
901  (UNITY_INT)(UNITY_UINT8)(threshold), \
902  (UNITY_INT)(UNITY_UINT8)(actual), UNITY_NOT_EQUAL, (message), \
903  (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8)
904 #define UNITY_TEST_ASSERT_NOT_EQUAL_HEX16(threshold, actual, line, message) \
905  UnityAssertGreaterOrLessOrEqualNumber( \
906  (UNITY_INT)(UNITY_UINT16)(threshold), \
907  (UNITY_INT)(UNITY_UINT16)(actual), UNITY_NOT_EQUAL, (message), \
908  (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16)
909 #define UNITY_TEST_ASSERT_NOT_EQUAL_HEX32(threshold, actual, line, message) \
910  UnityAssertGreaterOrLessOrEqualNumber( \
911  (UNITY_INT)(UNITY_UINT32)(threshold), \
912  (UNITY_INT)(UNITY_UINT32)(actual), UNITY_NOT_EQUAL, (message), \
913  (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32)
914 #define UNITY_TEST_ASSERT_NOT_EQUAL_CHAR(threshold, actual, line, message) \
915  UnityAssertGreaterOrLessOrEqualNumber( \
916  (UNITY_INT)(UNITY_INT8)(threshold), \
917  (UNITY_INT)(UNITY_INT8)(actual), UNITY_NOT_EQUAL, (message), \
918  (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR)
919 
920 #define UNITY_TEST_ASSERT_GREATER_THAN_INT(threshold, actual, line, message) \
921  UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), \
922  (UNITY_INT)(actual), \
923  UNITY_GREATER_THAN, (message), \
924  (UNITY_LINE_TYPE)(line), \
925  UNITY_DISPLAY_STYLE_INT)
926 #define UNITY_TEST_ASSERT_GREATER_THAN_INT8(threshold, actual, line, message) \
927  UnityAssertGreaterOrLessOrEqualNumber( \
928  (UNITY_INT)(UNITY_INT8)(threshold), \
929  (UNITY_INT)(UNITY_INT8)(actual), UNITY_GREATER_THAN, \
930  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8)
931 #define UNITY_TEST_ASSERT_GREATER_THAN_INT16(threshold, actual, line, message) \
932  UnityAssertGreaterOrLessOrEqualNumber( \
933  (UNITY_INT)(UNITY_INT16)(threshold), \
934  (UNITY_INT)(UNITY_INT16)(actual), UNITY_GREATER_THAN, \
935  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16)
936 #define UNITY_TEST_ASSERT_GREATER_THAN_INT32(threshold, actual, line, message) \
937  UnityAssertGreaterOrLessOrEqualNumber( \
938  (UNITY_INT)(UNITY_INT32)(threshold), \
939  (UNITY_INT)(UNITY_INT32)(actual), UNITY_GREATER_THAN, \
940  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32)
941 #define UNITY_TEST_ASSERT_GREATER_THAN_UINT(threshold, actual, line, message) \
942  UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), \
943  (UNITY_INT)(actual), \
944  UNITY_GREATER_THAN, (message), \
945  (UNITY_LINE_TYPE)(line), \
946  UNITY_DISPLAY_STYLE_UINT)
947 #define UNITY_TEST_ASSERT_GREATER_THAN_UINT8(threshold, actual, line, message) \
948  UnityAssertGreaterOrLessOrEqualNumber( \
949  (UNITY_INT)(UNITY_UINT8)(threshold), \
950  (UNITY_INT)(UNITY_UINT8)(actual), UNITY_GREATER_THAN, \
951  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8)
952 #define UNITY_TEST_ASSERT_GREATER_THAN_UINT16(threshold, actual, line, \
953  message) \
954  UnityAssertGreaterOrLessOrEqualNumber( \
955  (UNITY_INT)(UNITY_UINT16)(threshold), \
956  (UNITY_INT)(UNITY_UINT16)(actual), UNITY_GREATER_THAN, \
957  (message), (UNITY_LINE_TYPE)(line), \
958  UNITY_DISPLAY_STYLE_UINT16)
959 #define UNITY_TEST_ASSERT_GREATER_THAN_UINT32(threshold, actual, line, \
960  message) \
961  UnityAssertGreaterOrLessOrEqualNumber( \
962  (UNITY_INT)(UNITY_UINT32)(threshold), \
963  (UNITY_INT)(UNITY_UINT32)(actual), UNITY_GREATER_THAN, \
964  (message), (UNITY_LINE_TYPE)(line), \
965  UNITY_DISPLAY_STYLE_UINT32)
966 #define UNITY_TEST_ASSERT_GREATER_THAN_HEX8(threshold, actual, line, message) \
967  UnityAssertGreaterOrLessOrEqualNumber( \
968  (UNITY_INT)(UNITY_UINT8)(threshold), \
969  (UNITY_INT)(UNITY_UINT8)(actual), UNITY_GREATER_THAN, \
970  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8)
971 #define UNITY_TEST_ASSERT_GREATER_THAN_HEX16(threshold, actual, line, message) \
972  UnityAssertGreaterOrLessOrEqualNumber( \
973  (UNITY_INT)(UNITY_UINT16)(threshold), \
974  (UNITY_INT)(UNITY_UINT16)(actual), UNITY_GREATER_THAN, \
975  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16)
976 #define UNITY_TEST_ASSERT_GREATER_THAN_HEX32(threshold, actual, line, message) \
977  UnityAssertGreaterOrLessOrEqualNumber( \
978  (UNITY_INT)(UNITY_UINT32)(threshold), \
979  (UNITY_INT)(UNITY_UINT32)(actual), UNITY_GREATER_THAN, \
980  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32)
981 #define UNITY_TEST_ASSERT_GREATER_THAN_CHAR(threshold, actual, line, message) \
982  UnityAssertGreaterOrLessOrEqualNumber( \
983  (UNITY_INT)(UNITY_INT8)(threshold), \
984  (UNITY_INT)(UNITY_INT8)(actual), UNITY_GREATER_THAN, \
985  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR)
986 
987 #define UNITY_TEST_ASSERT_SMALLER_THAN_INT(threshold, actual, line, message) \
988  UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), \
989  (UNITY_INT)(actual), \
990  UNITY_SMALLER_THAN, (message), \
991  (UNITY_LINE_TYPE)(line), \
992  UNITY_DISPLAY_STYLE_INT)
993 #define UNITY_TEST_ASSERT_SMALLER_THAN_INT8(threshold, actual, line, message) \
994  UnityAssertGreaterOrLessOrEqualNumber( \
995  (UNITY_INT)(UNITY_INT8)(threshold), \
996  (UNITY_INT)(UNITY_INT8)(actual), UNITY_SMALLER_THAN, \
997  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8)
998 #define UNITY_TEST_ASSERT_SMALLER_THAN_INT16(threshold, actual, line, message) \
999  UnityAssertGreaterOrLessOrEqualNumber( \
1000  (UNITY_INT)(UNITY_INT16)(threshold), \
1001  (UNITY_INT)(UNITY_INT16)(actual), UNITY_SMALLER_THAN, \
1002  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16)
1003 #define UNITY_TEST_ASSERT_SMALLER_THAN_INT32(threshold, actual, line, message) \
1004  UnityAssertGreaterOrLessOrEqualNumber( \
1005  (UNITY_INT)(UNITY_INT32)(threshold), \
1006  (UNITY_INT)(UNITY_INT32)(actual), UNITY_SMALLER_THAN, \
1007  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32)
1008 #define UNITY_TEST_ASSERT_SMALLER_THAN_UINT(threshold, actual, line, message) \
1009  UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), \
1010  (UNITY_INT)(actual), \
1011  UNITY_SMALLER_THAN, (message), \
1012  (UNITY_LINE_TYPE)(line), \
1013  UNITY_DISPLAY_STYLE_UINT)
1014 #define UNITY_TEST_ASSERT_SMALLER_THAN_UINT8(threshold, actual, line, message) \
1015  UnityAssertGreaterOrLessOrEqualNumber( \
1016  (UNITY_INT)(UNITY_UINT8)(threshold), \
1017  (UNITY_INT)(UNITY_UINT8)(actual), UNITY_SMALLER_THAN, \
1018  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8)
1019 #define UNITY_TEST_ASSERT_SMALLER_THAN_UINT16(threshold, actual, line, \
1020  message) \
1021  UnityAssertGreaterOrLessOrEqualNumber( \
1022  (UNITY_INT)(UNITY_UINT16)(threshold), \
1023  (UNITY_INT)(UNITY_UINT16)(actual), UNITY_SMALLER_THAN, \
1024  (message), (UNITY_LINE_TYPE)(line), \
1025  UNITY_DISPLAY_STYLE_UINT16)
1026 #define UNITY_TEST_ASSERT_SMALLER_THAN_UINT32(threshold, actual, line, \
1027  message) \
1028  UnityAssertGreaterOrLessOrEqualNumber( \
1029  (UNITY_INT)(UNITY_UINT32)(threshold), \
1030  (UNITY_INT)(UNITY_UINT32)(actual), UNITY_SMALLER_THAN, \
1031  (message), (UNITY_LINE_TYPE)(line), \
1032  UNITY_DISPLAY_STYLE_UINT32)
1033 #define UNITY_TEST_ASSERT_SMALLER_THAN_HEX8(threshold, actual, line, message) \
1034  UnityAssertGreaterOrLessOrEqualNumber( \
1035  (UNITY_INT)(UNITY_UINT8)(threshold), \
1036  (UNITY_INT)(UNITY_UINT8)(actual), UNITY_SMALLER_THAN, \
1037  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8)
1038 #define UNITY_TEST_ASSERT_SMALLER_THAN_HEX16(threshold, actual, line, message) \
1039  UnityAssertGreaterOrLessOrEqualNumber( \
1040  (UNITY_INT)(UNITY_UINT16)(threshold), \
1041  (UNITY_INT)(UNITY_UINT16)(actual), UNITY_SMALLER_THAN, \
1042  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16)
1043 #define UNITY_TEST_ASSERT_SMALLER_THAN_HEX32(threshold, actual, line, message) \
1044  UnityAssertGreaterOrLessOrEqualNumber( \
1045  (UNITY_INT)(UNITY_UINT32)(threshold), \
1046  (UNITY_INT)(UNITY_UINT32)(actual), UNITY_SMALLER_THAN, \
1047  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32)
1048 #define UNITY_TEST_ASSERT_SMALLER_THAN_CHAR(threshold, actual, line, message) \
1049  UnityAssertGreaterOrLessOrEqualNumber( \
1050  (UNITY_INT)(UNITY_INT8)(threshold), \
1051  (UNITY_INT)(UNITY_INT8)(actual), UNITY_SMALLER_THAN, \
1052  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR)
1053 
1054 #define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT(threshold, actual, line, \
1055  message) \
1056  UnityAssertGreaterOrLessOrEqualNumber( \
1057  (UNITY_INT)(threshold), (UNITY_INT)(actual), \
1058  UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), \
1059  UNITY_DISPLAY_STYLE_INT)
1060 #define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT8(threshold, actual, line, \
1061  message) \
1062  UnityAssertGreaterOrLessOrEqualNumber( \
1063  (UNITY_INT)(UNITY_INT8)(threshold), \
1064  (UNITY_INT)(UNITY_INT8)(actual), UNITY_GREATER_OR_EQUAL, \
1065  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8)
1066 #define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT16(threshold, actual, line, \
1067  message) \
1068  UnityAssertGreaterOrLessOrEqualNumber( \
1069  (UNITY_INT)(UNITY_INT16)(threshold), \
1070  (UNITY_INT)(UNITY_INT16)(actual), UNITY_GREATER_OR_EQUAL, \
1071  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16)
1072 #define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT32(threshold, actual, line, \
1073  message) \
1074  UnityAssertGreaterOrLessOrEqualNumber( \
1075  (UNITY_INT)(UNITY_INT32)(threshold), \
1076  (UNITY_INT)(UNITY_INT32)(actual), UNITY_GREATER_OR_EQUAL, \
1077  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32)
1078 #define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT(threshold, actual, line, \
1079  message) \
1080  UnityAssertGreaterOrLessOrEqualNumber( \
1081  (UNITY_INT)(threshold), (UNITY_INT)(actual), \
1082  UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), \
1083  UNITY_DISPLAY_STYLE_UINT)
1084 #define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT8(threshold, actual, line, \
1085  message) \
1086  UnityAssertGreaterOrLessOrEqualNumber( \
1087  (UNITY_INT)(UNITY_UINT8)(threshold), \
1088  (UNITY_INT)(UNITY_UINT8)(actual), UNITY_GREATER_OR_EQUAL, \
1089  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8)
1090 #define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT16(threshold, actual, line, \
1091  message) \
1092  UnityAssertGreaterOrLessOrEqualNumber( \
1093  (UNITY_INT)(UNITY_UINT16)(threshold), \
1094  (UNITY_INT)(UNITY_UINT16)(actual), UNITY_GREATER_OR_EQUAL, \
1095  (message), (UNITY_LINE_TYPE)(line), \
1096  UNITY_DISPLAY_STYLE_UINT16)
1097 #define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT32(threshold, actual, line, \
1098  message) \
1099  UnityAssertGreaterOrLessOrEqualNumber( \
1100  (UNITY_INT)(UNITY_UINT32)(threshold), \
1101  (UNITY_INT)(UNITY_UINT32)(actual), UNITY_GREATER_OR_EQUAL, \
1102  (message), (UNITY_LINE_TYPE)(line), \
1103  UNITY_DISPLAY_STYLE_UINT32)
1104 #define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX8(threshold, actual, line, \
1105  message) \
1106  UnityAssertGreaterOrLessOrEqualNumber( \
1107  (UNITY_INT)(UNITY_UINT8)(threshold), \
1108  (UNITY_INT)(UNITY_UINT8)(actual), UNITY_GREATER_OR_EQUAL, \
1109  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8)
1110 #define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX16(threshold, actual, line, \
1111  message) \
1112  UnityAssertGreaterOrLessOrEqualNumber( \
1113  (UNITY_INT)(UNITY_UINT16)(threshold), \
1114  (UNITY_INT)(UNITY_UINT16)(actual), UNITY_GREATER_OR_EQUAL, \
1115  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16)
1116 #define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX32(threshold, actual, line, \
1117  message) \
1118  UnityAssertGreaterOrLessOrEqualNumber( \
1119  (UNITY_INT)(UNITY_UINT32)(threshold), \
1120  (UNITY_INT)(UNITY_UINT32)(actual), UNITY_GREATER_OR_EQUAL, \
1121  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32)
1122 #define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_CHAR(threshold, actual, line, \
1123  message) \
1124  UnityAssertGreaterOrLessOrEqualNumber( \
1125  (UNITY_INT)(UNITY_INT8)(threshold), \
1126  (UNITY_INT)(UNITY_INT8)(actual), UNITY_GREATER_OR_EQUAL, \
1127  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR)
1128 
1129 #define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT(threshold, actual, line, \
1130  message) \
1131  UnityAssertGreaterOrLessOrEqualNumber( \
1132  (UNITY_INT)(threshold), (UNITY_INT)(actual), \
1133  UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), \
1134  UNITY_DISPLAY_STYLE_INT)
1135 #define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT8(threshold, actual, line, \
1136  message) \
1137  UnityAssertGreaterOrLessOrEqualNumber( \
1138  (UNITY_INT)(UNITY_INT8)(threshold), \
1139  (UNITY_INT)(UNITY_INT8)(actual), UNITY_SMALLER_OR_EQUAL, \
1140  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8)
1141 #define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT16(threshold, actual, line, \
1142  message) \
1143  UnityAssertGreaterOrLessOrEqualNumber( \
1144  (UNITY_INT)(UNITY_INT16)(threshold), \
1145  (UNITY_INT)(UNITY_INT16)(actual), UNITY_SMALLER_OR_EQUAL, \
1146  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16)
1147 #define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT32(threshold, actual, line, \
1148  message) \
1149  UnityAssertGreaterOrLessOrEqualNumber( \
1150  (UNITY_INT)(UNITY_INT32)(threshold), \
1151  (UNITY_INT)(UNITY_INT32)(actual), UNITY_SMALLER_OR_EQUAL, \
1152  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32)
1153 #define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT(threshold, actual, line, \
1154  message) \
1155  UnityAssertGreaterOrLessOrEqualNumber( \
1156  (UNITY_INT)(threshold), (UNITY_INT)(actual), \
1157  UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), \
1158  UNITY_DISPLAY_STYLE_UINT)
1159 #define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT8(threshold, actual, line, \
1160  message) \
1161  UnityAssertGreaterOrLessOrEqualNumber( \
1162  (UNITY_INT)(UNITY_UINT8)(threshold), \
1163  (UNITY_INT)(UNITY_UINT8)(actual), UNITY_SMALLER_OR_EQUAL, \
1164  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8)
1165 #define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT16(threshold, actual, line, \
1166  message) \
1167  UnityAssertGreaterOrLessOrEqualNumber( \
1168  (UNITY_INT)(UNITY_UINT16)(threshold), \
1169  (UNITY_INT)(UNITY_UINT16)(actual), UNITY_SMALLER_OR_EQUAL, \
1170  (message), (UNITY_LINE_TYPE)(line), \
1171  UNITY_DISPLAY_STYLE_UINT16)
1172 #define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT32(threshold, actual, line, \
1173  message) \
1174  UnityAssertGreaterOrLessOrEqualNumber( \
1175  (UNITY_INT)(UNITY_UINT32)(threshold), \
1176  (UNITY_INT)(UNITY_UINT32)(actual), UNITY_SMALLER_OR_EQUAL, \
1177  (message), (UNITY_LINE_TYPE)(line), \
1178  UNITY_DISPLAY_STYLE_UINT32)
1179 #define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX8(threshold, actual, line, \
1180  message) \
1181  UnityAssertGreaterOrLessOrEqualNumber( \
1182  (UNITY_INT)(UNITY_UINT8)(threshold), \
1183  (UNITY_INT)(UNITY_UINT8)(actual), UNITY_SMALLER_OR_EQUAL, \
1184  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8)
1185 #define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX16(threshold, actual, line, \
1186  message) \
1187  UnityAssertGreaterOrLessOrEqualNumber( \
1188  (UNITY_INT)(UNITY_UINT16)(threshold), \
1189  (UNITY_INT)(UNITY_UINT16)(actual), UNITY_SMALLER_OR_EQUAL, \
1190  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16)
1191 #define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX32(threshold, actual, line, \
1192  message) \
1193  UnityAssertGreaterOrLessOrEqualNumber( \
1194  (UNITY_INT)(UNITY_UINT32)(threshold), \
1195  (UNITY_INT)(UNITY_UINT32)(actual), UNITY_SMALLER_OR_EQUAL, \
1196  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32)
1197 #define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_CHAR(threshold, actual, line, \
1198  message) \
1199  UnityAssertGreaterOrLessOrEqualNumber( \
1200  (UNITY_INT)(UNITY_INT8)(threshold), \
1201  (UNITY_INT)(UNITY_INT8)(actual), UNITY_SMALLER_OR_EQUAL, \
1202  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR)
1203 
1204 #define UNITY_TEST_ASSERT_INT_WITHIN(delta, expected, actual, line, message) \
1205  UnityAssertNumbersWithin((delta), (UNITY_INT)(expected), \
1206  (UNITY_INT)(actual), (message), \
1207  (UNITY_LINE_TYPE)(line), \
1208  UNITY_DISPLAY_STYLE_INT)
1209 #define UNITY_TEST_ASSERT_INT8_WITHIN(delta, expected, actual, line, message) \
1210  UnityAssertNumbersWithin((UNITY_UINT8)(delta), \
1211  (UNITY_INT)(UNITY_INT8)(expected), \
1212  (UNITY_INT)(UNITY_INT8)(actual), (message), \
1213  (UNITY_LINE_TYPE)(line), \
1214  UNITY_DISPLAY_STYLE_INT8)
1215 #define UNITY_TEST_ASSERT_INT16_WITHIN(delta, expected, actual, line, message) \
1216  UnityAssertNumbersWithin((UNITY_UINT16)(delta), \
1217  (UNITY_INT)(UNITY_INT16)(expected), \
1218  (UNITY_INT)(UNITY_INT16)(actual), (message), \
1219  (UNITY_LINE_TYPE)(line), \
1220  UNITY_DISPLAY_STYLE_INT16)
1221 #define UNITY_TEST_ASSERT_INT32_WITHIN(delta, expected, actual, line, message) \
1222  UnityAssertNumbersWithin((UNITY_UINT32)(delta), \
1223  (UNITY_INT)(UNITY_INT32)(expected), \
1224  (UNITY_INT)(UNITY_INT32)(actual), (message), \
1225  (UNITY_LINE_TYPE)(line), \
1226  UNITY_DISPLAY_STYLE_INT32)
1227 #define UNITY_TEST_ASSERT_UINT_WITHIN(delta, expected, actual, line, message) \
1228  UnityAssertNumbersWithin((delta), (UNITY_INT)(expected), \
1229  (UNITY_INT)(actual), (message), \
1230  (UNITY_LINE_TYPE)(line), \
1231  UNITY_DISPLAY_STYLE_UINT)
1232 #define UNITY_TEST_ASSERT_UINT8_WITHIN(delta, expected, actual, line, message) \
1233  UnityAssertNumbersWithin( \
1234  (UNITY_UINT8)(delta), \
1235  (UNITY_INT)(UNITY_UINT)(UNITY_UINT8)(expected), \
1236  (UNITY_INT)(UNITY_UINT)(UNITY_UINT8)(actual), (message), \
1237  (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8)
1238 #define UNITY_TEST_ASSERT_UINT16_WITHIN(delta, expected, actual, line, \
1239  message) \
1240  UnityAssertNumbersWithin( \
1241  (UNITY_UINT16)(delta), \
1242  (UNITY_INT)(UNITY_UINT)(UNITY_UINT16)(expected), \
1243  (UNITY_INT)(UNITY_UINT)(UNITY_UINT16)(actual), (message), \
1244  (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16)
1245 #define UNITY_TEST_ASSERT_UINT32_WITHIN(delta, expected, actual, line, \
1246  message) \
1247  UnityAssertNumbersWithin( \
1248  (UNITY_UINT32)(delta), \
1249  (UNITY_INT)(UNITY_UINT)(UNITY_UINT32)(expected), \
1250  (UNITY_INT)(UNITY_UINT)(UNITY_UINT32)(actual), (message), \
1251  (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32)
1252 #define UNITY_TEST_ASSERT_HEX8_WITHIN(delta, expected, actual, line, message) \
1253  UnityAssertNumbersWithin( \
1254  (UNITY_UINT8)(delta), \
1255  (UNITY_INT)(UNITY_UINT)(UNITY_UINT8)(expected), \
1256  (UNITY_INT)(UNITY_UINT)(UNITY_UINT8)(actual), (message), \
1257  (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8)
1258 #define UNITY_TEST_ASSERT_HEX16_WITHIN(delta, expected, actual, line, message) \
1259  UnityAssertNumbersWithin( \
1260  (UNITY_UINT16)(delta), \
1261  (UNITY_INT)(UNITY_UINT)(UNITY_UINT16)(expected), \
1262  (UNITY_INT)(UNITY_UINT)(UNITY_UINT16)(actual), (message), \
1263  (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16)
1264 #define UNITY_TEST_ASSERT_HEX32_WITHIN(delta, expected, actual, line, message) \
1265  UnityAssertNumbersWithin( \
1266  (UNITY_UINT32)(delta), \
1267  (UNITY_INT)(UNITY_UINT)(UNITY_UINT32)(expected), \
1268  (UNITY_INT)(UNITY_UINT)(UNITY_UINT32)(actual), (message), \
1269  (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32)
1270 #define UNITY_TEST_ASSERT_CHAR_WITHIN(delta, expected, actual, line, message) \
1271  UnityAssertNumbersWithin((UNITY_UINT8)(delta), \
1272  (UNITY_INT)(UNITY_INT8)(expected), \
1273  (UNITY_INT)(UNITY_INT8)(actual), (message), \
1274  (UNITY_LINE_TYPE)(line), \
1275  UNITY_DISPLAY_STYLE_CHAR)
1276 
1277 #define UNITY_TEST_ASSERT_INT_ARRAY_WITHIN(delta, expected, actual, \
1278  num_elements, line, message) \
1279  UnityAssertNumbersArrayWithin((delta), (UNITY_INTERNAL_PTR)(expected), \
1280  (UNITY_INTERNAL_PTR)(actual), \
1281  ((UNITY_UINT32)(num_elements)), \
1282  (message), (UNITY_LINE_TYPE)(line), \
1283  UNITY_DISPLAY_STYLE_INT, \
1284  UNITY_ARRAY_TO_ARRAY)
1285 #define UNITY_TEST_ASSERT_INT8_ARRAY_WITHIN(delta, expected, actual, \
1286  num_elements, line, message) \
1287  UnityAssertNumbersArrayWithin( \
1288  (UNITY_UINT8)(delta), (UNITY_INTERNAL_PTR)(expected), \
1289  (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), \
1290  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8, \
1291  UNITY_ARRAY_TO_ARRAY)
1292 #define UNITY_TEST_ASSERT_INT16_ARRAY_WITHIN(delta, expected, actual, \
1293  num_elements, line, message) \
1294  UnityAssertNumbersArrayWithin( \
1295  (UNITY_UINT16)(delta), (UNITY_INTERNAL_PTR)(expected), \
1296  (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), \
1297  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16, \
1298  UNITY_ARRAY_TO_ARRAY)
1299 #define UNITY_TEST_ASSERT_INT32_ARRAY_WITHIN(delta, expected, actual, \
1300  num_elements, line, message) \
1301  UnityAssertNumbersArrayWithin( \
1302  (UNITY_UINT32)(delta), (UNITY_INTERNAL_PTR)(expected), \
1303  (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), \
1304  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32, \
1305  UNITY_ARRAY_TO_ARRAY)
1306 #define UNITY_TEST_ASSERT_UINT_ARRAY_WITHIN(delta, expected, actual, \
1307  num_elements, line, message) \
1308  UnityAssertNumbersArrayWithin((delta), (UNITY_INTERNAL_PTR)(expected), \
1309  (UNITY_INTERNAL_PTR)(actual), \
1310  ((UNITY_UINT32)(num_elements)), \
1311  (message), (UNITY_LINE_TYPE)(line), \
1312  UNITY_DISPLAY_STYLE_UINT, \
1313  UNITY_ARRAY_TO_ARRAY)
1314 #define UNITY_TEST_ASSERT_UINT8_ARRAY_WITHIN(delta, expected, actual, \
1315  num_elements, line, message) \
1316  UnityAssertNumbersArrayWithin( \
1317  (UNITY_UINT16)(delta), (UNITY_INTERNAL_PTR)(expected), \
1318  (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), \
1319  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8, \
1320  UNITY_ARRAY_TO_ARRAY)
1321 #define UNITY_TEST_ASSERT_UINT16_ARRAY_WITHIN(delta, expected, actual, \
1322  num_elements, line, message) \
1323  UnityAssertNumbersArrayWithin( \
1324  (UNITY_UINT16)(delta), (UNITY_INTERNAL_PTR)(expected), \
1325  (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), \
1326  (message), (UNITY_LINE_TYPE)(line), \
1327  UNITY_DISPLAY_STYLE_UINT16, UNITY_ARRAY_TO_ARRAY)
1328 #define UNITY_TEST_ASSERT_UINT32_ARRAY_WITHIN(delta, expected, actual, \
1329  num_elements, line, message) \
1330  UnityAssertNumbersArrayWithin( \
1331  (UNITY_UINT32)(delta), (UNITY_INTERNAL_PTR)(expected), \
1332  (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), \
1333  (message), (UNITY_LINE_TYPE)(line), \
1334  UNITY_DISPLAY_STYLE_UINT32, UNITY_ARRAY_TO_ARRAY)
1335 #define UNITY_TEST_ASSERT_HEX8_ARRAY_WITHIN(delta, expected, actual, \
1336  num_elements, line, message) \
1337  UnityAssertNumbersArrayWithin( \
1338  (UNITY_UINT8)(delta), (UNITY_INTERNAL_PTR)(expected), \
1339  (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), \
1340  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8, \
1341  UNITY_ARRAY_TO_ARRAY)
1342 #define UNITY_TEST_ASSERT_HEX16_ARRAY_WITHIN(delta, expected, actual, \
1343  num_elements, line, message) \
1344  UnityAssertNumbersArrayWithin( \
1345  (UNITY_UINT16)(delta), (UNITY_INTERNAL_PTR)(expected), \
1346  (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), \
1347  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16, \
1348  UNITY_ARRAY_TO_ARRAY)
1349 #define UNITY_TEST_ASSERT_HEX32_ARRAY_WITHIN(delta, expected, actual, \
1350  num_elements, line, message) \
1351  UnityAssertNumbersArrayWithin( \
1352  (UNITY_UINT32)(delta), (UNITY_INTERNAL_PTR)(expected), \
1353  (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), \
1354  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32, \
1355  UNITY_ARRAY_TO_ARRAY)
1356 #define UNITY_TEST_ASSERT_CHAR_ARRAY_WITHIN(delta, expected, actual, \
1357  num_elements, line, message) \
1358  UnityAssertNumbersArrayWithin( \
1359  (UNITY_UINT8)(delta), (UNITY_INTERNAL_PTR)(expected), \
1360  (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), \
1361  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR, \
1362  UNITY_ARRAY_TO_ARRAY)
1363 
1364 #define UNITY_TEST_ASSERT_EQUAL_PTR(expected, actual, line, message) \
1365  UnityAssertEqualNumber((UNITY_PTR_TO_INT)(expected), \
1366  (UNITY_PTR_TO_INT)(actual), (message), \
1367  (UNITY_LINE_TYPE)(line), \
1368  UNITY_DISPLAY_STYLE_POINTER)
1369 #define UNITY_TEST_ASSERT_EQUAL_STRING(expected, actual, line, message) \
1370  UnityAssertEqualString((const char *)(expected), \
1371  (const char *)(actual), (message), \
1372  (UNITY_LINE_TYPE)(line))
1373 #define UNITY_TEST_ASSERT_EQUAL_STRING_LEN(expected, actual, len, line, \
1374  message) \
1375  UnityAssertEqualStringLen((const char *)(expected), \
1376  (const char *)(actual), (UNITY_UINT32)(len), \
1377  (message), (UNITY_LINE_TYPE)(line))
1378 #define UNITY_TEST_ASSERT_EQUAL_MEMORY(expected, actual, len, line, message) \
1379  UnityAssertEqualMemory((UNITY_INTERNAL_PTR)(expected), \
1380  (UNITY_INTERNAL_PTR)(actual), \
1381  (UNITY_UINT32)(len), 1, (message), \
1382  (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_ARRAY)
1383 
1384 #define UNITY_TEST_ASSERT_EQUAL_INT_ARRAY(expected, actual, num_elements, \
1385  line, message) \
1386  UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), \
1387  (UNITY_INTERNAL_PTR)(actual), \
1388  (UNITY_UINT32)(num_elements), (message), \
1389  (UNITY_LINE_TYPE)(line), \
1390  UNITY_DISPLAY_STYLE_INT, \
1391  UNITY_ARRAY_TO_ARRAY)
1392 #define UNITY_TEST_ASSERT_EQUAL_INT8_ARRAY(expected, actual, num_elements, \
1393  line, message) \
1394  UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), \
1395  (UNITY_INTERNAL_PTR)(actual), \
1396  (UNITY_UINT32)(num_elements), (message), \
1397  (UNITY_LINE_TYPE)(line), \
1398  UNITY_DISPLAY_STYLE_INT8, \
1399  UNITY_ARRAY_TO_ARRAY)
1400 #define UNITY_TEST_ASSERT_EQUAL_INT16_ARRAY(expected, actual, num_elements, \
1401  line, message) \
1402  UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), \
1403  (UNITY_INTERNAL_PTR)(actual), \
1404  (UNITY_UINT32)(num_elements), (message), \
1405  (UNITY_LINE_TYPE)(line), \
1406  UNITY_DISPLAY_STYLE_INT16, \
1407  UNITY_ARRAY_TO_ARRAY)
1408 #define UNITY_TEST_ASSERT_EQUAL_INT32_ARRAY(expected, actual, num_elements, \
1409  line, message) \
1410  UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), \
1411  (UNITY_INTERNAL_PTR)(actual), \
1412  (UNITY_UINT32)(num_elements), (message), \
1413  (UNITY_LINE_TYPE)(line), \
1414  UNITY_DISPLAY_STYLE_INT32, \
1415  UNITY_ARRAY_TO_ARRAY)
1416 #define UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY(expected, actual, num_elements, \
1417  line, message) \
1418  UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), \
1419  (UNITY_INTERNAL_PTR)(actual), \
1420  (UNITY_UINT32)(num_elements), (message), \
1421  (UNITY_LINE_TYPE)(line), \
1422  UNITY_DISPLAY_STYLE_UINT, \
1423  UNITY_ARRAY_TO_ARRAY)
1424 #define UNITY_TEST_ASSERT_EQUAL_UINT8_ARRAY(expected, actual, num_elements, \
1425  line, message) \
1426  UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), \
1427  (UNITY_INTERNAL_PTR)(actual), \
1428  (UNITY_UINT32)(num_elements), (message), \
1429  (UNITY_LINE_TYPE)(line), \
1430  UNITY_DISPLAY_STYLE_UINT8, \
1431  UNITY_ARRAY_TO_ARRAY)
1432 #define UNITY_TEST_ASSERT_EQUAL_UINT16_ARRAY(expected, actual, num_elements, \
1433  line, message) \
1434  UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), \
1435  (UNITY_INTERNAL_PTR)(actual), \
1436  (UNITY_UINT32)(num_elements), (message), \
1437  (UNITY_LINE_TYPE)(line), \
1438  UNITY_DISPLAY_STYLE_UINT16, \
1439  UNITY_ARRAY_TO_ARRAY)
1440 #define UNITY_TEST_ASSERT_EQUAL_UINT32_ARRAY(expected, actual, num_elements, \
1441  line, message) \
1442  UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), \
1443  (UNITY_INTERNAL_PTR)(actual), \
1444  (UNITY_UINT32)(num_elements), (message), \
1445  (UNITY_LINE_TYPE)(line), \
1446  UNITY_DISPLAY_STYLE_UINT32, \
1447  UNITY_ARRAY_TO_ARRAY)
1448 #define UNITY_TEST_ASSERT_EQUAL_HEX8_ARRAY(expected, actual, num_elements, \
1449  line, message) \
1450  UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), \
1451  (UNITY_INTERNAL_PTR)(actual), \
1452  (UNITY_UINT32)(num_elements), (message), \
1453  (UNITY_LINE_TYPE)(line), \
1454  UNITY_DISPLAY_STYLE_HEX8, \
1455  UNITY_ARRAY_TO_ARRAY)
1456 #define UNITY_TEST_ASSERT_EQUAL_HEX16_ARRAY(expected, actual, num_elements, \
1457  line, message) \
1458  UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), \
1459  (UNITY_INTERNAL_PTR)(actual), \
1460  (UNITY_UINT32)(num_elements), (message), \
1461  (UNITY_LINE_TYPE)(line), \
1462  UNITY_DISPLAY_STYLE_HEX16, \
1463  UNITY_ARRAY_TO_ARRAY)
1464 #define UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements, \
1465  line, message) \
1466  UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), \
1467  (UNITY_INTERNAL_PTR)(actual), \
1468  (UNITY_UINT32)(num_elements), (message), \
1469  (UNITY_LINE_TYPE)(line), \
1470  UNITY_DISPLAY_STYLE_HEX32, \
1471  UNITY_ARRAY_TO_ARRAY)
1472 #define UNITY_TEST_ASSERT_EQUAL_PTR_ARRAY(expected, actual, num_elements, \
1473  line, message) \
1474  UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), \
1475  (UNITY_INTERNAL_PTR)(actual), \
1476  (UNITY_UINT32)(num_elements), (message), \
1477  (UNITY_LINE_TYPE)(line), \
1478  UNITY_DISPLAY_STYLE_POINTER, \
1479  UNITY_ARRAY_TO_ARRAY)
1480 #define UNITY_TEST_ASSERT_EQUAL_STRING_ARRAY(expected, actual, num_elements, \
1481  line, message) \
1482  UnityAssertEqualStringArray((UNITY_INTERNAL_PTR)(expected), \
1483  (const char **)(actual), \
1484  (UNITY_UINT32)(num_elements), (message), \
1485  (UNITY_LINE_TYPE)(line), \
1486  UNITY_ARRAY_TO_ARRAY)
1487 #define UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY(expected, actual, len, \
1488  num_elements, line, message) \
1489  UnityAssertEqualMemory((UNITY_INTERNAL_PTR)(expected), \
1490  (UNITY_INTERNAL_PTR)(actual), \
1491  (UNITY_UINT32)(len), \
1492  (UNITY_UINT32)(num_elements), (message), \
1493  (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_ARRAY)
1494 #define UNITY_TEST_ASSERT_EQUAL_CHAR_ARRAY(expected, actual, num_elements, \
1495  line, message) \
1496  UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), \
1497  (UNITY_INTERNAL_PTR)(actual), \
1498  (UNITY_UINT32)(num_elements), (message), \
1499  (UNITY_LINE_TYPE)(line), \
1500  UNITY_DISPLAY_STYLE_CHAR, \
1501  UNITY_ARRAY_TO_ARRAY)
1502 
1503 #define UNITY_TEST_ASSERT_EACH_EQUAL_INT(expected, actual, num_elements, line, \
1504  message) \
1505  UnityAssertEqualIntArray( \
1506  UnityNumToPtr((UNITY_INT)(expected), (UNITY_INT_WIDTH / 8)), \
1507  (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), \
1508  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT, \
1509  UNITY_ARRAY_TO_VAL)
1510 #define UNITY_TEST_ASSERT_EACH_EQUAL_INT8(expected, actual, num_elements, \
1511  line, message) \
1512  UnityAssertEqualIntArray( \
1513  UnityNumToPtr((UNITY_INT)(UNITY_INT8)(expected), 1), \
1514  (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), \
1515  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8, \
1516  UNITY_ARRAY_TO_VAL)
1517 #define UNITY_TEST_ASSERT_EACH_EQUAL_INT16(expected, actual, num_elements, \
1518  line, message) \
1519  UnityAssertEqualIntArray( \
1520  UnityNumToPtr((UNITY_INT)(UNITY_INT16)(expected), 2), \
1521  (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), \
1522  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16, \
1523  UNITY_ARRAY_TO_VAL)
1524 #define UNITY_TEST_ASSERT_EACH_EQUAL_INT32(expected, actual, num_elements, \
1525  line, message) \
1526  UnityAssertEqualIntArray( \
1527  UnityNumToPtr((UNITY_INT)(UNITY_INT32)(expected), 4), \
1528  (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), \
1529  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32, \
1530  UNITY_ARRAY_TO_VAL)
1531 #define UNITY_TEST_ASSERT_EACH_EQUAL_UINT(expected, actual, num_elements, \
1532  line, message) \
1533  UnityAssertEqualIntArray( \
1534  UnityNumToPtr((UNITY_INT)(expected), (UNITY_INT_WIDTH / 8)), \
1535  (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), \
1536  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT, \
1537  UNITY_ARRAY_TO_VAL)
1538 #define UNITY_TEST_ASSERT_EACH_EQUAL_UINT8(expected, actual, num_elements, \
1539  line, message) \
1540  UnityAssertEqualIntArray( \
1541  UnityNumToPtr((UNITY_INT)(UNITY_UINT8)(expected), 1), \
1542  (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), \
1543  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8, \
1544  UNITY_ARRAY_TO_VAL)
1545 #define UNITY_TEST_ASSERT_EACH_EQUAL_UINT16(expected, actual, num_elements, \
1546  line, message) \
1547  UnityAssertEqualIntArray( \
1548  UnityNumToPtr((UNITY_INT)(UNITY_UINT16)(expected), 2), \
1549  (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), \
1550  (message), (UNITY_LINE_TYPE)(line), \
1551  UNITY_DISPLAY_STYLE_UINT16, UNITY_ARRAY_TO_VAL)
1552 #define UNITY_TEST_ASSERT_EACH_EQUAL_UINT32(expected, actual, num_elements, \
1553  line, message) \
1554  UnityAssertEqualIntArray( \
1555  UnityNumToPtr((UNITY_INT)(UNITY_UINT32)(expected), 4), \
1556  (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), \
1557  (message), (UNITY_LINE_TYPE)(line), \
1558  UNITY_DISPLAY_STYLE_UINT32, UNITY_ARRAY_TO_VAL)
1559 #define UNITY_TEST_ASSERT_EACH_EQUAL_HEX8(expected, actual, num_elements, \
1560  line, message) \
1561  UnityAssertEqualIntArray( \
1562  UnityNumToPtr((UNITY_INT)(UNITY_INT8)(expected), 1), \
1563  (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), \
1564  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8, \
1565  UNITY_ARRAY_TO_VAL)
1566 #define UNITY_TEST_ASSERT_EACH_EQUAL_HEX16(expected, actual, num_elements, \
1567  line, message) \
1568  UnityAssertEqualIntArray( \
1569  UnityNumToPtr((UNITY_INT)(UNITY_INT16)(expected), 2), \
1570  (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), \
1571  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16, \
1572  UNITY_ARRAY_TO_VAL)
1573 #define UNITY_TEST_ASSERT_EACH_EQUAL_HEX32(expected, actual, num_elements, \
1574  line, message) \
1575  UnityAssertEqualIntArray( \
1576  UnityNumToPtr((UNITY_INT)(UNITY_INT32)(expected), 4), \
1577  (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), \
1578  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32, \
1579  UNITY_ARRAY_TO_VAL)
1580 #define UNITY_TEST_ASSERT_EACH_EQUAL_PTR(expected, actual, num_elements, line, \
1581  message) \
1582  UnityAssertEqualIntArray(UnityNumToPtr((UNITY_PTR_TO_INT)(expected), \
1583  (UNITY_POINTER_WIDTH / 8)), \
1584  (UNITY_INTERNAL_PTR)(actual), \
1585  (UNITY_UINT32)(num_elements), (message), \
1586  (UNITY_LINE_TYPE)(line), \
1587  UNITY_DISPLAY_STYLE_POINTER, \
1588  UNITY_ARRAY_TO_VAL)
1589 #define UNITY_TEST_ASSERT_EACH_EQUAL_STRING(expected, actual, num_elements, \
1590  line, message) \
1591  UnityAssertEqualStringArray((UNITY_INTERNAL_PTR)(expected), \
1592  (const char **)(actual), \
1593  (UNITY_UINT32)(num_elements), (message), \
1594  (UNITY_LINE_TYPE)(line), \
1595  UNITY_ARRAY_TO_VAL)
1596 #define UNITY_TEST_ASSERT_EACH_EQUAL_MEMORY(expected, actual, len, \
1597  num_elements, line, message) \
1598  UnityAssertEqualMemory((UNITY_INTERNAL_PTR)(expected), \
1599  (UNITY_INTERNAL_PTR)(actual), \
1600  (UNITY_UINT32)(len), \
1601  (UNITY_UINT32)(num_elements), (message), \
1602  (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_VAL)
1603 #define UNITY_TEST_ASSERT_EACH_EQUAL_CHAR(expected, actual, num_elements, \
1604  line, message) \
1605  UnityAssertEqualIntArray( \
1606  UnityNumToPtr((UNITY_INT)(UNITY_INT8)(expected), 1), \
1607  (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), \
1608  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR, \
1609  UNITY_ARRAY_TO_VAL)
1610 
1611 #ifdef UNITY_SUPPORT_64
1612 #define UNITY_TEST_ASSERT_EQUAL_INT64(expected, actual, line, message) \
1613  UnityAssertEqualNumber((UNITY_INT)(expected), (UNITY_INT)(actual), \
1614  (message), (UNITY_LINE_TYPE)(line), \
1615  UNITY_DISPLAY_STYLE_INT64)
1616 #define UNITY_TEST_ASSERT_EQUAL_UINT64(expected, actual, line, message) \
1617  UnityAssertEqualNumber((UNITY_INT)(expected), (UNITY_INT)(actual), \
1618  (message), (UNITY_LINE_TYPE)(line), \
1619  UNITY_DISPLAY_STYLE_UINT64)
1620 #define UNITY_TEST_ASSERT_EQUAL_HEX64(expected, actual, line, message) \
1621  UnityAssertEqualNumber((UNITY_INT)(expected), (UNITY_INT)(actual), \
1622  (message), (UNITY_LINE_TYPE)(line), \
1623  UNITY_DISPLAY_STYLE_HEX64)
1624 #define UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements, \
1625  line, message) \
1626  UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), \
1627  (UNITY_INTERNAL_PTR)(actual), \
1628  (UNITY_UINT32)(num_elements), (message), \
1629  (UNITY_LINE_TYPE)(line), \
1630  UNITY_DISPLAY_STYLE_INT64, \
1631  UNITY_ARRAY_TO_ARRAY)
1632 #define UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements, \
1633  line, message) \
1634  UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), \
1635  (UNITY_INTERNAL_PTR)(actual), \
1636  (UNITY_UINT32)(num_elements), (message), \
1637  (UNITY_LINE_TYPE)(line), \
1638  UNITY_DISPLAY_STYLE_UINT64, \
1639  UNITY_ARRAY_TO_ARRAY)
1640 #define UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, \
1641  line, message) \
1642  UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), \
1643  (UNITY_INTERNAL_PTR)(actual), \
1644  (UNITY_UINT32)(num_elements), (message), \
1645  (UNITY_LINE_TYPE)(line), \
1646  UNITY_DISPLAY_STYLE_HEX64, \
1647  UNITY_ARRAY_TO_ARRAY)
1648 #define UNITY_TEST_ASSERT_EACH_EQUAL_INT64(expected, actual, num_elements, \
1649  line, message) \
1650  UnityAssertEqualIntArray( \
1651  UnityNumToPtr((UNITY_INT)(UNITY_INT64)(expected), 8), \
1652  (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), \
1653  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64, \
1654  UNITY_ARRAY_TO_VAL)
1655 #define UNITY_TEST_ASSERT_EACH_EQUAL_UINT64(expected, actual, num_elements, \
1656  line, message) \
1657  UnityAssertEqualIntArray( \
1658  UnityNumToPtr((UNITY_INT)(UNITY_UINT64)(expected), 8), \
1659  (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), \
1660  (message), (UNITY_LINE_TYPE)(line), \
1661  UNITY_DISPLAY_STYLE_UINT64, UNITY_ARRAY_TO_VAL)
1662 #define UNITY_TEST_ASSERT_EACH_EQUAL_HEX64(expected, actual, num_elements, \
1663  line, message) \
1664  UnityAssertEqualIntArray( \
1665  UnityNumToPtr((UNITY_INT)(UNITY_INT64)(expected), 8), \
1666  (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), \
1667  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64, \
1668  UNITY_ARRAY_TO_VAL)
1669 #define UNITY_TEST_ASSERT_INT64_WITHIN(delta, expected, actual, line, message) \
1670  UnityAssertNumbersWithin((delta), (UNITY_INT)(expected), \
1671  (UNITY_INT)(actual), (message), \
1672  (UNITY_LINE_TYPE)(line), \
1673  UNITY_DISPLAY_STYLE_INT64)
1674 #define UNITY_TEST_ASSERT_UINT64_WITHIN(delta, expected, actual, line, \
1675  message) \
1676  UnityAssertNumbersWithin((delta), (UNITY_INT)(expected), \
1677  (UNITY_INT)(actual), (message), \
1678  (UNITY_LINE_TYPE)(line), \
1679  UNITY_DISPLAY_STYLE_UINT64)
1680 #define UNITY_TEST_ASSERT_HEX64_WITHIN(delta, expected, actual, line, message) \
1681  UnityAssertNumbersWithin((delta), (UNITY_INT)(expected), \
1682  (UNITY_INT)(actual), (message), \
1683  (UNITY_LINE_TYPE)(line), \
1684  UNITY_DISPLAY_STYLE_HEX64)
1685 #define UNITY_TEST_ASSERT_NOT_EQUAL_INT64(threshold, actual, line, message) \
1686  UnityAssertGreaterOrLessOrEqualNumber( \
1687  (UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_NOT_EQUAL, \
1688  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64)
1689 #define UNITY_TEST_ASSERT_NOT_EQUAL_UINT64(threshold, actual, line, message) \
1690  UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), \
1691  (UNITY_INT)(actual), \
1692  UNITY_NOT_EQUAL, (message), \
1693  (UNITY_LINE_TYPE)(line), \
1694  UNITY_DISPLAY_STYLE_UINT64)
1695 #define UNITY_TEST_ASSERT_NOT_EQUAL_HEX64(threshold, actual, line, message) \
1696  UnityAssertGreaterOrLessOrEqualNumber( \
1697  (UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_NOT_EQUAL, \
1698  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64)
1699 #define UNITY_TEST_ASSERT_GREATER_THAN_INT64(threshold, actual, line, message) \
1700  UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), \
1701  (UNITY_INT)(actual), \
1702  UNITY_GREATER_THAN, (message), \
1703  (UNITY_LINE_TYPE)(line), \
1704  UNITY_DISPLAY_STYLE_INT64)
1705 #define UNITY_TEST_ASSERT_GREATER_THAN_UINT64(threshold, actual, line, \
1706  message) \
1707  UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), \
1708  (UNITY_INT)(actual), \
1709  UNITY_GREATER_THAN, (message), \
1710  (UNITY_LINE_TYPE)(line), \
1711  UNITY_DISPLAY_STYLE_UINT64)
1712 #define UNITY_TEST_ASSERT_GREATER_THAN_HEX64(threshold, actual, line, message) \
1713  UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), \
1714  (UNITY_INT)(actual), \
1715  UNITY_GREATER_THAN, (message), \
1716  (UNITY_LINE_TYPE)(line), \
1717  UNITY_DISPLAY_STYLE_HEX64)
1718 #define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT64(threshold, actual, line, \
1719  message) \
1720  UnityAssertGreaterOrLessOrEqualNumber( \
1721  (UNITY_INT)(threshold), (UNITY_INT)(actual), \
1722  UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), \
1723  UNITY_DISPLAY_STYLE_INT64)
1724 #define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT64(threshold, actual, line, \
1725  message) \
1726  UnityAssertGreaterOrLessOrEqualNumber( \
1727  (UNITY_INT)(threshold), (UNITY_INT)(actual), \
1728  UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), \
1729  UNITY_DISPLAY_STYLE_UINT64)
1730 #define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX64(threshold, actual, line, \
1731  message) \
1732  UnityAssertGreaterOrLessOrEqualNumber( \
1733  (UNITY_INT)(threshold), (UNITY_INT)(actual), \
1734  UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), \
1735  UNITY_DISPLAY_STYLE_HEX64)
1736 #define UNITY_TEST_ASSERT_SMALLER_THAN_INT64(threshold, actual, line, message) \
1737  UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), \
1738  (UNITY_INT)(actual), \
1739  UNITY_SMALLER_THAN, (message), \
1740  (UNITY_LINE_TYPE)(line), \
1741  UNITY_DISPLAY_STYLE_INT64)
1742 #define UNITY_TEST_ASSERT_SMALLER_THAN_UINT64(threshold, actual, line, \
1743  message) \
1744  UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), \
1745  (UNITY_INT)(actual), \
1746  UNITY_SMALLER_THAN, (message), \
1747  (UNITY_LINE_TYPE)(line), \
1748  UNITY_DISPLAY_STYLE_UINT64)
1749 #define UNITY_TEST_ASSERT_SMALLER_THAN_HEX64(threshold, actual, line, message) \
1750  UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), \
1751  (UNITY_INT)(actual), \
1752  UNITY_SMALLER_THAN, (message), \
1753  (UNITY_LINE_TYPE)(line), \
1754  UNITY_DISPLAY_STYLE_HEX64)
1755 #define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT64(threshold, actual, line, \
1756  message) \
1757  UnityAssertGreaterOrLessOrEqualNumber( \
1758  (UNITY_INT)(threshold), (UNITY_INT)(actual), \
1759  UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), \
1760  UNITY_DISPLAY_STYLE_INT64)
1761 #define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT64(threshold, actual, line, \
1762  message) \
1763  UnityAssertGreaterOrLessOrEqualNumber( \
1764  (UNITY_INT)(threshold), (UNITY_INT)(actual), \
1765  UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), \
1766  UNITY_DISPLAY_STYLE_UINT64)
1767 #define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX64(threshold, actual, line, \
1768  message) \
1769  UnityAssertGreaterOrLessOrEqualNumber( \
1770  (UNITY_INT)(threshold), (UNITY_INT)(actual), \
1771  UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), \
1772  UNITY_DISPLAY_STYLE_HEX64)
1773 #define UNITY_TEST_ASSERT_INT64_ARRAY_WITHIN(delta, expected, actual, \
1774  num_elements, line, message) \
1775  UnityAssertNumbersArrayWithin( \
1776  (UNITY_UINT64)(delta), (UNITY_INTERNAL_PTR)(expected), \
1777  (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), \
1778  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64, \
1779  UNITY_ARRAY_TO_ARRAY)
1780 #define UNITY_TEST_ASSERT_UINT64_ARRAY_WITHIN(delta, expected, actual, \
1781  num_elements, line, message) \
1782  UnityAssertNumbersArrayWithin( \
1783  (UNITY_UINT64)(delta), (UNITY_INTERNAL_PTR)(expected), \
1784  (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), \
1785  (message), (UNITY_LINE_TYPE)(line), \
1786  UNITY_DISPLAY_STYLE_UINT64, UNITY_ARRAY_TO_ARRAY)
1787 #define UNITY_TEST_ASSERT_HEX64_ARRAY_WITHIN(delta, expected, actual, \
1788  num_elements, line, message) \
1789  UnityAssertNumbersArrayWithin( \
1790  (UNITY_UINT64)(delta), (UNITY_INTERNAL_PTR)(expected), \
1791  (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), \
1792  (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64, \
1793  UNITY_ARRAY_TO_ARRAY)
1794 #else
1795 #define UNITY_TEST_ASSERT_EQUAL_INT64(expected, actual, line, message) \
1796  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1797 #define UNITY_TEST_ASSERT_EQUAL_UINT64(expected, actual, line, message) \
1798  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1799 #define UNITY_TEST_ASSERT_EQUAL_HEX64(expected, actual, line, message) \
1800  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1801 #define UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements, \
1802  line, message) \
1803  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1804 #define UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements, \
1805  line, message) \
1806  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1807 #define UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, \
1808  line, message) \
1809  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1810 #define UNITY_TEST_ASSERT_INT64_WITHIN(delta, expected, actual, line, message) \
1811  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1812 #define UNITY_TEST_ASSERT_UINT64_WITHIN(delta, expected, actual, line, \
1813  message) \
1814  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1815 #define UNITY_TEST_ASSERT_HEX64_WITHIN(delta, expected, actual, line, message) \
1816  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1817 #define UNITY_TEST_ASSERT_GREATER_THAN_INT64(threshold, actual, line, message) \
1818  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1819 #define UNITY_TEST_ASSERT_GREATER_THAN_UINT64(threshold, actual, line, \
1820  message) \
1821  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1822 #define UNITY_TEST_ASSERT_GREATER_THAN_HEX64(threshold, actual, line, message) \
1823  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1824 #define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT64(threshold, actual, line, \
1825  message) \
1826  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1827 #define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT64(threshold, actual, line, \
1828  message) \
1829  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1830 #define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX64(threshold, actual, line, \
1831  message) \
1832  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1833 #define UNITY_TEST_ASSERT_SMALLER_THAN_INT64(threshold, actual, line, message) \
1834  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1835 #define UNITY_TEST_ASSERT_SMALLER_THAN_UINT64(threshold, actual, line, \
1836  message) \
1837  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1838 #define UNITY_TEST_ASSERT_SMALLER_THAN_HEX64(threshold, actual, line, message) \
1839  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1840 #define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT64(threshold, actual, line, \
1841  message) \
1842  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1843 #define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT64(threshold, actual, line, \
1844  message) \
1845  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1846 #define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX64(threshold, actual, line, \
1847  message) \
1848  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1849 #define UNITY_TEST_ASSERT_INT64_ARRAY_WITHIN(delta, expected, actual, \
1850  num_elements, line, message) \
1851  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1852 #define UNITY_TEST_ASSERT_UINT64_ARRAY_WITHIN(delta, expected, actual, \
1853  num_elements, line, message) \
1854  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1855 #define UNITY_TEST_ASSERT_HEX64_ARRAY_WITHIN(delta, expected, actual, \
1856  num_elements, line, message) \
1857  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
1858 #endif
1859 
1860 #ifdef UNITY_EXCLUDE_FLOAT
1861 #define UNITY_TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual, line, message) \
1862  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
1863 #define UNITY_TEST_ASSERT_EQUAL_FLOAT(expected, actual, line, message) \
1864  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
1865 #define UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements, \
1866  line, message) \
1867  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
1868 #define UNITY_TEST_ASSERT_EACH_EQUAL_FLOAT(expected, actual, num_elements, \
1869  line, message) \
1870  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
1871 #define UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, line, message) \
1872  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
1873 #define UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, line, message) \
1874  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
1875 #define UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, line, message) \
1876  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
1877 #define UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, line, message) \
1878  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
1879 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, line, message) \
1880  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
1881 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual, line, message) \
1882  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
1883 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, line, message) \
1884  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
1885 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, line, message) \
1886  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
1887 #else
1888 #define UNITY_TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual, line, message) \
1889  UnityAssertFloatsWithin((UNITY_FLOAT)(delta), (UNITY_FLOAT)(expected), \
1890  (UNITY_FLOAT)(actual), (message), \
1891  (UNITY_LINE_TYPE)(line))
1892 #define UNITY_TEST_ASSERT_EQUAL_FLOAT(expected, actual, line, message) \
1893  UNITY_TEST_ASSERT_FLOAT_WITHIN( \
1894  (UNITY_FLOAT)(expected) * (UNITY_FLOAT)UNITY_FLOAT_PRECISION, \
1895  (UNITY_FLOAT)(expected), (UNITY_FLOAT)(actual), \
1896  (UNITY_LINE_TYPE)(line), (message))
1897 #define UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements, \
1898  line, message) \
1899  UnityAssertEqualFloatArray((UNITY_FLOAT *)(expected), \
1900  (UNITY_FLOAT *)(actual), \
1901  (UNITY_UINT32)(num_elements), (message), \
1902  (UNITY_LINE_TYPE)(line), \
1903  UNITY_ARRAY_TO_ARRAY)
1904 #define UNITY_TEST_ASSERT_EACH_EQUAL_FLOAT(expected, actual, num_elements, \
1905  line, message) \
1906  UnityAssertEqualFloatArray(UnityFloatToPtr(expected), \
1907  (UNITY_FLOAT *)(actual), \
1908  (UNITY_UINT32)(num_elements), (message), \
1909  (UNITY_LINE_TYPE)(line), \
1910  UNITY_ARRAY_TO_VAL)
1911 #define UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, line, message) \
1912  UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), \
1913  (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_INF)
1914 #define UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, line, message) \
1915  UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), \
1916  (UNITY_LINE_TYPE)(line), \
1917  UNITY_FLOAT_IS_NEG_INF)
1918 #define UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, line, message) \
1919  UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), \
1920  (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NAN)
1921 #define UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, line, message) \
1922  UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), \
1923  (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_DET)
1924 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, line, message) \
1925  UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), \
1926  (UNITY_LINE_TYPE)(line), \
1927  UNITY_FLOAT_IS_NOT_INF)
1928 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual, line, message) \
1929  UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), \
1930  (UNITY_LINE_TYPE)(line), \
1931  UNITY_FLOAT_IS_NOT_NEG_INF)
1932 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, line, message) \
1933  UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), \
1934  (UNITY_LINE_TYPE)(line), \
1935  UNITY_FLOAT_IS_NOT_NAN)
1936 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, line, message) \
1937  UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), \
1938  (UNITY_LINE_TYPE)(line), \
1939  UNITY_FLOAT_IS_NOT_DET)
1940 #endif
1941 
1942 #ifdef UNITY_EXCLUDE_DOUBLE
1943 #define UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, line, \
1944  message) \
1945  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
1946 #define UNITY_TEST_ASSERT_EQUAL_DOUBLE(expected, actual, line, message) \
1947  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
1948 #define UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements, \
1949  line, message) \
1950  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
1951 #define UNITY_TEST_ASSERT_EACH_EQUAL_DOUBLE(expected, actual, num_elements, \
1952  line, message) \
1953  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
1954 #define UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, line, message) \
1955  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
1956 #define UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, line, message) \
1957  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
1958 #define UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, line, message) \
1959  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
1960 #define UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, line, message) \
1961  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
1962 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, line, message) \
1963  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
1964 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, line, message) \
1965  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
1966 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, line, message) \
1967  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
1968 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, line, message) \
1969  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
1970 #else
1971 #define UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, line, \
1972  message) \
1973  UnityAssertDoublesWithin((UNITY_DOUBLE)(delta), \
1974  (UNITY_DOUBLE)(expected), \
1975  (UNITY_DOUBLE)(actual), (message), \
1976  (UNITY_LINE_TYPE)(line))
1977 #define UNITY_TEST_ASSERT_EQUAL_DOUBLE(expected, actual, line, message) \
1978  UNITY_TEST_ASSERT_DOUBLE_WITHIN( \
1979  (UNITY_DOUBLE)(expected) * \
1980  (UNITY_DOUBLE)UNITY_DOUBLE_PRECISION, \
1981  (UNITY_DOUBLE)(expected), (UNITY_DOUBLE)(actual), \
1982  (UNITY_LINE_TYPE)(line), (message))
1983 #define UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements, \
1984  line, message) \
1985  UnityAssertEqualDoubleArray((UNITY_DOUBLE *)(expected), \
1986  (UNITY_DOUBLE *)(actual), \
1987  (UNITY_UINT32)(num_elements), (message), \
1988  (UNITY_LINE_TYPE)(line), \
1989  UNITY_ARRAY_TO_ARRAY)
1990 #define UNITY_TEST_ASSERT_EACH_EQUAL_DOUBLE(expected, actual, num_elements, \
1991  line, message) \
1992  UnityAssertEqualDoubleArray(UnityDoubleToPtr(expected), \
1993  (UNITY_DOUBLE *)(actual), \
1994  (UNITY_UINT32)(num_elements), (message), \
1995  (UNITY_LINE_TYPE)(line), \
1996  UNITY_ARRAY_TO_VAL)
1997 #define UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, line, message) \
1998  UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), \
1999  (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_INF)
2000 #define UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, line, message) \
2001  UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), \
2002  (UNITY_LINE_TYPE)(line), \
2003  UNITY_FLOAT_IS_NEG_INF)
2004 #define UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, line, message) \
2005  UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), \
2006  (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NAN)
2007 #define UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, line, message) \
2008  UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), \
2009  (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_DET)
2010 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, line, message) \
2011  UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), \
2012  (UNITY_LINE_TYPE)(line), \
2013  UNITY_FLOAT_IS_NOT_INF)
2014 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, line, message) \
2015  UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), \
2016  (UNITY_LINE_TYPE)(line), \
2017  UNITY_FLOAT_IS_NOT_NEG_INF)
2018 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, line, message) \
2019  UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), \
2020  (UNITY_LINE_TYPE)(line), \
2021  UNITY_FLOAT_IS_NOT_NAN)
2022 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, line, message) \
2023  UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), \
2024  (UNITY_LINE_TYPE)(line), \
2025  UNITY_FLOAT_IS_NOT_DET)
2026 #endif
2027 
2028 /* End of UNITY_INTERNALS_H */
2029 #endif
unsigned short UNITY_UINT16
Definition: unity_internals.h:109
UNITY_LINE_TYPE CurrentTestLineNumber
Definition: unity_internals.h:475
#define UNITY_TIME_TYPE
Definition: unity_internals.h:373
Definition: unity_internals.h:438
unsigned int UNITY_UINT32
Definition: unity_internals.h:110
Definition: unity_internals.h:417
const char * CurrentTestName
Definition: unity_internals.h:470
void UnityAssertEqualString(const char *expected, const char *actual, const char *msg, const UNITY_LINE_TYPE lineNumber)
Definition: unity.c:1307
void UnityAssertFloatsWithin(const UNITY_FLOAT delta, const UNITY_FLOAT expected, const UNITY_FLOAT actual, const char *msg, const UNITY_LINE_TYPE lineNumber)
Definition: unity.c:931
void UnityAssertEqualMemory(UNITY_INTERNAL_PTR expected, UNITY_INTERNAL_PTR actual, const UNITY_UINT32 length, const UNITY_UINT32 num_elements, const char *msg, const UNITY_LINE_TYPE lineNumber, const UNITY_FLAGS_T flags)
Definition: unity.c:1434
void UnityBegin(const char *filename)
Definition: unity.c:1772
const char UnityStrOk[]
Definition: unity.c:46
#define UNITY_DISPLAY_RANGE_CHAR
Definition: unity_internals.h:403
Definition: unity_internals.h:453
const char UnityStrErrDouble[]
Definition: unity.c:79
Definition: unity_internals.h:452
UNITY_INT32 UNITY_INT
Definition: unity_internals.h:140
void UnityPrintLen(const char *string, const UNITY_UINT32 length)
Definition: unity.c:158
void UnityPrintNumberHex(const UNITY_UINT number, const char nibbles_to_print)
Definition: unity.c:263
void UnityAssertEqualStringLen(const char *expected, const char *actual, const UNITY_UINT32 length, const char *msg, const UNITY_LINE_TYPE lineNumber)
Definition: unity.c:1337
Definition: unity_internals.h:431
Definition: unity_internals.h:434
int UnityEnd(void)
Definition: unity.c:1788
Definition: unity_internals.h:451
void UnityPrintNumberUnsigned(const UNITY_UINT number)
Definition: unity.c:246
const char * CurrentDetail2
Definition: unity_internals.h:473
unsigned char UNITY_UINT8
Definition: unity_internals.h:108
UNITY_INTERNAL_PTR UnityNumToPtr(const UNITY_INT num, const UNITY_UINT8 size)
Definition: unity.c:1511
void UnityAssertGreaterOrLessOrEqualNumber(const UNITY_INT threshold, const UNITY_INT actual, const UNITY_COMPARISON_T compare, const char *msg, const UNITY_LINE_TYPE lineNumber, const UNITY_DISPLAY_STYLE_T style)
Definition: unity.c:678
UNITY_DISPLAY_STYLE_T
Definition: unity_internals.h:405
void UnityAssertFloatSpecial(const UNITY_FLOAT actual, const char *msg, const UNITY_LINE_TYPE lineNumber, const UNITY_FLOAT_TRAIT_T style)
Definition: unity.c:948
#define UNITY_INTERNAL_PTR
Definition: unity_internals.h:180
UNITY_COUNTER_TYPE CurrentTestFailed
Definition: unity_internals.h:479
Definition: unity_internals.h:424
#define UNITY_DISPLAY_RANGE_INT
Definition: unity_internals.h:400
#define UNITY_INT_WIDTH
Definition: unity_internals.h:69
Definition: unity_internals.h:441
void UnityPrintFloat(const UNITY_DOUBLE input_number)
Definition: unity.c:312
#define UNITY_FLOAT_TYPE
Definition: unity_internals.h:204
Definition: unity_internals.h:456
Definition: unity_internals.h:454
void UnityAssertEqualNumber(const UNITY_INT expected, const UNITY_INT actual, const char *msg, const UNITY_LINE_TYPE lineNumber, const UNITY_DISPLAY_STYLE_T style)
Definition: unity.c:660
void UnityIgnore(const char *message, const UNITY_LINE_TYPE line) UNITY_FUNCTION_ATTR(noreturn)
Definition: unity.c:1715
#define UNITY_LINE_TYPE
Definition: unity_internals.h:387
void UnityDefaultTestRun(UnityTestFunction Func, const char *FuncName, const int FuncLineNum)
Definition: unity.c:1745
Definition: unity_internals.h:418
void UnityAssertEqualIntArray(UNITY_INTERNAL_PTR expected, UNITY_INTERNAL_PTR actual, const UNITY_UINT32 num_elements, const char *msg, const UNITY_LINE_TYPE lineNumber, const UNITY_DISPLAY_STYLE_T style, const UNITY_FLAGS_T flags)
Definition: unity.c:745
UNITY_COUNTER_TYPE NumberOfTests
Definition: unity_internals.h:476
void UnityAssertBits(const UNITY_INT mask, const UNITY_INT expected, const UNITY_INT actual, const char *msg, const UNITY_LINE_TYPE lineNumber)
Definition: unity.c:642
void UnityAssertDoublesWithin(const UNITY_DOUBLE delta, const UNITY_DOUBLE expected, const UNITY_DOUBLE actual, const char *msg, const UNITY_LINE_TYPE lineNumber)
Definition: unity.c:1064
void UnityConcludeTest(void)
Definition: unity.c:515
#define UNITY_COUNTER_TYPE
Definition: unity_internals.h:391
UNITY_FLAGS_T
Definition: unity_internals.h:462
#define UNITY_DOUBLE_TYPE
Definition: unity_internals.h:238
const char * CurrentDetail1
Definition: unity_internals.h:472
enum UNITY_FLOAT_TRAIT UNITY_FLOAT_TRAIT_T
void UnityFail(const char *message, const UNITY_LINE_TYPE line) UNITY_FUNCTION_ATTR(noreturn)
Definition: unity.c:1682
signed short UNITY_INT16
Definition: unity_internals.h:112
Definition: unity_internals.h:455
#define UNITY_PTR_ATTRIBUTE
Definition: unity_internals.h:176
UNITY_COMPARISON_T
Definition: unity_internals.h:437
UNITY_UINT32 UNITY_UINT
Definition: unity_internals.h:139
Definition: unity_internals.h:465
UNITY_FLOAT_TYPE UNITY_FLOAT
Definition: unity_internals.h:206
Definition: unity_internals.h:406
Definition: unity_internals.h:450
Definition: unity_internals.h:408
UNITY_INTERNAL_PTR UnityFloatToPtr(const float num)
Definition: unity.c:1536
Definition: unity_internals.h:458
jmp_buf AbortFrame
Definition: unity_internals.h:486
void UnityPrint(const char *string)
Definition: unity.c:139
Definition: unity_internals.h:468
#define UNITY_FUNCTION_ATTR(a)
Definition: unity_internals.h:46
const char UnityStrFail[]
Definition: unity.c:48
Definition: unity_internals.h:445
void UnityAssertEqualStringArray(UNITY_INTERNAL_PTR expected, const char **actual, const UNITY_UINT32 num_elements, const char *msg, const UNITY_LINE_TYPE lineNumber, const UNITY_FLAGS_T flags)
Definition: unity.c:1368
void UnityAssertDoubleSpecial(const UNITY_DOUBLE actual, const char *msg, const UNITY_LINE_TYPE lineNumber, const UNITY_FLOAT_TRAIT_T style)
Definition: unity.c:1080
Definition: unity_internals.h:440
#define UNITY_DISPLAY_RANGE_UINT
Definition: unity_internals.h:401
Definition: unity_internals.h:415
Definition: unity_internals.h:444
void UnityPrintNumberByStyle(const UNITY_INT number, const UNITY_DISPLAY_STYLE_T style)
Definition: unity.c:190
void UnityAssertNumbersArrayWithin(const UNITY_UINT delta, UNITY_INTERNAL_PTR expected, UNITY_INTERNAL_PTR actual, const UNITY_UINT32 num_elements, const char *msg, const UNITY_LINE_TYPE lineNumber, const UNITY_DISPLAY_STYLE_T style, const UNITY_FLAGS_T flags)
Definition: unity.c:1186
void UnitySetTestFile(const char *filename)
Definition: unity.c:1766
Definition: unity_internals.h:426
void UnityMessage(const char *message, const UNITY_LINE_TYPE line)
Definition: unity.c:1730
const char UnityStrIgnore[]
Definition: unity.c:49
const char * TestFile
Definition: unity_internals.h:469
const char UnityStrErr64[]
Definition: unity.c:80
UNITY_COUNTER_TYPE TestFailures
Definition: unity_internals.h:477
UNITY_INTERNAL_PTR UnityDoubleToPtr(const double num)
Definition: unity.c:1545
Definition: unity_internals.h:439
signed char UNITY_INT8
Definition: unity_internals.h:111
Definition: unity_internals.h:442
struct UNITY_STORAGE_T Unity
Definition: unity.c:38
#define UNITY_DISPLAY_RANGE_HEX
Definition: unity_internals.h:402
void UnityAssertEqualDoubleArray(UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE *expected, UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE *actual, const UNITY_UINT32 num_elements, const char *msg, const UNITY_LINE_TYPE lineNumber, const UNITY_FLAGS_T flags)
Definition: unity.c:1020
void UnityAssertEqualFloatArray(UNITY_PTR_ATTRIBUTE const UNITY_FLOAT *expected, UNITY_PTR_ATTRIBUTE const UNITY_FLOAT *actual, const UNITY_UINT32 num_elements, const char *msg, const UNITY_LINE_TYPE lineNumber, const UNITY_FLAGS_T flags)
Definition: unity.c:885
UNITY_FLOAT_TRAIT
Definition: unity_internals.h:449
void UnityPrintMask(const UNITY_UINT mask, const UNITY_UINT number)
Definition: unity.c:284
Definition: unity_internals.h:419
Definition: unity_internals.h:463
UNITY_COUNTER_TYPE CurrentTestIgnored
Definition: unity_internals.h:480
Definition: unity_internals.h:425
void UnityPrintNumber(const UNITY_INT number_to_print)
Definition: unity.c:232
UNITY_FLOAT UNITY_DOUBLE
Definition: unity_internals.h:240
signed int UNITY_INT32
Definition: unity_internals.h:113
const char UnityStrErrShorthand[]
Definition: unity.c:77
UNITY_COUNTER_TYPE TestIgnores
Definition: unity_internals.h:478
const char UnityStrErrFloat[]
Definition: unity.c:78
Definition: unity_internals.h:457
const char UnityStrPass[]
Definition: unity.c:47
Definition: unity_internals.h:443
Definition: unity_internals.h:464
void(* UnityTestFunction)(void)
Definition: unity_internals.h:398
Definition: unity_internals.h:409
void UnityAssertNumbersWithin(const UNITY_UINT delta, const UNITY_INT expected, const UNITY_INT actual, const char *msg, const UNITY_LINE_TYPE lineNumber, const UNITY_DISPLAY_STYLE_T style)
Definition: unity.c:1143
Definition: unity_internals.h:410