bitarray.cpp
bitarray.h
lab1_tests.cpp
bitarray.cpp:
Code: Select all
#define COUNT_BITS (sizeof(unsigned long) * 8)
#define SIZE_ARRAY ceil(size()/(sizeof(unsigned long) * 8.))
BitArray::BitArray() {
num_bits_ = 0;
bit_arr_ = std::vector(SIZE_ARRAY, 0);
}
BitArray::~BitArray() = default;
BitArray::BitArray(int num_bits, unsigned long value) {
if (num_bits < 0) {
throw std::invalid_argument("Number of elements must be a positive number");
}
num_bits_ = num_bits;
bit_arr_ = std::vector(SIZE_ARRAY, 0);
for (size_t i = 0; i < COUNT_BITS; i ++) {
bit_arr_[0] += ((value >> i) & 1) = 0) {
symb = std::to_string(operator[](i));
} else {
symb = "X";
}
str_bit_arr.append(symb + "|");
if (i % 8 == 0) {
str_bit_arr.append(" ");
}
if (i % 32 == 0) {
str_bit_arr.append("\n");
}
}
return str_bit_arr;
}
Code: Select all
#include
#include "bitarray.h"
#include
TEST(BitArrayTest, ConstructorDefault) {
BitArray arr;
EXPECT_EQ(arr.size(), 0);
EXPECT_TRUE(arr.empty());
}
TEST(BitArrayTest, ConstructorWithParameters) {
BitArray arr1(6, 2);
EXPECT_EQ(arr1.size(), 4);
EXPECT_EQ(arr1[0], true);
EXPECT_EQ(arr1[1], false);
EXPECT_EQ(arr1[2], true);
EXPECT_EQ(arr1[3], false);
std::cout