diff options
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 |