Сравнить коммиты

...

3 Коммитов

@ -3,6 +3,7 @@
#include "histogram.h"
#include "text.h"
#include "histogram_internal.h"
#include "svg.h"
using namespace std;
@ -29,6 +30,6 @@ input_data() {
int main() {
Input in = input_data();
auto bins = make_histogram(in.numbers, in.bin_count);
show_histogram_text(bins);
show_histogram_svg(bins);
return 0;
}

@ -0,0 +1,52 @@
#include <iostream>
#include <vector>
#include <string>
using namespace std;
const auto IMAGE_WIDTH = 400;
const auto IMAGE_HEIGHT = 300;
const auto TEXT_LEFT = 20;
const auto TEXT_BASELINE = 20;
const auto TEXT_WIDTH = 50;
const auto BIN_HEIGHT = 30;
const auto BLOCK_WIDTH = 10;
void
svg_begin(double width, double height) {
cout << "<?xml version='1.0' encoding='UTF-8'?>\n";
cout << "<svg ";
cout << "width='" << width << "' ";
cout << "height='" << height << "' ";
cout << "viewBox='0 0 " << width << " " << height << "' ";
cout << "xmlns='http://www.w3.org/2000/svg'>\n";
}
void
svg_end() {
cout << "</svg>\n";
}
void
svg_text(double left, double baseline, string text) {
cout << "<text x='" << left << "' y='"<< baseline <<"' >"<< text <<"</text> \n";
}
void
svg_rect(double x, double y, double width, double height) {
cout << "<rect x='" << x << "' y='" << y << "' width='" << width << "' height='" << height << "' stroke='#6600CC' fill='#aaffaa' /> \n";
}
void
show_histogram_svg(const vector<size_t>& bins) {
double top = 0;
svg_begin(IMAGE_WIDTH, IMAGE_HEIGHT);
for (size_t bin : bins) {
const double bin_width = BLOCK_WIDTH * bin;
svg_text(TEXT_LEFT, top + TEXT_BASELINE, to_string(bin));
svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT);
top += BIN_HEIGHT;
}
svg_end();
}

@ -0,0 +1,5 @@
#pragma once
#include <vector>
void
show_histogram_svg(const std::vector<size_t>& bins);

@ -10,3 +10,17 @@ TEST_CASE("distinct positive numbers") {
CHECK(min == 1);
CHECK(max == 2);
}
TEST_CASE("check if vector is only one in length") {
double min = 3;
double max = 3;
find_minmax({ 3 }, min, max);
CHECK(min == 3);
CHECK(max == 3);
}
TEST_CASE("all numbers are same") {
double min = 1;
double max = 1;
find_minmax({ 1, 1, 1, 1, 1, 1, 1, }, min, max);
CHECK(min == 1);
CHECK(max == 1);
}

Двоичный файл не отображается.

@ -1,4 +1,2 @@
 histogram.cpp
unittest.cpp
Создание кода...
 unittest.cpp
cs-project3.vcxproj -> C:\Users\justygrass\Desktop\progs\2_sem\3la\cs-project3\unittest\x64\Debug\cs-project3.exe

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичные данные
unittest/cs-project3/x64/Debug/unittest.obj

Двоичный файл не отображается.

Двоичные данные
unittest/cs-project3/x64/Debug/vc143.idb

Двоичный файл не отображается.

Двоичные данные
unittest/cs-project3/x64/Debug/vc143.pdb

Двоичный файл не отображается.

Двоичные данные
unittest/x64/Debug/cs-project3.pdb

Двоичный файл не отображается.
Загрузка…
Отмена
Сохранить