Unstable test (multiple exceptions)

This commit is contained in:
HeshamTB 2020-11-27 09:07:17 +03:00
parent b214b279db
commit d1061221e8
Signed by: Hesham
GPG Key ID: 74876157D199B09E
2 changed files with 50 additions and 22 deletions

View File

@ -21,7 +21,7 @@ public class MakkahCity {
private static PDate currenttimeManager = firstDayTimeMan; private static PDate currenttimeManager = firstDayTimeMan;
public static void main(String[] args) { public static void main(String[] args) {
ArrayList<Thread> threads = new ArrayList<>();
//Gen Camp //Gen Camp
campPerDistrict[District.ALMANSOOR.ordinal()] = new ArrayList<>(); campPerDistrict[District.ALMANSOOR.ordinal()] = new ArrayList<>();
campPerDistrict[District.ALAZIZIYA.ordinal()] = new ArrayList<>(); campPerDistrict[District.ALAZIZIYA.ordinal()] = new ArrayList<>();
@ -62,27 +62,21 @@ public class MakkahCity {
} }
clearDoneCivilVehicles(); clearDoneCivilVehicles();
for (Vehicle vehicle : listOfVehicles) { for (Vehicle vehicle : listOfVehicles) {
Route route = vehicle.getRoute(); VMover m = new VMover(vehicle);
double currentLocation = vehicle.getCurrentLocation(); threads.add(new Thread(m));
if (vehicle.getCurrentStreet() == null &&
route.getStreets()[0].capcityPoint(0,1000) < 1) {
vehicle.setCurrentStreet(route.getStreets()[0]);
}
if (vehicle.getCurrentStreet() != null && vehicle.getCurrentStreet().capcityPoint(currentLocation,
currentLocation+1000) < 1 ) {
if (currentLocation >= vehicle.getCurrentStreet().getLength()) {
//Move to next street
vehicle.moveToNextStreet();
}
if (!vehicle.isArrivedToDest()) {
double factor = 1-(vehicle.getCurrentStreet().capcityPoint(vehicle.getCurrentLocation(),
vehicle.getCurrentLocation()+1000,vehicle)) ;
if (vehicle instanceof Bus) vehicle.move(Bus.MAX_FORWARD * factor );
else if (vehicle instanceof Sedan) vehicle.move(Sedan.MAX_FORWARD * factor );
else if (vehicle instanceof SUV) vehicle.move(SUV.MAX_FORWARD * factor );
else if (vehicle instanceof Truck) vehicle.move(Bus.MAX_FORWARD * factor );
} }
for (int i = 0; i < threads.size(); i += 4){
threads.get(i).start();
threads.get(i+1).start();
threads.get(i+2).start();
threads.get(i+3).start();
try {
threads.get(i).join();
threads.get(i+1).join();
threads.get(i+2).join();
threads.get(i+3).join();
} catch (InterruptedException e) {
e.printStackTrace();
} }
} }
//noise based on time of day (From PDate) //noise based on time of day (From PDate)

34
src/VMover.java Normal file
View File

@ -0,0 +1,34 @@
public class VMover implements Runnable {
private Vehicle vehicle;
public VMover(Vehicle vehicle) {
this.vehicle = vehicle;
}
@Override
public void run() {
Route route = vehicle.getRoute();
double currentLocation = vehicle.getCurrentLocation();
if (vehicle.getCurrentStreet() == null &&
route.getStreets()[0].capcityPoint(0,1000) < 1) {
vehicle.setCurrentStreet(route.getStreets()[0]);
}
if (vehicle.getCurrentStreet() != null && vehicle.getCurrentStreet().capcityPoint(currentLocation,
currentLocation+1000) < 1 ) {
if (currentLocation >= vehicle.getCurrentStreet().getLength()) {
//Move to next street
vehicle.moveToNextStreet();
}
if (!vehicle.isArrivedToDest()) {
double factor = 1-(vehicle.getCurrentStreet().capcityPoint(vehicle.getCurrentLocation(),
vehicle.getCurrentLocation()+1000,vehicle)) ;
if (vehicle instanceof Bus) vehicle.move(Bus.MAX_FORWARD * factor );
else if (vehicle instanceof Sedan) vehicle.move(Sedan.MAX_FORWARD * factor );
else if (vehicle instanceof SUV) vehicle.move(SUV.MAX_FORWARD * factor );
else if (vehicle instanceof Truck) vehicle.move(Bus.MAX_FORWARD * factor );
}
}
}
}