lsa-planer

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

/ tests domain signalTimes.test.ts

1,6 KB Rohdatei
tests/domain/signalTimes.test.ts — 47 Zeilen
1 import { describe, expect, it } from 'vitest';
2 import {
3 minGreenTime,
4 redYellowTime,
5 signalGroupTimes,
6 yellowTime,
7 } from '@/domain/rilsa/signalTimes';
8
9 describe('Signalzeiten', () => {
10 it('staffelt die Gelbzeit nach der zulaessigen Hoechstgeschwindigkeit', () => {
11 expect(yellowTime('kfz', 30)).toBe(3);
12 expect(yellowTime('kfz', 50)).toBe(3);
13 expect(yellowTime('kfz', 51)).toBe(4);
14 expect(yellowTime('kfz', 60)).toBe(4);
15 expect(yellowTime('kfz', 61)).toBe(5);
16 expect(yellowTime('kfz', 70)).toBe(5);
17 });
18
19 it('gibt Fussgaengern keine Gelbzeit', () => {
20 // Der Altbestand lieferte hier 3 s, weil der Fussgaenger-Fall in den
21 // Sammelzweig des Radverkehrs fiel.
22 expect(yellowTime('fuss', 50)).toBe(0);
23 expect(redYellowTime('fuss')).toBe(0);
24 });
25
26 it('setzt die Rot-Gelb-Zeit auf 1 s', () => {
27 // Der Altbestand verwendete 2 s.
28 expect(redYellowTime('kfz')).toBe(1);
29 expect(redYellowTime('rad')).toBe(1);
30 });
31
32 it('setzt bei fehlender Geschwindigkeitsangabe die laengste Gelbzeit an', () => {
33 expect(yellowTime('kfz', Number.NaN)).toBe(5);
34 expect(yellowTime('kfz', 0)).toBe(5);
35 });
36
37 it('liefert die Mindestfreigabezeiten je Verkehrsart', () => {
38 expect(minGreenTime('kfz')).toBe(5);
39 expect(minGreenTime('rad')).toBe(5);
40 expect(minGreenTime('fuss')).toBe(5);
41 });
42
43 it('fasst alle Signalzeiten zusammen', () => {
44 expect(signalGroupTimes('kfz', 50)).toEqual({ minGreen: 5, yellow: 3, redYellow: 1 });
45 expect(signalGroupTimes('fuss', 50)).toEqual({ minGreen: 5, yellow: 0, redYellow: 0 });
46 });
47 });