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

main
BezhenarAN 12 месяцев назад
Родитель b1b7dd3165
Сommit 076d26c690

@ -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;

@ -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

@ -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);
}
Загрузка…
Отмена
Сохранить