diff --git a/sem2_lab1/sem2_lab1.vcxproj b/sem2_lab1/sem2_lab1.vcxproj index f8d47d6..e229c97 100644 --- a/sem2_lab1/sem2_lab1.vcxproj +++ b/sem2_lab1/sem2_lab1.vcxproj @@ -137,7 +137,6 @@ - diff --git a/sem2_lab1/sem2_lab1.vcxproj.filters b/sem2_lab1/sem2_lab1.vcxproj.filters index 46a52d6..d5b05fc 100644 --- a/sem2_lab1/sem2_lab1.vcxproj.filters +++ b/sem2_lab1/sem2_lab1.vcxproj.filters @@ -35,13 +35,10 @@ Файлы заголовков - - Файлы заголовков - - + Файлы заголовков - + Файлы заголовков diff --git a/sem2_lab1/svg.cpp b/sem2_lab1/svg.cpp index 4eaf174..37241d4 100644 --- a/sem2_lab1/svg.cpp +++ b/sem2_lab1/svg.cpp @@ -21,6 +21,13 @@ void svg_rect(double x, double y, double width, double height,string stroke = "b { cout << ""; } +int GetProc(int number_cnt, int bin) +{ + if (number_cnt <= 0) return 0; + if (bin < 0) return 0; + return 100.0 * bin / number_cnt; +} + void show_histogram_svg(const vector& bins, int number_cnt) { const auto IMAGE_WIDTH = 400; const auto IMAGE_HEIGHT = 300; @@ -40,7 +47,7 @@ void show_histogram_svg(const vector& bins, int number_cnt) { for (size_t bin : bins) { const double bin_width = k * bin; svg_text(TEXT_LEFT, top + TEXT_BASELINE, to_string(bin)); - svg_text(IMAGE_WIDTH - TEXT_WIDTH + TEXT_LEFT, top + TEXT_BASELINE, to_string((int)((100.0 / (double)number_cnt) * (double)bin)) + "%"); + svg_text(IMAGE_WIDTH - TEXT_WIDTH + TEXT_LEFT, top + TEXT_BASELINE, to_string(GetProc(number_cnt,bin)) + "%"); svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT,"black",colors[color_ptr]); top += BIN_HEIGHT; color_ptr++; diff --git a/sem2_lab1/histogram_internal.h b/unittest/histogram_internal.h similarity index 100% rename from sem2_lab1/histogram_internal.h rename to unittest/histogram_internal.h diff --git a/unittest/svg_internal.h b/unittest/svg_internal.h new file mode 100644 index 0000000..f12ca1b --- /dev/null +++ b/unittest/svg_internal.h @@ -0,0 +1,2 @@ +#pragma once +int GetProc(int number_cnt, int bin); \ No newline at end of file diff --git a/unittest/unittest.cpp b/unittest/unittest.cpp index 33bc40c..4a8a610 100644 --- a/unittest/unittest.cpp +++ b/unittest/unittest.cpp @@ -4,7 +4,8 @@ #define DOCTEST_CONFIG_NO_MULTITHREADING #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN #include "doctest.h" -#include "../sem2_lab1/histogram_internal.h" +#include "histogram_internal.h" +#include "svg_internal.h" TEST_CASE("distinct positive numbers") { double min = 0; @@ -44,6 +45,35 @@ TEST_CASE("equal items") { CHECK(max == -6); } + +TEST_CASE("Test SVG normal") { + int numb_cnt = 100; + int bin = 44; + int Proc = GetProc(numb_cnt, bin); + CHECK(Proc == 44); +} + +TEST_CASE("Test SVG zero") { + int numb_cnt = 0; + int bin = 33; + int Proc = GetProc(numb_cnt, bin); + CHECK(Proc == 0); +} + +TEST_CASE("Test SVG less zero 1") { + int numb_cnt = -23; + int bin = 55; + int Proc = GetProc(numb_cnt, bin); + CHECK(Proc == 0); +} + +TEST_CASE("Test SVG less zero 2") { + int numb_cnt = 100; + int bin = -23; + int Proc = GetProc(numb_cnt, bin); + CHECK(Proc == 0); +} + // Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки" // Отладка программы: F5 или меню "Отладка" > "Запустить отладку" diff --git a/unittest/unittest.vcxproj b/unittest/unittest.vcxproj index a7bdf39..e14b82f 100644 --- a/unittest/unittest.vcxproj +++ b/unittest/unittest.vcxproj @@ -128,11 +128,13 @@ + - + + diff --git a/unittest/unittest.vcxproj.filters b/unittest/unittest.vcxproj.filters index 75d3831..b482a01 100644 --- a/unittest/unittest.vcxproj.filters +++ b/unittest/unittest.vcxproj.filters @@ -21,12 +21,18 @@ Исходные файлы + + Исходные файлы + - + Файлы заголовков - + + Файлы заголовков + + Файлы заголовков