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 @@
Исходные файлы
+
+ Исходные файлы
+
-
+
Файлы заголовков
-
+
+ Файлы заголовков
+
+
Файлы заголовков