[TEST] Referenz-Namenskonvention vereinheitlicht + Kreisel/Omniflo-Referenzen abgenommen

Konvention: Eine Referenz traegt IMMER denselben Dateinamen wie das Ist-
Ergebnis in output/ (nur anderes Verzeichnis). Referenz festlegen = Datei aus
output/ unter gleichem Namen nach reference/ kopieren.

- tests/README.md: neuer Abschnitt "Referenz-Namenskonvention (vereinheitlicht)"
  mit Regel/Tabelle/copy-Beispiel; Namenskonventions-Tabelle, Fixture-Vorlage
  (<modul>_tests.dxf statt <modul>_ref.dxf) und die Workflow-Referenzabschnitte
  angeglichen.
- tests/conftest.py: kreisel_ref_dxf laedt reference/kreisel_tests.dxf
  (vorher kreisel_ref.dxf).
- tests/test_omniflo.py: Referenz reference/omniflo_export.csv
  (vorher omniflo_export_reference.csv).
- Referenzen abgenommen und in Git aufgenommen:
  reference/kreisel_tests.dxf (Umbenennung des Tippfehlers Kresel_ref.dxf),
  reference/omniflo_export.csv (aus geprueftem output/omniflo_export.csv).

Der Batch-Vergleich --diff_references matchte schon immer ueber identische
Basisnamen und bleibt unveraendert. Der Kreisel-Referenztest laeuft dadurch
jetzt statt zu skippen.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-04 14:28:19 +02:00
parent c88be420be
commit 40e8331695
5 changed files with 28294 additions and 12 deletions
+54 -7
View File
@@ -138,8 +138,8 @@ etc.) ist davon unberuehrt (GUI standardmaessig an).
3. **Kommandozeile**: Ergebnisse validieren:
- `bin\run_tests.bat --check` — pytest prueft die Ergebnisse aus `output/` gegen Testdefinitionen und Referenzdaten (optional: einzelnes Modul, z.B. `--check test_kreisel.py`)
- `bin\run_tests.bat --diff_references` — vergleicht die CSVs in `output/` gegen `reference/` und oeffnet bei Unterschieden das Diff-Tool (meld); optional eine einzelne Datei, z.B. `--diff_references kreisel_tests_export.csv`
- Referenz aktualisieren (nach geprueftem Lauf): die betreffende(n) Datei(en) aus `output/` manuell nach `reference/` kopieren (es gibt keinen eigenen Schalter dafuer)
- `bin\run_tests.bat --diff_references` — vergleicht die CSVs in `output/` gegen `reference/` (gleicher Dateiname, siehe Abschnitt "Referenz-Namenskonvention") und oeffnet bei Unterschieden das Diff-Tool (meld); optional eine einzelne Datei, z.B. `--diff_references kreisel_tests_export.csv`
- Referenz aktualisieren (nach geprueftem Lauf): die betreffende(n) Datei(en) aus `output/` unter DEMSELBEN Namen nach `reference/` kopieren (es gibt keinen eigenen Schalter dafuer)
## Verzeichnisstruktur
@@ -202,9 +202,45 @@ tests/
<basis>_export.csv # EXPORTCSV je Quelldatei, nur nach TEST_EXPORT_ALL
<basis>_sivas.csv # EXPORTSIVAS je Quelldatei, nur nach TEST_EXPORT_ALL
reference/ # Abgenommene Referenzdaten (in Git): *_results.json,
... # *_tests_export.csv / *_tests_sivas.csv, export_raw.json
... # *_tests_export.csv / *_tests_sivas.csv, *_tests.dxf,
... # omniflo_export.csv, export_raw.json
```
## Referenz-Namenskonvention (vereinheitlicht)
**Eine Referenz traegt IMMER denselben Dateinamen wie das zugehoerige Ist-Ergebnis
in `output/`.** Der einzige Unterschied ist das Verzeichnis:
```
output/<datei> # Ist-Ergebnis (bei jedem Lauf neu, nicht in Git)
reference/<datei> # abgenommener Soll-Stand (identischer Name, in Git)
```
Damit gilt durchgehend: **Referenz festlegen = Datei aus `output/` nach `reference/`
kopieren** - kein Umbenennen, kein Suffix. Beispiele:
| Ist-Ergebnis in `output/` | Referenz in `reference/` |
| --- | --- |
| `kreisel_tests.dxf` | `kreisel_tests.dxf` |
| `kreisel_tests_export.csv` | `kreisel_tests_export.csv` |
| `foerderer_results.json` | `foerderer_results.json` |
| `omniflo_export.csv` | `omniflo_export.csv` |
```cmd
copy tests\output\kreisel_tests.dxf tests\reference\kreisel_tests.dxf
```
Frueher gab es zwei Ausreisser, die bewusst auf dieses Schema gezogen wurden
(nicht mehr verwenden):
- `reference/kreisel_ref.dxf` (bzw. der Tippfehler `Kresel_ref.dxf`) -> jetzt
`reference/kreisel_tests.dxf`
- `reference/omniflo_export_reference.csv` -> jetzt `reference/omniflo_export.csv`
Die pytest-Fixtures und -Checks suchen ausschliesslich nach dem vereinheitlichten
Namen; fehlt die Referenz, wird der Vergleich mit einem Hinweis uebersprungen
(kein Fehler).
## Workflow
### 1. LISP-Tests in BricsCAD ausfuehren
@@ -274,13 +310,21 @@ Tests, deren Eingabedaten fehlen (z.B. kein BricsCAD-Lauf), werden automatisch u
### 3. Referenz erstellen/aktualisieren
Nach einem erfolgreichen, geprueften Testlauf die betreffende(n) Ergebnisdatei(en)
manuell aus `output/` nach `reference/` kopieren (nur bei bestandenen Tests). Es gibt
keinen eigenen Batch-Schalter dafuer.
manuell aus `output/` unter DEMSELBEN Dateinamen nach `reference/` kopieren (nur bei
bestandenen Tests, siehe Abschnitt "Referenz-Namenskonvention"). Es gibt keinen
eigenen Batch-Schalter dafuer.
```cmd
copy tests\output\<datei> tests\reference\<datei>
```
Beispiel (Kreisel-DXF und Omniflo-CSV als Referenz festlegen):
```cmd
copy tests\output\kreisel_tests.dxf tests\reference\kreisel_tests.dxf
copy tests\output\omniflo_export.csv tests\reference\omniflo_export.csv
```
Zum Vergleich der aktuellen CSVs gegen die Referenz (mit Diff-Tool meld):
```cmd
@@ -419,6 +463,7 @@ Aus dem Basisnamen `<name>` in `alltests.json` entstehen durch Konvention:
| Export-Funktion | `<name>:export-results` | `kreisel:export-results` |
| JSON-Ergebnis | `output/<name>_results.json` | `output/kreisel_results.json` |
| DXF/DWG-Datei | `output/<name>_tests.dxf/.dwg` | `output/kreisel_tests.dxf` |
| Referenz (Soll) | `reference/<gleicher Name wie output>` | `reference/kreisel_tests.dxf` |
Die Export-Funktion **muss** exakt so heissen: `<name>:export-results` (Namespace-Notation mit Doppelpunkt).
Sie nimmt genau einen Parameter entgegen: den Pfad zum Output-Verzeichnis.
@@ -487,9 +532,11 @@ def <modul>_dxf():
@pytest.fixture
def <modul>_ref_dxf():
path = os.path.join(_reference_dir(), "<modul>_ref.dxf")
# Konvention: Referenz = GLEICHER Dateiname wie das Ist-Ergebnis in output/.
path = os.path.join(_reference_dir(), "<modul>_tests.dxf")
if not os.path.exists(path):
pytest.skip("Referenz nicht vorhanden")
pytest.skip("reference/<modul>_tests.dxf nicht vorhanden - Referenz noch "
"nicht festgelegt (output/<modul>_tests.dxf nach reference/ kopieren)")
return ezdxf.readfile(path)
```
+9 -3
View File
@@ -121,10 +121,16 @@ def kreisel_dxf():
@pytest.fixture
def kreisel_ref_dxf():
"""Laedt die Referenz-DXF aus reference/kreisel_ref.dxf."""
path = os.path.join(_reference_dir(), "kreisel_ref.dxf")
"""Laedt die Referenz-DXF aus reference/kreisel_tests.dxf.
Konvention (siehe tests/README.md): Die Referenz traegt DENSELBEN
Dateinamen wie das Ist-Ergebnis in output/. Eine Referenz festlegen heisst
also schlicht: output/kreisel_tests.dxf nach reference/ kopieren.
"""
path = os.path.join(_reference_dir(), "kreisel_tests.dxf")
if not os.path.exists(path):
pytest.skip("kreisel_ref.dxf nicht vorhanden - Referenz noch nicht erstellt")
pytest.skip("reference/kreisel_tests.dxf nicht vorhanden - Referenz noch "
"nicht festgelegt (output/kreisel_tests.dxf nach reference/ kopieren)")
return ezdxf.readfile(path)
File diff suppressed because it is too large Load Diff
+109
View File
@@ -0,0 +1,109 @@
Elementnummer;TeileArt;TeileId;Bezeichnung;Planquadrat;Anzahl;Position;Boundingbox;Nachbarn;Fehler;Merkmale
1;"Omniflo Kurve";"0000";"OFBogen :1";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 22.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104025"}
2;"Omniflo Kurve";"0000";"OFBogen :2";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 22.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104025, 0_B10090"}
3;"Omniflo Kurve";"0000";"OFBogen :3";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 22.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104025, 0_B10091"}
4;"Omniflo Kurve";"0000";"OFBogen :4";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104021"}
5;"Omniflo Kurve";"0000";"OFBogen :5";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104026"}
6;"Omniflo Kurve";"0000";"OFBogen :6";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104026, 0_B10071"}
7;"Omniflo Kurve";"0000";"OFBogen :7";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104037"}
8;"Omniflo Kurve";"0000";"OFBogen :8";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104029"}
9;"Omniflo Kurve";"0000";"OFBogen :9";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104031"}
10;"Omniflo Kurve";"0000";"OFBogen :10";"A/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104031, 0_B10060"}
11;"Omniflo Kurve";"0000";"OFBogen :11";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 45.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104031, 0_B10070"}
12;"Omniflo Kurve";"0000";"OFBogen :12";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 67.5, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104024"}
13;"Omniflo Kurve";"0000";"OFBogen :13";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 67.5, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104024, 0_B10081"}
14;"Omniflo Kurve";"0000";"OFBogen :14";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104027"}
15;"Omniflo Kurve";"0000";"OFBogen :15";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104027, 0_B10080"}
16;"Omniflo Kurve";"0000";"OFBogen :16";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104028"}
17;"Omniflo Kurve";"0000";"OFBogen :17";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104065"}
18;"Omniflo Kurve";"0000";"OFBogen :18";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104022"}
19;"Omniflo Kurve";"0000";"OFBogen :19";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 500.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104030"}
20;"Omniflo Kurve";"0000";"OFBogen :20";"B/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104033"}
21;"Omniflo Kurve";"0000";"OFBogen :21";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104033, 0_B10040"}
22;"Omniflo Kurve";"0000";"OFBogen :22";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104033, 0_B10050"}
23;"Omniflo Kurve";"0000";"OFBogen :23";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104035"}
24;"Omniflo Kurve";"0000";"OFBogen :24";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104041"}
25;"Omniflo Kurve";"0000";"OFBogen :25";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104034"}
26;"Omniflo Kurve";"0000";"OFBogen :26";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 90.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104066"}
27;"Omniflo Kurve";"0000";"OFBogen :27";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Kurvenwinkel": 180.0, "Radius": 650.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104043"}
28;"Omniflo Weiche";"0000";"OFWeiche :1";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342011"}
29;"Omniflo Weiche";"0000";"OFWeiche :2";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342001"}
30;"Omniflo Weiche";"0000";"OFWeiche :3";"C/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342012"}
31;"Omniflo Weiche";"0000";"OFWeiche :4";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342002"}
32;"Omniflo Weiche";"0000";"OFWeiche :1";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342100"}
33;"Omniflo Weiche";"0000";"OFWeiche :2";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342101"}
34;"Omniflo Weiche";"0000";"OFWeiche :1";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342200"}
35;"Omniflo Weiche";"0000";"OFWeiche :2";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342201"}
36;"Omniflo Weiche";"0000";"OFWeiche :5";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372001"}
37;"Omniflo Weiche";"0000";"OFWeiche :6";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372002"}
38;"Omniflo Weiche";"0000";"OFWeiche :7";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372002, 0_BG090090"}
39;"Omniflo Weiche";"0000";"OFWeiche :8";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372004"}
40;"Omniflo Weiche";"0000";"OFWeiche :9";"D/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372005"}
41;"Omniflo Weiche";"0000";"OFWeiche :10";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372005, 0_BG090090"}
42;"Omniflo Weiche";"0000";"OFWeiche :11";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372007"}
43;"Omniflo Weiche";"0000";"OFWeiche :12";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372008"}
44;"Omniflo Weiche";"0000";"OFWeiche :13";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372008, 0_BG190090"}
45;"Omniflo Weiche";"0000";"OFWeiche :14";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372010"}
46;"Omniflo Weiche";"0000";"OFWeiche :15";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372011"}
47;"Omniflo Weiche";"0000";"OFWeiche :16";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372011, 0_BG190090"}
48;"Omniflo Weiche";"0000";"OFWeiche :17";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372021"}
49;"Omniflo Weiche";"0000";"OFWeiche :18";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372022"}
50;"Omniflo Weiche";"0000";"OFWeiche :19";"E/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372024"}
51;"Omniflo Weiche";"0000";"OFWeiche :20";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372025"}
52;"Omniflo Weiche";"0000";"OFWeiche :21";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372027"}
53;"Omniflo Weiche";"0000";"OFWeiche :22";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372028"}
54;"Omniflo Weiche";"0000";"OFWeiche :23";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372028, 0_BG080090"}
55;"Omniflo Weiche";"0000";"OFWeiche :24";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372030"}
56;"Omniflo Weiche";"0000";"OFWeiche :25";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372031"}
57;"Omniflo Weiche";"0000";"OFWeiche :26";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372031, 0_BG080090"}
58;"Omniflo Weiche";"0000";"OFWeiche :27";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372047"}
59;"Omniflo Weiche";"0000";"OFWeiche :28";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372048"}
60;"Omniflo Weiche";"0000";"OFWeiche :29";"F/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372050"}
61;"Omniflo Weiche";"0000";"OFWeiche :30";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372051"}
62;"Omniflo Weiche";"0000";"OFWeiche :3";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372100"}
63;"Omniflo Weiche";"0000";"OFWeiche :4";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372101"}
64;"Omniflo Weiche";"0000";"OFWeiche :5";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090, 834372101"}
65;"Omniflo Weiche";"0000";"OFWeiche :6";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372101, 0_BG090090"}
66;"Omniflo Weiche";"0000";"OFWeiche :7";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090, 834372101, 0_BG090090"}
67;"Omniflo Weiche";"0000";"OFWeiche :8";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372103"}
68;"Omniflo Weiche";"0000";"OFWeiche :9";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372104"}
69;"Omniflo Weiche";"0000";"OFWeiche :10";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090, 834372104"}
70;"Omniflo Weiche";"0000";"OFWeiche :11";"G/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372104, 0_BG190090"}
71;"Omniflo Weiche";"0000";"OFWeiche :12";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090, 834372104, 0_BG190090"}
72;"Omniflo Weiche";"0000";"OFWeiche :13";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372106"}
73;"Omniflo Weiche";"0000";"OFWeiche :14";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372107"}
74;"Omniflo Weiche";"0000";"OFWeiche :15";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372109"}
75;"Omniflo Weiche";"0000";"OFWeiche :16";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372110"}
76;"Omniflo Weiche";"0000";"OFWeiche :17";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090, 834372110"}
77;"Omniflo Weiche";"0000";"OFWeiche :18";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372110, 0_BG080090"}
78;"Omniflo Weiche";"0000";"OFWeiche :19";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090, 834372110, 0_BG080090"}
79;"Omniflo Weiche";"0000";"OFWeiche :20";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372115"}
80;"Omniflo Weiche";"0000";"OFWeiche :21";"H/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372116"}
81;"Omniflo Weiche";"0000";"OFWeiche :3";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372200"}
82;"Omniflo Weiche";"0000";"OFWeiche :4";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372201"}
83;"Omniflo Weiche";"0000";"OFWeiche :5";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090, 834372201"}
84;"Omniflo Weiche";"0000";"OFWeiche :6";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372201, 0_BG090090"}
85;"Omniflo Weiche";"0000";"OFWeiche :7";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090, 834372201, 0_BG090090"}
86;"Omniflo Weiche";"0000";"OFWeiche :8";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372203"}
87;"Omniflo Weiche";"0000";"OFWeiche :9";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372204"}
88;"Omniflo Weiche";"0000";"OFWeiche :10";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090, 834372204"}
89;"Omniflo Weiche";"0000";"OFWeiche :11";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372204, 0_BG190090"}
90;"Omniflo Weiche";"0000";"OFWeiche :12";"I/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090, 834372204, 0_BG190090"}
91;"Omniflo Weiche";"0000";"OFWeiche :13";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372206"}
92;"Omniflo Weiche";"0000";"OFWeiche :14";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372207"}
93;"Omniflo Weiche";"0000";"OFWeiche :15";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372209"}
94;"Omniflo Weiche";"0000";"OFWeiche :16";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372210"}
95;"Omniflo Weiche";"0000";"OFWeiche :17";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090, 834372210"}
96;"Omniflo Weiche";"0000";"OFWeiche :18";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372210, 0_BG080090"}
97;"Omniflo Weiche";"0000";"OFWeiche :19";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090, 834372210, 0_BG080090"}
98;"Omniflo Weiche";"0000";"OFWeiche :20";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372215"}
99;"Omniflo Weiche";"0000";"OFWeiche :21";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372216"}
100;"Omniflo Weiche";"0000";"OFWeiche :1";"J/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372400"}
101;"Omniflo Weiche";"0000";"OFWeiche :2";"K/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372403"}
102;"Omniflo Weiche";"0000";"OFWeiche :3";"K/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372404"}
103;"Omniflo Weiche";"0000";"OFWeiche :4";"K/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG071090, 834372404, 0_BG071090"}
104;"Omniflo Weiche";"0000";"OFWeiche :5";"K/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG071090, 834372404"}
105;"Omniflo Weiche";"0000";"OFWeiche :6";"K/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372404, 0_BG071090"}
106;"Omniflo Weiche";"0000";"OFWeiche :7";"K/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Deltaweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372401"}
107;"Omniflo Weiche";"0000";"OFWeiche :1";"K/1";1;"";"";"";"";"";"";"";"";"unverbunden";"";{"Weichentyp": "Sternweiche", "Richtung": "3", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372420"}
108;"Omniflo Sum";"autogenerated_of_json";"Omniflo sum";"";1;"";"";"";"";"";"";"";"";"";"";{"Anzahl Bögen": 27, "Anzahl Weichengrundkörper": 0, "Anzahl Einwegweichen": 30, "Anzahl Deltaweichen": 7, "Anzahl Doppelweichen und Dreiwegeweichen": 42, "Anzahl Sternweichen": 1, "Gesamtlänge AP110": 0.0, "Gesamtlänge AP60": 0.0}
Can't render this file because it contains an unexpected character in line 2 and column 89.
+6 -2
View File
@@ -344,15 +344,19 @@ class TestOmnifloReferenceCSV:
@pytest.fixture(autouse=True)
def setup(self):
# Konvention (siehe tests/README.md): Referenz = gleicher Dateiname wie
# das Ist-Ergebnis in output/. Referenz festlegen = output/omniflo_export.csv
# nach reference/ kopieren.
self.out_csv = os.path.join(_output_dir(), "omniflo_export.csv")
self.ref_csv = os.path.join(_reference_dir(), "omniflo_export_reference.csv")
self.ref_csv = os.path.join(_reference_dir(), "omniflo_export.csv")
if not os.path.exists(self.out_csv):
pytest.skip(
"omniflo_export.csv nicht vorhanden - "
"zuerst TestOmnifloExportUnit ausfuehren"
)
if not os.path.exists(self.ref_csv):
pytest.skip("Referenzdatei nicht vorhanden: " + self.ref_csv)
pytest.skip("reference/omniflo_export.csv nicht vorhanden - Referenz "
"noch nicht festgelegt (output/omniflo_export.csv nach reference/ kopieren)")
with open(self.out_csv, "r", encoding="utf-8") as f:
self.out_lines = f.readlines()
with open(self.ref_csv, "r", encoding="utf-8") as f: