Ejemplo n.º 1
0
        public void Us60ShouldCorrectlyIdentifySplitSleeper()
        {
            var logs = new List <DutyStatusEvent>
            {
                new DutyStatusEvent("1", DateTime.Parse("10/1/2018 00:00:00"), DateTime.Parse("10/1/2018 08:00:00"), Enums.DutyStatus.Driving, Enums.Jurisdiction.Us60),          //drive 8
                new DutyStatusEvent("1", DateTime.Parse("10/1/2018 08:00:00"), DateTime.Parse("10/1/2018 16:00:00"), Enums.DutyStatus.Sleeper, Enums.Jurisdiction.Us60),          //sleeper 8
                new DutyStatusEvent("1", DateTime.Parse("10/1/2018 16:00:00"), DateTime.Parse("10/1/2018 19:00:00"), Enums.DutyStatus.Driving, Enums.Jurisdiction.Us60),          //drive 3
                new DutyStatusEvent("1", DateTime.Parse("10/1/2018 19:00:00"), DateTime.Parse("10/1/2018 22:00:00"), Enums.DutyStatus.OnDutyNotDriving, Enums.Jurisdiction.Us60), //onduty 3
                new DutyStatusEvent("1", DateTime.Parse("10/1/2018 22:00:00"), DateTime.Parse("10/2/2018 00:00:00"), Enums.DutyStatus.Sleeper, Enums.Jurisdiction.Us60),          //sleeper 2

                new DutyStatusEvent("1", DateTime.Parse("10/2/2018 00:00:00"), DateTime.Parse("10/2/2018 08:00:00"), Enums.DutyStatus.Driving, Enums.Jurisdiction.Us60),          //drive 8
                new DutyStatusEvent("1", DateTime.Parse("10/2/2018 08:00:00"), DateTime.Parse("10/2/2018 16:00:00"), Enums.DutyStatus.Sleeper, Enums.Jurisdiction.Us60),          //sleeper 8
                new DutyStatusEvent("1", DateTime.Parse("10/2/2018 16:00:00"), DateTime.Parse("10/2/2018 19:00:00"), Enums.DutyStatus.Driving, Enums.Jurisdiction.Us60),          //drive 3
                new DutyStatusEvent("1", DateTime.Parse("10/2/2018 19:00:00"), DateTime.Parse("10/2/2018 22:00:00"), Enums.DutyStatus.OnDutyNotDriving, Enums.Jurisdiction.Us60), //onduty 3
                new DutyStatusEvent("1", DateTime.Parse("10/2/2018 22:00:00"), DateTime.Parse("10/3/2018 00:00:00"), Enums.DutyStatus.Sleeper, Enums.Jurisdiction.Us60),          //sleeper 2
            };

            var driverViolationTable = new LogAuditor().Audit(logs);

            Assert.IsTrue(driverViolationTable.Count() == 0);
        }
Ejemplo n.º 2
0
        public void Us60Rolling70WeeklyTestNoViolations()
        {
            Stopwatch sw = new Stopwatch();

            int            driverCount = 100;
            DateTimeOffset now         = DateTimeOffset.Now;
            var            logs        = new List <DutyStatusEvent>();

            for (var i = 0; i < driverCount; i++)
            {
                for (var j = 180; j >= 0; j--)
                {
                    if (j % 5 == 0)
                    {
                        logs.Add(new DutyStatusEvent(i.ToString(), new DateTime(now.AddDays(-j).Year, now.AddDays(-j).Month, now.AddDays(-j).Day, 0, 0, 0), new DateTime(now.AddDays(-j + 2).Year, now.AddDays(-j + 2).Month, now.AddDays(-j + 2).Day, 0, 0, 0), Enums.DutyStatus.OffDuty, Enums.Jurisdiction.Us60));
                        j--;
                    }
                    else
                    {
                        logs.Add(new DutyStatusEvent(i.ToString(), new DateTime(now.AddDays(-j).Year, now.AddDays(-j).Month, now.AddDays(-j).Day, 0, 0, 0), new DateTime(now.AddDays(-j).Year, now.AddDays(-j).Month, now.AddDays(-j).Day, 7, 0, 0), Enums.DutyStatus.OffDuty, Enums.Jurisdiction.Us60));
                        logs.Add(new DutyStatusEvent(i.ToString(), new DateTime(now.AddDays(-j).Year, now.AddDays(-j).Month, now.AddDays(-j).Day, 7, 0, 0), new DateTime(now.AddDays(-j).Year, now.AddDays(-j).Month, now.AddDays(-j).Day, 15, 0, 0), Enums.DutyStatus.Driving, Enums.Jurisdiction.Us60));
                        logs.Add(new DutyStatusEvent(i.ToString(), new DateTime(now.AddDays(-j).Year, now.AddDays(-j).Month, now.AddDays(-j).Day, 15, 0, 0), new DateTime(now.AddDays(-j).Year, now.AddDays(-j).Month, now.AddDays(-j).Day, 15, 30, 0), Enums.DutyStatus.OffDuty, Enums.Jurisdiction.Us60));
                        logs.Add(new DutyStatusEvent(i.ToString(), new DateTime(now.AddDays(-j).Year, now.AddDays(-j).Month, now.AddDays(-j).Day, 15, 30, 0), new DateTime(now.AddDays(-j).Year, now.AddDays(-j).Month, now.AddDays(-j).Day, 18, 30, 0), Enums.DutyStatus.Driving, Enums.Jurisdiction.Us60));
                        logs.Add(new DutyStatusEvent(i.ToString(), new DateTime(now.AddDays(-j).Year, now.AddDays(-j).Month, now.AddDays(-j).Day, 18, 30, 0), new DateTime(now.AddDays(-j).Year, now.AddDays(-j).Month, now.AddDays(-j).Day, 21, 00, 0), Enums.DutyStatus.OnDutyNotDriving, Enums.Jurisdiction.Us60));
                        logs.Add(new DutyStatusEvent(i.ToString(), new DateTime(now.AddDays(-j).Year, now.AddDays(-j).Month, now.AddDays(-j).Day, 21, 00, 0), new DateTime(now.AddDays(-j + 1).Year, now.AddDays(-j + 1).Month, now.AddDays(-j + 1).Day, 0, 0, 0), Enums.DutyStatus.OffDuty, Enums.Jurisdiction.Us60));
                    }
                }
            }

            sw.Start();
            var driverViolationTable = new LogAuditor().Audit(logs);

            sw.Stop();

            Assert.IsTrue(driverViolationTable.Count() == 0);
            Assert.IsTrue(sw.Elapsed < TimeSpan.FromSeconds(1));
        }