export function funktionEinfacheInterpolation(gegebenerWert: number, gegebeneZeile: string, dataset: any) {

    function interpolate(x: number, x1: number, y1: number, x2: number, y2: number): number {
        return y1 + ((x - x1) * (y2 - y1)) / (x2 - x1);
    }

    function getInterpolatedValue(gegebenerWert: number, gegebeneZeile: string) {
        const SuchZeile = dataset[0].DatenSpalte;
        const systemValues = dataset.find(item => item.SuchSpalte.includes(gegebeneZeile))?.DatenSpalte;

        if (!systemValues) {
            throw new Error(`${gegebeneZeile} nicht gefunden`);
        }

        for (let i = 0; i <  SuchZeile.length - 1; i++) {
            if (gegebenerWert >=  SuchZeile[i] && gegebenerWert <=  SuchZeile[i + 1]) {
                return interpolate(gegebenerWert,  SuchZeile[i], systemValues[i],  SuchZeile[i + 1], systemValues[i + 1]);
            }
        }

        throw new Error(`${gegebenerWert} außerhalb des Bereichs`);
    }

    const interpolierterWert = getInterpolatedValue(gegebenerWert, gegebeneZeile);

    return interpolierterWert;
    
}  