public void RunTest()
        {
            var testdataPaths = Directory.EnumerateFiles(Path.GetDirectoryName(typeof(Test).GetTypeInfo().Assembly.Location))
                                .Where(path => Path.GetFileName(path).StartsWith("testdata-") && Path.GetExtension(path) == ".csv");

            int files = 0;
            int tests = 0;

            foreach (string path in testdataPaths)
            {
                foreach (var line in ReadCsvTable(path))
                {
                    var e = new Eingabeparameter
                    {
                        STKL     = int.Parse(line["STKL"], _culture),
                        af       = int.Parse(line["AF"], _culture),
                        f        = double.Parse(line["F"], _culture),
                        ZKF      = decimal.Parse(line["ZKF"], _culture),
                        AJAHR    = int.Parse(line["AJAHR"], _culture),
                        ALTER1   = int.Parse(line["ALTER1"], _culture),
                        RE4      = decimal.Parse(line["RE4"], _culture),
                        VBEZ     = decimal.Parse(line["VBEZ"], _culture),
                        LZZ      = int.Parse(line["LZZ"], _culture),
                        KRV      = int.Parse(line["KRV"], _culture),
                        KVZ      = decimal.Parse(line["KVZ"], _culture),
                        PKPV     = decimal.Parse(line["PKPV"], _culture),
                        PKV      = int.Parse(line["PKV"], _culture),
                        PVS      = int.Parse(line["PVS"], _culture),
                        PVZ      = int.Parse(line["PVZ"], _culture),
                        R        = int.Parse(line["R"], _culture),
                        LZZFREIB = decimal.Parse(line["LZZFREIB"], _culture),
                        LZZHINZU = decimal.Parse(line["LZZHINZU"], _culture),
                        VJAHR    = int.Parse(line["VJAHR"], _culture),
                        VBEZM    = decimal.Parse(line["VBEZM"], _culture),
                        VBEZS    = decimal.Parse(line["VBEZS"], _culture),
                        ZMVB     = int.Parse(line["ZMVB"], _culture),
                        JRE4     = decimal.Parse(line["JRE4"], _culture),
                        JVBEZ    = decimal.Parse(line["JVBEZ"], _culture),
                        JFREIB   = decimal.Parse(line["JFREIB"], _culture),
                        JHINZU   = decimal.Parse(line["JHINZU"], _culture),
                        JRE4ENT  = decimal.Parse(line["JRE4ENT"], _culture),
                        SONSTB   = decimal.Parse(line["SONSTB"], _culture),
                        STERBE   = decimal.Parse(line["STERBE"], _culture),
                        VBS      = decimal.Parse(line["VBS"], _culture),
                        SONSTENT = decimal.Parse(line["SONSTENT"], _culture),
                        VKAPA    = decimal.Parse(line["VKAPA"], _culture),
                        VMT      = decimal.Parse(line["VMT"], _culture),
                        ENTSCH   = decimal.Parse(line["ENTSCH"], _culture)
                    };

                    var berechnung = new Berechnung(e);
                    berechnung.Lohnsteuer();

                    var a = berechnung.Ausgabeparameter;

                    Assert.Equal(decimal.Parse(line["LSTLZZ"], _culture), a.LSTLZZ);

                    // Optionale Tests je nach Existenz des Feldes in der CSV
                    OptionalTest(line, "SOLZLZZ", a.SOLZLZZ);
                    OptionalTest(line, "BK", a.BK);
                    OptionalTest(line, "STS", a.STS);
                    OptionalTest(line, "SOLZS", a.SOLZS);
                    OptionalTest(line, "BKS", a.BKS);
                    OptionalTest(line, "STV", a.STV);
                    OptionalTest(line, "SOLZV", a.SOLZV);
                    OptionalTest(line, "BKV", a.BKV);
                    OptionalTest(line, "VKVLZZ", a.VKVLZZ);
                    OptionalTest(line, "VKVSONST", a.VKVSONST);

                    tests++;
                }

                files++;
            }

            Assert.NotEqual(0, tests);

            Console.WriteLine($"{tests} Berechnungstests aus {files} Testdateien durchgeführt");
        }