LCOV - code coverage report
Current view: top level - estd/examples - bitset.cpp (source / functions) Hit Total Coverage
Test: coverage.info Lines: 42 42 100.0 %
Date: 2025-01-20 13:53:09 Functions: 5 6 83.3 %

          Line data    Source code
       1             : // Copyright 2024 Accenture.
       2             : 
       3             : #include "estd/bitset.h"
       4             : 
       5             : #include <gtest/gtest.h>
       6             : 
       7             : namespace
       8             : {
       9           1 : void example_construct()
      10             : {
      11             :     // EXAMPLE_START construct
      12           1 :     ::estd::bitset<16> a(0x0000);
      13           1 :     a[0] = 1;               // Bitset now equals 0x0001
      14           1 :     ::estd::bitset<1000> b; // Bitsets can have arbitrarily large size
      15             :     // EXAMPLE_END construct
      16           1 : }
      17             : 
      18           1 : void example_operators()
      19             : {
      20             :     // EXAMPLE_START operators
      21           1 :     ::estd::bitset<16> a(0x00FF);
      22           1 :     ::estd::bitset<16> b(0x0F0F);
      23           1 :     a = ~a;                             // a now equals 0xFF00
      24           1 :     a &= b;                             // a now equals 0x0F00
      25           1 :     a = b | ::estd::bitset<16>(0xFF00); // a now equals 0xFF0F
      26             :     // EXAMPLE_END operators
      27             : }
      28             : 
      29           1 : void example_element_access()
      30             : {
      31             :     // EXAMPLE_START element_access
      32           1 :     ::estd::bitset<16> a(0x0000);
      33           1 :     a[0] = true;  // a now equals 0x0001
      34           1 :     a[4].flip();  // a now equals 0x0011
      35           1 :     a[0] = ~a[0]; // a now equals 0x0010
      36             :     // EXAMPLE_END element_access
      37           1 : }
      38             : 
      39           1 : void example_operations()
      40             : {
      41             :     // EXAMPLE_START operations
      42           1 :     ::estd::bitset<16> a; // a equals 0x0000
      43           1 :     a.any();              // False
      44           1 :     a.all();              // False
      45           1 :     a.none();             // True
      46             : 
      47           1 :     a.set(4); // a equals 0x0010
      48           1 :     a.any();  // True
      49           1 :     a.all();  // False
      50           1 :     a.none(); // False
      51             : 
      52           1 :     a.value(); // returns 2
      53           1 :     a.flip();  // a equals 0xFFEF
      54           1 :     a.test(0); // True
      55             : 
      56           1 :     a.set();  // a equals 0xFFFF
      57           1 :     a.any();  // True
      58           1 :     a.all();  // True
      59           1 :     a.none(); // False
      60             : 
      61           1 :     a.reset(); // a equals 0x0000
      62           1 :     a.size();  // returns 16
      63             :     // EXAMPLE_END operations
      64           1 : }
      65             : 
      66             : } // namespace
      67             : 
      68           3 : TEST(bitset_test, run_examples)
      69             : {
      70           1 :     example_construct();
      71           1 :     example_operators();
      72           1 :     example_element_access();
      73           1 :     example_operations();
      74           1 : }

Generated by: LCOV version 1.14