#pragma once

#include <string>

/**
 * @brief The StatisticalClass class
 */
class StatisticalClass
{
public:
    StatisticalClass(
        double min, double max, int count = 0,
        const std::string& name = std::string());

    std::string name() const;
    double min() const;
    double max() const;
    int count() const;

    double center() const;
    bool isMember(double value) const;
    double interpolate(double value, double minY, double maxY) const;
    std::string toString() const;

    void operator++(int);
    void operator--(int);
    void operator+=(int count);
    void operator-=(int count);

private:
    double min_;
    double max_;
    int count_;
    std::string name_;
};
