From 40795eb3c06e0ea4544370e0d636f64c9be34966 Mon Sep 17 00:00:00 2001 From: Peter Stoilkov <peter_sto@mail.bg> Date: Sun, 5 Mar 2023 11:31:27 +0200 Subject: [PATCH] MapRouteFinder -Test added --- .../edu/maproutefinder/business/Run.java | 60 ------------------- .../MapRouteFinderApplicationTests.java | 60 ++++++++++++++++++- 2 files changed, 59 insertions(+), 61 deletions(-) delete mode 100644 src/main/java/bg/academy/edu/maproutefinder/business/Run.java diff --git a/src/main/java/bg/academy/edu/maproutefinder/business/Run.java b/src/main/java/bg/academy/edu/maproutefinder/business/Run.java deleted file mode 100644 index 6cd00f7..0000000 --- a/src/main/java/bg/academy/edu/maproutefinder/business/Run.java +++ /dev/null @@ -1,60 +0,0 @@ -package bg.academy.edu.maproutefinder.business; - -import bg.academy.edu.maproutefinder.data.entities.Town; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -public class Run { - - public static void main(String[] args) { - - MapGraph map; - - RouteFinder routeFinder; - - Set<Town> towns = new HashSet<>(); - Map<String, Set<String>> connections = new HashMap<>(); - - towns.add(new Town("Shumen", 43.283333f, 26.933332f)); - towns.add(new Town("Ruse", 43.835571f, 25.965654f)); - towns.add(new Town("Plovdiv", 42.136097f, 24.742168f)); - towns.add(new Town("Yambol", 42.492603f, 26.501442f)); - towns.add(new Town("Sofia", 42.698334f, 23.319941f)); - towns.add(new Town("Burgas", 42.510578f, 27.461014f)); - towns.add(new Town("Varna", 43.204666f, 27.910543f)); - towns.add(new Town("Pleven", 43.4132f, 24.6169f)); - towns.add(new Town("Vidin", 43.9887f, 22.8741f)); - towns.add(new Town("Montana", 43.4055f, 23.2242f)); - towns.add(new Town("Blagoevgrad", 42.0119f, 23.0897f)); - towns.add(new Town("Haskovo", 41.9346f, 25.5556f)); - towns.add(new Town("Kyustendil", 42.2811f, 22.6889f)); - - connections.put("Shumen", Stream.of("Ruse","Varna","Yambol","Pleven").collect(Collectors.toSet())); - connections.put("Ruse", Stream.of("Shumen","Pleven").collect(Collectors.toSet())); - connections.put("Plovdiv", Stream.of("Haskovo","Sofia","Yambol").collect(Collectors.toSet())); - connections.put("Yambol", Stream.of("Shumen","Plovdiv", "Burgas").collect(Collectors.toSet())); - connections.put("Sofia", Stream.of("Blagoevgrad","Kyustendil", "Montana", "Plovdiv").collect(Collectors.toSet())); - connections.put("Burgas", Stream.of("Varna", "Yambol").collect(Collectors.toSet())); - connections.put("Varna", Stream.of("Shumen","Burgas").collect(Collectors.toSet())); - connections.put("Pleven", Stream.of("Ruse","Sofia", "Montana", "Shumen").collect(Collectors.toSet())); - connections.put("Vidin", Stream.of("Montana").collect(Collectors.toSet())); - connections.put("Montana", Stream.of("Vidin","Sofia", "Pleven").collect(Collectors.toSet())); - connections.put("Blagoevgrad", Stream.of("Kyustendil","Sofia").collect(Collectors.toSet())); - connections.put("Haskovo", Stream.of("Plovdiv").collect(Collectors.toSet())); - connections.put("Kyustendil", Stream.of("Blagoevgrad","Sofia").collect(Collectors.toSet())); - - map = new MapGraph(towns, connections); - routeFinder = new RouteFinder(map, new HaversineDistance(), new HaversineDistance()); - - List<Town> route = routeFinder.findRoute(map.getTown("Sofia"), map.getTown("Varna")); - - route.stream().map(Town::getName).collect(Collectors.toList()).forEach(System.out::println); - } - -} diff --git a/src/test/java/bg/academy/edu/maproutefinder/MapRouteFinderApplicationTests.java b/src/test/java/bg/academy/edu/maproutefinder/MapRouteFinderApplicationTests.java index c558ff5..6129b22 100644 --- a/src/test/java/bg/academy/edu/maproutefinder/MapRouteFinderApplicationTests.java +++ b/src/test/java/bg/academy/edu/maproutefinder/MapRouteFinderApplicationTests.java @@ -1,12 +1,70 @@ package bg.academy.edu.maproutefinder; +import bg.academy.edu.maproutefinder.business.HaversineDistance; +import bg.academy.edu.maproutefinder.business.MapGraph; +import bg.academy.edu.maproutefinder.business.RouteFinder; +import bg.academy.edu.maproutefinder.data.entities.Town; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.Stream; + @SpringBootTest class MapRouteFinderApplicationTests { + private MapGraph map; + + private RouteFinder routeFinder; + + @BeforeEach + public void setUp() { + Set<Town> towns = new HashSet<>(); + Map<String, Set<String>> connections = new HashMap<>(); + + towns.add(new Town("Shumen", 43.283333f, 26.933332f)); + towns.add(new Town("Ruse", 43.835571f, 25.965654f)); + towns.add(new Town("Plovdiv", 42.136097f, 24.742168f)); + towns.add(new Town("Yambol", 42.492603f, 26.501442f)); + towns.add(new Town("Sofia", 42.698334f, 23.319941f)); + towns.add(new Town("Burgas", 42.510578f, 27.461014f)); + towns.add(new Town("Varna", 43.204666f, 27.910543f)); + towns.add(new Town("Pleven", 43.4132f, 24.6169f)); + towns.add(new Town("Vidin", 43.9887f, 22.8741f)); + towns.add(new Town("Montana", 43.4055f, 23.2242f)); + towns.add(new Town("Blagoevgrad", 42.0119f, 23.0897f)); + towns.add(new Town("Haskovo", 41.9346f, 25.5556f)); + towns.add(new Town("Kyustendil", 42.2811f, 22.6889f)); + + connections.put("Shumen", Stream.of("Ruse","Varna","Yambol","Pleven").collect(Collectors.toSet())); + connections.put("Ruse", Stream.of("Shumen","Pleven").collect(Collectors.toSet())); + connections.put("Plovdiv", Stream.of("Haskovo","Sofia","Yambol").collect(Collectors.toSet())); + connections.put("Yambol", Stream.of("Shumen","Plovdiv", "Burgas").collect(Collectors.toSet())); + connections.put("Sofia", Stream.of("Blagoevgrad","Kyustendil", "Montana", "Plovdiv").collect(Collectors.toSet())); + connections.put("Burgas", Stream.of("Varna", "Yambol").collect(Collectors.toSet())); + connections.put("Varna", Stream.of("Shumen","Burgas").collect(Collectors.toSet())); + connections.put("Pleven", Stream.of("Ruse","Sofia", "Montana", "Shumen").collect(Collectors.toSet())); + connections.put("Vidin", Stream.of("Montana").collect(Collectors.toSet())); + connections.put("Montana", Stream.of("Vidin","Sofia", "Pleven").collect(Collectors.toSet())); + connections.put("Blagoevgrad", Stream.of("Kyustendil","Sofia").collect(Collectors.toSet())); + connections.put("Haskovo", Stream.of("Plovdiv").collect(Collectors.toSet())); + connections.put("Kyustendil", Stream.of("Blagoevgrad","Sofia").collect(Collectors.toSet())); + + map = new MapGraph(towns, connections); + routeFinder = new RouteFinder(map, new HaversineDistance(), new HaversineDistance()); + } + @Test - void contextLoads() {} + void findRoute() { + List<Town> route = routeFinder.findRoute(map.getTown("Sofia"), map.getTown("Varna")); + + route.stream().map(Town::getName).collect(Collectors.toList()).forEach(System.out::println); + } } -- GitLab