import { funktionDoppelteInterpolation } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionDoppelteInterpolation.js";

export function funktionKorrekturfaktorAbweichendeErzeugerAufwandszahlenT109(suchSpalte: number, datenZeile: number) {

    if (suchSpalte < 0.1) { suchSpalte = 0.1; }
    if (suchSpalte > 1) { suchSpalte = 1; }
    if (datenZeile < 1.05) { datenZeile = 1.05; }
    if (datenZeile > 1.2) { datenZeile = 1.2; }

    const dataBoxHP = [
        { SuchSpalte: [0.1], DatenSpalte: [0.98, 1.02, 1.06, 1.11] },
        { SuchSpalte: [0.15], DatenSpalte: [0.98, 1.02, 1.06, 1.1] },
        { SuchSpalte: [0.2], DatenSpalte: [0.98, 1.02, 1.06, 1.1] },
        { SuchSpalte: [0.25], DatenSpalte: [0.98, 1.02, 1.06, 1.09] },
        { SuchSpalte: [0.3], DatenSpalte: [0.98, 1.02, 1.05, 1.09] },
        { SuchSpalte: [0.35], DatenSpalte: [0.98, 1.02, 1.05, 1.08] },
        { SuchSpalte: [0.4], DatenSpalte: [0.98, 1.02, 1.05, 1.08] },
        { SuchSpalte: [0.45], DatenSpalte: [0.99, 1.01, 1.04, 1.07] },
        { SuchSpalte: [0.5], DatenSpalte: [0.99, 1.01, 1.04, 1.07] },
        { SuchSpalte: [0.55], DatenSpalte: [0.99, 1.01, 1.04, 1.06] },
        { SuchSpalte: [0.6], DatenSpalte: [0.99, 1.01, 1.03, 1.05] },
        { SuchSpalte: [0.65], DatenSpalte: [0.99, 1.01, 1.03, 1.05] },
        { SuchSpalte: [0.7], DatenSpalte: [0.99, 1.01, 1.03, 1.04] },
        { SuchSpalte: [0.75], DatenSpalte: [0.99, 1.01, 1.02, 1.04] },
        { SuchSpalte: [0.8], DatenSpalte: [0.99, 1.01, 1.02, 1.03] },
        { SuchSpalte: [0.85], DatenSpalte: [1, 1, 1.01, 1.02] },
        { SuchSpalte: [0.9], DatenSpalte: [1, 1, 1.01, 1.01] },
        { SuchSpalte: [0.95], DatenSpalte: [1, 1, 1, 1.01] },
        { SuchSpalte: [1], DatenSpalte: [1, 1, 1, 1] }
    ];

    const dataBoxCHP = [
        { SuchSpalte: [0.1], DatenSpalte: [0.99, 1, 1, 1.01] },
        { SuchSpalte: [0.15], DatenSpalte: [0.99, 1, 1.01, 1.02] },
        { SuchSpalte: [0.2], DatenSpalte: [0.99, 1, 1.01, 1.02] },
        { SuchSpalte: [0.25], DatenSpalte: [0.98, 1, 1.01, 1.03] },
        { SuchSpalte: [0.3], DatenSpalte: [0.98, 1, 1.01, 1.03] },
        { SuchSpalte: [0.35], DatenSpalte: [0.97, 1, 1.02, 1.04] },
        { SuchSpalte: [0.4], DatenSpalte: [0.97, 0.99, 1.02, 1.04] },
        { SuchSpalte: [0.45], DatenSpalte: [0.97, 0.99, 1.02, 1.05] },
        { SuchSpalte: [0.5], DatenSpalte: [0.96, 0.99, 1.02, 1.06] },
        { SuchSpalte: [0.55], DatenSpalte: [0.96, 0.99, 1.03, 1.06] },
        { SuchSpalte: [0.6], DatenSpalte: [0.95, 0.99, 1.03, 1.07] },
        { SuchSpalte: [0.65], DatenSpalte: [0.95, 0.99, 1.03, 1.08] },
        { SuchSpalte: [0.7], DatenSpalte: [0.94, 0.99, 1.04, 1.08] },
        { SuchSpalte: [0.75], DatenSpalte: [0.94, 0.99, 1.04, 1.09] },
        { SuchSpalte: [0.8], DatenSpalte: [0.93, 0.99, 1.04, 1.1] },
        { SuchSpalte: [0.85], DatenSpalte: [0.93, 0.99, 1.05, 1.11] },
        { SuchSpalte: [0.9], DatenSpalte: [0.92, 0.99, 1.05, 1.11] },
        { SuchSpalte: [0.95], DatenSpalte: [0.92, 0.99, 1.05, 1.12] },
        { SuchSpalte: [1], DatenSpalte: [0.91, 0.98, 1.06, 1.13] }
    ];

    const dataZeile = [ { DatenZeile: [1.05,1.1,1.15,1.2] } ];

    const KorrekturfaktorAbweichendeErzeugerAufwandszahlenHP = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBoxHP);
    const KorrekturfaktorAbweichendeErzeugerAufwandszahlenCHP = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBoxCHP);
    
    return {
        KorrekturfaktorAbweichendeErzeugerAufwandszahlenHP,
        KorrekturfaktorAbweichendeErzeugerAufwandszahlenCHP
    }

}