package iace import "testing" func TestIsPatternRelevant(t *testing.T) { // A chain-driven crate lift: no press, no outdoor work, no palletizer. narrative := "Kistenhubgeraet hebt Behaelter ueber Kette. Elektromotor und SPS-Steuerung. " + "Hubwerk mit Plattform und Not-Halt-Taster." comps := []string{"Hubwerk", "Kettenantrieb", "Elektromotor (Drehstrom)", "SPS", "Plattform/Buehne"} tests := []struct { name string mp PatternMatch want bool }{ {"foreign: tick bite", PatternMatch{ PatternName: "Zeckenbiss bei Ausseneinsatz", ScenarioDE: "Zeckenstich bei Arbeiten im Gruenen", ZoneDE: "Freigelände, Wald, Wiese"}, false}, {"foreign: climbing structure", PatternMatch{ PatternName: "Absturz von Klettergeraet", ScenarioDE: "Kind stuerzt von Klettergeraet auf den Boden", ZoneDE: "Klettergeraet, Fallzone darunter"}, false}, {"foreign: palletizer", PatternMatch{ PatternName: "Palettierer — mechanisch", ScenarioDE: "Palettierer bewegt schwere Gebinde und quetscht Personen", ZoneDE: "Palettierer-Arbeitsraum, Palettenwechselzone"}, false}, {"foreign: ventilation mold", PatternMatch{ PatternName: "Schimmelpilz in Lueftungsanlage", ScenarioDE: "Staub mit Nagerkot in selten gereinigten Raeumen", ZoneDE: "Lueftungskanal, Filterbereich"}, false}, {"generic: crush by moving parts", PatternMatch{ PatternName: "Quetschgefahr durch bewegte Teile", ScenarioDE: "Quetschen zwischen beweglichen und feststehenden Teilen", ZoneDE: "Bewegungsbereich"}, true}, {"generic: electric shock", PatternMatch{ PatternName: "Direktes Beruehren", ScenarioDE: "Stromschlag bei Beruehrung spannungsfuehrender Teile", ZoneDE: "Schaltschrank"}, true}, {"machine-word match: chain drive", PatternMatch{ PatternName: "Erfassen durch Kettenantrieb", ScenarioDE: "Einzug an offener Kette", ZoneDE: "Kettenbereich"}, true}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if got := IsPatternRelevant(tt.mp, narrative, comps); got != tt.want { t.Errorf("IsPatternRelevant(%q)=%v, want %v", tt.mp.PatternName, got, tt.want) } }) } }