Anonymous
Почему результаты ручного тестирования не совпадают с результатами модульного тестирования?
Сообщение
Anonymous » 16 янв 2025, 15:21
Дана задача: написать методы класса BitArray на языке C++. Проверьте каждый такой метод с помощью Google-теста. Вот код, который я написал (полный список, если приведенного ниже кода недостаточно для понимания проблемы):
bitarray.cpp
bitarray.h
lab1_tests.cpp
bitarray.cpp:
Код: Выделить всё
#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;
}
lab1_tests.cpp
Код: Выделить всё
#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
Подробнее здесь: [url]https://stackoverflow.com/questions/79361045/why-are-the-results-of-manual-testing-not-the-same-as-the-results-of-unit-testin[/url]
1737030100
Anonymous
Дана задача: написать методы класса BitArray на языке C++. Проверьте каждый такой метод с помощью Google-теста. Вот код, который я написал (полный список, если приведенного ниже кода недостаточно для понимания проблемы): bitarray.cpp bitarray.h lab1_tests.cpp bitarray.cpp: [code]#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] lab1_tests.cpp [code]#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 Подробнее здесь: [url]https://stackoverflow.com/questions/79361045/why-are-the-results-of-manual-testing-not-the-same-as-the-results-of-unit-testin[/url]