From da84a494ff19728a386145484678fa5d0dda4fd5 Mon Sep 17 00:00:00 2001 From: "Alice (SemenovIA)" Date: Mon, 28 Oct 2024 02:08:15 +0300 Subject: [PATCH] code: refactoring --- project/main.cpp | 37 ++++++++++++++++++++++++------------- project/show_histogram.cpp | 2 +- project/unittest.cbp | 2 ++ project/unittest.cpp | 1 - 4 files changed, 27 insertions(+), 15 deletions(-) diff --git a/project/main.cpp b/project/main.cpp index d98e990..7e0515d 100644 --- a/project/main.cpp +++ b/project/main.cpp @@ -3,6 +3,7 @@ #include "histogram.h" #include "svg.h" #include "show_svg.h" +#include using namespace std; struct Input { @@ -13,29 +14,39 @@ struct Input { }; Input -input_data() { +input_data(istream& stream, bool prompt) { + size_t number_count; + if (prompt) { + cerr << "Enter number count: "; + } + stream >> number_count; + Input in; - cerr << "Enter number count: "; - cin >> in.number_count; + in.numbers.resize(number_count); + + + if (prompt){ + cerr << "Enter numbers: "; + } + for (size_t i = 0; i < number_count; i++) + { + stream >> in.numbers[i]; + } - vector numbers(in.number_count); - in.numbers.resize(in.number_count); - for (size_t i = 0; i < in.number_count; i++) { - cin >> in.numbers[i]; + if (prompt){ + cerr << "Enter number of bins: "; } + stream >> in.bin_count; - size_t bin_count; - cerr << "Enter bin count: "; - cin >> in.bin_count; - size_t max_count; - in.max_count = 0; return in; } int main() { - Input in = input_data(); + curl_global_init(CURL_GLOBAL_ALL); + bool prompt = true; + auto in = input_data(cin, prompt); vector bins = make_histogram(in.numbers, in.bin_count, in.number_count, in.max_count); show_histogram_svg(bins); return 0; diff --git a/project/show_histogram.cpp b/project/show_histogram.cpp index 309dec0..8c0097f 100644 --- a/project/show_histogram.cpp +++ b/project/show_histogram.cpp @@ -29,7 +29,7 @@ show_histogram_svg(const vector& bins) { } } for (size_t bin : bins) { - const double bin_width = BLOCK_WIDTH * bin; + const double bin_width = (IMAGE_WIDTH - TEXT_WIDTH) * (bin) / (longest); if (bin == longest){ svg_text(TEXT_LEFT, top + TEXT_BASELINE, to_string(bin)); svg_rect(TEXT_WIDTH, top, IMAGE_WIDTH - TEXT_WIDTH, BIN_HEIGHT, "#000000", "#ff00a2"); diff --git a/project/unittest.cbp b/project/unittest.cbp index 534f497..52ecef4 100644 --- a/project/unittest.cbp +++ b/project/unittest.cbp @@ -33,6 +33,8 @@ + + diff --git a/project/unittest.cpp b/project/unittest.cpp index fe025be..1b3e8de 100644 --- a/project/unittest.cpp +++ b/project/unittest.cpp @@ -2,7 +2,6 @@ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN #include "doctest.h" #include "histogram_internal.h" -#include "percent.h" TEST_CASE("distinct empty") { double min = 0;