public void ComputeNextPosition() { if (TargetPosition == null) { return; } var item1 = CurrentPosition.Item1; var item2 = CurrentPosition.Item2; if (Math.Abs(TargetPosition.Item1 - CurrentPosition.Item1) > 0) { item1 += (TargetPosition.Item1 < CurrentPosition.Item1 ? -1 : 1); } else if (Math.Abs(TargetPosition.Item2 - CurrentPosition.Item2) > 0) { item2 += (TargetPosition.Item2 < CurrentPosition.Item2 ? -1 : 1); } CurrentPosition = new Tuple <long, long>(item1, item2); if (!Equals(TargetPosition, CurrentPosition) || CurrentRide == null) { return; } Rides.Add(CurrentRide); CurrentRide = null; TargetPosition = null; }
public void Solve(Reader reader, TextWriter writer) { R = reader.ReadInt(); C = reader.ReadInt(); VehicleCount = reader.ReadInt(); RideCount = reader.ReadInt(); Bonus = reader.ReadInt(); StepCount = reader.ReadInt(); for (int i = 0; i < RideCount; i++) { Rides.Add(i, new Ride(reader, i)); } AllRides.AddRange(Rides.Values); Vehicles = new List <Vehicle>(VehicleCount); for (int i = 0; i < VehicleCount; i++) { Vehicles.Add(new Vehicle()); } Mid = new Vec(AllRides.Sum(z => z.StartPos.X) / AllRides.Count, AllRides.Sum(z => z.StartPos.Y) / AllRides.Count); if (Path.GetFileNameWithoutExtension(reader.File) != "d_metropolis") { _minDistanceToMid = int.MaxValue; } Solve(); WriteOutput(writer); WriteAnalytics(reader.File); }
public override void Solve() { for (int carPos = 0; carPos < Vehicles.Count; carPos++) { Vehicle car = Vehicles[carPos]; while (true) { Ride bestRide; int bestStartTime; FindBestRideForCar(car, out bestRide, out bestStartTime); if (bestRide != null) { car.AddRide(bestRide, bestRide.EndR, bestRide.EndC, bestStartTime + bestRide.Distance); // Remove ride from list for (int i = 0; i < Rides.Count; i++) { if (Rides[i].ID == bestRide.ID) { Rides.RemoveAt(i); break; } } } else { break; } } } }
public void RemoveImpossibleRidesStart(int curStep) { Rides = Rides.Where(r => r.IsCurrentlyPossibleFromLocation(curStep, new Location() { Columm = 0, Row = 0 })).ToList(); }
public void ReadInputFile(string filename) { using (StreamReader reader = File.OpenText(filename + ".in")) { char[] splitOnThese = { ' ' }; // First Line string readInputLine = reader.ReadLine(); string[] headerInf = readInputLine.Split(splitOnThese); RowCount = int.Parse(headerInf[0]); // R ColumnCount = int.Parse(headerInf[1]); // C VehicleCount = int.Parse(headerInf[2]); // F RideCount = int.Parse(headerInf[3]); // N Bonus = int.Parse(headerInf[4]); // B MaxStepCount = int.Parse(headerInf[5]); // T // Then N lines of individual rides for (int i = 0; i < RideCount; i++) { readInputLine = reader.ReadLine(); headerInf = readInputLine.Split(splitOnThese); Ride r = new Ride(); r.ID = i; r.StartRow = int.Parse(headerInf[0]); // a r.StartColumn = int.Parse(headerInf[1]); // b r.FinishRow = int.Parse(headerInf[2]); // x r.FinishColumn = int.Parse(headerInf[3]); // y r.EarliestStart = int.Parse(headerInf[4]); // s r.LatestFinish = int.Parse(headerInf[5]); // f Rides.AddLast(r); } } }
public void RemoveFarRides(int maxDistance) { Rides = Rides.Where(r => r.GetDistance(new Location() { Columm = 0, Row = 0 }) < maxDistance).ToList(); }
public void AddRide(Ride ride) { int travelDistance = ride.distance + ((ride.Start.X - Position.X) + (ride.Start.Y - Position.Y)); movesRemaining -= travelDistance; Rides.Add(ride); }
private async Task ExecuteLoadRidesCommand() { if (IsBusy) { return; } IsBusy = true; try { Rides.Clear(); var table = App.CloudService.GetTable <Ride>(); var list = await table.ReadAllItemsAsync(); Rides.ReplaceRange(list); RidesGrouped.ReplaceRange(Rides.GroupByName()); } catch (Exception ex) { //MessagingCenter.Send(new MessagingCenterAlert //{ // Title = "Error", // Message = "Unable to load items.", // Cancel = "OK" //}, "message"); } finally { IsBusy = false; } }
public void CTOR_material_prop() { var APR = new Rides(); var result = APR.GetMaterial = "Steel"; Assert.That(result, Is.EqualTo("Steel")); }
public void CTOR__create() { var APR = new Rides(); var result = APR.GetName = "Cyclone"; Assert.That(result, Is.EqualTo("Cyclone")); }
public void AddRide(Ride ride) { if (!Rides.Any()) { Rides = new List <Ride>(); } Rides.Add(ride); }
public IEnumerable <MakeRideAction> GetAvailableActions() { if (Rides.Count == 0) { return(new List <MakeRideAction>(0)); } var ride = Rides.GetEarliestFinish(); if (ride.Equals(default))
public void AddRide(Ride ride) { int travelDistance = ride.distance + ((ride.Start.X - Position.X) + (ride.Start.Y - Position.Y)); movesRemaining -= travelDistance; Rides.Add(ride); NextAvaliablePosition = new Point(ride.Finish); }
public CreateRequestEventListener(Rides mNewTrip, HubConnection connection) { this.hubConnection = connection; rides = mNewTrip; // database = AppDataHelper.GetDatabase(); RequestTimer.Interval = 1000; RequestTimer.Elapsed += RequestTimer_Elapsed; }
public void OnResume() { if (Packages.Count > 0) { return; } var editVM = (BaseViewModel)_activity.ViewModel; var listRide = _activity.Resources.GetStringArray(Resource.Array.lst_ride); var listPackage = _activity.Resources.GetStringArray(Resource.Array.lst_package); //country & city var listcontries = _activity.Resources.GetStringArray(Resource.Array.lst_country); var listcity = _activity.Resources.GetStringArray(Resource.Array.lst_city); int position = 0; foreach (var ride in listRide) { var itm = new ListItem { DisplayName = ride, Position = position }; itm.ParentSelectionChanged = editVM.WhistleEditViewModel.OnSelectionChanged; //ride selection Rides.Add(itm); position++; } position = 0; foreach (var p in listPackage) { var itm = new ListItem { DisplayName = p, Position = position }; itm.ParentSelectionChanged = editVM.WhistleEditViewModel.OnPackageSelectionchanged; Packages.Add(itm); position++; } position = 0; foreach (var count in listcontries) { var itm = new ListItem { DisplayName = count, Position = position }; itm.ParentSelectionChanged = editVM.WhistleEditViewModel.OnContrySelectionChanged; Countries.Add(itm); position++; } position = 0; foreach (var city in listcity) { var itm = new ListItem { DisplayName = city, Position = position }; itm.ParentSelectionChanged = editVM.WhistleEditViewModel.OnSelectionChanged; Cities.Add(itm); position++; } }
public async Task <ResponseData> SaveRideRequest(Rides ride) { if (string.IsNullOrEmpty(ride.Action)) { ride.Action = "A"; } string rideString = JsonConvert.SerializeObject(ride); return(await Common.WebPostServiceAuthorize("api/Trip/SaveRideRequest", rideString)); }
public void AddRide(Ride ride) { if (ride.InitialMileage == null) { throw new InvalidOperationException("Car.InitialMileage is null"); } else { Rides.Add(ride); } }
public IEnumerable <Rides> getAllRides() { string connectionString = @"Server=tcp:fri-ride.database.windows.net,1433;Initial Catalog=FRI-ride;Persist Security Info=False;User ID=zm8184;Password=Lojze4bojze;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"; string queryString = "SELECT COUNT(*) FROM oglas;"; int n = 0; using (SqlConnection conn = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand(queryString, conn); try { conn.Open(); n = (int)cmd.ExecuteScalar(); } catch (Exception ex) { Console.WriteLine(ex.Message); } } rides = new Rides[n]; int i = 0; queryString = "SELECT * FROM oglas;"; using (SqlConnection connection = new SqlConnection( connectionString)) { SqlCommand command = new SqlCommand( queryString, connection); connection.Open(); SqlDataReader reader = command.ExecuteReader(); try { while (reader.Read()) { rides[i] = new Rides { Id_oglas = (int)reader[0], Id_voznik = (int)reader[1], Cas_datum = (string)reader[3], Lokacija = (string)reader[2] }; i++; } } finally { // Always call Close when done reading. reader.Close(); } } return(rides); }
public Rides FetchInformation(ResponseData response) { List <ActiveDrivers> availableDrivers = JsonConvert.DeserializeObject <List <ActiveDrivers> >(response.CallBack); activeDrivers = new List <ActiveDrivers>(); activeDrivers = availableDrivers; Rides rides = JsonConvert.DeserializeObject <Rides>(response.RecordsInString); //Guid r = rides.RideId; //Guid d = rides.RidesInfo.LocationInfo.LocationId; rides.Action = "E"; return(rides); }
public void GivenMultipleRides_ShouldReturnTotalFare() { Rides firstRide = new Rides(2.0, 5, "Premium"); Rides secondRide = new Rides(0.1, 1, "Normal"); List <Rides> rides = new List <Rides> { firstRide, secondRide }; UserAccount.AddRides(this.USERID, rides); InvoiceSummary invoiceSummary = this.INVOICEGENERATOR.GetInvoiceSummary(this.USERID); double expected = 30; Assert.AreEqual(expected, invoiceSummary.TotalFare); }
public void GivenMultipleRides_ShouldReturnTotalFare() { string userId = "nitin"; Rides firstRide = new Rides(2.0, 5, "Premium"); Rides secondRide = new Rides(0.1, 1, "Normal"); List <Rides> rides = new List <Rides> { firstRide, secondRide }; UserAccount.AddRides(userId, rides); InvoiceSummary invoiceSummary = this.invoiceGenerator.GetInvoiceSummary(userId); double expected = 30; Assert.AreEqual(expected, invoiceSummary.TotalFare); }
void TripLocationUnset() { mainMap.Clear(); tripDetails = null; layoutPickUp.Clickable = true; layoutDestination.Clickable = true; pickupRadio.Enabled = true; destinationRadio.Enabled = true; takeAddressFromSearch = false; centerMarker.Visibility = ViewStates.Visible; // favouritePlacesButton.Visibility = ViewStates.Visible; locationSetButton.Visibility = ViewStates.Invisible; tripDetailsBottonsheetBehavior.State = BottomSheetBehavior.StateHidden; GetMyLocation(); }
public void GivenMultipleRides_ShouldReturnTotalFare() { InvoiceGenerator invoiceGenerator = new InvoiceGenerator(); string userId = "soumen"; Rides firstRide = new Rides(2.0, 5); Rides secondRide = new Rides(0.1, 1); List <Rides> rides = new List <Rides> { firstRide, secondRide }; RideRepository.AddRides(userId, rides); InvoiceSummary invoiceSummary = invoiceGenerator.GetInvoiceSummary(userId); double expected = 30; Assert.AreEqual(expected, invoiceSummary.TotalFare); }
public void ApplyRide(Ride r) { var d = r.DistToStart(CurRow, CurRow); CurT += d; if (r.StartT < CurT) { CurT = r.StartT; } CurT += r.Length(); CurRow = r.FinishRow; CurCol = r.FinishCol; Rides.Add(r); }
// find vehicle without ride, find "best" ride for this vehicle // Go through rides // find ride that we can reach early enough // calculate event times private void FindRides() { foreach (var v in Vehicles) { if (v.WithoutRide) { Ride r = FindRide(v); if (r != null) { // The vehicle is going to do this ride. v.ActiveRide = r; Rides.Remove(r); // Remove from list of all. v.Rides.Add(r); // Add to vehicle list. v.EmptyRideToRow = r.StartRow; v.EmptyRideToColumn = r.StartColumn; v.PassengerRideToRow = r.FinishRow; v.PassengerRideToColumn = r.FinishColumn; // NextEvent is the step, in which we delivered the passenger. int emptyRide = Distance(v.ActualPosRow, v.ActualPosColumn, r.StartRow, r.StartColumn); int passengerRide = Distance(r.StartRow, r.StartColumn, r.FinishRow, r.FinishColumn); if (StepNo + emptyRide < r.EarliestStart) { v.NextEvent = r.EarliestStart + passengerRide; } else { v.NextEvent = StepNo + emptyRide + passengerRide; } HashSet <Vehicle> value; if (VehicleEvents.TryGetValue(v.NextEvent, out value)) { value.Add(v); } else { HashSet <Vehicle> hsv = new HashSet <Vehicle>(); hsv.Add(v); VehicleEvents.Add(v.NextEvent, hsv); } } } } }
public void OnGet() { if (!string.IsNullOrEmpty(RideCriteria.DepartureLocation) || !string.IsNullOrEmpty(RideCriteria.DestinationLocation)) { Rides = rideService.FilterRides(RideCriteria); if (Rides.Count() == 0) { ScreenMessage = "Sorry! We couldn't match any rides to your request."; } } else { Rides = rideService.GetAllRides().OrderBy(r => r.StartTime); RideCriteria.StartTime = DateTime.Now; } }
public void GivenUSerId_ShouldReturnInvoiceSummary() { Rides firstRide = new Rides(2.0, 5, "Premium"); Rides secondRide = new Rides(0.1, 1, "Normal"); List <Rides> rides = new List <Rides> { firstRide, secondRide }; UserAccount.AddRides(this.USERID, rides); InvoiceSummary invoiceSummary = this.INVOICEGENERATOR.GetInvoiceSummary(this.USERID); InvoiceSummary expected = new InvoiceSummary { TotalNumberOfRides = 2, TotalFare = 90.0, AverageFarePerRide = 23 }; Assert.AreEqual(expected.TotalFare, invoiceSummary.TotalFare); }
public void GivenPremiumRide_ShouldReturnInvoiceSummary() { string userId = "nitin"; Rides firstRide = new Rides(3.0, 5, "Premium"); Rides secondRide = new Rides(1, 1, "Normal"); List <Rides> rides = new List <Rides> { firstRide, secondRide }; UserAccount.AddRides(userId, rides); InvoiceSummary invoiceSummary = this.invoiceGenerator.GetInvoiceSummary(userId); InvoiceSummary expected = new InvoiceSummary { TotalNumberOfRides = 2, TotalFare = 106, AverageFarePerRide = 33 }; Assert.AreEqual(expected.TotalFare, invoiceSummary.TotalFare); }
public async Task EasyCalculation() { AvailableRides = new BlockingCollection <Ride>(); Rides.ForEach(x => AvailableRides.Add(x)); InitVehicles(); List <Task> taskList = new List <Task>(); int idealRange = VehiclesCount / 10; // ToDo for (int i = 0; i < Vehicles.Count; i++) { if (idealRange + i > VehiclesCount) { idealRange = VehiclesCount - i; } var vehicleSeperation = Vehicles.GetRange(i, idealRange); i += idealRange; taskList.Add(Task.Factory.StartNew(() => { for (int j = 0; i < vehicleSeperation.Count && FindBestRides(vehicleSeperation[j]); j++) { if (j == VehiclesCount - 1) { j = 0; } } })); } await Task.WhenAll(taskList); //for(int i = 0; i < VehiclesCount && FindBestRides(Vehicles[i]); i++) //{ // if(i == VehiclesCount -1) // { // i = 0; // } //} }
public void GivenPremiumRide_ShouldReturnInvoiceSummary() { InvoiceGenerator invoiceGenerator = new InvoiceGenerator(); string userId = "soumen"; Rides firstRide = new Rides(3.0, 5, "Premium"); Rides secondRide = new Rides(1, 1, "Normal"); List <Rides> rides = new List <Rides> { firstRide, secondRide }; RideRepository.AddRides(userId, rides); InvoiceSummary invoiceSummary = invoiceGenerator.GetInvoiceSummary(userId); InvoiceSummary expected = new InvoiceSummary { TotalNumberOfRides = 2, TotalFare = 76.0, AverageFarePerRide = 33 }; Assert.AreEqual(expected.TotalFare, invoiceSummary.TotalFare); }