export default class Tool {
    static scale(input, input_Min, input_Max, scaled_Min, scaled_Max) {
        const rate = (scaled_Max - scaled_Min) / (input_Max - input_Min);
        return (input - input_Min) * rate + scaled_Min;
    }
    static is_Numerical(text) {
        for (let i = 0; i < text.length; i++) {
            const code = text.charCodeAt(i);
            if (!(code > 47 && code < 58)) {
                return false;
            }
        }
        return true;
    }
    static is_Alpha(text) {
        for (let i = 0; i < text.length; i++) {
            const code = text.charCodeAt(i);
            if (!(code > 64 && code < 91) &&
                !(code > 96 && code < 123) &&
                !(code == 32)) {
                return false;
            }
        }
        return true;
    }
    static is_Latin(text) {
        for (let i = 0; i < text.length; i++) {
            const code = text.charCodeAt(i);
            if (!(code > 31 && code < 127)) {
                return false;
            }
        }
        return true;
    }
    static roman_Numeral(value) {
        var digits = String(+value).split(""), key = [
            "",
            "C",
            "CC",
            "CCC",
            "CD",
            "D",
            "DC",
            "DCC",
            "DCCC",
            "CM",
            "",
            "X",
            "XX",
            "XXX",
            "XL",
            "L",
            "LX",
            "LXX",
            "LXXX",
            "XC",
            "",
            "I",
            "II",
            "III",
            "IV",
            "V",
            "VI",
            "VII",
            "VIII",
            "IX",
        ], roman = "", i = 3;
        while (i--)
            roman = (key[+digits.pop() + i * 10] || "") + roman;
        return Array(+digits.join("") + 1).join("M") + roman;
    }
    static copy(value) {
        return JSON.parse(JSON.stringify(value));
    }
    static hours_From_Now(time) {
        return (Date.parse(new Date().toISOString()) - time) / 3600000;
    }
    static seconds_From_Now(time) {
        return (Date.parse(new Date().toISOString()) - time) / 1000;
    }
}
