diff options
author | Johannes Stoelp <johannes.stoelp@gmail.com> | 2024-03-26 21:47:29 +0100 |
---|---|---|
committer | Johannes Stoelp <johannes.stoelp@gmail.com> | 2024-03-26 21:47:29 +0100 |
commit | a15db74027fde75efef34f391d2a458bf64001d0 (patch) | |
tree | 6d0dbed3bcc8dad7cb8301382eab27c4540a79c5 /test | |
parent | d483452fc2ccaba5de26303a449fe5bd2ea1dc18 (diff) | |
download | cpp-utils-a15db74027fde75efef34f391d2a458bf64001d0.tar.gz cpp-utils-a15db74027fde75efef34f391d2a458bf64001d0.zip |
bitset: initial state, play with fold expr
Diffstat (limited to 'test')
-rw-r--r-- | test/bitset.cc | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/test/bitset.cc b/test/bitset.cc new file mode 100644 index 0000000..755a79c --- /dev/null +++ b/test/bitset.cc @@ -0,0 +1,88 @@ +#if __cplusplus >= 201703L +#include <bitset.h> + +enum bits { a, b, c, d }; + +int main() { + { + bitset<bits> t; + assert(t.is_empty()); + assert(!t.is_set(a)); + assert(!t.is_set(b)); + assert(!t.is_set(c)); + assert(!t.is_set(d)); + } + { + bitset<bits> t(b); + assert(!t.is_empty()); + assert(!t.is_set(a)); + assert(t.is_set(b)); + assert(!t.is_set(c)); + assert(!t.is_set(d)); + } + { + bitset<bits> t(a, c); + assert(!t.is_empty()); + assert(t.is_set(a)); + assert(!t.is_set(b)); + assert(t.is_set(c)); + assert(!t.is_set(d)); + } + { + bitset<bits> t; + t.set(b, d); + assert(!t.is_empty()); + assert(!t.is_set(a)); + assert(t.is_set(b)); + assert(!t.is_set(c)); + assert(t.is_set(d)); + t.set(c); + assert(!t.is_empty()); + assert(!t.is_set(a)); + assert(t.is_set(b)); + assert(t.is_set(c)); + assert(t.is_set(d)); + + t.unset(); + assert(!t.is_empty()); + t.unset(b, d); + assert(!t.is_empty()); + assert(!t.is_set(a)); + assert(!t.is_set(b)); + assert(t.is_set(c)); + assert(!t.is_set(d)); + t.unset(c); + assert(t.is_empty()); + assert(!t.is_set(a)); + assert(!t.is_set(b)); + assert(!t.is_set(c)); + assert(!t.is_set(d)); + } + { + bitset<bits> t; + t.set(a, b, d); + assert(!t.any()); + assert(!t.any(c)); + assert(t.any(a)); + assert(t.any(a, c)); + assert(t.any(a, b)); + } + { + bitset<bits> t; + t.set(a, b, d); + assert(!t.all()); + assert(!t.all(c)); + assert(t.all(a)); + assert(!t.all(a, c)); + assert(t.all(a, b)); + assert(t.all(a, b, d)); + assert(!t.all(a, b, c, d)); + } + return 0; +} +#else +#include <cstdio> +int main() { + puts("[bitset]: not built with >cpp17"); +} +#endif |