示例#1
0
        public void RegisterTrips_skips_TripEntry_if_DriverDoesNotExist()
        {
            // arrange
            List <Driver> drivers = new List <Driver>
            {
                new Driver()
                {
                    Name = "Dan"
                },
                new Driver()
                {
                    Name = "Lauren"
                },
                new Driver()
                {
                    Name = "Kumi"
                }
            };

            IStreamReader reader = Substitute.For <IStreamReader>();

            reader.CreateReader(Arg.Any <string>());
            reader.EndOfStream.Returns(false, true);
            reader.ReadLine().Returns("Trip Bob 07:15 07:45 17.3");

            TripLogic tripLogic = new TripLogic();

            // act
            List <Trip> trips = tripLogic.RegisterTrips(reader, drivers);

            // assert
            Assert.IsFalse(trips.Any());
        }
示例#2
0
    private void OnTriggerEnter(Collider other)
    {
        TripLogic player = other.GetComponent <TripLogic>();

        if (player)
        {
            player.thirdPersonMovement.AddForce(4, player.transform.position - transform.position);
        }
    }
    public void SpawnPlayer()
    {
        spawnedPlayer = Instantiate(playerPrefab, startPoint.position, startPoint.rotation);
        Instantiate(mainCameraPrefab);
        CinemachineFreeLook cinemaCam = Instantiate(cinemachineCameraPrefab, spawnedPlayer.transform.position - spawnedPlayer.transform.forward, Quaternion.identity);

        cinemaCam.Follow = spawnedPlayer.transform;
        cinemaCam.LookAt = spawnedPlayer.thirdPersonMovement.cameraLookAtPoint;
    }
        public Dictionary <uint, List <TripLogic> > contractTrip(CitiesData[] cities)
        {
            int ftlp = 0;
            int ltlp = 0;


            foreach (Contract c in lc)
            {
                List <TripLogic> tripLogics = new List <TripLogic>();

                if (c.Quantity == 0)
                {
                    TripLogic logic = new TripLogic(c.Quantity, (int)c.Origin, (int)c.Destination, listOfCities);
                    tripLogics.Add(logic);
                }
                else
                {
                    PlannerCombine combine = new PlannerCombine(c.Carrier.FTLRate, c.Carrier.LTLRate, c.Quantity);
                    while ((ftlp > 0) || (ltlp > 0))
                    {
                        if (ftlp > 0)
                        {
                            TripLogic newLogic = new TripLogic(0, (int)c.Origin, (int)c.Destination, listOfCities);
                            tripLogics.Add(newLogic);
                            ftlp--;
                        }
                        else
                        {
                            if (ltlp > MAX_LOAD)
                            {
                                TripLogic moreLogic = new TripLogic(MAX_LOAD, (int)c.Origin, (int)c.Destination, listOfCities);
                                tripLogics.Add(moreLogic);
                                ltlp -= MAX_LOAD;
                            }
                            else
                            {
                                TripLogic moreLogic = new TripLogic(ltlp, (int)c.Origin, (int)c.Destination, listOfCities);
                                tripLogics.Add(moreLogic);
                                ltlp = 0;
                            }
                        }
                    }

                    contractTripDictionary.Add(c.ContractID, tripLogics);
                }

                ftlp = 0;
                ltlp = 0;
            }

            return(contractTripDictionary);
        }
示例#5
0
        public void RegisterDriver_returns_NonEmptyDrivers()
        {
            // arrange
            IStreamReader reader = Substitute.For <IStreamReader>();

            reader.CreateReader(Arg.Any <string>());
            reader.EndOfStream.Returns(false, true);
            reader.ReadLine().Returns("Driver Test");

            TripLogic tripLogic = new TripLogic();

            // act
            List <Driver> drivers = tripLogic.RegisterDrivers(reader);

            // assert
            Assert.IsTrue(drivers.Any());
        }
示例#6
0
        public void CalculateResults_GreaterThanOneHundredTotalMiles_returns_ZeroMilesDriven()
        {
            // arrange
            List <Driver> drivers = new List <Driver>()
            {
                new Driver()
                {
                    Name = "Dan"
                }
            };

            List <Trip> trips = new List <Trip>()
            {
                new Trip()
                {
                    Driver = new Driver()
                    {
                        Name = "Dan"
                    },
                    StartTime   = TimeSpan.Parse("07:15"),
                    EndTime     = TimeSpan.Parse("07:45"),
                    MilesDriven = 50
                },
                new Trip()
                {
                    Driver = new Driver()
                    {
                        Name = "Dan"
                    },
                    StartTime   = TimeSpan.Parse("06:12"),
                    EndTime     = TimeSpan.Parse("06:32"),
                    MilesDriven = 34
                }
            };

            string expectedResult = "Dan: 0 miles";

            TripLogic tripLogic = new TripLogic();

            // act
            List <string> result = tripLogic.CalculateResults(drivers, trips);

            // assert
            Assert.AreEqual(expectedResult, result[0]);
        }
示例#7
0
        public void CalculateResults_returns_CorrectResultForDriver()
        {
            // arrange
            List <Driver> drivers = new List <Driver>()
            {
                new Driver()
                {
                    Name = "Dan"
                }
            };

            List <Trip> trips = new List <Trip>()
            {
                new Trip()
                {
                    Driver = new Driver()
                    {
                        Name = "Dan"
                    },
                    StartTime   = TimeSpan.Parse("07:15"),
                    EndTime     = TimeSpan.Parse("07:45"),
                    MilesDriven = (decimal)17.3
                },
                new Trip()
                {
                    Driver = new Driver()
                    {
                        Name = "Dan"
                    },
                    StartTime   = TimeSpan.Parse("06:12"),
                    EndTime     = TimeSpan.Parse("06:32"),
                    MilesDriven = (decimal)21.8
                }
            };

            string expectedResult = "Dan: 39 miles @ 47 mph";

            TripLogic tripLogic = new TripLogic();

            // act
            List <string> result = tripLogic.CalculateResults(drivers, trips);

            // assert
            Assert.AreEqual(expectedResult, result[0]);
        }
示例#8
0
        public void RegisterTrips_returns_CorrectTripDataForDriver()
        {
            // arrange
            List <Driver> drivers = new List <Driver>
            {
                new Driver()
                {
                    Name = "Dan"
                }
            };

            IStreamReader reader = Substitute.For <IStreamReader>();

            reader.CreateReader(Arg.Any <string>());

            reader.EndOfStream.Returns(false, true);
            reader.ReadLine().Returns("Trip Dan 07:15 07:45 17.3");

            var expectedTripData = new Trip()
            {
                Driver      = drivers[0],
                StartTime   = TimeSpan.Parse("07:15"),
                EndTime     = TimeSpan.Parse("07:45"),
                MilesDriven = (decimal)17.3
            };

            TripLogic tripLogic = new TripLogic();

            // act
            List <Trip> trips = tripLogic.RegisterTrips(reader, drivers);

            // assert
            Assert.AreEqual(expectedTripData.Driver.Name, trips[0].Driver.Name);
            Assert.AreEqual(expectedTripData.StartTime, trips[0].StartTime);
            Assert.AreEqual(expectedTripData.EndTime, trips[0].EndTime);
            Assert.AreEqual(expectedTripData.MilesDriven, trips[0].MilesDriven);
        }
        public void TripValid()
        {
            TmsDal      CityData = new TmsDal();
            List <Trip> CityInfo = CityData.GetTrips();

            CitiesData[] CityList = new CitiesData[CityInfo.Count];
            int          indexNum = 0;

            foreach (Trip City in CityInfo)
            {
                CityList[indexNum] = new CitiesData(indexNum, City.Distance, City.TravelTime);
                indexNum++;
            }

            TripLogic TripTest = new TripLogic(0, 0, 3, CityList);

            Assert.AreEqual(TripTest.BillDays, 0);
            Assert.AreEqual(TripTest.distance, 387);

            TripTest = new TripLogic(0, 0, 7, CityList);
            Assert.AreEqual(TripTest.BillDays, 1);
            Assert.AreEqual(TripTest.currentCity, 1);
            Assert.AreEqual(TripTest.distance, 859);
            TripTest.AddTime(CityList); //day 0, in transit
            Assert.AreEqual(TripTest.direction, 1);
            TripTest.AddTime(CityList); //day 1, arrived.
            Assert.AreEqual(TripTest.direction, 0);

            TripTest = new TripLogic(10, 1, 5, CityList);
            Assert.AreEqual(TripTest.BillDays, 1);
            Assert.AreEqual(TripTest.distance, 390);

            TripTest = new TripLogic(10, 5, 1, CityList);
            Assert.AreEqual(TripTest.BillDays, 1);
            Assert.AreEqual(TripTest.distance, 390);
        }
示例#10
0
        public void CalculateResults_returns_ResultsSortedByMilesDrivenDesc()
        {
            // arrange
            List <Driver> drivers = new List <Driver>()
            {
                new Driver()
                {
                    Name = "Dan"
                },
                new Driver()
                {
                    Name = "Lauren"
                },
                new Driver()
                {
                    Name = "Kumi"
                }
            };

            List <Trip> trips = new List <Trip>()
            {
                new Trip()
                {
                    Driver = new Driver()
                    {
                        Name = "Kumi"
                    },
                    StartTime   = TimeSpan.Parse("07:15"),
                    EndTime     = TimeSpan.Parse("07:45"),
                    MilesDriven = (decimal)17.3
                },
                new Trip()
                {
                    Driver = new Driver()
                    {
                        Name = "Dan"
                    },
                    StartTime   = TimeSpan.Parse("06:12"),
                    EndTime     = TimeSpan.Parse("06:32"),
                    MilesDriven = (decimal)21.8
                },
                new Trip()
                {
                    Driver = new Driver()
                    {
                        Name = "Lauren"
                    },
                    StartTime   = TimeSpan.Parse("12:01"),
                    EndTime     = TimeSpan.Parse("13:16"),
                    MilesDriven = (decimal)42.0
                }
            };

            TripLogic tripLogic = new TripLogic();

            // act
            List <string> result = tripLogic.CalculateResults(drivers, trips);

            // assert
            Assert.AreEqual(0, result.FindIndex(x => x.Contains("Lauren")));
            Assert.AreEqual(1, result.FindIndex(x => x.Contains("Dan")));
            Assert.AreEqual(2, result.FindIndex(x => x.Contains("Kumi")));
        }
示例#11
0
        public void CalculateResults_returns_NonEmptyResults()
        {
            // arrange
            List <Driver> drivers = new List <Driver>()
            {
                new Driver()
                {
                    Name = "Dan"
                },
                new Driver()
                {
                    Name = "Lauren"
                },
                new Driver()
                {
                    Name = "Kumi"
                }
            };

            List <Trip> trips = new List <Trip>()
            {
                new Trip()
                {
                    Driver = new Driver()
                    {
                        Name = "Dan"
                    },
                    StartTime   = TimeSpan.Parse("07:15"),
                    EndTime     = TimeSpan.Parse("07:45"),
                    MilesDriven = (decimal)17.3
                },
                new Trip()
                {
                    Driver = new Driver()
                    {
                        Name = "Dan"
                    },
                    StartTime   = TimeSpan.Parse("06:12"),
                    EndTime     = TimeSpan.Parse("06:32"),
                    MilesDriven = (decimal)21.8
                },
                new Trip()
                {
                    Driver = new Driver()
                    {
                        Name = "Lauren"
                    },
                    StartTime   = TimeSpan.Parse("12:01"),
                    EndTime     = TimeSpan.Parse("13:16"),
                    MilesDriven = (decimal)42.0
                }
            };

            TripLogic tripLogic = new TripLogic();

            // act
            List <string> result = tripLogic.CalculateResults(drivers, trips);

            // assert
            Assert.IsTrue(result.Any());
        }