remove unused methods
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
package ru.trader.analysis;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import ru.trader.core.*;
|
||||
@@ -121,10 +120,6 @@ public class Scorer {
|
||||
return score;
|
||||
}
|
||||
|
||||
public Score getScore(Vendor vendor){
|
||||
return new Score(vendor);
|
||||
}
|
||||
|
||||
private Stream<Order> mapToOrder(Offer offer) {
|
||||
Offer sell;
|
||||
Offer buy;
|
||||
@@ -140,61 +135,4 @@ public class Scorer {
|
||||
if (order.getProfit() <= 0) return Stream.empty();
|
||||
return Stream.of(order);
|
||||
}
|
||||
|
||||
public class Score implements Comparable<Score> {
|
||||
private final Vendor vendor;
|
||||
private final DoubleSummaryStatistics sellStat;
|
||||
private final DoubleSummaryStatistics buyStat;
|
||||
private double score;
|
||||
|
||||
public Score(Vendor vendor) {
|
||||
this.vendor = vendor;
|
||||
Stream<Order> sell = vendor.getAllSellOffers().stream().flatMap(Scorer.this::mapToOrder);
|
||||
Stream<Order> buy = vendor.getAllBuyOffers().stream().flatMap(Scorer.this::mapToOrder);
|
||||
|
||||
sellStat = computeProfits(sell);
|
||||
buyStat = computeProfits(buy);
|
||||
|
||||
computeScore();
|
||||
}
|
||||
|
||||
public double getSellProfit() {
|
||||
return sellStat.getAverage();
|
||||
}
|
||||
|
||||
public double getBuyProfit() {
|
||||
return buyStat.getAverage();
|
||||
}
|
||||
|
||||
public double getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
private DoubleSummaryStatistics computeProfits(Stream<Order> orders) {
|
||||
return orders.sorted(Comparator.<Order>reverseOrder())
|
||||
.limit(profile.getScoreOrdersCount())
|
||||
.collect(Collectors.summarizingDouble(Order::getProfit));
|
||||
}
|
||||
|
||||
private void computeScore(){
|
||||
score = (getSellProfit() + getBuyProfit())/2;
|
||||
score = Scorer.this.getScore(vendor, score, 0, 1, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Score{" +
|
||||
"vendor=" + vendor.getPlace()+"("+vendor+")"+
|
||||
", sellStat=" + sellStat +
|
||||
", buyStat=" + buyStat +
|
||||
", score=" + score +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(@NotNull Score other) {
|
||||
return Double.compare(score, other.score);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -18,96 +18,15 @@ public class ScorerTest extends Assert {
|
||||
private Market world;
|
||||
private FilteredMarket fWorld;
|
||||
|
||||
private Place breksta;
|
||||
private Place bhadaba;
|
||||
private Place lhs1541;
|
||||
private Place itza;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
InputStream is = getClass().getResourceAsStream("/test3.xml");
|
||||
world = Store.loadFromFile(is);
|
||||
breksta = world.get("Breksta");
|
||||
bhadaba = world.get("Bhadaba");
|
||||
lhs1541 = world.get("LHS 1541");
|
||||
itza = world.get("Itza");
|
||||
|
||||
MarketFilter filter = new MarketFilter();
|
||||
fWorld = new FilteredMarket(world, filter);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testScore() throws Exception {
|
||||
Vendor grantTerminal = breksta.get("Grant Terminal");
|
||||
Vendor perezMarket = breksta.get("Perez market");
|
||||
Vendor kandelRing = bhadaba.get("Kandel Ring");
|
||||
Vendor robertsHub = bhadaba.get("Roberts Hub");
|
||||
Vendor cabreraDock = lhs1541.get("Cabrera Dock");
|
||||
Vendor hallerPort = lhs1541.get("Haller Port");
|
||||
Vendor luikenPort = itza.get("Luiken Port");
|
||||
Ship ship = new Ship();
|
||||
ship.setCargo(100);
|
||||
Profile profile = new Profile(ship);
|
||||
LOG.info("Start score test, balance 10000000");
|
||||
profile.setBalance(10000000);
|
||||
Scorer scorer = new Scorer(fWorld, profile);
|
||||
if (LOG.isDebugEnabled()){
|
||||
fWorld.getVendors().map(scorer::getScore).sorted().forEach(s -> LOG.debug("{}", s));
|
||||
}
|
||||
|
||||
Scorer.Score gtScore = scorer.getScore(grantTerminal);
|
||||
Scorer.Score pmScore = scorer.getScore(perezMarket);
|
||||
assertTrue(gtScore.getSellProfit() < pmScore.getSellProfit());
|
||||
assertTrue(gtScore.getBuyProfit() > pmScore.getBuyProfit());
|
||||
assertTrue(gtScore.getScore() > pmScore.getScore());
|
||||
|
||||
Scorer.Score krScore = scorer.getScore(kandelRing);
|
||||
Scorer.Score rhScore = scorer.getScore(robertsHub);
|
||||
assertTrue(krScore.getScore() < pmScore.getScore());
|
||||
assertTrue(krScore.getScore() < rhScore.getScore());
|
||||
assertTrue(krScore.getScore() < gtScore.getScore());
|
||||
|
||||
Scorer.Score cdScore = scorer.getScore(cabreraDock);
|
||||
Scorer.Score hpScore = scorer.getScore(hallerPort);
|
||||
Scorer.Score lpScore = scorer.getScore(luikenPort);
|
||||
assertTrue(hpScore.getScore() > pmScore.getScore());
|
||||
assertTrue(hpScore.getScore() > krScore.getScore());
|
||||
assertTrue(hpScore.getScore() > gtScore.getScore());
|
||||
assertTrue(hpScore.getScore() > lpScore.getScore());
|
||||
assertTrue(hpScore.getScore() > cdScore.getScore());
|
||||
assertTrue(cdScore.getScore() > pmScore.getScore());
|
||||
assertTrue(cdScore.getScore() > krScore.getScore());
|
||||
assertTrue(cdScore.getScore() > gtScore.getScore());
|
||||
assertTrue(cdScore.getScore() > lpScore.getScore());
|
||||
|
||||
LOG.info("Start score test, balance 50000");
|
||||
profile.setBalance(50000);
|
||||
Scorer scorer2 = new Scorer(fWorld, profile);
|
||||
if (LOG.isDebugEnabled()){
|
||||
fWorld.getVendors().map(scorer2::getScore).sorted().forEach(s -> LOG.debug("{}", s));
|
||||
}
|
||||
|
||||
gtScore = scorer2.getScore(grantTerminal);
|
||||
pmScore = scorer2.getScore(perezMarket);
|
||||
assertTrue(gtScore.getSellProfit() > pmScore.getSellProfit());
|
||||
assertTrue(gtScore.getBuyProfit() > pmScore.getBuyProfit());
|
||||
assertTrue(gtScore.getScore() > pmScore.getScore());
|
||||
|
||||
krScore = scorer2.getScore(kandelRing);
|
||||
rhScore = scorer2.getScore(robertsHub);
|
||||
cdScore = scorer2.getScore(cabreraDock);
|
||||
hpScore = scorer2.getScore(hallerPort);
|
||||
lpScore = scorer2.getScore(luikenPort);
|
||||
|
||||
assertTrue(lpScore.getScore() > pmScore.getScore());
|
||||
assertTrue(lpScore.getScore() > gtScore.getScore());
|
||||
assertTrue(lpScore.getScore() > krScore.getScore());
|
||||
assertTrue(lpScore.getScore() > rhScore.getScore());
|
||||
assertTrue(lpScore.getScore() > cdScore.getScore());
|
||||
assertTrue(lpScore.getScore() > hpScore.getScore());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testScore2() throws Exception {
|
||||
Ship ship = new Ship();
|
||||
|
||||
Reference in New Issue
Block a user