import { describe, expect, it } from 'vitest'; import { QUELLEN } from '@/domain/rilsa/quellen'; import { settingFields, settingFieldsByQuelle } from '@/domain/rilsa/settings'; /* * Befunde 27 und 28, behoben in Fassung 5.10.0: zwei Kennwerte, die im * gedruckten Fundstellenverzeichnis als gesicherte RiLSA-Werte erschienen, * obwohl das Programm an anderer Stelle derselben Planunterlage das Gegenteil * sagt. Beide Male ist die Zahl richtig und nur ihre Herkunft falsch. */ describe('Befund 27 - Anfahrverlustzeit', () => { it('erscheint nicht als gesicherter RiLSA-Wert', () => { const feld = settingFields().find((f) => f.key === 'startUpLostTime'); expect(feld).toBeDefined(); expect(feld!.quelle.pruefstand).not.toBe('gesichert'); expect(feld!.quelle.regelwerk).not.toContain('RiLSA'); }); it('laesst die Umlaufzeitquelle nur noch das belegen, was ihr Hinweis belegt', () => { /* * Der Hinweis von 'rilsa-umlaufzeit' nennt allein den zulaessigen Bereich * von 30 bis 120 s. Sachgebiet und Verwendung versprachen daneben die * Verlustzeiten - und die Gruppenkopfzeile des Verzeichnisses stempelte * die Anfahrverlustzeit damit auf "gesichert". */ const quelle = QUELLEN['rilsa-umlaufzeit']; expect(quelle.sachgebiet).not.toContain('Verlustzeit'); expect(quelle.verwendung).not.toContain('Verlustzeit'); const gruppe = settingFieldsByQuelle().find((g) => g.schluessel === 'rilsa-umlaufzeit'); expect(gruppe).toBeDefined(); expect(gruppe!.felder.map((f) => f.key)).not.toContain('startUpLostTime'); }); it('nennt in der eigenen Quelle, woher die 2 s stammen und was zu tun ist', () => { const feld = settingFields().find((f) => f.key === 'startUpLostTime')!; expect(feld.quelle.hinweis).toBeDefined(); expect(feld.quelle.hinweis!).toContain('Anfahrverlustzeit'); expect(feld.quelle.verwendung).toContain('Verlustzeit'); }); }); describe('Befund 28 - Raeumgeschwindigkeit OePNV ohne Vmax', () => { it('erscheint nicht als gesicherter RiLSA-Wert', () => { const feld = settingFields().find((f) => f.key === 'clearingSpeedOepnv'); expect(feld).toBeDefined(); expect(feld!.quelle.pruefstand).not.toBe('gesichert'); expect(feld!.quelle.regelwerk).not.toContain('RiLSA'); }); it('nennt den Rueckfallwert so, wie ihn der Pruefbericht nennt: Ansatz dieses Programms', () => { // engine.ts haengt an die Meldung 'oepnv-vmax-fehlt' an, der Rueckfallwert // ohne Vmax sei "ein Ansatz dieses Programms". Das Fundstellenverzeichnis // desselben Ausdrucks schrieb ihn der RiLSA zu. const feld = settingFields().find((f) => f.key === 'clearingSpeedOepnv')!; expect(feld.quelle.kurz).toBe('Programmansatz'); }); it('laesst den Regelfall Vmax/3,6 unter der RiLSA-Quelle stehen', () => { // Nur der Rueckfallwert ist ein Programmansatz. Der Regelfall - vr = Vmax/3,6 - // ist woertlich belegt und bleibt in der Aufzaehlung der Zwischenzeitquelle. expect(QUELLEN['rilsa-zwischenzeiten'].pruefstand).toBe('gesichert'); expect(QUELLEN['rilsa-zwischenzeiten'].hinweis!).toContain('Vmax/3,6'); }); });