Archived
0

remove unused methods

This commit is contained in:
iMoHax
2015-07-16 15:07:08 +03:00
parent e654d87e3c
commit 8807357d62
2 changed files with 0 additions and 143 deletions

View File

@@ -1,6 +1,5 @@
package ru.trader.analysis; package ru.trader.analysis;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import ru.trader.core.*; import ru.trader.core.*;
@@ -121,10 +120,6 @@ public class Scorer {
return score; return score;
} }
public Score getScore(Vendor vendor){
return new Score(vendor);
}
private Stream<Order> mapToOrder(Offer offer) { private Stream<Order> mapToOrder(Offer offer) {
Offer sell; Offer sell;
Offer buy; Offer buy;
@@ -140,61 +135,4 @@ public class Scorer {
if (order.getProfit() <= 0) return Stream.empty(); if (order.getProfit() <= 0) return Stream.empty();
return Stream.of(order); 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);
}
}
} }

View File

@@ -18,96 +18,15 @@ public class ScorerTest extends Assert {
private Market world; private Market world;
private FilteredMarket fWorld; private FilteredMarket fWorld;
private Place breksta;
private Place bhadaba;
private Place lhs1541;
private Place itza;
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
InputStream is = getClass().getResourceAsStream("/test3.xml"); InputStream is = getClass().getResourceAsStream("/test3.xml");
world = Store.loadFromFile(is); 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(); MarketFilter filter = new MarketFilter();
fWorld = new FilteredMarket(world, filter); 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 @Test
public void testScore2() throws Exception { public void testScore2() throws Exception {
Ship ship = new Ship(); Ship ship = new Ship();