private static ITrafficLightService CreateService()
        {
            var digitPredictor = new DigitPredictor(new BrokenSectionsExpert());
            var timePredictor  = new TrafficLightTimePredictor(digitPredictor);
            var storage        = new EfStorage(new Context(CreateOptions()));

            return(new TrafficLightService(storage, new BrokenSectionsExpert(), timePredictor));
        }
Exemple #2
0
        public void PredictDigits_WhenAllSectionsAreServiceable_ShouldReturnSingle()
        {
            var predictor = new DigitPredictor(new BrokenSectionsExpert());

            var trafficLight = new Light(Color.Green, new TrafficLightDigits(Constants.Zero, new Digit(02)));

            var observation = new Observation(Guid.NewGuid(), new Light(Color.Green, new TrafficLightDigits(88)), null);

            var result = predictor
                         .Predict(trafficLight, new[] { observation })
                         .ToArray();

            Assert.Single(result);
            Assert.Equal(new TrafficLightDigits(02), result[0]);
        }
Exemple #3
0
        public void PredictDigits_WithoutPreviousObservations()
        {
            var predictor = new DigitPredictor(new BrokenSectionsExpert());

            var trafficLight = new Light(Color.Green, new TrafficLightDigits(Constants.Zero, new Digit("0011101")));

            var result = predictor
                         .Predict(trafficLight, new Observation[0])
                         .ToArray();

            Assert.Contains(new TrafficLightDigits(02), result);
            Assert.Contains(new TrafficLightDigits(08), result);
            Assert.Contains(new TrafficLightDigits(82), result);
            Assert.Contains(new TrafficLightDigits(88), result);
        }