[beast: 11/12] SFI: tests: add test function for vector_erase_element() and copy_reordered()
- From: Tim Janik <timj src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [beast: 11/12] SFI: tests: add test function for vector_erase_element() and copy_reordered()
- Date: Sat, 30 Sep 2017 11:49:16 +0000 (UTC)
commit eafd91cf8dd37e98b1c4d63b195e579f8654eaa4
Author: Tim Janik <timj gnu org>
Date: Mon Sep 25 23:25:02 2017 +0200
SFI: tests: add test function for vector_erase_element() and copy_reordered()
Signed-off-by: Tim Janik <timj gnu org>
sfi/tests/misctests.cc | 37 +++++++++++++++++++++++++++++++++++++
1 files changed, 37 insertions(+), 0 deletions(-)
---
diff --git a/sfi/tests/misctests.cc b/sfi/tests/misctests.cc
index 5a92ec8..b1462b0 100644
--- a/sfi/tests/misctests.cc
+++ b/sfi/tests/misctests.cc
@@ -11,6 +11,43 @@
using namespace Bse;
+#define print_vector(v, fmt) ({ printf ("{"); for (const auto e : v) printf (" " fmt, e); printf ("
}\n"); })
+
+static void
+test_vector_utils()
+{
+ std::vector<int> ref;
+ std::vector<int> v1 = { +17, +7, +5, +3, +1, -1, -3, -5, -7, -19 };
+ std::vector<int> v2 = { +27, -7, +4, -2, 0, -1, +2, -6, +7, -12, +66 };
+ std::vector<int> rv;
+ copy_reordered (v1.begin(), v1.end(), v2.begin(), v2.end(), std::back_inserter (rv));
+ ref = { -7, -1, +7, +17, +5, +3, +1, -3, -5, -19 };
+ TASSERT (rv == ref); // print_vector (rv, "%d");
+ vector_erase_element (v1, -3); ref = { +17, +7, +5, +3, +1, -1, -5, -7, -19 }; TASSERT (v1 == ref);
+ vector_erase_element (v1, +5); ref = { +17, +7, +3, +1, -1, -5, -7, -19 }; TASSERT (v1 == ref);
+ vector_erase_element (v1, -5); ref = { +17, +7, +3, +1, -1, -7, -19 }; TASSERT (v1 == ref);
+ vector_erase_element (v1, -19); ref = { +17, +7, +3, +1, -1, -7 }; TASSERT (v1 == ref);
+ vector_erase_element (v1, +17); ref = { +7, +3, +1, -1, -7 }; TASSERT (v1 == ref);
+ vector_erase_element (v1, +77); ref = { +7, +3, +1, -1, -7 }; TASSERT (v1 == ref);
+ vector_erase_element (v1, 0); ref = { +7, +3, +1, -1, -7 }; TASSERT (v1 == ref);
+ rv.clear(); copy_reordered (v1.begin(), v1.end(), v2.begin(), v2.end(), std::back_inserter (rv));
+ ref = { -7, -1, +7, +3, +1 }; TASSERT (rv == ref);
+ v1.push_back (0);
+ rv.clear(); copy_reordered (v1.begin(), v1.end(), v2.begin(), v2.end(), std::back_inserter (rv));
+ ref = { -7, 0, -1, +7, +3, +1 }; TASSERT (rv == ref);
+ v1.push_back (0);
+ rv.clear(); copy_reordered (v1.begin(), v1.end(), v2.begin(), v2.end(), std::back_inserter (rv));
+ ref = { -7, 0, -1, +7, +3, +1, 0 }; TASSERT (rv == ref);
+ v1.push_back (+2);
+ rv.clear(); copy_reordered (v1.begin(), v1.end(), v2.begin(), v2.end(), std::back_inserter (rv));
+ ref = { -7, 0, -1, +2, +7, +3, +1, 0 }; TASSERT (rv == ref);
+ v1.resize (201);
+ std::iota (v1.begin(), v1.end(), -100); // v1 = -100 .. +100
+ rv.clear(); copy_reordered (v2.begin(), v2.end(), v1.begin(), v1.end(), std::back_inserter (rv));
+ ref = { -12, -7, -6, -2, -1, 0, +2, +4, +7, +27, +66 }; TASSERT (rv == ref);
+}
+TEST_ADD (test_vector_utils);
+
static void
test_paths()
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]