lsa-planer

LSA-Planer Professional – Planungssoftware für Lichtsignalanlagen nach RiLSA 2015 und § 45 StVO. EUPL-1.2.

/ tests domain kennwertherkunft.test.ts

3,1 KB Rohdatei
tests/domain/kennwertherkunft.test.ts — 65 Zeilen
1 import { describe, expect, it } from 'vitest';
2 import { QUELLEN } from '@/domain/rilsa/quellen';
3 import { settingFields, settingFieldsByQuelle } from '@/domain/rilsa/settings';
4
5 /*
6 * Befunde 27 und 28, behoben in Fassung 5.10.0: zwei Kennwerte, die im
7 * gedruckten Fundstellenverzeichnis als gesicherte RiLSA-Werte erschienen,
8 * obwohl das Programm an anderer Stelle derselben Planunterlage das Gegenteil
9 * sagt. Beide Male ist die Zahl richtig und nur ihre Herkunft falsch.
10 */
11
12 describe('Befund 27 - Anfahrverlustzeit', () => {
13 it('erscheint nicht als gesicherter RiLSA-Wert', () => {
14 const feld = settingFields().find((f) => f.key === 'startUpLostTime');
15 expect(feld).toBeDefined();
16 expect(feld!.quelle.pruefstand).not.toBe('gesichert');
17 expect(feld!.quelle.regelwerk).not.toContain('RiLSA');
18 });
19
20 it('laesst die Umlaufzeitquelle nur noch das belegen, was ihr Hinweis belegt', () => {
21 /*
22 * Der Hinweis von 'rilsa-umlaufzeit' nennt allein den zulaessigen Bereich
23 * von 30 bis 120 s. Sachgebiet und Verwendung versprachen daneben die
24 * Verlustzeiten - und die Gruppenkopfzeile des Verzeichnisses stempelte
25 * die Anfahrverlustzeit damit auf "gesichert".
26 */
27 const quelle = QUELLEN['rilsa-umlaufzeit'];
28 expect(quelle.sachgebiet).not.toContain('Verlustzeit');
29 expect(quelle.verwendung).not.toContain('Verlustzeit');
30 const gruppe = settingFieldsByQuelle().find((g) => g.schluessel === 'rilsa-umlaufzeit');
31 expect(gruppe).toBeDefined();
32 expect(gruppe!.felder.map((f) => f.key)).not.toContain('startUpLostTime');
33 });
34
35 it('nennt in der eigenen Quelle, woher die 2 s stammen und was zu tun ist', () => {
36 const feld = settingFields().find((f) => f.key === 'startUpLostTime')!;
37 expect(feld.quelle.hinweis).toBeDefined();
38 expect(feld.quelle.hinweis!).toContain('Anfahrverlustzeit');
39 expect(feld.quelle.verwendung).toContain('Verlustzeit');
40 });
41 });
42
43 describe('Befund 28 - Raeumgeschwindigkeit OePNV ohne Vmax', () => {
44 it('erscheint nicht als gesicherter RiLSA-Wert', () => {
45 const feld = settingFields().find((f) => f.key === 'clearingSpeedOepnv');
46 expect(feld).toBeDefined();
47 expect(feld!.quelle.pruefstand).not.toBe('gesichert');
48 expect(feld!.quelle.regelwerk).not.toContain('RiLSA');
49 });
50
51 it('nennt den Rueckfallwert so, wie ihn der Pruefbericht nennt: Ansatz dieses Programms', () => {
52 // engine.ts haengt an die Meldung 'oepnv-vmax-fehlt' an, der Rueckfallwert
53 // ohne Vmax sei "ein Ansatz dieses Programms". Das Fundstellenverzeichnis
54 // desselben Ausdrucks schrieb ihn der RiLSA zu.
55 const feld = settingFields().find((f) => f.key === 'clearingSpeedOepnv')!;
56 expect(feld.quelle.kurz).toBe('Programmansatz');
57 });
58
59 it('laesst den Regelfall Vmax/3,6 unter der RiLSA-Quelle stehen', () => {
60 // Nur der Rueckfallwert ist ein Programmansatz. Der Regelfall - vr = Vmax/3,6 -
61 // ist woertlich belegt und bleibt in der Aufzaehlung der Zwischenzeitquelle.
62 expect(QUELLEN['rilsa-zwischenzeiten'].pruefstand).toBe('gesichert');
63 expect(QUELLEN['rilsa-zwischenzeiten'].hinweis!).toContain('Vmax/3,6');
64 });
65 });