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

void show_histogram_text(const std::vector <double> &bins)
{
    const size_t SCREEN_WIDTH = 80;
    const size_t MAX_STAR = SCREEN_WIDTH - 3 - 1;
    size_t max_star_search = bins[-1];

    if (max_star_search > MAX_STAR)
    {
        for (size_t x : bins)
        {
            size_t height = MAX_STAR * (static_cast<double>(x) / max_star_search);
            if (x < 100)
            {
                std::cout << " ";
                if (x < 10)
                {
                    std::cout << " ";
                }
            }
            std::cout << x << "|";
            for (size_t i = 0; i < height; i++)
            {
                std::cout << "*";
            }
            std::cout << std::endl;
        }
    }
    else
    {
        for (size_t x : bins)
        {
            if (x < 100)
            {
                std::cout << " ";
                if (x < 10)
                {
                    std::cout << " ";
                }
            }
            std::cout << x << "|";
            for (size_t i = 0; i < x; i++)
            {
                std::cout << "*";
            }
            std::cout << std::endl;
        }
    }
}