summaryrefslogtreecommitdiff
path: root/u8c-check/src/test0.inl
diff options
context:
space:
mode:
Diffstat (limited to 'u8c-check/src/test0.inl')
-rw-r--r--u8c-check/src/test0.inl49
1 files changed, 49 insertions, 0 deletions
diff --git a/u8c-check/src/test0.inl b/u8c-check/src/test0.inl
new file mode 100644
index 0000000..5b4db6c
--- /dev/null
+++ b/u8c-check/src/test0.inl
@@ -0,0 +1,49 @@
+#include <iostream> /* std::cerr, std::endl */
+#include <limits> /* std::numeric_limits */
+#include <random> /* std::random_device, std::uniform_int_distribution */
+#include <u8c/arr>
+
+auto test0() -> void {
+ std::cerr << "Constructing array of 256 elements, each with a value of 15...";
+ u8c::arr<int> arr(0x100uz,0xF);
+ u8c_assert(arr.sz() == 0x100uz);
+ u8c_assert(static_cast<u8c::size>(arr.end() - arr.begin()) == arr.sz());
+ for (auto const elm : arr) {
+ u8c_assert(elm == 0xF);
+ }
+ std::cerr << " okay." << std::endl;
+ std::random_device rd;
+ {
+ std::uniform_int_distribution<int> distr(0x0,std::numeric_limits<int>::max());
+ for (u8c::byte n = u8c_bytec(0x0);n <= u8c_bytec(0x10);n += u8c_ubytec(0x1)) {
+ auto const val = distr(rd);
+ std::cerr << "Filling array with the value of " << val << "...";
+ arr.fill(val);
+ for (auto const elm : arr) {
+ u8c_assert(elm == val);
+ }
+ std::cerr << " okay." << std::endl;
+ }
+ }
+ {
+ std::uniform_int_distribution<u8c::size> distr(0x1,0xFFF);
+ for (u8c::byte n = u8c_bytec(0x0);n <= u8c_bytec(0x4);n += u8c_ubytec(0x1)) {
+ auto const sz = distr(rd);
+ std::cerr << "Allocating the array to the size of " << sz << "...";
+ arr.alloc(sz);
+ u8c_assert(arr.sz() == sz);
+ std::cerr << " okay." << std::endl;
+ }
+ }
+ std::cerr << "Doing some additionel tests...";
+ arr.alloc(0x2uz);
+ u8c_assert(arr.sz() == 0x2uz);
+ arr.fill(0xF);
+ u8c_assert(arr[0x0uz] == 0xF);
+ u8c_assert(arr[0x1uz] == 0xF);
+ arr.realloc(0x4uz);
+ u8c_assert(arr.sz() == 0x4uz);
+ u8c_assert(arr[0x0uz] == 0xF);
+ u8c_assert(arr[0x1uz] == 0xF);
+ std::cerr << " okay." << std::endl;
+}