#include <iostream>
#include <vector>
#include "histogram.h"
#include "text.h"
#include "svg.h"

using namespace std;

struct Input
{
    vector<double> numbers;
    size_t bin_count{};
};

Input
input_data(istream& in, bool prompt)
{
    Input cin;
    string numbCntPrmt, numbsPrmt, binCntPrmt;
    if (prompt == true) {
        numbCntPrmt = "Enter number count: ";
        numbsPrmt = "Enter numbers: ";
        binCntPrmt = "Enter bin count: ";
    }
    size_t number_count;
    cerr << numbCntPrmt;
    in >> number_count;
    cin.numbers.resize(number_count);

    vector<double> numbers(number_count);

    cerr << numbsPrmt;
    for (size_t i = 0; i < number_count; i++)
    {
        in >> cin.numbers[i];
    }

    cerr << binCntPrmt;
    in >> cin.bin_count;
    return cin;
}

int main()
{
    size_t max_count;
    auto in = input_data(cin, true);
    auto bins = make_histogram(in.numbers, in.bin_count);
    show_histogram_svg(bins);
}