From 02276ff2af79314413f49a20194f9cfbb63e41e7 Mon Sep 17 00:00:00 2001 From: mvandervoord Date: Thu, 28 May 2009 15:35:54 +0000 Subject: [PATCH] git-svn-id: http://unity.svn.sourceforge.net/svnroot/unity/trunk@29 e7d17a6e-8845-0410-bbbc-c8efb4fdad7e --- examples/helper/UnityHelper.c | 45 +++++++++++++++++++++++++++++++++++ examples/helper/UnityHelper.h | 17 +++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 examples/helper/UnityHelper.c create mode 100644 examples/helper/UnityHelper.h diff --git a/examples/helper/UnityHelper.c b/examples/helper/UnityHelper.c new file mode 100644 index 0000000..5a3d08a --- /dev/null +++ b/examples/helper/UnityHelper.c @@ -0,0 +1,45 @@ +#include "unity.h" +#include "UnityHelper.h" +#include +#include + +static char message[1024]; + +void AssertEqualUintArray(const unsigned int* expected, const unsigned int* actual, const unsigned int length) +{ + unsigned int i; + + for (i = 0; i < length; i++) + { + sprintf(message, "Array comparison failed at index %u.", i); + TEST_ASSERT_EQUAL_UINT_MESSAGE(expected[i], actual[i], message); + } +} + +void AssertEqualIntArray(const int* expected, const int* actual, const unsigned int length) +{ + unsigned int i; + + for (i = 0; i < length; i++) + { + sprintf(message, "Array comparison failed at index %u.", i); + TEST_ASSERT_EQUAL_INT_MESSAGE(expected[i], actual[i], message); + } +} + +void AssertFloatArrayWithin(const float tolerance, const float* expected, const float* actual, const unsigned int length) +{ + unsigned int i; + + for (i = 0; i < length; i++) + { + sprintf(message, "Array mismatch at index %u, Expected %f, Actual %f, Tolerance %f, Delta %f", i, expected[i], actual[i], tolerance, (expected[i]-actual[i])); + TEST_ASSERT_FLOAT_WITHIN_MESSAGE(tolerance, expected[i], actual[i], message); + } +} + +void AssertEqualExampleStruct(EXAMPLE_STRUCT_T expected, EXAMPLE_STRUCT_T actual) +{ + TEST_ASSERT_EQUAL_INT_MESSAGE(expected.x, actual.x, "Example Struct Failed For Field x"); + TEST_ASSERT_EQUAL_INT_MESSAGE(expected.y, actual.y, "Example Struct Failed For Field y"); +} diff --git a/examples/helper/UnityHelper.h b/examples/helper/UnityHelper.h new file mode 100644 index 0000000..75e962b --- /dev/null +++ b/examples/helper/UnityHelper.h @@ -0,0 +1,17 @@ +#ifndef _TESTHELPER_H +#define _TESTHELPER_H + +#include "Types.h" + +void AssertEqualUintArray(const unsigned int* expected, const unsigned int* actual, const unsigned int length); +void AssertEqualIntArray(const int* expected, const int* actual, const unsigned int length); +void AssertEqualCharArray(const char expected[], const char actual[], const int length); +void AssertFloatArrayWithin(const float tolerance, const float* expected, const float* actual, const unsigned int length); +void AssertEqualExampleStruct(const EXAMPLE_STRUCT_T expected, const EXAMPLE_STRUCT_T actual); + +#define TEST_ASSERT_EQUAL_uint32_ARRAY(expected, actual, length) {AssertEqualUintArray(expected, actual, length);} +#define TEST_ASSERT_EQUAL_INT_ARRAY(expected, actual, length) {AssertEqualIntArray(expected, actual, length);} +#define TEST_ASSERT_FLOAT_ARRAY_WITHIN(tolerance, expected, actual, length) {AssertFloatArrayWithin(tolerance, expected, actual, length);} +#define TEST_ASSERT_EQUAL_EXAMPLE_STRUCT_T(expected, actual) {AssertEqualExampleStruct(expected, actual);} + +#endif // _TESTHELPER_H