public void IdentifyBrokenSections_WhenSection5IsBrokenInLow_ShouldBeSection5IsBroken() { var predictor = new BrokenSectionsExpert(); var trafficLight = new Light(Color.Green, new TrafficLightDigits(Constants.Zero, new Digit("1101001"))); var predictedDigits = new[] { new TrafficLightDigits(5), new TrafficLightDigits(6), new TrafficLightDigits(8), new TrafficLightDigits(9), new TrafficLightDigits(85), new TrafficLightDigits(86), new TrafficLightDigits(88), new TrafficLightDigits(89) }; var brokenSections = predictor.IdentifyBrokenSections(trafficLight, predictedDigits, new Observation[0]); Assert.Equal(new TrafficLightDigits(new Digit(), new Digit("0000010")), brokenSections); }
public void IdentifyBrokenSections_WithPreviousObservations() { var predictor = new BrokenSectionsExpert(); var light = new Light(Color.Green, new TrafficLightDigits(Constants.Zero, new Digit("1001101"))); var predictedDigits = new[] { new TrafficLightDigits(5), new TrafficLightDigits(85), }; var observations = new[] { new Observation(Guid.NewGuid(), new Light(Color.Green, new TrafficLightDigits(new Digit(0), new Digit("1101001"))), null), new Observation(Guid.NewGuid(), new Light(Color.Green, new TrafficLightDigits(new Digit(0), new Digit("0101000"))), null), new Observation(Guid.NewGuid(), new Light(Color.Green, new TrafficLightDigits(new Digit(0), new Digit("1001001"))), null), }; var brokenSections = predictor.IdentifyBrokenSections(light, predictedDigits, observations); Assert.Equal(new TrafficLightDigits(new Digit(), new Digit("0010010")), brokenSections); }