MCPcopy Create free account
hub / github.com/Genivia/RE-flex / main

Function main

tests/test_bits.cpp:9–56  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7using namespace reflex;
8
9int main()
10{
11 static Bits digit('0', '9'); // bits '0' (48th bit) to '9' (57th bit)
12 static Bits upper('A', 'Z'); // bits 'A' (65th bit) to 'Z' (92th bit)
13 static Bits lower('a', 'z'); // bits 'a' (97th bit) to 'z' (122th bit)
14 static Bits alnum(digit | upper | lower);
15 if (upper.intersects(lower) == false)
16 std::cout << "upper and lower are disjoint\n";
17 // reflex::Bits alnum = digit | upper | lower;
18 if (alnum.contains(digit) == true)
19 std::cout << "digit is a subset of alnum\n";
20 if (alnum['_'] == false)
21 std::cout << "_ is not in alnum\n";
22 alnum['_'] = true;
23 if (alnum['_'] == true)
24 std::cout << "_ is in updated alnum\n";
25 alnum.lshift().rshift();
26 std::cout << alnum.count() << " bits in alnum\n";
27 for (size_t i = alnum.find_first(); i != reflex::Bits::npos; i = alnum.find_next(i))
28 std::cout << (char)i;
29 std::cout << std::endl;
30
31 assert(digit.count() == 10);
32 assert(alnum.count() == 63);
33
34 Bits alpha(lower);
35 alpha |= upper;
36
37 assert(alpha.contains(lower) == true && alpha.contains(upper) == true);
38 assert(alpha.intersects(lower) == true);
39 assert(lower.intersects(upper) == false);
40
41 Bits bucket;
42 bucket.swap(alpha);
43 bucket -= upper;
44 bucket -= digit;
45
46 assert(bucket == lower);
47 assert(alpha.any() == false);
48 assert(bucket.any() == true);
49 assert(bucket.all() == false);
50
51 for (size_t i = bucket.find_first(); i != Bits::npos; i = bucket.find_next(i))
52 std::cout << (char)i;
53 std::cout << std::endl;
54
55 return 0;
56}

Callers

nothing calls this directly

Calls 8

find_firstMethod · 0.80
find_nextMethod · 0.80
swapMethod · 0.80
allMethod · 0.80
intersectsMethod · 0.45
containsMethod · 0.45
countMethod · 0.45
anyMethod · 0.45

Tested by

no test coverage detected