| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293 |
- #include "../UnitTest++.h"
- #include "RecordingReporter.h"
- using namespace UnitTest;
- namespace {
- TEST(CheckEqualWithUnsignedLong)
- {
- TestResults results;
- unsigned long something = 2;
- CHECK_EQUAL(something, something);
- }
- TEST(CheckEqualsWithStringsFailsOnDifferentStrings)
- {
- char txt1[] = "Hello";
- char txt2[] = "Hallo";
- TestResults results;
- CheckEqual(results, txt1, txt2, TestDetails("", "", "", 0));
- CHECK_EQUAL(1, results.GetFailureCount());
- }
- char txt1[] = "Hello"; // non-const on purpose so no folding of duplicate data
- char txt2[] = "Hello";
- TEST(CheckEqualsWithStringsWorksOnContentsNonConstNonConst)
- {
- char const* const p1 = txt1;
- char const* const p2 = txt2;
- TestResults results;
- CheckEqual(results, p1, p2, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
- }
- TEST(CheckEqualsWithStringsWorksOnContentsConstConst)
- {
- char* const p1 = txt1;
- char* const p2 = txt2;
- TestResults results;
- CheckEqual(results, p1, p2, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
- }
- TEST(CheckEqualsWithStringsWorksOnContentsNonConstConst)
- {
- char* const p1 = txt1;
- char const* const p2 = txt2;
- TestResults results;
- CheckEqual(results, p1, p2, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
- }
- TEST(CheckEqualsWithStringsWorksOnContentsConstNonConst)
- {
- char const* const p1 = txt1;
- char* const p2 = txt2;
- TestResults results;
- CheckEqual(results, p1, p2, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
- }
- TEST(CheckEqualsWithStringsWorksOnContentsWithALiteral)
- {
- char const* const p1 = txt1;
- TestResults results;
- CheckEqual(results, "Hello", p1, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
- }
- TEST(CheckEqualFailureIncludesCheckExpectedAndActual)
- {
- RecordingReporter reporter;
- TestResults results(&reporter);
- const int something = 2;
- CheckEqual(results, 1, something, TestDetails("", "", "", 0));
- using namespace std;
- CHECK(strstr(reporter.lastFailedMessage, "xpected 1"));
- CHECK(strstr(reporter.lastFailedMessage, "was 2"));
- }
- TEST(CheckEqualFailureIncludesDetails)
- {
- RecordingReporter reporter;
- TestResults results(&reporter);
- TestDetails const details("mytest", "mysuite", "file.h", 101);
- CheckEqual(results, 1, 2, details);
- CHECK_EQUAL("mytest", reporter.lastFailedTest);
- CHECK_EQUAL("mysuite", reporter.lastFailedSuite);
- CHECK_EQUAL("file.h", reporter.lastFailedFile);
- CHECK_EQUAL(101, reporter.lastFailedLine);
- }
- TEST(CheckCloseTrue)
- {
- TestResults results;
- CheckClose(results, 3.001f, 3.0f, 0.1f, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
- }
- TEST(CheckCloseFalse)
- {
- TestResults results;
- CheckClose(results, 3.12f, 3.0f, 0.1f, TestDetails("", "", "", 0));
- CHECK_EQUAL(1, results.GetFailureCount());
- }
- TEST(CheckCloseWithZeroEpsilonWorksForSameNumber)
- {
- TestResults results;
- CheckClose(results, 0.1f, 0.1f, 0, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
- }
- TEST(CheckCloseWithNaNFails)
- {
- union
- {
- unsigned int bitpattern;
- float nan;
- };
- bitpattern = 0xFFFFFFFF;
- TestResults results;
- CheckClose(results, 3.0f, nan, 0.1f, TestDetails("", "", "", 0));
- CHECK_EQUAL(1, results.GetFailureCount());
- }
- TEST(CheckCloseWithNaNAgainstItselfFails)
- {
- union
- {
- unsigned int bitpattern;
- float nan;
- };
- bitpattern = 0xFFFFFFFF;
- TestResults results;
- CheckClose(results, nan, nan, 0.1f, TestDetails("", "", "", 0));
- CHECK_EQUAL(1, results.GetFailureCount());
- }
- TEST(CheckCloseFailureIncludesCheckExpectedAndActual)
- {
- RecordingReporter reporter;
- TestResults results(&reporter);
- const float expected = 0.9f;
- const float actual = 1.1f;
- CheckClose(results, expected, actual, 0.01f, TestDetails("", "", "", 0));
- using namespace std;
- CHECK(strstr(reporter.lastFailedMessage, "xpected 0.9"));
- CHECK(strstr(reporter.lastFailedMessage, "was 1.1"));
- }
- TEST(CheckCloseFailureIncludesTolerance)
- {
- RecordingReporter reporter;
- TestResults results(&reporter);
- CheckClose(results, 2, 3, 0.01f, TestDetails("", "", "", 0));
- using namespace std;
- CHECK(strstr(reporter.lastFailedMessage, "0.01"));
- }
- TEST(CheckCloseFailureIncludesDetails)
- {
- RecordingReporter reporter;
- TestResults results(&reporter);
- TestDetails const details("mytest", "mysuite", "header.h", 10);
- CheckClose(results, 2, 3, 0.01f, details);
- CHECK_EQUAL("mytest", reporter.lastFailedTest);
- CHECK_EQUAL("mysuite", reporter.lastFailedSuite);
- CHECK_EQUAL("header.h", reporter.lastFailedFile);
- CHECK_EQUAL(10, reporter.lastFailedLine);
- }
- TEST(CheckArrayEqualTrue)
- {
- TestResults results;
- int const array[3] = { 1, 2, 3 };
- CheckArrayEqual(results, array, array, 3, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
- }
- TEST(CheckArrayEqualFalse)
- {
- TestResults results;
- int const array1[3] = { 1, 2, 3 };
- int const array2[3] = { 1, 2, 2 };
- CheckArrayEqual(results, array1, array2, 3, TestDetails("", "", "", 0));
- CHECK_EQUAL(1, results.GetFailureCount());
- }
- TEST(CheckArrayCloseTrue)
- {
- TestResults results;
- float const array1[3] = { 1.0f, 1.5f, 2.0f };
- float const array2[3] = { 1.01f, 1.51f, 2.01f };
- CheckArrayClose(results, array1, array2, 3, 0.02f, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
- }
- TEST(CheckArrayCloseFalse)
- {
- TestResults results;
- float const array1[3] = { 1.0f, 1.5f, 2.0f };
- float const array2[3] = { 1.01f, 1.51f, 2.01f };
- CheckArrayClose(results, array1, array2, 3, 0.001f, TestDetails("", "", "", 0));
- CHECK_EQUAL(1, results.GetFailureCount());
- }
- TEST(CheckArrayCloseFailureIncludesDetails)
- {
- RecordingReporter reporter;
- TestResults results(&reporter);
- TestDetails const details("arrayCloseTest", "arrayCloseSuite", "file", 1337);
- float const array1[3] = { 1.0f, 1.5f, 2.0f };
- float const array2[3] = { 1.01f, 1.51f, 2.01f };
- CheckArrayClose(results, array1, array2, 3, 0.001f, details);
- CHECK_EQUAL("arrayCloseTest", reporter.lastFailedTest);
- CHECK_EQUAL("arrayCloseSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("file", reporter.lastFailedFile);
- CHECK_EQUAL(1337, reporter.lastFailedLine);
- }
- TEST(CheckArray2DCloseTrue)
- {
- TestResults results;
- float const array1[3][3] = { { 1.0f, 1.5f, 2.0f },
- { 2.0f, 2.5f, 3.0f },
- { 3.0f, 3.5f, 4.0f } };
- float const array2[3][3] = { { 1.01f, 1.51f, 2.01f },
- { 2.01f, 2.51f, 3.01f },
- { 3.01f, 3.51f, 4.01f } };
- CheckArray2DClose(results, array1, array2, 3, 3, 0.02f, TestDetails("", "", "", 0));
- CHECK_EQUAL(0, results.GetFailureCount());
- }
- TEST(CheckArray2DCloseFalse)
- {
- TestResults results;
- float const array1[3][3] = { { 1.0f, 1.5f, 2.0f },
- { 2.0f, 2.5f, 3.0f },
- { 3.0f, 3.5f, 4.0f } };
- float const array2[3][3] = { { 1.01f, 1.51f, 2.01f },
- { 2.01f, 2.51f, 3.01f },
- { 3.01f, 3.51f, 4.01f } };
- CheckArray2DClose(results, array1, array2, 3, 3, 0.001f, TestDetails("", "", "", 0));
- CHECK_EQUAL(1, results.GetFailureCount());
- }
- TEST(CheckCloseWithDoublesSucceeds)
- {
- CHECK_CLOSE(0.5, 0.5, 0.0001);
- }
- TEST(CheckArray2DCloseFailureIncludesDetails)
- {
- RecordingReporter reporter;
- TestResults results(&reporter);
- TestDetails const details("array2DCloseTest", "array2DCloseSuite", "file", 1234);
- float const array1[3][3] = { { 1.0f, 1.5f, 2.0f },
- { 2.0f, 2.5f, 3.0f },
- { 3.0f, 3.5f, 4.0f } };
- float const array2[3][3] = { { 1.01f, 1.51f, 2.01f },
- { 2.01f, 2.51f, 3.01f },
- { 3.01f, 3.51f, 4.01f } };
- CheckArray2DClose(results, array1, array2, 3, 3, 0.001f, details);
- CHECK_EQUAL("array2DCloseTest", reporter.lastFailedTest);
- CHECK_EQUAL("array2DCloseSuite", reporter.lastFailedSuite);
- CHECK_EQUAL("file", reporter.lastFailedFile);
- CHECK_EQUAL(1234, reporter.lastFailedLine);
- }
- }
|