Unittest для индивидуального задания вариант 4

master
Dmitriy (BerezhkovDA) 12 месяцев назад
Родитель 99404971c0
Сommit 604455042f

@ -137,7 +137,6 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="histogram.h" />
<ClInclude Include="histogram_internal.h" />
<ClInclude Include="show_histogram.h" />
<ClInclude Include="svg.h" />
</ItemGroup>

@ -35,13 +35,10 @@
<ClInclude Include="histogram.h">
<Filter>Файлы заголовков</Filter>
</ClInclude>
<ClInclude Include="show_histogram.h">
<Filter>Файлы заголовков</Filter>
</ClInclude>
<ClInclude Include="histogram_internal.h">
<ClInclude Include="svg.h">
<Filter>Файлы заголовков</Filter>
</ClInclude>
<ClInclude Include="svg.h">
<ClInclude Include="show_histogram.h">
<Filter>Файлы заголовков</Filter>
</ClInclude>
</ItemGroup>

@ -21,6 +21,13 @@ void svg_rect(double x, double y, double width, double height,string stroke = "b
{
cout << "<rect x='" << x << "' y='" << y << "' width='" << width << "' height='" << height << "' fill='" << fill << "' stroke='" << stroke << "' />";
}
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<double>& bins, int number_cnt) {
const auto IMAGE_WIDTH = 400;
const auto IMAGE_HEIGHT = 300;
@ -40,7 +47,7 @@ void show_histogram_svg(const vector<double>& 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++;

@ -0,0 +1,2 @@
#pragma once
int GetProc(int number_cnt, int bin);

@ -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 или меню "Отладка" > "Запустить отладку"

@ -128,11 +128,13 @@
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\sem2_lab1\histogram.cpp" />
<ClCompile Include="..\sem2_lab1\svg.cpp" />
<ClCompile Include="unittest.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\sem2_lab1\histogram_internal.h" />
<ClInclude Include="doctest.h" />
<ClInclude Include="histogram_internal.h" />
<ClInclude Include="svg_internal.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">

@ -21,12 +21,18 @@
<ClCompile Include="..\sem2_lab1\histogram.cpp">
<Filter>Исходные файлы</Filter>
</ClCompile>
<ClCompile Include="..\sem2_lab1\svg.cpp">
<Filter>Исходные файлы</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\sem2_lab1\histogram_internal.h">
<ClInclude Include="doctest.h">
<Filter>Файлы заголовков</Filter>
</ClInclude>
<ClInclude Include="doctest.h">
<ClInclude Include="svg_internal.h">
<Filter>Файлы заголовков</Filter>
</ClInclude>
<ClInclude Include="histogram_internal.h">
<Filter>Файлы заголовков</Filter>
</ClInclude>
</ItemGroup>

Загрузка…
Отмена
Сохранить