модульные тесты для функции calculate_bin_height

Этот коммит содержится в:
2024-05-07 23:04:39 +03:00
родитель b1b7dd3165
Коммит 076d26c690
3 изменённых файлов: 81 добавлений и 1 удалений

Просмотреть файл

@@ -53,7 +53,7 @@ double calculate_bin_height (const std::vector<std::size_t>& bins, double USER_B
}
void
show_histogram_svg(const std::vector<std::size_t>& bins, std::size_t USER_BIN_HEIGHT) {
show_histogram_svg(const std::vector<std::size_t>& bins, double USER_BIN_HEIGHT) {
const auto IMAGE_WIDTH = 400;
const auto IMAGE_HEIGHT = 700;

8
svg_internal.h Обычный файл
Просмотреть файл

@@ -0,0 +1,8 @@
#ifndef SVG_INTERNAL_H_INCLUDED
#define SVG_INTERNAL_H_INCLUDED
#include <vector>
double calculate_bin_height (const std::vector<std::size_t>& bins, double USER_BIN_HEIGHT, double IMAGE_HEIGHT);
#endif // SVG_INTERNAL_H_INCLUDED

72
unittest_svg.cpp Обычный файл
Просмотреть файл

@@ -0,0 +1,72 @@
#define DOCTEST_CONFIG_NO_MULTITHREADING
#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
#include "doctest.h"
#include "svg_internal.h"
TEST_CASE("User height is zero") {
double IMAGE_HEIGHT = 700;
double USER_BIN_HEIGHT = 0;
auto BIN_HEIGHT = calculate_bin_height ({1,2}, USER_BIN_HEIGHT, IMAGE_HEIGHT);
CHECK(BIN_HEIGHT == 0);
}
TEST_CASE("empty array") {
std::vector<std::size_t> bins;
double IMAGE_HEIGHT = 700;
double USER_BIN_HEIGHT = 50;
auto BIN_HEIGHT = calculate_bin_height (bins, USER_BIN_HEIGHT, IMAGE_HEIGHT);
CHECK(BIN_HEIGHT == 50);
}
TEST_CASE("User height is over image_height") {
double IMAGE_HEIGHT = 700;
double USER_BIN_HEIGHT = 800;
auto BIN_HEIGHT = calculate_bin_height ({1,2}, USER_BIN_HEIGHT, IMAGE_HEIGHT);
CHECK(BIN_HEIGHT == 350);
}
TEST_CASE("User height is irrational") {
double IMAGE_HEIGHT = 700;
double USER_BIN_HEIGHT = 0.5;
auto BIN_HEIGHT = calculate_bin_height ({1,2}, USER_BIN_HEIGHT, IMAGE_HEIGHT);
CHECK(BIN_HEIGHT == 0.5);
}
TEST_CASE("User height is BIG irrational") {
double IMAGE_HEIGHT = 700;
double USER_BIN_HEIGHT = 1000.5;
auto BIN_HEIGHT = calculate_bin_height ({1,2}, USER_BIN_HEIGHT, IMAGE_HEIGHT);
CHECK(BIN_HEIGHT == 350);
}
TEST_CASE("negative numbers") {
double IMAGE_HEIGHT = 700;
double USER_BIN_HEIGHT = -5;
auto BIN_HEIGHT = calculate_bin_height ({1,2}, USER_BIN_HEIGHT, IMAGE_HEIGHT);
CHECK(BIN_HEIGHT == 0);
}
TEST_CASE("negative irrational numbers") {
double IMAGE_HEIGHT = 700;
double USER_BIN_HEIGHT = -0.5;
auto BIN_HEIGHT = calculate_bin_height ({1,2}, USER_BIN_HEIGHT, IMAGE_HEIGHT);
CHECK(BIN_HEIGHT == 0);
}
TEST_CASE("negative numbers") {
double IMAGE_HEIGHT = 700;
double USER_BIN_HEIGHT = 0;
auto BIN_HEIGHT = calculate_bin_height ({1,2}, USER_BIN_HEIGHT, IMAGE_HEIGHT);
CHECK(BIN_HEIGHT == 0);
}
TEST_CASE("big array") {
std::vector<std::size_t> bins(1000);
double IMAGE_HEIGHT = 700;
double USER_BIN_HEIGHT = 50;
auto BIN_HEIGHT = calculate_bin_height (bins, USER_BIN_HEIGHT, IMAGE_HEIGHT);
CHECK(BIN_HEIGHT == 0.7);
}