Simulated product dispenser

Dependencies:   HTS221

Fork of mbed-cloud-workshop-connect-HTS221 by Jim Carver

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers unity_internals.h Source File

unity_internals.h

00001 /* ==========================================
00002     Unity Project - A Test Framework for C
00003     Copyright (c) 2007-14 Mike Karlesky, Mark VanderVoord, Greg Williams
00004     [Released under MIT License. Please refer to license.txt for details]
00005 ========================================== */
00006 
00007 #ifndef UNITY_INTERNALS_H
00008 #define UNITY_INTERNALS_H
00009 
00010 #ifdef UNITY_INCLUDE_CONFIG_H
00011 //#include "unity_config.h"
00012 #endif
00013 
00014 #include <setjmp.h>
00015 
00016 /* Unity Attempts to Auto-Detect Integer Types
00017  * Attempt 1: UINT_MAX, ULONG_MAX, etc in <stdint.h>
00018  * Attempt 2: UINT_MAX, ULONG_MAX, etc in <limits.h>
00019  * Attempt 3: Deduced from sizeof() macros */
00020 #ifndef UNITY_EXCLUDE_STDINT_H
00021 #include <stdint.h>
00022 #endif
00023 
00024 #ifndef UNITY_EXCLUDE_LIMITS_H
00025 #include <limits.h>
00026 #endif
00027 
00028 #ifndef UNITY_EXCLUDE_SIZEOF
00029 #ifndef UINT_MAX
00030 #define UINT_MAX     (sizeof(unsigned int) * 256 - 1)
00031 #endif
00032 #ifndef ULONG_MAX
00033 #define ULONG_MAX    (sizeof(unsigned long) * 256 - 1)
00034 #endif
00035 #ifndef UINTPTR_MAX
00036 /* apparently this is not a constant expression: (sizeof(unsigned int *) * 256 - 1) so we have to just let this fall through */
00037 #endif
00038 #endif
00039 
00040 #ifndef UNITY_EXCLUDE_MATH_H
00041 #include <math.h>
00042 #endif
00043 
00044 /*-------------------------------------------------------
00045  * Guess Widths If Not Specified
00046  *-------------------------------------------------------*/
00047 
00048 /* Determine the size of an int, if not already specificied.
00049  * We cannot use sizeof(int), because it is not yet defined
00050  * at this stage in the trnslation of the C program.
00051  * Therefore, infer it from UINT_MAX if possible. */
00052 #ifndef UNITY_INT_WIDTH
00053   #ifdef UINT_MAX
00054     #if (UINT_MAX == 0xFFFF)
00055       #define UNITY_INT_WIDTH (16)
00056     #elif (UINT_MAX == 0xFFFFFFFF)
00057       #define UNITY_INT_WIDTH (32)
00058     #elif (UINT_MAX == 0xFFFFFFFFFFFFFFFF)
00059       #define UNITY_INT_WIDTH (64)
00060     #endif
00061   #endif
00062 #endif
00063 #ifndef UNITY_INT_WIDTH
00064   #define UNITY_INT_WIDTH (32)
00065 #endif
00066 
00067 /* Determine the size of a long, if not already specified,
00068  * by following the process used above to define
00069  * UNITY_INT_WIDTH. */
00070 #ifndef UNITY_LONG_WIDTH
00071   #ifdef ULONG_MAX
00072     #if (ULONG_MAX == 0xFFFF)
00073       #define UNITY_LONG_WIDTH (16)
00074     #elif (ULONG_MAX == 0xFFFFFFFF)
00075       #define UNITY_LONG_WIDTH (32)
00076     #elif (ULONG_MAX == 0xFFFFFFFFFFFFFFFF)
00077       #define UNITY_LONG_WIDTH (64)
00078     #endif
00079   #endif
00080 #endif
00081 #ifndef UNITY_LONG_WIDTH
00082   #define UNITY_LONG_WIDTH (32)
00083 #endif
00084 
00085 /* Determine the size of a pointer, if not already specified,
00086  * by following the process used above to define
00087  * UNITY_INT_WIDTH. */
00088 #ifndef UNITY_POINTER_WIDTH
00089   #ifdef UINTPTR_MAX
00090     #if (UINTPTR_MAX+0 <= 0xFFFF)
00091       #define UNITY_POINTER_WIDTH (16)
00092     #elif (UINTPTR_MAX+0 <= 0xFFFFFFFF)
00093       #define UNITY_POINTER_WIDTH (32)
00094     #elif (UINTPTR_MAX+0 <= 0xFFFFFFFFFFFFFFFF)
00095       #define UNITY_POINTER_WIDTH (64)
00096     #endif
00097   #endif
00098 #endif
00099 #ifndef UNITY_POINTER_WIDTH
00100   #ifdef INTPTR_MAX
00101     #if (INTPTR_MAX+0 <= 0x7FFF)
00102       #define UNITY_POINTER_WIDTH (16)
00103     #elif (INTPTR_MAX+0 <= 0x7FFFFFFF)
00104       #define UNITY_POINTER_WIDTH (32)
00105     #elif (INTPTR_MAX+0 <= 0x7FFFFFFFFFFFFFFF)
00106       #define UNITY_POINTER_WIDTH (64)
00107     #endif
00108   #endif
00109 #endif
00110 #ifndef UNITY_POINTER_WIDTH
00111   #define UNITY_POINTER_WIDTH UNITY_LONG_WIDTH
00112 #endif
00113 
00114 /*-------------------------------------------------------
00115  * Int Support (Define types based on detected sizes)
00116  *-------------------------------------------------------*/
00117 
00118 #if (UNITY_INT_WIDTH == 32)
00119     typedef unsigned char   _UU8;
00120     typedef unsigned short  _UU16;
00121     typedef unsigned int    _UU32;
00122     typedef signed char     _US8;
00123     typedef signed short    _US16;
00124     typedef signed int      _US32;
00125 #elif (UNITY_INT_WIDTH == 16)
00126     typedef unsigned char   _UU8;
00127     typedef unsigned int    _UU16;
00128     typedef unsigned long   _UU32;
00129     typedef signed char     _US8;
00130     typedef signed int      _US16;
00131     typedef signed long     _US32;
00132 #else
00133     #error Invalid UNITY_INT_WIDTH specified! (16 or 32 are supported)
00134 #endif
00135 
00136 /*-------------------------------------------------------
00137  * 64-bit Support
00138  *-------------------------------------------------------*/
00139 
00140 #ifndef UNITY_SUPPORT_64
00141 #if UNITY_LONG_WIDTH > 32
00142 #define UNITY_SUPPORT_64
00143 #endif
00144 #endif
00145 #ifndef UNITY_SUPPORT_64
00146 #if UNITY_POINTER_WIDTH > 32
00147 #define UNITY_SUPPORT_64
00148 #endif
00149 #endif
00150 
00151 #ifndef UNITY_SUPPORT_64
00152 
00153 /* No 64-bit Support */
00154 typedef _UU32 _U_UINT;
00155 typedef _US32 _U_SINT;
00156 
00157 #else
00158 
00159 /* 64-bit Support */
00160 #if (UNITY_LONG_WIDTH == 32)
00161     typedef unsigned long long _UU64;
00162     typedef signed long long   _US64;
00163 #elif (UNITY_LONG_WIDTH == 64)
00164     typedef unsigned long      _UU64;
00165     typedef signed long        _US64;
00166 #else
00167     #error Invalid UNITY_LONG_WIDTH specified! (32 or 64 are supported)
00168 #endif
00169 typedef _UU64 _U_UINT;
00170 typedef _US64 _U_SINT;
00171 
00172 #endif
00173 
00174 /*-------------------------------------------------------
00175  * Pointer Support
00176  *-------------------------------------------------------*/
00177 
00178 #if (UNITY_POINTER_WIDTH == 32)
00179     typedef _UU32 _UP;
00180 #define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX32
00181 #elif (UNITY_POINTER_WIDTH == 64)
00182     typedef _UU64 _UP;
00183 #define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX64
00184 #elif (UNITY_POINTER_WIDTH == 16)
00185     typedef _UU16 _UP;
00186 #define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX16
00187 #else
00188     #error Invalid UNITY_POINTER_WIDTH specified! (16, 32 or 64 are supported)
00189 #endif
00190 
00191 #ifndef UNITY_PTR_ATTRIBUTE
00192 #define UNITY_PTR_ATTRIBUTE
00193 #endif
00194 
00195 #ifndef UNITY_INTERNAL_PTR
00196 #define UNITY_INTERNAL_PTR UNITY_PTR_ATTRIBUTE const void*
00197 /* #define UNITY_INTERNAL_PTR UNITY_PTR_ATTRIBUTE const _UU8* */
00198 #endif
00199 
00200 /*-------------------------------------------------------
00201  * Float Support
00202  *-------------------------------------------------------*/
00203 
00204 #ifdef UNITY_EXCLUDE_FLOAT
00205 
00206 /* No Floating Point Support */
00207 #undef UNITY_INCLUDE_FLOAT
00208 #undef UNITY_FLOAT_PRECISION
00209 #undef UNITY_FLOAT_TYPE
00210 #undef UNITY_FLOAT_VERBOSE
00211 
00212 #else
00213 
00214 #ifndef UNITY_INCLUDE_FLOAT
00215 #define UNITY_INCLUDE_FLOAT
00216 #endif
00217 
00218 /* Floating Point Support */
00219 #ifndef UNITY_FLOAT_PRECISION
00220 #define UNITY_FLOAT_PRECISION (0.00001f)
00221 #endif
00222 #ifndef UNITY_FLOAT_TYPE
00223 #define UNITY_FLOAT_TYPE float
00224 #endif
00225 typedef UNITY_FLOAT_TYPE _UF;
00226 
00227 #ifndef isinf
00228 #define isinf(n) (((1.0f / f_zero) == n) ? 1 : 0) || (((-1.0f / f_zero) == n) ? 1 : 0)
00229 #define UNITY_FLOAT_NEEDS_ZERO
00230 #endif
00231 
00232 #ifndef isnan
00233 #define isnan(n) ((n != n) ? 1 : 0)
00234 #endif
00235 
00236 #ifndef isneg
00237 #define isneg(n) ((n < 0.0f) ? 1 : 0)
00238 #endif
00239 
00240 #ifndef ispos
00241 #define ispos(n) ((n > 0.0f) ? 1 : 0)
00242 #endif
00243 
00244 #endif
00245 
00246 /*-------------------------------------------------------
00247  * Double Float Support
00248  *-------------------------------------------------------*/
00249 
00250 /* unlike FLOAT, we DON'T include by default */
00251 #ifndef UNITY_EXCLUDE_DOUBLE
00252 #ifndef UNITY_INCLUDE_DOUBLE
00253 #define UNITY_EXCLUDE_DOUBLE
00254 #endif
00255 #endif
00256 
00257 #ifdef UNITY_EXCLUDE_DOUBLE
00258 
00259 /* No Floating Point Support */
00260 #undef UNITY_DOUBLE_PRECISION
00261 #undef UNITY_DOUBLE_TYPE
00262 #undef UNITY_DOUBLE_VERBOSE
00263 
00264 #ifdef UNITY_INCLUDE_DOUBLE
00265 #undef UNITY_INCLUDE_DOUBLE
00266 #endif
00267 
00268 #else
00269 
00270 /* Double Floating Point Support */
00271 #ifndef UNITY_DOUBLE_PRECISION
00272 #define UNITY_DOUBLE_PRECISION (1e-12f)
00273 #endif
00274 #ifndef UNITY_DOUBLE_TYPE
00275 #define UNITY_DOUBLE_TYPE double
00276 #endif
00277 typedef UNITY_DOUBLE_TYPE _UD;
00278 
00279 #endif
00280 
00281 #ifdef UNITY_DOUBLE_VERBOSE
00282 #ifndef UNITY_FLOAT_VERBOSE
00283 #define UNITY_FLOAT_VERBOSE
00284 #endif
00285 #endif
00286 
00287 /*-------------------------------------------------------
00288  * Output Method: stdout (DEFAULT)
00289  *-------------------------------------------------------*/
00290 #ifndef UNITY_OUTPUT_CHAR
00291 /* Default to using putchar, which is defined in stdio.h */
00292 #include <stdio.h>
00293 #define UNITY_OUTPUT_CHAR(a) (void)putchar(a)
00294 #else
00295   /* If defined as something else, make sure we declare it here so it's ready for use */
00296   #ifndef UNITY_OMIT_OUTPUT_CHAR_HEADER_DECLARATION
00297 extern void UNITY_OUTPUT_CHAR(int);
00298   #endif
00299 #endif
00300 
00301 #ifndef UNITY_OUTPUT_FLUSH
00302 /* Default to using fflush, which is defined in stdio.h */
00303 #include <stdio.h>
00304 #define UNITY_OUTPUT_FLUSH (void)fflush(stdout)
00305 #else
00306   /* If defined as something else, make sure we declare it here so it's ready for use */
00307   #ifndef UNITY_OMIT_OUTPUT_FLUSH_HEADER_DECLARATION
00308 extern void UNITY_OUTPUT_FLUSH(void);
00309   #endif
00310 #endif
00311 
00312 #ifndef UNITY_OUTPUT_FLUSH
00313 #define UNITY_FLUSH_CALL()
00314 #else
00315 #define UNITY_FLUSH_CALL() UNITY_OUTPUT_FLUSH
00316 #endif
00317 
00318 #ifndef UNITY_PRINT_EOL
00319 #define UNITY_PRINT_EOL()    UNITY_OUTPUT_CHAR('\n')
00320 #endif
00321 
00322 #ifndef UNITY_OUTPUT_START
00323 #define UNITY_OUTPUT_START()
00324 #endif
00325 
00326 #ifndef UNITY_OUTPUT_COMPLETE
00327 #define UNITY_OUTPUT_COMPLETE()
00328 #endif
00329 
00330 /*-------------------------------------------------------
00331  * Footprint
00332  *-------------------------------------------------------*/
00333 
00334 #ifndef UNITY_LINE_TYPE
00335 #define UNITY_LINE_TYPE _U_UINT
00336 #endif
00337 
00338 #ifndef UNITY_COUNTER_TYPE
00339 #define UNITY_COUNTER_TYPE _U_UINT
00340 #endif
00341 
00342 /*-------------------------------------------------------
00343  * Language Features Available
00344  *-------------------------------------------------------*/
00345 #if !defined(UNITY_WEAK_ATTRIBUTE) && !defined(UNITY_WEAK_PRAGMA)
00346 #   ifdef __GNUC__ /* includes clang */
00347 #       if !(defined(__WIN32__) && defined(__clang__))
00348 #           define UNITY_WEAK_ATTRIBUTE __attribute__((weak))
00349 #       endif
00350 #   endif
00351 #endif
00352 
00353 #ifdef UNITY_NO_WEAK
00354 #   undef UNITY_WEAK_ATTRIBUTE
00355 #   undef UNITY_WEAK_PRAGMA
00356 #endif
00357 
00358 
00359 /*-------------------------------------------------------
00360  * Internal Structs Needed
00361  *-------------------------------------------------------*/
00362 
00363 typedef void (*UnityTestFunction)(void);
00364 
00365 #define UNITY_DISPLAY_RANGE_INT  (0x10)
00366 #define UNITY_DISPLAY_RANGE_UINT (0x20)
00367 #define UNITY_DISPLAY_RANGE_HEX  (0x40)
00368 #define UNITY_DISPLAY_RANGE_AUTO (0x80)
00369 
00370 typedef enum
00371 {
00372 #if (UNITY_INT_WIDTH == 16)
00373     UNITY_DISPLAY_STYLE_INT      = 2 + UNITY_DISPLAY_RANGE_INT + UNITY_DISPLAY_RANGE_AUTO,
00374 #elif (UNITY_INT_WIDTH  == 32)
00375     UNITY_DISPLAY_STYLE_INT      = 4 + UNITY_DISPLAY_RANGE_INT + UNITY_DISPLAY_RANGE_AUTO,
00376 #elif (UNITY_INT_WIDTH  == 64)
00377     UNITY_DISPLAY_STYLE_INT      = 8 + UNITY_DISPLAY_RANGE_INT + UNITY_DISPLAY_RANGE_AUTO,
00378 #endif
00379     UNITY_DISPLAY_STYLE_INT8     = 1 + UNITY_DISPLAY_RANGE_INT,
00380     UNITY_DISPLAY_STYLE_INT16    = 2 + UNITY_DISPLAY_RANGE_INT,
00381     UNITY_DISPLAY_STYLE_INT32    = 4 + UNITY_DISPLAY_RANGE_INT,
00382 #ifdef UNITY_SUPPORT_64
00383     UNITY_DISPLAY_STYLE_INT64    = 8 + UNITY_DISPLAY_RANGE_INT,
00384 #endif
00385 
00386 #if (UNITY_INT_WIDTH == 16)
00387     UNITY_DISPLAY_STYLE_UINT     = 2 + UNITY_DISPLAY_RANGE_UINT + UNITY_DISPLAY_RANGE_AUTO,
00388 #elif (UNITY_INT_WIDTH  == 32)
00389     UNITY_DISPLAY_STYLE_UINT     = 4 + UNITY_DISPLAY_RANGE_UINT + UNITY_DISPLAY_RANGE_AUTO,
00390 #elif (UNITY_INT_WIDTH  == 64)
00391     UNITY_DISPLAY_STYLE_UINT     = 8 + UNITY_DISPLAY_RANGE_UINT + UNITY_DISPLAY_RANGE_AUTO,
00392 #endif
00393     UNITY_DISPLAY_STYLE_UINT8    = 1 + UNITY_DISPLAY_RANGE_UINT,
00394     UNITY_DISPLAY_STYLE_UINT16   = 2 + UNITY_DISPLAY_RANGE_UINT,
00395     UNITY_DISPLAY_STYLE_UINT32   = 4 + UNITY_DISPLAY_RANGE_UINT,
00396 #ifdef UNITY_SUPPORT_64
00397     UNITY_DISPLAY_STYLE_UINT64   = 8 + UNITY_DISPLAY_RANGE_UINT,
00398 #endif
00399     UNITY_DISPLAY_STYLE_HEX8     = 1 + UNITY_DISPLAY_RANGE_HEX,
00400     UNITY_DISPLAY_STYLE_HEX16    = 2 + UNITY_DISPLAY_RANGE_HEX,
00401     UNITY_DISPLAY_STYLE_HEX32    = 4 + UNITY_DISPLAY_RANGE_HEX,
00402 #ifdef UNITY_SUPPORT_64
00403     UNITY_DISPLAY_STYLE_HEX64    = 8 + UNITY_DISPLAY_RANGE_HEX,
00404 #endif
00405     UNITY_DISPLAY_STYLE_UNKNOWN
00406 } UNITY_DISPLAY_STYLE_T;
00407 
00408 #ifndef UNITY_EXCLUDE_FLOAT
00409 typedef enum _UNITY_FLOAT_TRAIT_T
00410 {
00411     UNITY_FLOAT_IS_NOT_INF       = 0,
00412     UNITY_FLOAT_IS_INF,
00413     UNITY_FLOAT_IS_NOT_NEG_INF,
00414     UNITY_FLOAT_IS_NEG_INF,
00415     UNITY_FLOAT_IS_NOT_NAN,
00416     UNITY_FLOAT_IS_NAN,
00417     UNITY_FLOAT_IS_NOT_DET,
00418     UNITY_FLOAT_IS_DET,
00419     UNITY_FLOAT_INVALID_TRAIT
00420 } UNITY_FLOAT_TRAIT_T;
00421 #endif
00422 
00423 struct _Unity
00424 {
00425     const char* TestFile;
00426     const char* CurrentTestName;
00427 #ifndef UNITY_EXCLUDE_DETAILS
00428     const char* CurrentDetail1;
00429     const char* CurrentDetail2;
00430 #endif
00431     UNITY_LINE_TYPE CurrentTestLineNumber;
00432     UNITY_COUNTER_TYPE NumberOfTests;
00433     UNITY_COUNTER_TYPE TestFailures;
00434     UNITY_COUNTER_TYPE TestIgnores;
00435     UNITY_COUNTER_TYPE CurrentTestFailed;
00436     UNITY_COUNTER_TYPE CurrentTestIgnored;
00437     jmp_buf AbortFrame;
00438 };
00439 
00440 extern struct _Unity Unity;
00441 
00442 /*-------------------------------------------------------
00443  * Test Suite Management
00444  *-------------------------------------------------------*/
00445 
00446 void UnityBegin(const char* filename);
00447 int  UnityEnd(void);
00448 void UnityConcludeTest(void);
00449 void UnityDefaultTestRun(UnityTestFunction Func, const char* FuncName, const int FuncLineNum);
00450 
00451 /*-------------------------------------------------------
00452  * Details Support
00453  *-------------------------------------------------------*/
00454 
00455 #ifdef UNITY_EXCLUDE_DETAILS
00456 #define UNITY_CLR_DETAILS()
00457 #define UNITY_SET_DETAIL(d1)
00458 #define UNITY_SET_DETAILS(d1,d2)
00459 #else
00460 #define UNITY_CLR_DETAILS()      { Unity.CurrentDetail1 = 0;   Unity.CurrentDetail2 = 0;  }
00461 #define UNITY_SET_DETAIL(d1)     { Unity.CurrentDetail1 = d1;  Unity.CurrentDetail2 = 0;  }
00462 #define UNITY_SET_DETAILS(d1,d2) { Unity.CurrentDetail1 = d1;  Unity.CurrentDetail2 = d2; }
00463 
00464 #ifndef UNITY_DETAIL1_NAME
00465 #define UNITY_DETAIL1_NAME "Function"
00466 #endif
00467 
00468 #ifndef UNITY_DETAIL2_NAME
00469 #define UNITY_DETAIL2_NAME "Argument"
00470 #endif
00471 #endif
00472 
00473 /*-------------------------------------------------------
00474  * Test Output
00475  *-------------------------------------------------------*/
00476 
00477 void UnityPrint(const char* string);
00478 void UnityPrintMask(const _U_UINT mask, const _U_UINT number);
00479 void UnityPrintNumberByStyle(const _U_SINT number, const UNITY_DISPLAY_STYLE_T style);
00480 void UnityPrintNumber(const _U_SINT number);
00481 void UnityPrintNumberUnsigned(const _U_UINT number);
00482 void UnityPrintNumberHex(const _U_UINT number, const char nibbles);
00483 
00484 #ifdef UNITY_FLOAT_VERBOSE
00485 void UnityPrintFloat(const _UF number);
00486 #endif
00487 
00488 /*-------------------------------------------------------
00489  * Test Assertion Fuctions
00490  *-------------------------------------------------------
00491  *  Use the macros below this section instead of calling
00492  *  these directly. The macros have a consistent naming
00493  *  convention and will pull in file and line information
00494  *  for you. */
00495 
00496 void UnityAssertEqualNumber(const _U_SINT expected,
00497                             const _U_SINT actual,
00498                             const char* msg,
00499                             const UNITY_LINE_TYPE lineNumber,
00500                             const UNITY_DISPLAY_STYLE_T style);
00501 
00502 void UnityAssertEqualIntArray(UNITY_INTERNAL_PTR expected,
00503                               UNITY_INTERNAL_PTR actual,
00504                               const _UU32 num_elements,
00505                               const char* msg,
00506                               const UNITY_LINE_TYPE lineNumber,
00507                               const UNITY_DISPLAY_STYLE_T style);
00508 
00509 void UnityAssertBits(const _U_SINT mask,
00510                      const _U_SINT expected,
00511                      const _U_SINT actual,
00512                      const char* msg,
00513                      const UNITY_LINE_TYPE lineNumber);
00514 
00515 void UnityAssertEqualString(const char* expected,
00516                             const char* actual,
00517                             const char* msg,
00518                             const UNITY_LINE_TYPE lineNumber);
00519 
00520 void UnityAssertEqualStringLen(const char* expected,
00521                             const char* actual,
00522                             const _UU32 length,
00523                             const char* msg,
00524                             const UNITY_LINE_TYPE lineNumber);
00525 
00526 void UnityAssertEqualStringArray( const char** expected,
00527                                   const char** actual,
00528                                   const _UU32 num_elements,
00529                                   const char* msg,
00530                                   const UNITY_LINE_TYPE lineNumber);
00531 
00532 void UnityAssertEqualMemory( UNITY_INTERNAL_PTR expected,
00533                              UNITY_INTERNAL_PTR actual,
00534                              const _UU32 length,
00535                              const _UU32 num_elements,
00536                              const char* msg,
00537                              const UNITY_LINE_TYPE lineNumber);
00538 
00539 void UnityAssertNumbersWithin(const _U_UINT delta,
00540                               const _U_SINT expected,
00541                               const _U_SINT actual,
00542                               const char* msg,
00543                               const UNITY_LINE_TYPE lineNumber,
00544                               const UNITY_DISPLAY_STYLE_T style);
00545 
00546 void UnityFail(const char* message, const UNITY_LINE_TYPE line);
00547 
00548 void UnityIgnore(const char* message, const UNITY_LINE_TYPE line);
00549 
00550 #ifndef UNITY_EXCLUDE_FLOAT
00551 void UnityAssertFloatsWithin(const _UF delta,
00552                              const _UF expected,
00553                              const _UF actual,
00554                              const char* msg,
00555                              const UNITY_LINE_TYPE lineNumber);
00556 
00557 void UnityAssertEqualFloatArray(UNITY_PTR_ATTRIBUTE const _UF* expected,
00558                                 UNITY_PTR_ATTRIBUTE const _UF* actual,
00559                                 const _UU32 num_elements,
00560                                 const char* msg,
00561                                 const UNITY_LINE_TYPE lineNumber);
00562 
00563 void UnityAssertFloatSpecial(const _UF actual,
00564                              const char* msg,
00565                              const UNITY_LINE_TYPE lineNumber,
00566                              const UNITY_FLOAT_TRAIT_T style);
00567 #endif
00568 
00569 #ifndef UNITY_EXCLUDE_DOUBLE
00570 void UnityAssertDoublesWithin(const _UD delta,
00571                               const _UD expected,
00572                               const _UD actual,
00573                               const char* msg,
00574                               const UNITY_LINE_TYPE lineNumber);
00575 
00576 void UnityAssertEqualDoubleArray(UNITY_PTR_ATTRIBUTE const _UD* expected,
00577                                  UNITY_PTR_ATTRIBUTE const _UD* actual,
00578                                  const _UU32 num_elements,
00579                                  const char* msg,
00580                                  const UNITY_LINE_TYPE lineNumber);
00581 
00582 void UnityAssertDoubleSpecial(const _UD actual,
00583                               const char* msg,
00584                               const UNITY_LINE_TYPE lineNumber,
00585                               const UNITY_FLOAT_TRAIT_T style);
00586 #endif
00587 
00588 /*-------------------------------------------------------
00589  * Error Strings We Might Need
00590  *-------------------------------------------------------*/
00591 
00592 extern const char UnityStrErrFloat[];
00593 extern const char UnityStrErrDouble[];
00594 extern const char UnityStrErr64[];
00595 
00596 /*-------------------------------------------------------
00597  * Test Running Macros
00598  *-------------------------------------------------------*/
00599 
00600 #define TEST_PROTECT() (setjmp(Unity.AbortFrame) == 0)
00601 
00602 #define TEST_ABORT() {longjmp(Unity.AbortFrame, 1);}
00603 
00604 /* This tricky series of macros gives us an optional line argument to treat it as RUN_TEST(func, num=__LINE__) */
00605 #ifndef RUN_TEST
00606 #ifdef __STDC_VERSION__
00607 #if __STDC_VERSION__ >= 199901L
00608 #define RUN_TEST(...) UnityDefaultTestRun(RUN_TEST_FIRST(__VA_ARGS__), RUN_TEST_SECOND(__VA_ARGS__))
00609 #define RUN_TEST_FIRST(...) RUN_TEST_FIRST_HELPER(__VA_ARGS__, throwaway)
00610 #define RUN_TEST_FIRST_HELPER(first, ...) (first), #first
00611 #define RUN_TEST_SECOND(...) RUN_TEST_SECOND_HELPER(__VA_ARGS__, __LINE__, throwaway)
00612 #define RUN_TEST_SECOND_HELPER(first, second, ...) (second)
00613 #endif
00614 #endif
00615 #endif
00616 
00617 /* If we can't do the tricky version, we'll just have to require them to always include the line number */
00618 #ifndef RUN_TEST
00619 #ifdef CMOCK
00620 #define RUN_TEST(func, num) UnityDefaultTestRun(func, #func, num)
00621 #else
00622 #define RUN_TEST(func) UnityDefaultTestRun(func, #func, __LINE__)
00623 #endif
00624 #endif
00625 
00626 #define TEST_LINE_NUM (Unity.CurrentTestLineNumber)
00627 #define TEST_IS_IGNORED (Unity.CurrentTestIgnored)
00628 #define UNITY_NEW_TEST(a) \
00629     Unity.CurrentTestName = (a); \
00630     Unity.CurrentTestLineNumber = (UNITY_LINE_TYPE)(__LINE__); \
00631     Unity.NumberOfTests++;
00632 
00633 #ifndef UNITY_BEGIN
00634 #define UNITY_BEGIN() UnityBegin(__FILE__)
00635 #endif
00636 
00637 #ifndef UNITY_END
00638 #define UNITY_END() UnityEnd()
00639 #endif
00640 
00641 #define UNITY_UNUSED(x) (void)(sizeof(x))
00642 
00643 /*-------------------------------------------------------
00644  * Basic Fail and Ignore
00645  *-------------------------------------------------------*/
00646 
00647 #define UNITY_TEST_FAIL(line, message)   UnityFail(   (message), (UNITY_LINE_TYPE)(line))
00648 #define UNITY_TEST_IGNORE(line, message) UnityIgnore( (message), (UNITY_LINE_TYPE)(line))
00649 
00650 /*-------------------------------------------------------
00651  * Test Asserts
00652  *-------------------------------------------------------*/
00653 
00654 #define UNITY_TEST_ASSERT(condition, line, message)                                              if (condition) {} else {UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), (message));}
00655 #define UNITY_TEST_ASSERT_NULL(pointer, line, message)                                           UNITY_TEST_ASSERT(((pointer) == NULL),  (UNITY_LINE_TYPE)(line), (message))
00656 #define UNITY_TEST_ASSERT_NOT_NULL(pointer, line, message)                                       UNITY_TEST_ASSERT(((pointer) != NULL),  (UNITY_LINE_TYPE)(line), (message))
00657 
00658 #define UNITY_TEST_ASSERT_EQUAL_INT(expected, actual, line, message)                             UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT)
00659 #define UNITY_TEST_ASSERT_EQUAL_INT8(expected, actual, line, message)                            UnityAssertEqualNumber((_U_SINT)(_US8 )(expected), (_U_SINT)(_US8 )(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8)
00660 #define UNITY_TEST_ASSERT_EQUAL_INT16(expected, actual, line, message)                           UnityAssertEqualNumber((_U_SINT)(_US16)(expected), (_U_SINT)(_US16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16)
00661 #define UNITY_TEST_ASSERT_EQUAL_INT32(expected, actual, line, message)                           UnityAssertEqualNumber((_U_SINT)(_US32)(expected), (_U_SINT)(_US32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32)
00662 #define UNITY_TEST_ASSERT_EQUAL_UINT(expected, actual, line, message)                            UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT)
00663 #define UNITY_TEST_ASSERT_EQUAL_UINT8(expected, actual, line, message)                           UnityAssertEqualNumber((_U_SINT)(_UU8 )(expected), (_U_SINT)(_UU8 )(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8)
00664 #define UNITY_TEST_ASSERT_EQUAL_UINT16(expected, actual, line, message)                          UnityAssertEqualNumber((_U_SINT)(_UU16)(expected), (_U_SINT)(_UU16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16)
00665 #define UNITY_TEST_ASSERT_EQUAL_UINT32(expected, actual, line, message)                          UnityAssertEqualNumber((_U_SINT)(_UU32)(expected), (_U_SINT)(_UU32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32)
00666 #define UNITY_TEST_ASSERT_EQUAL_HEX8(expected, actual, line, message)                            UnityAssertEqualNumber((_U_SINT)(_US8 )(expected), (_U_SINT)(_US8 )(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8)
00667 #define UNITY_TEST_ASSERT_EQUAL_HEX16(expected, actual, line, message)                           UnityAssertEqualNumber((_U_SINT)(_US16)(expected), (_U_SINT)(_US16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16)
00668 #define UNITY_TEST_ASSERT_EQUAL_HEX32(expected, actual, line, message)                           UnityAssertEqualNumber((_U_SINT)(_US32)(expected), (_U_SINT)(_US32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32)
00669 #define UNITY_TEST_ASSERT_BITS(mask, expected, actual, line, message)                            UnityAssertBits((_U_SINT)(mask), (_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line))
00670 
00671 #define UNITY_TEST_ASSERT_INT_WITHIN(delta, expected, actual, line, message)                     UnityAssertNumbersWithin((delta), (_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT)
00672 #define UNITY_TEST_ASSERT_INT8_WITHIN(delta, expected, actual, line, message)                    UnityAssertNumbersWithin((_UU8 )(delta), (_U_SINT)(_US8 )(expected), (_U_SINT)(_US8 )(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8)
00673 #define UNITY_TEST_ASSERT_INT16_WITHIN(delta, expected, actual, line, message)                   UnityAssertNumbersWithin((_UU16)(delta), (_U_SINT)(_US16)(expected), (_U_SINT)(_US16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16)
00674 #define UNITY_TEST_ASSERT_INT32_WITHIN(delta, expected, actual, line, message)                   UnityAssertNumbersWithin((_UU32)(delta), (_U_SINT)(_US32)(expected), (_U_SINT)(_US32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32)
00675 #define UNITY_TEST_ASSERT_UINT_WITHIN(delta, expected, actual, line, message)                    UnityAssertNumbersWithin((delta), (_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT)
00676 #define UNITY_TEST_ASSERT_UINT8_WITHIN(delta, expected, actual, line, message)                   UnityAssertNumbersWithin((_UU8 )(delta), (_U_SINT)(_U_UINT)(_UU8 )(expected), (_U_SINT)(_U_UINT)(_UU8 )(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8)
00677 #define UNITY_TEST_ASSERT_UINT16_WITHIN(delta, expected, actual, line, message)                  UnityAssertNumbersWithin((_UU16)(delta), (_U_SINT)(_U_UINT)(_UU16)(expected), (_U_SINT)(_U_UINT)(_UU16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16)
00678 #define UNITY_TEST_ASSERT_UINT32_WITHIN(delta, expected, actual, line, message)                  UnityAssertNumbersWithin((_UU32)(delta), (_U_SINT)(_U_UINT)(_UU32)(expected), (_U_SINT)(_U_UINT)(_UU32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32)
00679 #define UNITY_TEST_ASSERT_HEX8_WITHIN(delta, expected, actual, line, message)                    UnityAssertNumbersWithin((_UU8 )(delta), (_U_SINT)(_U_UINT)(_UU8 )(expected), (_U_SINT)(_U_UINT)(_UU8 )(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8)
00680 #define UNITY_TEST_ASSERT_HEX16_WITHIN(delta, expected, actual, line, message)                   UnityAssertNumbersWithin((_UU16)(delta), (_U_SINT)(_U_UINT)(_UU16)(expected), (_U_SINT)(_U_UINT)(_UU16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16)
00681 #define UNITY_TEST_ASSERT_HEX32_WITHIN(delta, expected, actual, line, message)                   UnityAssertNumbersWithin((_UU32)(delta), (_U_SINT)(_U_UINT)(_UU32)(expected), (_U_SINT)(_U_UINT)(_UU32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32)
00682 
00683 #define UNITY_TEST_ASSERT_EQUAL_PTR(expected, actual, line, message)                             UnityAssertEqualNumber((_U_SINT)(_UP)(expected), (_U_SINT)(_UP)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_POINTER)
00684 #define UNITY_TEST_ASSERT_EQUAL_STRING(expected, actual, line, message)                          UnityAssertEqualString((const char*)(expected), (const char*)(actual), (message), (UNITY_LINE_TYPE)(line))
00685 #define UNITY_TEST_ASSERT_EQUAL_STRING_LEN(expected, actual, len, line, message)                 UnityAssertEqualStringLen((const char*)(expected), (const char*)(actual), (_UU32)(len), (message), (UNITY_LINE_TYPE)(line))
00686 #define UNITY_TEST_ASSERT_EQUAL_MEMORY(expected, actual, len, line, message)                     UnityAssertEqualMemory((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(len), 1, (message), (UNITY_LINE_TYPE)(line))
00687 
00688 #define UNITY_TEST_ASSERT_EQUAL_INT_ARRAY(expected, actual, num_elements, line, message)         UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT)
00689 #define UNITY_TEST_ASSERT_EQUAL_INT8_ARRAY(expected, actual, num_elements, line, message)        UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8)
00690 #define UNITY_TEST_ASSERT_EQUAL_INT16_ARRAY(expected, actual, num_elements, line, message)       UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16)
00691 #define UNITY_TEST_ASSERT_EQUAL_INT32_ARRAY(expected, actual, num_elements, line, message)       UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32)
00692 #define UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY(expected, actual, num_elements, line, message)        UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT)
00693 #define UNITY_TEST_ASSERT_EQUAL_UINT8_ARRAY(expected, actual, num_elements, line, message)       UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8)
00694 #define UNITY_TEST_ASSERT_EQUAL_UINT16_ARRAY(expected, actual, num_elements, line, message)      UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16)
00695 #define UNITY_TEST_ASSERT_EQUAL_UINT32_ARRAY(expected, actual, num_elements, line, message)      UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32)
00696 #define UNITY_TEST_ASSERT_EQUAL_HEX8_ARRAY(expected, actual, num_elements, line, message)        UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8)
00697 #define UNITY_TEST_ASSERT_EQUAL_HEX16_ARRAY(expected, actual, num_elements, line, message)       UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16)
00698 #define UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements, line, message)       UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32)
00699 #define UNITY_TEST_ASSERT_EQUAL_PTR_ARRAY(expected, actual, num_elements, line, message)         UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(_UP*)(expected), (UNITY_INTERNAL_PTR)(_UP*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_POINTER)
00700 #define UNITY_TEST_ASSERT_EQUAL_STRING_ARRAY(expected, actual, num_elements, line, message)      UnityAssertEqualStringArray((const char**)(expected), (const char**)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line))
00701 #define UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY(expected, actual, len, num_elements, line, message) UnityAssertEqualMemory((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(len), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line))
00702 
00703 #ifdef UNITY_SUPPORT_64
00704 #define UNITY_TEST_ASSERT_EQUAL_INT64(expected, actual, line, message)                           UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64)
00705 #define UNITY_TEST_ASSERT_EQUAL_UINT64(expected, actual, line, message)                          UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64)
00706 #define UNITY_TEST_ASSERT_EQUAL_HEX64(expected, actual, line, message)                           UnityAssertEqualNumber((_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64)
00707 #define UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements, line, message)       UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64)
00708 #define UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements, line, message)      UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64)
00709 #define UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, line, message)       UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64)
00710 #define UNITY_TEST_ASSERT_INT64_WITHIN(delta, expected, actual, line, message)                   UnityAssertNumbersWithin((delta), (_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64)
00711 #define UNITY_TEST_ASSERT_UINT64_WITHIN(delta, expected, actual, line, message)                  UnityAssertNumbersWithin((delta), (_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64)
00712 #define UNITY_TEST_ASSERT_HEX64_WITHIN(delta, expected, actual, line, message)                   UnityAssertNumbersWithin((delta), (_U_SINT)(expected), (_U_SINT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64)
00713 #else
00714 #define UNITY_TEST_ASSERT_EQUAL_INT64(expected, actual, line, message)                           UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
00715 #define UNITY_TEST_ASSERT_EQUAL_UINT64(expected, actual, line, message)                          UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
00716 #define UNITY_TEST_ASSERT_EQUAL_HEX64(expected, actual, line, message)                           UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
00717 #define UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements, line, message)       UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
00718 #define UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements, line, message)      UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
00719 #define UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, line, message)       UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
00720 #define UNITY_TEST_ASSERT_INT64_WITHIN(delta, expected, actual, line, message)                   UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
00721 #define UNITY_TEST_ASSERT_UINT64_WITHIN(delta, expected, actual, line, message)                  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
00722 #define UNITY_TEST_ASSERT_HEX64_WITHIN(delta, expected, actual, line, message)                   UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64)
00723 #endif
00724 
00725 #ifdef UNITY_EXCLUDE_FLOAT
00726 #define UNITY_TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual, line, message)                   UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
00727 #define UNITY_TEST_ASSERT_EQUAL_FLOAT(expected, actual, line, message)                           UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
00728 #define UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements, line, message)       UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
00729 #define UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, line, message)                                    UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
00730 #define UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, line, message)                                UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
00731 #define UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, line, message)                                    UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
00732 #define UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, line, message)                            UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
00733 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, line, message)                                UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
00734 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual, line, message)                            UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
00735 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, line, message)                                UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
00736 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, line, message)                        UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat)
00737 #else
00738 #define UNITY_TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual, line, message)                   UnityAssertFloatsWithin((_UF)(delta), (_UF)(expected), (_UF)(actual), (message), (UNITY_LINE_TYPE)(line))
00739 #define UNITY_TEST_ASSERT_EQUAL_FLOAT(expected, actual, line, message)                           UNITY_TEST_ASSERT_FLOAT_WITHIN((_UF)(expected) * (_UF)UNITY_FLOAT_PRECISION, (_UF)(expected), (_UF)(actual), (UNITY_LINE_TYPE)(line), (message))
00740 #define UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements, line, message)       UnityAssertEqualFloatArray((_UF*)(expected), (_UF*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)(line))
00741 #define UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, line, message)                                    UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_INF)
00742 #define UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, line, message)                                UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NEG_INF)
00743 #define UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, line, message)                                    UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NAN)
00744 #define UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, line, message)                            UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_DET)
00745 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, line, message)                                UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_INF)
00746 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual, line, message)                            UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_NEG_INF)
00747 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, line, message)                                UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_NAN)
00748 #define UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, line, message)                        UnityAssertFloatSpecial((_UF)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_DET)
00749 #endif
00750 
00751 #ifdef UNITY_EXCLUDE_DOUBLE
00752 #define UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, line, message)                  UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
00753 #define UNITY_TEST_ASSERT_EQUAL_DOUBLE(expected, actual, line, message)                          UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
00754 #define UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements, line, message)      UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
00755 #define UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, line, message)                                   UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
00756 #define UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, line, message)                               UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
00757 #define UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, line, message)                                   UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
00758 #define UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, line, message)                           UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
00759 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, line, message)                               UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
00760 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, line, message)                           UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
00761 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, line, message)                               UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
00762 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, line, message)                       UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble)
00763 #else
00764 #define UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, line, message)                  UnityAssertDoublesWithin((_UD)(delta), (_UD)(expected), (_UD)(actual), (message), (UNITY_LINE_TYPE)line)
00765 #define UNITY_TEST_ASSERT_EQUAL_DOUBLE(expected, actual, line, message)                          UNITY_TEST_ASSERT_DOUBLE_WITHIN((_UD)(expected) * (_UD)UNITY_DOUBLE_PRECISION, (_UD)expected, (_UD)actual, (UNITY_LINE_TYPE)(line), message)
00766 #define UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements, line, message)      UnityAssertEqualDoubleArray((_UD*)(expected), (_UD*)(actual), (_UU32)(num_elements), (message), (UNITY_LINE_TYPE)line)
00767 #define UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, line, message)                                   UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_INF)
00768 #define UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, line, message)                               UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NEG_INF)
00769 #define UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, line, message)                                   UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NAN)
00770 #define UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, line, message)                           UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_DET)
00771 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, line, message)                               UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_INF)
00772 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, line, message)                           UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_NEG_INF)
00773 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, line, message)                               UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_NAN)
00774 #define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, line, message)                       UnityAssertDoubleSpecial((_UD)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_DET)
00775 #endif
00776 
00777 /*
00778  * SA_PATCH: Output results using easy to parse tags.
00779  * These tags are used when sending out verbose Unity output ("-v").
00780  * They wrap each of the important data pieces, and allow parsing of the results by an
00781  * external tool.
00782  * The tags are always printed - this isn't configurable.
00783  */
00784 #define UNITY_RESULTS_TAGS_TEST_START   "<***UnityTest***>"
00785 #define UNITY_RESULTS_TAGS_TEST_END     "</***UnityTest***>"
00786 
00787 #define UNITY_RESULTS_TAGS_RESULT_START "<***UnityResult***>"
00788 #define UNITY_RESULTS_TAGS_RESULT_END   "</***UnityResult***>"
00789 
00790 #define UNITY_RESULTS_TAGS_IGNORE_START "<***UnityIgnoredTest***>"
00791 #define UNITY_RESULTS_TAGS_IGNORE_END   "</***UnityIgnoredTest***>"
00792 
00793 /* End of UNITY_INTERNALS_H */
00794 #endif