示例#1
0
        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));
        }
示例#2
0
        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));
        }
示例#3
0
 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;
 }
示例#5
0
 private static bool AreAllSectionsServiceable(TrafficLightDigits digits)
 {
     return(digits.Equals(TrafficLightDigits.Default));
 }