Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/microsoft/GSL.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil MacIntosh <neilmac@microsoft.com>2017-07-13 23:53:56 +0300
committerGitHub <noreply@github.com>2017-07-13 23:53:56 +0300
commitb2ee48433448556a7be63074f8aaf45ab47a95c1 (patch)
treedf94d91f17334f50c33dfea4763f3b4b282f5f85 /tests/algorithm_tests.cpp
parent1f87ef73f1477e8adafa8b10ccee042897612a20 (diff)
Move from unittest-cpp to catch for unit testing. (#533)
Many thanks to @rianquinn. This should fix #495, #494 and #529.
Diffstat (limited to 'tests/algorithm_tests.cpp')
-rw-r--r--tests/algorithm_tests.cpp258
1 files changed, 126 insertions, 132 deletions
diff --git a/tests/algorithm_tests.cpp b/tests/algorithm_tests.cpp
index 7b5f429..045fd3e 100644
--- a/tests/algorithm_tests.cpp
+++ b/tests/algorithm_tests.cpp
@@ -14,7 +14,7 @@
//
///////////////////////////////////////////////////////////////////////////////
-#include <UnitTest++/UnitTest++.h>
+#include <catch/catch.hpp>
#include <gsl/gsl_algorithm>
@@ -23,188 +23,182 @@
using namespace std;
using namespace gsl;
-SUITE(copy_tests)
+TEST_CASE("same_type")
{
-
- TEST(same_type)
+ // dynamic source and destination span
{
- // dynamic source and destination span
- {
- std::array<int, 5> src{1, 2, 3, 4, 5};
- std::array<int, 10> dst{};
+ std::array<int, 5> src{1, 2, 3, 4, 5};
+ std::array<int, 10> dst{};
- span<int> src_span(src);
- span<int> dst_span(dst);
+ span<int> src_span(src);
+ span<int> dst_span(dst);
- copy(src_span, dst_span);
- copy(src_span, dst_span.subspan(src_span.size()));
+ copy(src_span, dst_span);
+ copy(src_span, dst_span.subspan(src_span.size()));
- for (std::size_t i = 0; i < src.size(); ++i) {
- CHECK(dst[i] == src[i]);
- CHECK(dst[i + src.size()] == src[i]);
- }
+ for (std::size_t i = 0; i < src.size(); ++i) {
+ CHECK(dst[i] == src[i]);
+ CHECK(dst[i + src.size()] == src[i]);
}
+ }
- // static source and dynamic destination span
- {
- std::array<int, 5> src{1, 2, 3, 4, 5};
- std::array<int, 10> dst{};
+ // static source and dynamic destination span
+ {
+ std::array<int, 5> src{1, 2, 3, 4, 5};
+ std::array<int, 10> dst{};
- span<int, 5> src_span(src);
- span<int> dst_span(dst);
+ span<int, 5> src_span(src);
+ span<int> dst_span(dst);
- copy(src_span, dst_span);
- copy(src_span, dst_span.subspan(src_span.size()));
+ copy(src_span, dst_span);
+ copy(src_span, dst_span.subspan(src_span.size()));
- for (std::size_t i = 0; i < src.size(); ++i) {
- CHECK(dst[i] == src[i]);
- CHECK(dst[i + src.size()] == src[i]);
- }
+ for (std::size_t i = 0; i < src.size(); ++i) {
+ CHECK(dst[i] == src[i]);
+ CHECK(dst[i + src.size()] == src[i]);
}
+ }
- // dynamic source and static destination span
- {
- std::array<int, 5> src{1, 2, 3, 4, 5};
- std::array<int, 10> dst{};
+ // dynamic source and static destination span
+ {
+ std::array<int, 5> src{1, 2, 3, 4, 5};
+ std::array<int, 10> dst{};
- span<int> src_span(src);
- span<int, 10> dst_span(dst);
+ span<int> src_span(src);
+ span<int, 10> dst_span(dst);
- copy(src_span, dst_span);
- copy(src_span, dst_span.subspan(src_span.size()));
+ copy(src_span, dst_span);
+ copy(src_span, dst_span.subspan(src_span.size()));
- for (std::size_t i = 0; i < src.size(); ++i) {
- CHECK(dst[i] == src[i]);
- CHECK(dst[i + src.size()] == src[i]);
- }
+ for (std::size_t i = 0; i < src.size(); ++i) {
+ CHECK(dst[i] == src[i]);
+ CHECK(dst[i + src.size()] == src[i]);
}
+ }
- // static source and destination span
- {
- std::array<int, 5> src{1, 2, 3, 4, 5};
- std::array<int, 10> dst{};
+ // static source and destination span
+ {
+ std::array<int, 5> src{1, 2, 3, 4, 5};
+ std::array<int, 10> dst{};
- span<int, 5> src_span(src);
- span<int, 10> dst_span(dst);
+ span<int, 5> src_span(src);
+ span<int, 10> dst_span(dst);
- copy(src_span, dst_span);
- copy(src_span, dst_span.subspan(src_span.size()));
+ copy(src_span, dst_span);
+ copy(src_span, dst_span.subspan(src_span.size()));
- for (std::size_t i = 0; i < src.size(); ++i) {
- CHECK(dst[i] == src[i]);
- CHECK(dst[i + src.size()] == src[i]);
- }
+ for (std::size_t i = 0; i < src.size(); ++i) {
+ CHECK(dst[i] == src[i]);
+ CHECK(dst[i + src.size()] == src[i]);
}
}
+}
- TEST(compatible_type)
+TEST_CASE("compatible_type")
+{
+ // dynamic source and destination span
{
- // dynamic source and destination span
- {
- std::array<short, 5> src{1, 2, 3, 4, 5};
- std::array<int, 10> dst{};
+ std::array<short, 5> src{1, 2, 3, 4, 5};
+ std::array<int, 10> dst{};
- span<short> src_span(src);
- span<int> dst_span(dst);
+ span<short> src_span(src);
+ span<int> dst_span(dst);
- copy(src_span, dst_span);
- copy(src_span, dst_span.subspan(src_span.size()));
+ copy(src_span, dst_span);
+ copy(src_span, dst_span.subspan(src_span.size()));
- for (std::size_t i = 0; i < src.size(); ++i) {
- CHECK(dst[i] == src[i]);
- CHECK(dst[i + src.size()] == src[i]);
- }
+ for (std::size_t i = 0; i < src.size(); ++i) {
+ CHECK(dst[i] == src[i]);
+ CHECK(dst[i + src.size()] == src[i]);
}
+ }
- // static source and dynamic destination span
- {
- std::array<short, 5> src{1, 2, 3, 4, 5};
- std::array<int, 10> dst{};
+ // static source and dynamic destination span
+ {
+ std::array<short, 5> src{1, 2, 3, 4, 5};
+ std::array<int, 10> dst{};
- span<short, 5> src_span(src);
- span<int> dst_span(dst);
+ span<short, 5> src_span(src);
+ span<int> dst_span(dst);
- copy(src_span, dst_span);
- copy(src_span, dst_span.subspan(src_span.size()));
+ copy(src_span, dst_span);
+ copy(src_span, dst_span.subspan(src_span.size()));
- for (std::size_t i = 0; i < src.size(); ++i) {
- CHECK(dst[i] == src[i]);
- CHECK(dst[i + src.size()] == src[i]);
- }
+ for (std::size_t i = 0; i < src.size(); ++i) {
+ CHECK(dst[i] == src[i]);
+ CHECK(dst[i + src.size()] == src[i]);
}
+ }
- // dynamic source and static destination span
- {
- std::array<short, 5> src{1, 2, 3, 4, 5};
- std::array<int, 10> dst{};
+ // dynamic source and static destination span
+ {
+ std::array<short, 5> src{1, 2, 3, 4, 5};
+ std::array<int, 10> dst{};
- span<short> src_span(src);
- span<int, 10> dst_span(dst);
+ span<short> src_span(src);
+ span<int, 10> dst_span(dst);
- copy(src_span, dst_span);
- copy(src_span, dst_span.subspan(src_span.size()));
+ copy(src_span, dst_span);
+ copy(src_span, dst_span.subspan(src_span.size()));
- for (std::size_t i = 0; i < src.size(); ++i) {
- CHECK(dst[i] == src[i]);
- CHECK(dst[i + src.size()] == src[i]);
- }
+ for (std::size_t i = 0; i < src.size(); ++i) {
+ CHECK(dst[i] == src[i]);
+ CHECK(dst[i + src.size()] == src[i]);
}
+ }
- // static source and destination span
- {
- std::array<short, 5> src{1, 2, 3, 4, 5};
- std::array<int, 10> dst{};
+ // static source and destination span
+ {
+ std::array<short, 5> src{1, 2, 3, 4, 5};
+ std::array<int, 10> dst{};
- span<short, 5> src_span(src);
- span<int, 10> dst_span(dst);
+ span<short, 5> src_span(src);
+ span<int, 10> dst_span(dst);
- copy(src_span, dst_span);
- copy(src_span, dst_span.subspan(src_span.size()));
+ copy(src_span, dst_span);
+ copy(src_span, dst_span.subspan(src_span.size()));
- for (std::size_t i = 0; i < src.size(); ++i) {
- CHECK(dst[i] == src[i]);
- CHECK(dst[i + src.size()] == src[i]);
- }
+ for (std::size_t i = 0; i < src.size(); ++i) {
+ CHECK(dst[i] == src[i]);
+ CHECK(dst[i + src.size()] == src[i]);
}
}
+}
#ifdef CONFIRM_COMPILATION_ERRORS
- TEST(incompatible_type)
- {
- std::array<int, 4> src{1, 2, 3, 4};
- std::array<int*, 12> dst{};
-
- span<int> src_span_dyn(src);
- span<int, 4> src_span_static(src);
- span<int*> dst_span_dyn(dst);
- span<int*, 4> dst_span_static(dst);
-
- // every line should produce a compilation error
- copy(src_span_dyn, dst_span_dyn);
- copy(src_span_dyn, dst_span_static);
- copy(src_span_static, dst_span_dyn);
- copy(src_span_static, dst_span_static);
- }
+TEST_CASE("incompatible_type")
+{
+ std::array<int, 4> src{1, 2, 3, 4};
+ std::array<int*, 12> dst{};
+
+ span<int> src_span_dyn(src);
+ span<int, 4> src_span_static(src);
+ span<int*> dst_span_dyn(dst);
+ span<int*, 4> dst_span_static(dst);
+
+ // every line should produce a compilation error
+ copy(src_span_dyn, dst_span_dyn);
+ copy(src_span_dyn, dst_span_static);
+ copy(src_span_static, dst_span_dyn);
+ copy(src_span_static, dst_span_static);
+}
#endif
- TEST(small_destination_span)
- {
- std::array<int, 12> src{1, 2, 3, 4};
- std::array<int, 4> dst{};
+TEST_CASE("small_destination_span")
+{
+ std::array<int, 12> src{1, 2, 3, 4};
+ std::array<int, 4> dst{};
- span<int> src_span_dyn(src);
- span<int, 12> src_span_static(src);
- span<int> dst_span_dyn(dst);
- span<int, 4> dst_span_static(dst);
+ span<int> src_span_dyn(src);
+ span<int, 12> src_span_static(src);
+ span<int> dst_span_dyn(dst);
+ span<int, 4> dst_span_static(dst);
- CHECK_THROW(copy(src_span_dyn, dst_span_dyn), fail_fast);
- CHECK_THROW(copy(src_span_dyn, dst_span_static), fail_fast);
- CHECK_THROW(copy(src_span_static, dst_span_dyn), fail_fast);
+ CHECK_THROWS_AS(copy(src_span_dyn, dst_span_dyn), fail_fast);
+ CHECK_THROWS_AS(copy(src_span_dyn, dst_span_static), fail_fast);
+ CHECK_THROWS_AS(copy(src_span_static, dst_span_dyn), fail_fast);
#ifdef CONFIRM_COMPILATION_ERRORS
- copy(src_span_static, dst_span_static);
+ copy(src_span_static, dst_span_static);
#endif
- }
}
-
-int main() { return UnitTest::RunAllTests(); }