示例#1
0
 public void FormulaOneExpectAnalyzerHistoryParseException()
 {
     Assert.Throws <AnalyzerHistoryParseException>(() =>
     {
         new DeliveryDriverAnalyser().Analyse(CannedDrivingData.GetPeriods("dummy.json"));
     });
 }
示例#2
0
 public void FormulaOneExpectExceptionInOverlappedPeriods()
 {
     Assert.Throws <AnalyzerValidationException>(() =>
     {
         new DeliveryDriverAnalyser().Analyse(CannedDrivingData.GetPeriods("InterviewTest.DriverData.UnitTests/TestHistoryData/overlappedperiods.json"), true);
     });
 }
示例#3
0
        public void Execute()
        {
            var analysis = _analyser.Analyse(string.IsNullOrEmpty(DataSourcePath) ? CannedDrivingData.History :
                                             CannedDrivingData.GetPeriods(DataSourcePath), BypassPenlty);

            Console.Out.WriteLine($"Analysed period: {analysis.AnalysedDuration:g}");
            Console.Out.WriteLine($"Driver rating: {analysis.DriverRating:P}");
        }
示例#4
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));
        }
示例#5
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 Execute()
        {
            if (string.IsNullOrEmpty(_drivingDataFilePath) || !File.Exists(_drivingDataFilePath))
            {
                throw new FileNotFoundException("Filepath is Empth or does not exist");
            }

            //var analysis = _analyser.Analyse(CannedDrivingData.History, _penalise);
            var analysis = _analyser.Analyse(CannedDrivingData.GetDrivingData(_drivingDataFilePath), _penalise);

            Console.Out.WriteLine($"Analysed period: {analysis.AnalysedDuration:g}");
            Console.Out.WriteLine($"Driver rating: {analysis.DriverRating:P}");
            Console.Out.WriteLine($"Driver penalise: {_penalise}");
            Console.Out.WriteLine($"UnDocumented Period: {analysis.UnDocumentedPeriod}");
        }
        public void ShouldYieldCorrectValues_WhenHistoryLoadedFromDataFile()
        {
            // Arrange
            var expectedResult = new HistoryAnalysis
            {
                AnalysedDuration = new TimeSpan(7, 45, 0),
                DriverRating     = 0.7638m
            };

            // Act
            var actualResult = deliveryDriverAnalyser.Analyse(CannedDrivingData.GetHistoryFromFile());

            // Assert
            Assert.That(actualResult.AnalysedDuration, Is.EqualTo(expectedResult.AnalysedDuration));
            Assert.That(actualResult.DriverRating, Is.EqualTo(expectedResult.DriverRating).Within(0.001m));
        }