diff --git a/core/src/main/java/ru/trader/analysis/VendorsGraph.java b/core/src/main/java/ru/trader/analysis/VendorsGraph.java index 535f332..8c57ca1 100644 --- a/core/src/main/java/ru/trader/analysis/VendorsGraph.java +++ b/core/src/main/java/ru/trader/analysis/VendorsGraph.java @@ -10,7 +10,10 @@ import ru.trader.core.Order; import ru.trader.core.Profile; import ru.trader.core.Vendor; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; import java.util.function.Consumer; @@ -319,7 +322,7 @@ public class VendorsGraph extends ConnectibleGraph { public Path getPath(double fuel){ Path res = null; for (Path p : paths) { - if ((fuel > p.getMinFuel() || getSource().getEntry().canRefill()) && fuel <= p.getMaxFuel()) { + if ((fuel > p.getMinFuel() || getSource().getEntry().canRefill() && getShip().getRoundFuel(p.getMaxFuel()) >= p.getMinFuel()) && fuel <= p.getMaxFuel()) { if (getProfile().getPathPriority().equals(Profile.PATH_PRIORITY.FAST)) { if (res == null || (p.getSize() < res.getSize() || p.getSize() == res.getSize() && p.getFuelCost() < res.getFuelCost()) && p.getRefillCount(fuel) <= res.getRefillCount(fuel)) { res = p; diff --git a/core/src/test/java/ru/trader/analysis/graph/PathTest.java b/core/src/test/java/ru/trader/analysis/graph/PathTest.java index acda268..2abaa45 100644 --- a/core/src/test/java/ru/trader/analysis/graph/PathTest.java +++ b/core/src/test/java/ru/trader/analysis/graph/PathTest.java @@ -7,7 +7,10 @@ import org.slf4j.LoggerFactory; import org.xml.sax.SAXException; import ru.trader.analysis.AnalysisCallBack; import ru.trader.analysis.TransitPath; -import ru.trader.core.*; +import ru.trader.core.Market; +import ru.trader.core.Profile; +import ru.trader.core.Ship; +import ru.trader.core.Vendor; import ru.trader.store.simple.Store; import javax.xml.parsers.ParserConfigurationException; @@ -228,4 +231,41 @@ public class PathTest extends Assert { */ } + + /* TODO: check paths + +ERROR: 18.12.2016 20:14:37 (TransitPath.java:48) - Incorrect path, path = {Marley City - null(5.650000063702464 - 32.0) -> Transit Col 285 Sector JY-S a33-0, Transit Col 285 Sector JY-S a33-0 - null(2.9400001242756844 - 32.0) -> Transit LP 91-140, Transit LP 91-140 - null(6.830000037327409 - 32.0) -> Transit Shui Wei Sector FH-U b3-4, Transit Shui Wei Sector FH-U b3-4 - null(8.040000010281801 - 31.938907065299873) -> Transit Shui Wei Sector JN-S b4-3, Transit Shui Wei Sector JN-S b4-3 - null(8.480000000447035 - 9.481771344586832) -> Wales City}, fuel = -1.3063401932628143, ship = Ship{cargo=384, engine=7C {optMass=1800.0, fuelPJ=8.5}, tank=32.0, mass=760.3, jumpRange=19.285799993506345, maxDist=19.678943903852804, fullTankDist=76.16151750390145} +ERROR: 18.12.2016 20:14:37 (VendorsCrawler.java:95) - Wrong path, entry {head=[Poindexter Horizons - 0.9589628706630414 -> Anning Enterprise], edge=Anning Enterprise - 0.3624985921259898 -> Marley City}, fuel = 19.302461271880986 +ERROR: 18.12.2016 20:14:37 (TransitPath.java:48) - Incorrect path, path = {Marley City - null(5.650000063702464 - 32.0) -> Transit Col 285 Sector JY-S a33-0, Transit Col 285 Sector JY-S a33-0 - null(2.9400001242756844 - 32.0) -> Transit LP 91-140, Transit LP 91-140 - null(6.830000037327409 - 32.0) -> Transit Shui Wei Sector FH-U b3-4, Transit Shui Wei Sector FH-U b3-4 - null(8.040000010281801 - 31.938907065299873) -> Transit Shui Wei Sector JN-S b4-3, Transit Shui Wei Sector JN-S b4-3 - null(8.480000000447035 - 9.481771344586832) -> Wales City}, fuel = -1.3063401932628143, ship = Ship{cargo=384, engine=7C {optMass=1800.0, fuelPJ=8.5}, tank=32.0, mass=760.3, jumpRange=19.285799993506345, maxDist=19.678943903852804, fullTankDist=76.16151750390145} +ERROR: 18.12.2016 20:14:37 (VendorsCrawler.java:95) - Wrong path, entry {head=[Poindexter Horizons - 1.0645592731448934 -> Waldrop Gateway], edge=Waldrop Gateway - 0.5196667298732823 -> Marley City}, fuel = 11.649596203747677 +ERROR: 18.12.2016 20:14:37 (TransitPath.java:48) - Incorrect path, path = {Marley City - null(5.650000063702464 - 32.0) -> Transit Col 285 Sector JY-S a33-0, Transit Col 285 Sector JY-S a33-0 - null(2.9400001242756844 - 32.0) -> Transit LP 91-140, Transit LP 91-140 - null(6.830000037327409 - 32.0) -> Transit Shui Wei Sector FH-U b3-4, Transit Shui Wei Sector FH-U b3-4 - null(8.040000010281801 - 31.938907065299873) -> Transit Shui Wei Sector JN-S b4-3, Transit Shui Wei Sector JN-S b4-3 - null(8.480000000447035 - 9.481771344586832) -> Wales City}, fuel = -1.3063401932628143, ship = Ship{cargo=384, engine=7C {optMass=1800.0, fuelPJ=8.5}, tank=32.0, mass=760.3, jumpRange=19.285799993506345, maxDist=19.678943903852804, fullTankDist=76.16151750390145} +ERROR: 18.12.2016 20:14:37 (VendorsCrawler.java:95) - Wrong path, entry {head=[Poindexter Horizons - 1.022834181578632 -> Malenchenko Dock], edge=Malenchenko Dock - 0.8421773536261806 -> Marley City}, fuel = 19.40800122650537 +ERROR: 18.12.2016 20:14:37 (TransitPath.java:48) - Incorrect path, path = {Marley City - null(5.650000063702464 - 32.0) -> Transit Col 285 Sector JY-S a33-0, Transit Col 285 Sector JY-S a33-0 - null(2.9400001242756844 - 32.0) -> Transit LP 91-140, Transit LP 91-140 - null(6.830000037327409 - 32.0) -> Transit Shui Wei Sector FH-U b3-4, Transit Shui Wei Sector FH-U b3-4 - null(8.040000010281801 - 31.938907065299873) -> Transit Shui Wei Sector JN-S b4-3, Transit Shui Wei Sector JN-S b4-3 - null(8.480000000447035 - 9.481771344586832) -> Wales City}, fuel = -1.3063401932628143, ship = Ship{cargo=384, engine=7C {optMass=1800.0, fuelPJ=8.5}, tank=32.0, mass=760.3, jumpRange=19.285799993506345, maxDist=19.678943903852804, fullTankDist=76.16151750390145} +ERROR: 18.12.2016 20:14:37 (VendorsCrawler.java:95) - Wrong path, entry {head=[Poindexter Horizons - 1.059486010716856 -> Arnold Hub], edge=Arnold Hub - 0.5363394599627498 -> Marley City}, fuel = 9.01892987314588 +ERROR: 18.12.2016 20:14:37 (TransitPath.java:48) - Incorrect path, path = {Fung Station - null(7.730000017210841 - 32.0) -> Transit Col 285 Sector JY-S a33-0, Transit Col 285 Sector JY-S a33-0 - null(2.9400001242756844 - 32.0) -> Transit LP 91-140, Transit LP 91-140 - null(6.830000037327409 - 32.0) -> Transit Shui Wei Sector FH-U b3-4, Transit Shui Wei Sector FH-U b3-4 - null(8.040000010281801 - 31.938907065299873) -> Transit Shui Wei Sector JN-S b4-3, Transit Shui Wei Sector JN-S b4-3 - null(8.480000000447035 - 9.481771344586832) -> Wales City}, fuel = -1.3063401932628143, ship = Ship{cargo=384, engine=7C {optMass=1800.0, fuelPJ=8.5}, tank=32.0, mass=760.3, jumpRange=19.285799993506345, maxDist=19.678943903852804, fullTankDist=76.16151750390145} +ERROR: 18.12.2016 20:14:37 (VendorsCrawler.java:95) - Wrong path, entry {head=[Poindexter Horizons - 1.059486010716856 -> Arnold Hub], edge=Arnold Hub - 0.7340450745407797 -> Fung Station}, fuel = 9.58410781172928 +ERROR: 18.12.2016 20:14:37 (TransitPath.java:48) - Incorrect path, path = {Marley City - null(5.650000063702464 - 32.0) -> Transit Col 285 Sector JY-S a33-0, Transit Col 285 Sector JY-S a33-0 - null(2.9400001242756844 - 32.0) -> Transit LP 91-140, Transit LP 91-140 - null(6.830000037327409 - 32.0) -> Transit Shui Wei Sector FH-U b3-4, Transit Shui Wei Sector FH-U b3-4 - null(8.040000010281801 - 31.938907065299873) -> Transit Shui Wei Sector JN-S b4-3, Transit Shui Wei Sector JN-S b4-3 - null(8.480000000447035 - 9.481771344586832) -> Wales City}, fuel = -1.3063401932628143, ship = Ship{cargo=384, engine=7C {optMass=1800.0, fuelPJ=8.5}, tank=32.0, mass=760.3, jumpRange=19.285799993506345, maxDist=19.678943903852804, fullTankDist=76.16151750390145} +ERROR: 18.12.2016 20:14:37 (VendorsCrawler.java:95) - Wrong path, entry {head=[Poindexter Horizons - 1.114615867252881 -> Kaku City], edge=Kaku City - 0.507413400537874 -> Marley City}, fuel = 10.494978262690863 +ERROR: 18.12.2016 20:14:37 (TransitPath.java:48) - Incorrect path, path = {Fung Station - null(7.730000017210841 - 32.0) -> Transit Col 285 Sector JY-S a33-0, Transit Col 285 Sector JY-S a33-0 - null(2.9400001242756844 - 32.0) -> Transit LP 91-140, Transit LP 91-140 - null(6.830000037327409 - 32.0) -> Transit Shui Wei Sector FH-U b3-4, Transit Shui Wei Sector FH-U b3-4 - null(8.040000010281801 - 31.938907065299873) -> Transit Shui Wei Sector JN-S b4-3, Transit Shui Wei Sector JN-S b4-3 - null(8.480000000447035 - 9.481771344586832) -> Wales City}, fuel = -1.3063401932628143, ship = Ship{cargo=384, engine=7C {optMass=1800.0, fuelPJ=8.5}, tank=32.0, mass=760.3, jumpRange=19.285799993506345, maxDist=19.678943903852804, fullTankDist=76.16151750390145} +ERROR: 18.12.2016 20:14:37 (VendorsCrawler.java:95) - Wrong path, entry {head=[Poindexter Horizons - 1.12967434055453 -> Windt Terminal], edge=Windt Terminal - 0.21019712790181494 -> Fung Station}, fuel = 19.185052069305907 +ERROR: 18.12.2016 20:14:37 (TransitPath.java:48) - Incorrect path, path = {Marley City - null(5.650000063702464 - 32.0) -> Transit Col 285 Sector JY-S a33-0, Transit Col 285 Sector JY-S a33-0 - null(2.9400001242756844 - 32.0) -> Transit LP 91-140, Transit LP 91-140 - null(6.830000037327409 - 32.0) -> Transit Shui Wei Sector FH-U b3-4, Transit Shui Wei Sector FH-U b3-4 - null(8.040000010281801 - 31.938907065299873) -> Transit Shui Wei Sector JN-S b4-3, Transit Shui Wei Sector JN-S b4-3 - null(8.480000000447035 - 9.481771344586832) -> Wales City}, fuel = -1.3063401932628143, ship = Ship{cargo=384, engine=7C {optMass=1800.0, fuelPJ=8.5}, tank=32.0, mass=760.3, jumpRange=19.285799993506345, maxDist=19.678943903852804, fullTankDist=76.16151750390145} +ERROR: 18.12.2016 20:14:37 (VendorsCrawler.java:95) - Wrong path, entry {head=[Poindexter Horizons - 1.12967434055453 -> Windt Terminal], edge=Windt Terminal - 0.4253810806857503 -> Marley City}, fuel = 21.335282458210564 +ERROR: 18.12.2016 20:14:37 (TransitPath.java:48) - Incorrect path, path = {Packard Goose - null(0.7500001732259989 - 32.0) -> Transit Col 285 Sector SJ-W b16-3, Transit Col 285 Sector SJ-W b16-3 - null(2.160000141710043 - 32.0) -> Transit Core Sys Sector ZJ-R a4-2, Transit Core Sys Sector ZJ-R a4-2 - null(6.700000040233135 - 32.0) -> Transit LFT 69, Transit LFT 69 - null(6.7200000397861 - 32.0) -> Transit Zhi, Transit Zhi - null(4.670000085607171 - 32.0) -> Transit Pantaa Cezisa, Transit Pantaa Cezisa - null(8.450000001117587 - 10.998717639182587) -> Walker City}, fuel = -0.39807008884942263, ship = Ship{cargo=384, engine=7C {optMass=1800.0, fuelPJ=8.5}, tank=32.0, mass=760.3, jumpRange=19.285799993506345, maxDist=19.678943903852804, fullTankDist=76.16151750390145} +ERROR: 18.12.2016 20:14:37 (VendorsCrawler.java:95) - Wrong path, entry {head=[Poindexter Horizons - 1.12967434055453 -> Windt Terminal], edge=Windt Terminal - 0.4839466057667837 -> Packard Goose}, fuel = 22.101436205250103 +ERROR: 18.12.2016 20:14:37 (TransitPath.java:48) - Incorrect path, path = {Highbanks - null(0.7500001732259989 - 32.0) -> Transit Col 285 Sector SJ-W b16-3, Transit Col 285 Sector SJ-W b16-3 - null(2.160000141710043 - 32.0) -> Transit Core Sys Sector ZJ-R a4-2, Transit Core Sys Sector ZJ-R a4-2 - null(6.700000040233135 - 32.0) -> Transit LFT 69, Transit LFT 69 - null(6.7200000397861 - 32.0) -> Transit Zhi, Transit Zhi - null(4.670000085607171 - 32.0) -> Transit Pantaa Cezisa, Transit Pantaa Cezisa - null(8.450000001117587 - 10.998717639182587) -> Walker City}, fuel = -0.39807008884942263, ship = Ship{cargo=384, engine=7C {optMass=1800.0, fuelPJ=8.5}, tank=32.0, mass=760.3, jumpRange=19.285799993506345, maxDist=19.678943903852804, fullTankDist=76.16151750390145} +ERROR: 18.12.2016 20:14:37 (VendorsCrawler.java:95) - Wrong path, entry {head=[Poindexter Horizons - 1.12967434055453 -> Windt Terminal], edge=Windt Terminal - 0.4853098357040021 -> Highbanks}, fuel = 22.101435846439685 +ERROR: 18.12.2016 20:14:37 (TransitPath.java:48) - Incorrect path, path = {Marley City - null(5.650000063702464 - 32.0) -> Transit Col 285 Sector JY-S a33-0, Transit Col 285 Sector JY-S a33-0 - null(2.9400001242756844 - 32.0) -> Transit LP 91-140, Transit LP 91-140 - null(6.830000037327409 - 32.0) -> Transit Shui Wei Sector FH-U b3-4, Transit Shui Wei Sector FH-U b3-4 - null(8.040000010281801 - 31.938907065299873) -> Transit Shui Wei Sector JN-S b4-3, Transit Shui Wei Sector JN-S b4-3 - null(8.480000000447035 - 9.481771344586832) -> Wales City}, fuel = -1.3063401932628143, ship = Ship{cargo=384, engine=7C {optMass=1800.0, fuelPJ=8.5}, tank=32.0, mass=760.3, jumpRange=19.285799993506345, maxDist=19.678943903852804, fullTankDist=76.16151750390145} +ERROR: 18.12.2016 20:14:37 (VendorsCrawler.java:95) - Wrong path, entry {head=[Poindexter Horizons - 1.1685569334619363 -> Sullivan Dock], edge=Sullivan Dock - 0.40942306598203076 -> Marley City}, fuel = 11.918362887905289 +ERROR: 18.12.2016 20:14:37 (TransitPath.java:48) - Incorrect path, path = {Packard Goose - null(0.7500001732259989 - 32.0) -> Transit Col 285 Sector SJ-W b16-3, Transit Col 285 Sector SJ-W b16-3 - null(2.160000141710043 - 32.0) -> Transit Core Sys Sector ZJ-R a4-2, Transit Core Sys Sector ZJ-R a4-2 - null(6.700000040233135 - 32.0) -> Transit LFT 69, Transit LFT 69 - null(6.7200000397861 - 32.0) -> Transit Zhi, Transit Zhi - null(4.670000085607171 - 32.0) -> Transit Pantaa Cezisa, Transit Pantaa Cezisa - null(8.450000001117587 - 10.998717639182587) -> Walker City}, fuel = -0.39807008884942263, ship = Ship{cargo=384, engine=7C {optMass=1800.0, fuelPJ=8.5}, tank=32.0, mass=760.3, jumpRange=19.285799993506345, maxDist=19.678943903852804, fullTankDist=76.16151750390145} +ERROR: 18.12.2016 20:14:37 (VendorsCrawler.java:95) - Wrong path, entry {head=[Poindexter Horizons - 1.209403569396717 -> Faber Terminal], edge=Faber Terminal - 0.19651840170950163 -> Packard Goose}, fuel = 22.09682950919931 +ERROR: 18.12.2016 20:14:37 (TransitPath.java:48) - Incorrect path, path = {Highbanks - null(0.7500001732259989 - 32.0) -> Transit Col 285 Sector SJ-W b16-3, Transit Col 285 Sector SJ-W b16-3 - null(2.160000141710043 - 32.0) -> Transit Core Sys Sector ZJ-R a4-2, Transit Core Sys Sector ZJ-R a4-2 - null(6.700000040233135 - 32.0) -> Transit LFT 69, Transit LFT 69 - null(6.7200000397861 - 32.0) -> Transit Zhi, Transit Zhi - null(4.670000085607171 - 32.0) -> Transit Pantaa Cezisa, Transit Pantaa Cezisa - null(8.450000001117587 - 10.998717639182587) -> Walker City}, fuel = -0.39807008884942263, ship = Ship{cargo=384, engine=7C {optMass=1800.0, fuelPJ=8.5}, tank=32.0, mass=760.3, jumpRange=19.285799993506345, maxDist=19.678943903852804, fullTankDist=76.16151750390145} +ERROR: 18.12.2016 20:14:37 (VendorsCrawler.java:95) - Wrong path, entry {head=[Poindexter Horizons - 1.209403569396717 -> Faber Terminal], edge=Faber Terminal - 0.19707197468372828 -> Highbanks}, fuel = 22.09682909861441 +ERROR: 18.12.2016 20:14:37 (TransitPath.java:48) - Incorrect path, path = {Fung Station - null(7.730000017210841 - 32.0) -> Transit Col 285 Sector JY-S a33-0, Transit Col 285 Sector JY-S a33-0 - null(2.9400001242756844 - 32.0) -> Transit LP 91-140, Transit LP 91-140 - null(6.830000037327409 - 32.0) -> Transit Shui Wei Sector FH-U b3-4, Transit Shui Wei Sector FH-U b3-4 - null(8.040000010281801 - 31.938907065299873) -> Transit Shui Wei Sector JN-S b4-3, Transit Shui Wei Sector JN-S b4-3 - null(8.480000000447035 - 9.481771344586832) -> Wales City}, fuel = -1.3063401932628143, ship = Ship{cargo=384, engine=7C {optMass=1800.0, fuelPJ=8.5}, tank=32.0, mass=760.3, jumpRange=19.285799993506345, maxDist=19.678943903852804, fullTankDist=76.16151750390145} +ERROR: 18.12.2016 20:14:37 (VendorsCrawler.java:95) - Wrong path, entry {head=[Poindexter Horizons - 1.2402503460630483 -> Berezovoy Gateway], edge=Berezovoy Gateway - 0.22224602681914715 -> Fung Station}, fuel = 18.361482828396284 +ERROR: 18.12.2016 20:14:37 (TransitPath.java:48) - Incorrect path, path = {Alkaabi - null(1.4300001580268145 - 32.0) -> Transit Col 285 Sector SJ-W b16-3, Transit Col 285 Sector SJ-W b16-3 - null(2.160000141710043 - 32.0) -> Transit Core Sys Sector ZJ-R a4-2, Transit Core Sys Sector ZJ-R a4-2 - null(6.700000040233135 - 32.0) -> Transit LFT 69, Transit LFT 69 - null(6.7200000397861 - 32.0) -> Transit Zhi, Transit Zhi - null(4.670000085607171 - 32.0) -> Transit Pantaa Cezisa, Transit Pantaa Cezisa - null(8.450000001117587 - 10.998717639182587) -> Walker City}, fuel = -0.39807008884942263, ship = Ship{cargo=384, engine=7C {optMass=1800.0, fuelPJ=8.5}, tank=32.0, mass=760.3, jumpRange=19.285799993506345, maxDist=19.678943903852804, fullTankDist=76.16151750390145} +ERROR: 18.12.2016 20:14:37 (VendorsCrawler.java:95) - Wrong path, entry {head=[Poindexter Horizons - 1.209403569396717 -> Faber Terminal], edge=Faber Terminal - 0.26566672776028033 -> Alkaabi}, fuel = 23.19443648025583 +ERROR: 18.12.2016 20:14:37 (TransitPath.java:48) - Incorrect path, path = {Harry Moore & Co - null(1.4300001580268145 - 32.0) -> Transit Col 285 Sector SJ-W b16-3, Transit Col 285 Sector SJ-W b16-3 - null(2.160000141710043 - 32.0) -> Transit Core Sys Sector ZJ-R a4-2, Transit Core Sys Sector ZJ-R a4-2 - null(6.700000040233135 - 32.0) -> Transit LFT 69, Transit LFT 69 - null(6.7200000397861 - 32.0) -> Transit Zhi, Transit Zhi - null(4.670000085607171 - 32.0) -> Transit Pantaa Cezisa, Transit Pantaa Cezisa - null(8.450000001117587 - 10.998717639182587) -> Walker City}, fuel = -0.39807008884942263, ship = Ship{cargo=384, engine=7C {optMass=1800.0, fuelPJ=8.5}, tank=32.0, mass=760.3, jumpRange=19.285799993506345, maxDist=19.678943903852804, fullTankDist=76.16151750390145} +ERROR: 18.12.2016 20:14:37 (VendorsCrawler.java:95) - Wrong path, entry {head=[Poindexter Horizons - 1.209403569396717 -> Faber Terminal], edge=Faber Terminal - 0.2695206964507874 -> Harry Moore & Co}, fuel = 23.194436510089336 + + */ }