public void TestCalculAverageFreezePrediction12hV2()
        {
            //GIVEN
            Mock <IDeviceRepository> deviceRepo = new Mock <IDeviceRepository>();
            Mock <IAlarmRepository>  alarmRepo  = new Mock <IAlarmRepository>();

            DateTime dateRef = new DateTime(2018, 02, 13, 6, 0, 0);
            Dictionary <DateTime, FreezeForecast.FreezingProbability> previsions3h = new Dictionary <DateTime, FreezeForecast.FreezingProbability>();

            // 13/02 AM: risque ZERO
            previsions3h.Add(dateRef, FreezeForecast.FreezingProbability.ZERO);                  //6h
            previsions3h.Add(dateRef.AddHours(3), FreezeForecast.FreezingProbability.ZERO);      //9h
            // 13/02 PM : risque MEDIUM(=2)
            previsions3h.Add(dateRef.AddHours(6), FreezeForecast.FreezingProbability.MINIMUM);   //12h
            previsions3h.Add(dateRef.AddHours(9), FreezeForecast.FreezingProbability.MEDIUM);    //15h
            previsions3h.Add(dateRef.AddHours(12), FreezeForecast.FreezingProbability.HIGH);     //18h
            previsions3h.Add(dateRef.AddHours(15), FreezeForecast.FreezingProbability.IMMINENT); //21h

            // 14/02/2018 AM : risque HIGH(=3)
            previsions3h.Add(dateRef.AddHours(18), FreezeForecast.FreezingProbability.MINIMUM);  //00:00
            previsions3h.Add(dateRef.AddHours(21), FreezeForecast.FreezingProbability.MEDIUM);   //3h
            previsions3h.Add(dateRef.AddHours(24), FreezeForecast.FreezingProbability.IMMINENT); //6h
            previsions3h.Add(dateRef.AddHours(27), FreezeForecast.FreezingProbability.IMMINENT); //9h

            // 14/02/2018 PM : risque HIGH(=3)
            previsions3h.Add(dateRef.AddHours(30), FreezeForecast.FreezingProbability.HIGH);     //12h
            previsions3h.Add(dateRef.AddHours(33), FreezeForecast.FreezingProbability.IMMINENT); //15h
            previsions3h.Add(dateRef.AddHours(36), FreezeForecast.FreezingProbability.MEDIUM);   //18h
            previsions3h.Add(dateRef.AddHours(39), FreezeForecast.FreezingProbability.HIGH);     //21h

            // 15/02/2018 AM
            previsions3h.Add(dateRef.AddHours(42), FreezeForecast.FreezingProbability.ZERO);//00:00h

            //WHEN
            AlarmService service = new AlarmService(deviceRepo.Object, alarmRepo.Object);
            Dictionary <DateTime, FreezeForecast.FreezingProbability> prevsions12h = service.CalculAverageFreezePrediction12h(previsions3h);

            //THEN
            Check.That(prevsions12h).Contains(new Dictionary <DateTime, FreezeForecast.FreezingProbability>
            {
                { new DateTime(2018, 02, 13, 0, 0, 0), FreezeForecast.FreezingProbability.ZERO },
                { new DateTime(2018, 02, 13, 12, 0, 0), FreezeForecast.FreezingProbability.MEDIUM },
                { new DateTime(2018, 02, 14, 00, 0, 0), FreezeForecast.FreezingProbability.HIGH },
                { new DateTime(2018, 02, 14, 12, 0, 0), FreezeForecast.FreezingProbability.HIGH },
                { new DateTime(2018, 02, 15, 00, 0, 0), FreezeForecast.FreezingProbability.ZERO }
            });
        }