diff --git a/TravelBuddyApp/src/main/java/domain/Auto.java b/TravelBuddyApp/src/main/java/domain/Auto.java index 819ef57..cb034b2 100644 --- a/TravelBuddyApp/src/main/java/domain/Auto.java +++ b/TravelBuddyApp/src/main/java/domain/Auto.java @@ -5,6 +5,7 @@ public class Auto { private String name; private double co2AusstossProKm; + public Auto(String name, double co2AusstossProKm) { this.name = name; this.co2AusstossProKm = co2AusstossProKm; @@ -25,5 +26,5 @@ public class Auto { public void setCO2AusstossProKm(double co2AusstossProKm) { this.co2AusstossProKm = co2AusstossProKm; } - + } diff --git a/TravelBuddyApp/src/main/java/domain/KurztripEmpfehlung.java b/TravelBuddyApp/src/main/java/domain/KurztripEmpfehlung.java index 9c2ce76..0ef8637 100644 --- a/TravelBuddyApp/src/main/java/domain/KurztripEmpfehlung.java +++ b/TravelBuddyApp/src/main/java/domain/KurztripEmpfehlung.java @@ -1,19 +1,17 @@ package domain; -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Random; public class KurztripEmpfehlung { + User user; private List alleOrte; private Ort heimatort; - public KurztripEmpfehlung() { - this.alleOrte = ladeAlleOrte(); + public KurztripEmpfehlung(User user) { +// this.alleOrte = ladeAlleOrte(); this.heimatort = null; } @@ -32,7 +30,8 @@ public class KurztripEmpfehlung { } for (Ort ort : alleOrte) { - double entfernung = berechneEntfernung(heimatort, ort); + Reiseplanung reise = new Reiseplanung(user, ort); + double entfernung = reise.berechneEntfernung(heimatort, ort); if (entfernung <= maxEntfernung) { gefilterteOrte.add(ort); } @@ -57,7 +56,8 @@ public class KurztripEmpfehlung { } for (Ort ort : alleOrte) { - double entfernung = berechneEntfernung(heimatort, ort); + Reiseplanung reise = new Reiseplanung(user, ort); + double entfernung = reise.berechneEntfernung(heimatort, ort); if (entfernung >= minEntfernung) { gefilterteOrte.add(ort); } @@ -90,53 +90,55 @@ public class KurztripEmpfehlung { return zufallsorte; } - public double berechneEntfernung(Ort standort, Ort zielort) { - double b1 = Math.toRadians(standort.getBreitengrad()); - double b2 = Math.toRadians(zielort.getBreitengrad()); - double l1 = Math.toRadians(standort.getLängengrad()); - double l2 = Math.toRadians(zielort.getLängengrad()); - - double deltaL = l2 - l1; - double cosDeltaL = Math.cos(deltaL); - double acosArgument = Math.sin(b1) * Math.sin(b2) + Math.cos(b1) * Math.cos(b2) * cosDeltaL; - - acosArgument = Math.max(-1.0, Math.min(1.0, acosArgument)); - - double entfernung = 6378.388 * Math.acos(acosArgument); - - return entfernung; - } +// public double berechneEntfernung(Ort standort, Ort zielort) { +// double b1 = Math.toRadians(standort.getBreitengrad()); +// double b2 = Math.toRadians(zielort.getBreitengrad()); +// double l1 = Math.toRadians(standort.getLängengrad()); +// double l2 = Math.toRadians(zielort.getLängengrad()); +// +// double deltaL = l2 - l1; +// double cosDeltaL = Math.cos(deltaL); +// double acosArgument = Math.sin(b1) * Math.sin(b2) + Math.cos(b1) * Math.cos(b2) * cosDeltaL; +// +// acosArgument = Math.max(-1.0, Math.min(1.0, acosArgument)); +// +// double entfernung = 6378.388 * Math.acos(acosArgument); +// +// return entfernung; +// } - private List ladeAlleOrte() { - List alleOrte = new ArrayList<>(); +// private List ladeAlleOrte() { +// List alleOrte = new ArrayList<>(); +// +// String csvFile = "src/main/resources/PLZ.csv"; +// String line; +// try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) { +// while ((line = br.readLine()) != null) { +// line = line.replaceAll("\\s+", ""); +// String[] data = line.split(";"); +// int plz = Integer.parseInt(data[0].replaceAll("\"", "")); +// String ortName = data[1].replaceAll("\"", ""); +// double breitengrad = Double.parseDouble(data[2].replaceAll("\"", "")); +// double laengengrad = Double.parseDouble(data[3].replaceAll("\"", "")); +// Ort ort = new Ort(plz, ortName); +// ort.breitengrad = breitengrad; +// ort.längengrad = laengengrad; +// alleOrte.add(ort); +// } +// } catch (IOException e) { +// System.err.println("Fehler beim Lesen der Datei: " + e.getMessage()); +// e.printStackTrace(); +// } catch (NumberFormatException | ArrayIndexOutOfBoundsException e) { +// System.err.println("Fehlerhaftes Datenformat in der CSV-Datei: " + e.getMessage()); +// e.printStackTrace(); +// } +// +// return alleOrte; +// } - String csvFile = "src/main/resources/PLZ.csv"; - String line; - try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) { - while ((line = br.readLine()) != null) { - line = line.replaceAll("\\s+", ""); - String[] data = line.split(";"); - int plz = Integer.parseInt(data[0].replaceAll("\"", "")); - String ortName = data[1].replaceAll("\"", ""); - double breitengrad = Double.parseDouble(data[2].replaceAll("\"", "")); - double laengengrad = Double.parseDouble(data[3].replaceAll("\"", "")); - Ort ort = new Ort(plz, ortName, breitengrad, laengengrad); - alleOrte.add(ort); - } - } catch (IOException e) { - System.err.println("Fehler beim Lesen der Datei: " + e.getMessage()); - e.printStackTrace(); - } catch (NumberFormatException | ArrayIndexOutOfBoundsException e) { - System.err.println("Fehlerhaftes Datenformat in der CSV-Datei: " + e.getMessage()); - e.printStackTrace(); - } - - return alleOrte; - } - - public Object getHeimatort() { + public Ort getHeimatort() { return heimatort; } } diff --git a/TravelBuddyApp/src/main/java/domain/Ort.java b/TravelBuddyApp/src/main/java/domain/Ort.java index a6ba049..527b437 100644 --- a/TravelBuddyApp/src/main/java/domain/Ort.java +++ b/TravelBuddyApp/src/main/java/domain/Ort.java @@ -1,49 +1,25 @@ package domain; - + import java.io.IOException; + public class Ort { - private int plz; - private String ortName; - private double breitengrad; - private double längengrad; - + private int plz; + private String name; + public double breitengrad; + public double längengrad; - public Ort(int plz, String name) { - this.plz = plz; - this.ortName = name; - } - + public Ort(int plz, String name) { + this.plz = plz; + this.name = name; +// this.breitengrad = breitengrad; +// this.längengrad = längengrad; + } - public Ort(int plz, String name, double breitengrad, double längengrad) { - this.plz = plz; - this.ortName = name; - this.breitengrad = breitengrad; - this.längengrad = längengrad; - } - - public int getPLZ() { - return plz; - } - - public String getOrtName() { - return ortName; - } - - - - public double getBreitengrad() { - return breitengrad; - } - - public double getLängengrad() { - return längengrad; - } - public String getAktuellesWetter() { try { - return WetterService.getAktuellesWetter(ortName); + return WetterService.getAktuellesWetter(name); } catch (IOException | InterruptedException e) { e.printStackTrace(); return "Fehler beim Abrufen des aktuellen Wetters"; @@ -51,11 +27,30 @@ public class Ort { } public String getWettervorhersage() { + try { - return WetterService.getWettervorhersage(ortName); + return WetterService.getWettervorhersage(name); } catch (IOException | InterruptedException e) { e.printStackTrace(); return "Fehler beim Abrufen der Wettervorhersage"; - } + } + } + + + public String getName() { + return name; + } + + public int getPLZ() { + return plz; + } + + public double getBreitengrad() { + return breitengrad; + } + + public double getLängengrad() { + return längengrad; + } } diff --git a/TravelBuddyApp/src/main/java/domain/Reiseplanung.java b/TravelBuddyApp/src/main/java/domain/Reiseplanung.java index 256cff9..af540e0 100644 --- a/TravelBuddyApp/src/main/java/domain/Reiseplanung.java +++ b/TravelBuddyApp/src/main/java/domain/Reiseplanung.java @@ -1,5 +1,6 @@ package domain; +import java.lang.Math; public class Reiseplanung { private Ort standort; @@ -7,43 +8,67 @@ public class Reiseplanung { private double entfernung; private double dauerPKW; private double dauerFahrrad; - private double co2AusstoßPKW; - - public Reiseplanung(Ort standort, Ort zielort, double durchschnittsgeschwindigkeitPKW, - double durchschnittsgeschwindigkeitFahrrad, double co2AusstossProKmPKW) { - this.standort = standort; + private double co2AusstoßPKW; + + public Reiseplanung(User user, Ort zielort) { + this.zielort = zielort; - this.entfernung = berechneEntfernung(standort, zielort); - this.dauerPKW = entfernung / durchschnittsgeschwindigkeitPKW; - this.dauerFahrrad = entfernung / durchschnittsgeschwindigkeitFahrrad; - this.co2AusstoßPKW = entfernung * co2AusstossProKmPKW; + + Auto auto = user.getAuto(); + standort = user.getHeimatstandort(); + berechneEntfernung(this.standort, this.zielort); + dauerPKW = berechneDauer(user.getDurchschnittsgeschwindigkeitPKW()); + dauerFahrrad = berechneDauer(user.getDurchschnittsgeschwindigkeitFahrrad()); + berechneCO2Ausstoß(this.entfernung, auto); + } - + public double berechneEntfernung(Ort standort, Ort zielort) { - double b1 = Math.toRadians(standort.getBreitengrad()); + double b1 = Math.toRadians(standort.getBreitengrad()); double b2 = Math.toRadians(zielort.getBreitengrad()); double l1 = Math.toRadians(standort.getLängengrad()); double l2 = Math.toRadians(zielort.getLängengrad()); - - return 6378.388 * Math.acos(Math.sin(b1) * Math.sin(b2) + Math.cos(b1) * Math.cos(b2) * Math.cos(l2 - l1)); - } - - - - public double getEntfernung() { + + entfernung = (6378.388 * Math.acos(Math.sin(b1) * Math.sin(b2) + Math.cos(b1) * Math.cos(b2) * Math.cos(l2 - l1))) * 1.25; + return entfernung; } - - - public String berechneReiseDauer(double durchschnittsgeschwindigkeit) { - double dauer = entfernung / durchschnittsgeschwindigkeit; - return String.format("Die Reise dauert ca. %.2f Stunden.", dauer); + //berechnet die ungefähre Dauer zum gewählten Ort + public double berechneDauer(double geschwindigkeit) { + return entfernung/geschwindigkeit; + } - - public double berechneCO2Ausstoss() { + + //berechnet ungefähren CO2 Ausstoß des Autos für eine Strecke + public double berechneCO2Ausstoß(double entfernung, Auto auto) { + co2AusstoßPKW = entfernung * auto.getCO2AusstossProKm(); return co2AusstoßPKW; } + + public double getEntfernung() { + return entfernung; + + } + + public String toString() { + return "Von " + standort + " Nach " + zielort + "\nEntfernung: " + entfernung + "\nReisedauer mit dem PKW: " + dauerPKW + "\nReiserdauer mit dem Fahrrad: " + dauerFahrrad + "\nCO2-Ausstoß durch PKW: " + co2AusstoßPKW; + } + +// public Reiseplanung(Ort standort, Ort zielort, double durchschnittsgeschwindigkeitPKW, +// double durchschnittsgeschwindigkeitFahrrad, double co2AusstossProKmPKW) { +// this.standort = standort; +// this.zielort = zielort; +// this.entfernung = berechneEntfernung(standort, zielort); +// this.dauerPKW = entfernung / durchschnittsgeschwindigkeitPKW; +// this.dauerFahrrad = entfernung / durchschnittsgeschwindigkeitFahrrad; +// this.co2AusstoßPKW = entfernung * co2AusstossProKmPKW; +// } + +// public String berechneReiseDauer(double durchschnittsgeschwindigkeit) { +// double dauer = entfernung / durchschnittsgeschwindigkeit; +// return String.format("Die Reise dauert ca. %.2f Stunden.", dauer); +// } public double getDauerPKW() { return dauerPKW; @@ -53,7 +78,7 @@ public class Reiseplanung { return dauerFahrrad; } - - - + public double getCO2Ausstoß() { + return co2AusstoßPKW; + } } diff --git a/TravelBuddyApp/src/main/java/domain/User.java b/TravelBuddyApp/src/main/java/domain/User.java index b999eff..e995b6a 100644 --- a/TravelBuddyApp/src/main/java/domain/User.java +++ b/TravelBuddyApp/src/main/java/domain/User.java @@ -12,7 +12,7 @@ public class User { private String username; private String hashedPassword; private Ort heimatstandort; - private Auto auto; + public Auto auto; private double durchschnittsgeschwindigkeitPKW; private double durchschnittsgeschwindigkeitFahrrad; @@ -83,7 +83,7 @@ public class User { try (PrintWriter writer = new PrintWriter(new FileWriter("users.txt", true))) { writer.println(username + "," + hashedPassword + "," + heimatstandort.getPLZ() + "," - + heimatstandort.getOrtName() + "," + auto.getName() + "," + auto.getCO2AusstossProKm() + "," + + heimatstandort.getName() + "," + auto.getName() + "," + auto.getCO2AusstossProKm() + "," + durchschnittsgeschwindigkeitPKW + "," + durchschnittsgeschwindigkeitFahrrad); } catch (IOException e) { e.printStackTrace(); @@ -114,7 +114,7 @@ public class User { public String zeigeWetterHeimatstandort() { try { - return WetterService.getAktuellesWetter(heimatstandort.getOrtName()); + return WetterService.getAktuellesWetter(heimatstandort.getName()); } catch (IOException | InterruptedException e) { return "Fehler beim Abrufen des Wetters: " + e.getMessage(); } @@ -122,7 +122,7 @@ public class User { public String zeigeWettervorhersageHeimatstandort() { try { - return WetterService.getWettervorhersage(heimatstandort.getOrtName()); + return WetterService.getWettervorhersage(heimatstandort.getName()); } catch (IOException | InterruptedException e) { return "Fehler beim Abrufen der Wettervorhersage: " + e.getMessage(); } diff --git a/TravelBuddyApp/src/main/java/fassade/ReiseFassade.java b/TravelBuddyApp/src/main/java/fassade/ReiseFassade.java index 12877de..e33da37 100644 --- a/TravelBuddyApp/src/main/java/fassade/ReiseFassade.java +++ b/TravelBuddyApp/src/main/java/fassade/ReiseFassade.java @@ -1,24 +1,118 @@ package fassade; - - -import java.util.List; - -import domain.KurztripEmpfehlung; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; import domain.Ort; import domain.Reiseplanung; import domain.User; - +import java.util.List; +import domain.KurztripEmpfehlung; public class ReiseFassade { - private Reiseplanung reiseplanung; - private KurztripEmpfehlung kurztripEmpfehlung; - public ReiseFassade() { - - this.kurztripEmpfehlung = new KurztripEmpfehlung(); - } +private Reiseplanung reiseplanung; +private KurztripEmpfehlung kurztripEmpfehlung; + User user; + List alleOrte; + + + public ReiseFassade(User user) { + + alleOrte = ladeAlleOrte(); + // this.kurztripEmpfehlung = new KurztripEmpfehlung(); + + } + public List ladeAlleOrte() { + List alleOrte = new ArrayList<>(); + + String csvFile = "src/main/resources/PLZ.csv"; + String line; + try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) { + while ((line = br.readLine()) != null) { + line = line.replaceAll("\\s+", ""); + String[] data = line.split(";"); + int plz = Integer.parseInt(data[0].replaceAll("\"", "")); + String ortName = data[1].replaceAll("\"", ""); + double breitengrad = Double.parseDouble(data[2].replaceAll("\"", "")); + double laengengrad = Double.parseDouble(data[3].replaceAll("\"", "")); + Ort ort = new Ort(plz, ortName); + ort.breitengrad = breitengrad; + ort.längengrad = laengengrad; + alleOrte.add(ort); + } + } catch (IOException e) { + System.err.println("Fehler beim Lesen der Datei: " + e.getMessage()); + e.printStackTrace(); + } catch (NumberFormatException | ArrayIndexOutOfBoundsException e) { + System.err.println("Fehlerhaftes Datenformat in der CSV-Datei: " + e.getMessage()); + e.printStackTrace(); + } + + return alleOrte; + } + +// //lädt Datei aus rescources ein und speichert Orte in HashSet ab +// private void orteLaden() throws FileNotFoundException { +// +// //UserInterface.class.getClass().getResourceAsStream("resources/PLZ.csv"); +// Scanner sc = new Scanner(new File("resources/PLZ.csv")); +// +// int zähler = 0; +// while (sc.hasNextLine()) { +// String ort = sc.nextLine(); +// +// String[] spalten = ort.split(";"); +// +// orte.add(new Ort(Integer.parseInt(spalten[0]), spalten[1], Double.parseDouble(spalten[2]), Double.parseDouble(spalten[3]))); +// +// zähler++; +// } +// +// System.out.println(zähler + "Orte geladen."); +// } + + //gibt Trefferliste passend zum Suchbegriff zurück + public Ort[] sucheOrt(String suchbegriff) { + List trefferliste = new ArrayList<>(); +// String ausgabe = " "; + + //gibt alle Orte zurück + if(suchbegriff.equals("alle")) + trefferliste = alleOrte; + else + //läuft über set orte + for(Ort o : alleOrte) { + //fügt ort zur Trefferliste hinzu wenn der Suchbegriff im Namen ist und weniger als 8 Orte bereits drauf stehen + if(o.getName().contains(suchbegriff) && trefferliste.size()<8) + trefferliste.add(o); + } +// +// for(Ort o : trefferliste) { +// ausgabe = ausgabe + o.getName() + " Entfernung: " + new Reiseplanung(user, o).getEntfernung() + "\n"; +// } + + return trefferliste.toArray(new Ort[0]); + } + + public String anzeigeTrefferliste(Ort[] trefferliste) { + String ausgabe = " "; + int i = 1; + for(Ort o : trefferliste) { + ausgabe = ausgabe + i + o.getName() + " Entfernung: " + new Reiseplanung(user, o).getEntfernung() + "\n"; + i++; + } + return ausgabe; + } + + public String ortAnzeige(int index, Ort[] trefferliste) { + String anzeige = " "; + anzeige = trefferliste[index-1].getName() + trefferliste[index-1].getPLZ() + trefferliste[index-1].getWettervorhersage(); + return anzeige; + } /*public Reiseplanung planeReise(Ort startort, Ort zielort) { Reiseplanung reiseplanung = new Reiseplanung(startort, zielort); @@ -28,7 +122,10 @@ public class ReiseFassade { reiseplanung.berechneCo2Ausstoss(); return reiseplanung; }*/ - + public String getReiseplanung(User user, Ort ziel) { + reiseplanung = new Reiseplanung(user, ziel); + return reiseplanung.toString(); + } public void setHeimatortFromUser(User user) { kurztripEmpfehlung.setHeimatort(user.getHeimatstandort()); @@ -41,18 +138,19 @@ public class ReiseFassade { } public String berechneReiseDauerPKW() { - return reiseplanung.berechneReiseDauer(reiseplanung.getDauerPKW()); + double dauer = reiseplanung.berechneDauer(reiseplanung.getDauerPKW()); + return String.format("Die Reise dauert ca. %.2f Stunden.", dauer); } public String berechneReiseDauerFahrrad() { - return reiseplanung.berechneReiseDauer(reiseplanung.getDauerFahrrad()); + double dauer = reiseplanung.berechneDauer(reiseplanung.getDauerFahrrad()); + return String.format("Die Reise dauert ca. %.2f Stunden.", dauer); } public double berechneCO2AusstossPKW() { - return reiseplanung.berechneCO2Ausstoss(); + return reiseplanung.getCO2Ausstoß(); } - public List zufallsorteFahrrad(int maxEntfernung) { return kurztripEmpfehlung.zufallsorteFahrrad(maxEntfernung); @@ -61,6 +159,5 @@ public class ReiseFassade { public List zufallsortePKW(int minEntfernung) { return kurztripEmpfehlung.zufallsortePKW(minEntfernung); } - - + } diff --git a/TravelBuddyApp/src/main/java/ui/UserInterface.java b/TravelBuddyApp/src/main/java/ui/UserInterface.java index cedd9b3..c0104a0 100644 --- a/TravelBuddyApp/src/main/java/ui/UserInterface.java +++ b/TravelBuddyApp/src/main/java/ui/UserInterface.java @@ -4,7 +4,6 @@ import java.util.List; import java.util.Scanner; import domain.Ort; -import domain.Reiseplanung; import domain.User; import fassade.ReiseFassade; import fassade.UserFassade; @@ -18,7 +17,7 @@ public class UserInterface { public UserInterface() { - this.reiseFacade = new ReiseFassade(); + this.reiseFacade = new ReiseFassade(user); this.userFacade = new UserFassade(); this.scanner = new Scanner(System.in); start(); @@ -122,7 +121,7 @@ public class UserInterface { reiseFacade.setHeimatortFromUser(user); System.out.println("\nLogin erfolgreich! Willkommen zurück, " + user.getUsername() + "!"); String wetter = user.zeigeWetterHeimatstandort(); - System.out.println("Aktuelles Wetter in " + user.getHeimatstandort().getOrtName() + ": " + wetter); + System.out.println("Aktuelles Wetter in " + user.getHeimatstandort().getName() + ": " + wetter); } else { System.out.println("\nBenutzername oder Passwort ist falsch:("); } @@ -131,6 +130,18 @@ public class UserInterface { private void sucheOrt() { System.out.print("Geben Sie den Namen des Ortes ein: "); String ortName = scanner.nextLine(); +// reiseFacade.sucheOrt(ortName); + Ort[] trefferliste = reiseFacade.sucheOrt(ortName); + System.out.println(reiseFacade.anzeigeTrefferliste(trefferliste)); + + System.out.println("Wählen Sie einen Ort aus: "); + System.out.println("Geben Sie ´beenden` ein, um zu beenden"); + String input = scanner.nextLine(); + if(input == "beenden") { + return; + } + int eingabe = Integer.parseInt(input); + reiseFacade.ortAnzeige(eingabe, trefferliste); /* * List treffer = reiseFacade.sucheOrt(ortName); if (treffer.isEmpty()) { * System.out.println("Keine Treffer gefunden."); } else { @@ -143,17 +154,18 @@ public class UserInterface { } private void planeReise() { - System.out.print("Geben Sie Ihre Start-PLZ ein: "); - int startPlz = Integer.parseInt(scanner.nextLine()); - System.out.print("Geben Sie Ihren Startort ein: "); - String startOrtName = scanner.nextLine(); - Ort startort = new Ort(startPlz, startOrtName); +// System.out.print("Geben Sie Ihre Start-PLZ ein: "); +// int startPlz = Integer.parseInt(scanner.nextLine()); +// System.out.print("Geben Sie Ihren Startort ein: "); +// String startOrtName = scanner.nextLine(); +// Ort startort = new Ort(startPlz, startOrtName); System.out.print("Geben Sie die Ziel-PLZ ein: "); int zielPlz = Integer.parseInt(scanner.nextLine()); System.out.print("Geben Sie den Zielort ein: "); String zielOrtName = scanner.nextLine(); Ort zielort = new Ort(zielPlz, zielOrtName); + System.out.println(reiseFacade.getReiseplanung(user, zielort)); /* * Reiseplanung reise = reiseFacade.planeReise(startort, zielort); * System.out.println("Reiseplanung:"); System.out.println("Entfernung: " + @@ -166,7 +178,7 @@ public class UserInterface { private void kurztripEmpfehlen() { if (user != null && user.getHeimatstandort() != null) { - System.out.println("Empfehlung basiert auf Heimatort: " + user.getHeimatstandort().getOrtName()); + System.out.println("Empfehlung basiert auf Heimatort: " + user.getHeimatstandort().getName()); reiseFacade.setHeimatortFromUser(user); @@ -181,7 +193,7 @@ public class UserInterface { } else { System.out.println("Folgende Orte wurden für einen Fahrrad-Kurztrip empfohlen:"); for (Ort ort : fahrradOrte) { - System.out.println("- " + ort.getOrtName() + " (PLZ: " + ort.getPLZ() + ")"); + System.out.println("- " + ort.getName() + " (PLZ: " + ort.getPLZ() + ")"); } } break; @@ -192,7 +204,7 @@ public class UserInterface { } else { System.out.println("Folgende Orte wurden für einen Auto-Kurztrip empfohlen:"); for (Ort ort : autoOrte) { - System.out.println("- " + ort.getOrtName() + " (PLZ: " + ort.getPLZ() + ")"); + System.out.println("- " + ort.getName() + " (PLZ: " + ort.getPLZ() + ")"); } } break; diff --git a/TravelBuddyApp/src/test/java/domain/ReiseplanungTest.java b/TravelBuddyApp/src/test/java/domain/ReiseplanungTest.java new file mode 100644 index 0000000..3a693ae --- /dev/null +++ b/TravelBuddyApp/src/test/java/domain/ReiseplanungTest.java @@ -0,0 +1,40 @@ +package domain; + +import static org.junit.Assert.assertEquals; +import org.junit.Test; + +public class ReiseplanungTest { + + Auto auto = new Auto("Brummi", 167.6); + Ort ort = new Ort(1067, "Dresden", 13.7210676148814, 51.0600336463379); + User user = new User("Karl", "hallo", ort, auto, 30, 15); + Ort ziel = new Ort(1705, "Freital", 13.6382950999229, 50.9981963286759); + Reiseplanung reise = new Reiseplanung(user,ziel); + + + @Test + public void testBerechneEntfernung() { + + double result = reise.berechneEntfernung(ort, ziel); + + assertEquals(14.2125, result, 0.0); + } + + @Test + public void testBerechneDauer() { + double entfernung = 136.5; + double geschwindigkeit = 70; + + double result = reise.berechneDauer(entfernung, geschwindigkeit); + + assertEquals(1.95, result, 0.0); + } + + public void testBerechneCO2Ausstoß() { + double entfernung = 73.8; + + double result = reise.berechneCO2Ausstoß(entfernung, auto); + + assertEquals(12368.88, result, 0.0); + } +}