private TrafficLightDigits IdentifyBrokenSectionsInternal(TrafficLightDigits broken, IEnumerable <TrafficLightDigits> digits) { var high = GetBrokenSections(broken.High, digits.Select(x => x.High).ToArray()); var low = GetBrokenSections(broken.Low, digits.Select(x => x.Low).ToArray()); return(new TrafficLightDigits(high, low)); }
public TrafficLightDigits GetSectionsThatWasTurnedOff(Models.TrafficLight trafficLight, Observation[] observations) { // all sections are true var current = new TrafficLightDigits(88); foreach (var o in observations) { // all sections are false if (current.Equals(TrafficLightDigits.Default)) { return(current); } current = JoinBrokenSections(o.TrafficLight.Digits, current); } return(JoinBrokenSections(trafficLight.Digits, current)); }
private TrafficLightDigits Join(TrafficLightDigits current, TrafficLightDigits next) { return(new TrafficLightDigits(join(current.High, next.High), join(current.Low, next.Low)));
public TrafficLight(Color color, TrafficLightDigits digits) { Color = color; Digits = digits; }
private static bool AreAllSectionsServiceable(TrafficLightDigits digits) { return(digits.Equals(TrafficLightDigits.Default)); }