public void FindTripMinDistanceComplexGraphReturnsOk_Train() { planner.AddTravelCompany(rotcA); ILegDTO legDTO = createdLegs[new Key(rotcAName, A, B)]; var trip = planner.FindTrip(A, B, FindOptions.MinimumDistance, TransportType.Train); Assert.AreEqual(legDTO.Cost, trip.TotalCost); Assert.AreEqual(legDTO.Distance, trip.TotalDistance); Assert.That(trip.Path, Is.EquivalentTo(new[] { legDTO })); }
public void FindTripMinHopSimpleGraphOneHopReturnOk_Plane() { planner.AddTravelCompany(rotcB); var trip = planner.FindTrip(A, E, FindOptions.MinimumHops, TransportType.Plane); ILegDTO legDTO = createdLegs[new Key(rotcBName, A, E)]; Assert.AreEqual(legDTO.Cost, trip.TotalCost); Assert.AreEqual(legDTO.Distance, trip.TotalDistance); Assert.AreEqual(A, trip.From); Assert.AreEqual(E, trip.To); Assert.That(trip.Path, Is.EquivalentTo(new[] { legDTO })); }
public void FindTripMinHopSimpleGraphTwoHopReturnOk_Train_Plane() { planner.AddTravelCompany(rotcC); var trip = planner.FindTrip(B, E, FindOptions.MinimumHops, TransportType.Train | TransportType.Plane); ILegDTO legDTOPrimo = createdLegs[new Key(rotcCName, B, A)]; ILegDTO legDTOSecondo = createdLegs[new Key(rotcCName, A, E)]; Assert.AreEqual(legDTOPrimo.Cost + legDTOSecondo.Cost, trip.TotalCost); Assert.AreEqual(legDTOPrimo.Distance + legDTOSecondo.Distance, trip.TotalDistance); Assert.AreEqual(B, trip.From); Assert.AreEqual(E, trip.To); Assert.That(trip.Path, Is.EquivalentTo(new[] { legDTOPrimo, legDTOSecondo })); }
public void FindTripMinCostComplexGraphReturnOk_Train_Plane() { planner.AddTravelCompany(rotcC); var trip = planner.FindTrip(A, B, FindOptions.MinimumCost, TransportType.Train | TransportType.Plane); ILegDTO legDTOPrimo = createdLegs[new Key(rotcCName, A, C)]; ILegDTO legDTOSecondo = createdLegs[new Key(rotcCName, C, F)]; ILegDTO legDTOTerzo = createdLegs[new Key(rotcCName, F, B)]; Assert.AreEqual(legDTOPrimo.Cost + legDTOSecondo.Cost + legDTOTerzo.Cost, trip.TotalCost); Assert.AreEqual(legDTOPrimo.Distance + legDTOSecondo.Distance + legDTOTerzo.Distance, trip.TotalDistance); Assert.AreEqual(A, trip.From); Assert.AreEqual(B, trip.To); Assert.That(trip.Path, Is.EquivalentTo(new[] { legDTOPrimo, legDTOSecondo, legDTOTerzo })); }
public void FindTripMinCostSimpleGraphMoreHopReturnOk() { planner.AddTravelCompany(rotcB); var trip = planner.FindTrip(A, B, FindOptions.MinimumCost, TransportType.Plane); ILegDTO legDTO1 = createdLegs[new Key(rotcBName, A, F)]; ILegDTO legDTO2 = createdLegs[new Key(rotcBName, F, B)]; Assert.AreEqual(legDTO1.Cost + legDTO2.Cost, trip.TotalCost); Assert.AreEqual(legDTO1.Distance + legDTO2.Distance, trip.TotalDistance); Assert.AreEqual(A, trip.From); Assert.AreEqual(B, trip.To); Assert.That(trip.Path, Is.EquivalentTo(new[] { legDTO1, legDTO2 })); }
public void FindTripMinDistanceComplexGraphReturnOk_Train() { planner.AddTravelCompany(rotcA); var trip = planner.FindTrip(A, E, FindOptions.MinimumDistance, TransportType.Train); ILegDTO legDTOPrimo = createdLegs[new Key(rotcAName, A, C)]; ILegDTO legDTOSecondo = createdLegs[new Key(rotcAName, C, F)]; ILegDTO legDTOTerzo = createdLegs[new Key(rotcAName, F, D)]; ILegDTO legDTOQuarto = createdLegs[new Key(rotcAName, D, E)]; Assert.AreEqual(legDTOPrimo.Cost + legDTOSecondo.Cost + legDTOTerzo.Cost + legDTOQuarto.Cost, trip.TotalCost); Assert.AreEqual(legDTOPrimo.Distance + legDTOSecondo.Distance + legDTOTerzo.Distance + legDTOQuarto.Distance, trip.TotalDistance); Assert.AreEqual(A, trip.From); Assert.AreEqual(E, trip.To); Assert.That(trip.Path, Is.EquivalentTo(new[] { legDTOPrimo, legDTOSecondo, legDTOTerzo, legDTOQuarto })); }
public void InitializePaths() { A = "A"; B = "B"; C = "C"; D = "D"; E = "E"; F = "G"; unreachable = "UNREACHABLE"; travelCompany = travelCompanyFactory.Get(ExampleName); aeIndex = travelCompany.CreateLeg(A, E, 10, 45, TransportType.Train); ae = travelCompany.GetLegDTOFromId(aeIndex); abIndex = travelCompany.CreateLeg(A, B, 2, 4, TransportType.Train); ab = travelCompany.GetLegDTOFromId(abIndex); bfIndex = travelCompany.CreateLeg(B, F, 5, 20, TransportType.Train); bf = travelCompany.GetLegDTOFromId(bfIndex); travelCompany.CreateLeg(C, D, 1, 4, TransportType.Train); travelCompany.CreateLeg(D, F, 2, 8, TransportType.Train); }