041d292681
tests/test_omniflo.py (350 Zeilen):
Python-Tests fuer den Omniflo Bogen/Weiche Export. Testet:
- Unit-Tests fuer build_bogen_merkmale / build_weiche_merkmale gegen
Testdefinitionen aus omniflo_tests.json (kein BricsCAD erforderlich)
- Merkmale-Werte gegen den JSON-Katalog (omniflo_boegen/weichen.json)
- Korrekte Anzahl und Reihenfolge der Elemente in process_blocks()
- CSV-Ausgabeformat (Header, Spaltenanzahl, Merkmale als JSON)
- Integrationstest: liest eine tatsaechliche CSV aus einem BricsCAD-
Lauf (falls DXFM_TESTOUT gesetzt und Datei vorhanden)
Importiert direkt aus lib/export_csv.py (build_lookup, process_blocks,
build_bogen_merkmale, build_weiche_merkmale, load_json).
tests/test_omniflo.lsp (173 Zeilen):
AutoLISP-Tests fuer omni:insert-bogen und omni:insert-weiche.
Prueft Block-Einfuegung, Attribut-Setzung (HOEHE, DREHUNG, ARTINR)
und Fehlerverhalten bei ungueltigen Parametern. Laeuft direkt in
BricsCAD via (load "tests/test_omniflo.lsp").
tests/testdata/omniflo_tests.json (114 Zeilen):
Testdaten fuer test_omniflo.py: Definiert Testfaelle fuer Boegen
(je Winkel: 22.5, 45, 67.5, 90, 180) und Weichen (90°, 45°, koerper,
parallel) mit erwarteten Merkmale-Feldern und Beispiel-SivasNr.
tests/conftest.py:
Pytest-Fixtures fuer den Testlauf: data_dir, testdata_dir,
output_dir und omniflo_lookup (laedt Katalog-JSON falls vorhanden,
sonst leeres Dict als Fallback).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
115 lines
2.5 KiB
JSON
115 lines
2.5 KiB
JSON
[
|
|
{
|
|
"id": "OF_Bogen_225_R550",
|
|
"type": "bogen",
|
|
"sivasnr": "821104025",
|
|
"hoehe": 2000,
|
|
"drehung": 0.0,
|
|
"description": "Omniflo Bogen 22,5 Grad R550"
|
|
},
|
|
{
|
|
"id": "OF_Bogen_45_R400",
|
|
"type": "bogen",
|
|
"sivasnr": "821104021",
|
|
"hoehe": 2500,
|
|
"drehung": 0.0,
|
|
"description": "Omniflo Bogen 45 Grad R400"
|
|
},
|
|
{
|
|
"id": "OF_Bogen_675_R400",
|
|
"type": "bogen",
|
|
"sivasnr": "821104024",
|
|
"hoehe": 3000,
|
|
"drehung": 0.0,
|
|
"description": "Omniflo Bogen 67,5 Grad R400"
|
|
},
|
|
{
|
|
"id": "OF_Bogen_90_R630",
|
|
"type": "bogen",
|
|
"sivasnr": "821104033",
|
|
"hoehe": 3500,
|
|
"drehung": 0.0,
|
|
"description": "Omniflo Bogen 90 Grad R630"
|
|
},
|
|
{
|
|
"id": "OF_Bogen_180_R650",
|
|
"type": "bogen",
|
|
"sivasnr": "821104043",
|
|
"hoehe": 4000,
|
|
"drehung": 0.0,
|
|
"description": "Omniflo Bogen 180 Grad R650"
|
|
},
|
|
{
|
|
"id": "OF_Weiche_Einzel_45L",
|
|
"type": "weiche",
|
|
"sivasnr": "834372001",
|
|
"hoehe": 2000,
|
|
"drehung": 0.0,
|
|
"description": "Omniflo Einzelweiche 45 Grad Links"
|
|
},
|
|
{
|
|
"id": "OF_Weiche_Einzel_90L",
|
|
"type": "weiche",
|
|
"sivasnr": "834372021",
|
|
"hoehe": 2500,
|
|
"drehung": 0.0,
|
|
"description": "Omniflo Einzelweiche 90 Grad Links"
|
|
},
|
|
{
|
|
"id": "OF_Weiche_Doppel_45",
|
|
"type": "weiche",
|
|
"sivasnr": "834372100",
|
|
"hoehe": 3000,
|
|
"drehung": 0.0,
|
|
"description": "Omniflo Doppelweiche 45 Grad"
|
|
},
|
|
{
|
|
"id": "OF_Weiche_Doppel_90",
|
|
"type": "weiche",
|
|
"sivasnr": "834372109",
|
|
"hoehe": 3500,
|
|
"drehung": 0.0,
|
|
"description": "Omniflo Doppelweiche 90 Grad"
|
|
},
|
|
{
|
|
"id": "OF_Weiche_Dreiwege_45",
|
|
"type": "weiche",
|
|
"sivasnr": "834372200",
|
|
"hoehe": 4000,
|
|
"drehung": 0.0,
|
|
"description": "Omniflo Dreiwegeweiche 45 Grad"
|
|
},
|
|
{
|
|
"id": "OF_Weiche_Dreifach_90",
|
|
"type": "weiche",
|
|
"sivasnr": "834372404",
|
|
"hoehe": 2000,
|
|
"drehung": 0.0,
|
|
"description": "Omniflo Dreifachweiche 90 Grad"
|
|
},
|
|
{
|
|
"id": "OF_Weiche_Delta_90",
|
|
"type": "weiche",
|
|
"sivasnr": "834372401",
|
|
"hoehe": 2500,
|
|
"drehung": 0.0,
|
|
"description": "Omniflo Deltaweiche 90 Grad"
|
|
},
|
|
{
|
|
"id": "OF_Weiche_Stern",
|
|
"type": "weiche",
|
|
"sivasnr": "834372420",
|
|
"hoehe": 3000,
|
|
"drehung": 0.0,
|
|
"description": "Omniflo Sternweiche"
|
|
},
|
|
{
|
|
"id": "OF_Weichenkoerper_L",
|
|
"type": "weiche",
|
|
"sivasnr": "834342011",
|
|
"hoehe": 3500,
|
|
"drehung": 0.0,
|
|
"description": "Omniflo Weichenkoerper Links"
|
|
}
|
|
]
|