예제 #1
0
 public void Initialize()
 {
     analyser = new DeliveryDriverAnalyser(new AnalyserConfiguration()
     {
         StartTime = new TimeSpan(9, 0, 0), EndTime = new TimeSpan(17, 0, 0), MaxSpeed = 30m, RatingForExceedingMaxSpeed = 0, PenaltyForFaultyRecording = 0.5m
     });
 }
예제 #2
0
        // Test to get correct values for the canned data with Penalise flag true
        public void ShouldYieldCorrectValuesforPenalise()
        {
            var expectedResult = new HistoryAnalysis
            {
                AnalysedDuration = new TimeSpan(7, 45, 0),
                DriverRating     = 0.3819m
            };

            var actualResult = new DeliveryDriverAnalyser().Analyse(CannedDrivingData.History, true);

            Assert.That(actualResult.AnalysedDuration, Is.EqualTo(expectedResult.AnalysedDuration));
            Assert.That(actualResult.DriverRating, Is.EqualTo(expectedResult.DriverRating).Within(0.001m));
        }
예제 #3
0
        public void FormulaOneExpectDefault()
        {
            var expectedResult = new HistoryAnalysis
            {
                AnalysedDuration = TimeSpan.Zero,
                DriverRating     = 0m
            };

            var actualResult = new DeliveryDriverAnalyser().Analyse(null);

            Assert.That(actualResult.AnalysedDuration, Is.EqualTo(expectedResult.AnalysedDuration));
            Assert.That(actualResult.DriverRating, Is.EqualTo(expectedResult.DriverRating).Within(0.001m));
        }
예제 #4
0
        // Test to get correct values for the canned data with Penalise flag true
        public void ShouldYieldCorrectValuesForNullDataWithPenalise()
        {
            var expectedResult = new HistoryAnalysis
            {
                AnalysedDuration = new TimeSpan(0, 0, 0),
                DriverRating     = 0m
            };

            var actualResult = new DeliveryDriverAnalyser().Analyse(null, true);

            Assert.That(actualResult.AnalysedDuration, Is.EqualTo(expectedResult.AnalysedDuration));
            Assert.That(actualResult.DriverRating, Is.EqualTo(expectedResult.DriverRating).Within(0.001m));
        }
예제 #5
0
        public void FormulaOneNoPeriodsUsingFile()
        {
            var expectedResult = new HistoryAnalysis
            {
                AnalysedDuration = new TimeSpan(0, 0, 0),
                DriverRating     = 0
            };

            var actualResult = new DeliveryDriverAnalyser().Analyse(
                CannedDrivingData.GetPeriods("InterviewTest.DriverData.UnitTests/TestHistoryData/noperiods.json"), false);

            Assert.That(actualResult.AnalysedDuration, Is.EqualTo(expectedResult.AnalysedDuration));
            Assert.That(actualResult.DriverRating, Is.EqualTo(expectedResult.DriverRating).Within(0.001m));
        }
예제 #6
0
        public void FormulaOnePenalizeCorrectUsingFile()
        {
            var expectedResult = new HistoryAnalysis
            {
                AnalysedDuration = new TimeSpan(7, 45, 0),
                DriverRating     = 0.7638m
            };

            var actualResult = new DeliveryDriverAnalyser().Analyse(
                CannedDrivingData.GetPeriods(@"InterviewTest.DriverData.UnitTests/TestHistoryData/canneddata.json"), true);

            Assert.That(actualResult.AnalysedDuration, Is.EqualTo(expectedResult.AnalysedDuration));
            Assert.That(actualResult.DriverRating, Is.EqualTo(expectedResult.DriverRating).Within(0.001m));
        }
        public void DelieryRatin1CorrectUsingFile()
        {
            var expectedResult = new HistoryAnalysis
            {
                AnalysedDuration = new TimeSpan(8, 0, 0),
                DriverRating     = 1.00m
            };

            var actualResult = new DeliveryDriverAnalyser().Analyse(
                CannedDrivingData.GetPeriods(@"InterviewTest.DriverData.UnitTests/TestHistoryData/rating1.json"), false);

            Assert.That(actualResult.AnalysedDuration, Is.EqualTo(expectedResult.AnalysedDuration));
            Assert.That(actualResult.DriverRating, Is.EqualTo(expectedResult.DriverRating).Within(0.001m));
        }
        public void Initialize()
        {
            deliveryDriverAnalyser = new DeliveryDriverAnalyser(new DriverAnalysisCriteria
            {
                AllowedStartTime             = new TimeSpan(9, 0, 0),
                AllowedEndTime               = new TimeSpan(17, 0, 0),
                AllowedMaxSpeed              = 30m,
                RatingForExceedingSpeedLimit = 0,
            });

            deliveryDriverAnalyserWithPenaltyApplicable = new DeliveryDriverAnalyser(new DriverAnalysisCriteria
            {
                AllowedStartTime             = new TimeSpan(9, 0, 0),
                AllowedEndTime               = new TimeSpan(17, 0, 0),
                AllowedMaxSpeed              = 30m,
                RatingForExceedingSpeedLimit = 0,
                IsPenaltyApplicable          = true,
                Penalty = 0.5m
            });
        }
예제 #9
0
        //Test for the zero period and zero speed
        public void ShouldYieldCorrectValuesForZeroPeriodSpeed()
        {
            var expectedResult = new HistoryAnalysis
            {
                AnalysedDuration = new TimeSpan(0, 0, 0),
                DriverRating     = 0m
            };

            var data = new[]
            {
                new Period
                {
                    Start        = new DateTimeOffset(2016, 10, 13, 0, 0, 0, TimeSpan.Zero),
                    End          = new DateTimeOffset(2016, 10, 13, 0, 0, 0, TimeSpan.Zero),
                    AverageSpeed = 0m
                }
            };

            var actualResult = new DeliveryDriverAnalyser().Analyse(data, false);

            Assert.That(actualResult.AnalysedDuration, Is.EqualTo(expectedResult.AnalysedDuration));
            Assert.That(actualResult.DriverRating, Is.EqualTo(expectedResult.DriverRating).Within(0.001m));
        }
예제 #10
0
        //Test for the data overlap before start time and after end time & speed more than limit with Penalise flag true
        public void ShouldYieldCorrectValuesForOverLaplingStartEndPeriodSpeedAboveLimitforPenalise()
        {
            var expectedResult = new HistoryAnalysis
            {
                AnalysedDuration = new TimeSpan(8, 0, 0),
                DriverRating     = 0m
            };

            var data = new[]
            {
                new Period
                {
                    Start        = new DateTimeOffset(2016, 10, 13, 8, 30, 0, TimeSpan.Zero),
                    End          = new DateTimeOffset(2016, 10, 13, 19, 12, 0, TimeSpan.Zero),
                    AverageSpeed = 40m
                }
            };

            var actualResult = new DeliveryDriverAnalyser().Analyse(data, true);

            Assert.That(actualResult.AnalysedDuration, Is.EqualTo(expectedResult.AnalysedDuration));
            Assert.That(actualResult.DriverRating, Is.EqualTo(expectedResult.DriverRating).Within(0.001m));
        }
 public void TearDown()
 {
     deliveryDriverAnalyser = null;
     deliveryDriverAnalyserWithPenaltyApplicable = null;
 }
예제 #12
0
 public void Initialize()
 {
     deliveryDriverAnalyser = new DeliveryDriverAnalyser(analyserConfiguration);
 }
예제 #13
0
 public void TestsCompletion()
 {
     deliveryDriverAnalyser = null;
 }