list_trackids aus Merkmalen in eigene CSV-Spalte "TrackIds" verschoben
Statt eines JSON-Merkmals bekommen VF_n/GF_n/Kreisel jetzt eine eigene CSV-Spalte "TrackIds" (nach "Nachbarn", vor "Fehler") mit der Reihenfolge der Separator-/BTMT-/AS-ES-/Weichen-TeileIds entlang der Strecke bzw. um den Kreisel - analog zur bestehenden "Nachbarn"-Spalte statt versteckt im Merkmale-JSON. Referenz-CSV fuer den Omniflo-Test an den neuen Header angepasst. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -346,11 +346,12 @@ class TestKreiselUmlaufStartetBeiNullGrad:
|
||||
assert keys == ["S010", "S100", "S190", "S280"]
|
||||
|
||||
|
||||
class TestKreiselListTrackidsMerkmal:
|
||||
class TestKreiselTrackidsSpalte:
|
||||
"""write_kreisel_separatorliste_merkmale schreibt die bei 0 Grad
|
||||
beginnende Umlaufreihenfolge (Separatoren, AS/ES-Enden, Kreisel-Kreisel-
|
||||
Weichen) als Merkmal "list_trackids" auf den Kreisel selbst (analog zum
|
||||
gleichnamigen Merkmal bei VF_n/GF_n, siehe write_separatorliste_merkmale)."""
|
||||
Weichen) in die eigene CSV-Spalte "TrackIds" (item["trackids"]) auf den
|
||||
Kreisel selbst (analog zum gleichnamigen Feld bei VF_n/GF_n, siehe
|
||||
write_separatorliste_merkmale)."""
|
||||
|
||||
def test_freie_separatoren_in_umlaufreihenfolge(self):
|
||||
k = _kreisel("0001", 0.0, 0.0, 0.0, abstand=1000.0)
|
||||
@@ -365,9 +366,9 @@ class TestKreiselListTrackidsMerkmal:
|
||||
items, kreisel_umlauf, sep_kette_by_key={}, weiche_by_key={})
|
||||
|
||||
kreisel_item = items[0]
|
||||
assert kreisel_item["merkmale"]["list_trackids"] == "0021, 0020"
|
||||
assert kreisel_item["trackids"] == "0021, 0020"
|
||||
|
||||
def test_kreisel_ohne_umlauf_punkte_bekommt_kein_merkmal(self):
|
||||
def test_kreisel_ohne_umlauf_punkte_bekommt_keine_trackids(self):
|
||||
k = _kreisel("0001", 0.0, 0.0, 0.0, abstand=1000.0)
|
||||
k["merkmale"] = {}
|
||||
items = [k]
|
||||
@@ -375,11 +376,11 @@ class TestKreiselListTrackidsMerkmal:
|
||||
items, sep_kette={}, tolerance_mm=0.0, durchmesser_mm=DURCHMESSER_MM)
|
||||
write_kreisel_separatorliste_merkmale(
|
||||
items, kreisel_umlauf, sep_kette_by_key={}, weiche_by_key={})
|
||||
assert "list_trackids" not in items[0]["merkmale"]
|
||||
assert "trackids" not in items[0]
|
||||
|
||||
def test_btmt_beladung_und_entladung_zaehlen_als_freie_punkte(self):
|
||||
"""BTMT Beladung/Entladung sind Stationen AUF der Bahn/Track wie ein
|
||||
Separator - sie muessen im Kreisel-Umlauf UND in list_trackids
|
||||
Separator - sie muessen im Kreisel-Umlauf UND in der TrackIds-Spalte
|
||||
des Kreisels auftauchen (Kundenwunsch), nicht nur echte Separatoren."""
|
||||
k = _kreisel("0001", 0.0, 0.0, 0.0, abstand=1000.0)
|
||||
k["merkmale"] = {}
|
||||
@@ -396,4 +397,4 @@ class TestKreiselListTrackidsMerkmal:
|
||||
|
||||
write_kreisel_separatorliste_merkmale(
|
||||
items, kreisel_umlauf, sep_kette_by_key={}, weiche_by_key={})
|
||||
assert k["merkmale"]["list_trackids"] == "0031, 0020, 0030"
|
||||
assert k["trackids"] == "0031, 0020, 0030"
|
||||
|
||||
Reference in New Issue
Block a user