#include "svg.h"

void
show_histogram_svg(const vector<size_t>& bins) {
    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;
    svg_begin(IMAGE_WIDTH, IMAGE_HEIGHT);
    double top = 0;
    size_t longest;
    if (!bins.empty()) {
        longest = bins[0];
    } else {
        longest = 0;
    }
    for (size_t bin : bins) {
        if (bin > longest) {
            longest = bin;
        }
    }
    for (size_t bin : bins) {
            const double bin_width = BLOCK_WIDTH * bin;
            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");
                top += BIN_HEIGHT;
            } else{
                svg_text(TEXT_LEFT, top + TEXT_BASELINE, to_string(bin));
                svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT, "#000000", "#ff00a2");
                top += BIN_HEIGHT;
            }
    }
    svg_end();
}