|
From: Thies <tg...@us...> - 2007-10-31 18:52:38
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/criteria In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv24229/src/test/net/sf/tail/analysis/criteria Added Files: AverageProfitableTradesCriterionTest.java Log Message: Novo criterio --- NEW FILE: AverageProfitableTradesCriterionTest.java --- package net.sf.tail.analysis.criteria; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import net.sf.tail.AnalysisCriterion; import net.sf.tail.Operation; import net.sf.tail.OperationType; import net.sf.tail.TimeSeries; import net.sf.tail.Trade; import net.sf.tail.analysis.evaluator.Decision; import net.sf.tail.analysis.evaluator.DummyDecision; import net.sf.tail.sample.SampleTimeSeries; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; public class AverageProfitableTradesCriterionTest { @Test public void testCalculate() { TimeSeries series = new SampleTimeSeries(new double[]{100d, 95d, 102d, 105d, 97d, 113d}); List<Trade> trades = new ArrayList<Trade>(); trades.add(new Trade(new Operation(0, OperationType.BUY), new Operation(1, OperationType.BUY))); trades.add(new Trade(new Operation(2, OperationType.BUY), new Operation(3, OperationType.BUY))); trades.add(new Trade(new Operation(4, OperationType.BUY), new Operation(5, OperationType.BUY))); AverageProfitableTradesCriterion average = new AverageProfitableTradesCriterion(); assertEquals(2d/3, average.calculate(series, trades)); } @Test public void testCalculateWithOneTrade() { TimeSeries series = new SampleTimeSeries(new double[]{100d, 95d, 102d, 105d, 97d, 113d}); Trade trade = new Trade(new Operation(0, OperationType.BUY), new Operation(1, OperationType.BUY)); AverageProfitableTradesCriterion average = new AverageProfitableTradesCriterion(); assertEquals(0d, average.calculate(series, trade)); trade = new Trade(new Operation(1, OperationType.BUY), new Operation(2, OperationType.BUY)); assertEquals(1d, average.calculate(series, trade)); } @Test public void testSummarize() { TimeSeries series = new SampleTimeSeries(100d, 105d, 110d, 100d, 95d, 105d); List<Decision> decisions = new LinkedList<Decision>(); List<Trade> trades = new LinkedList<Trade>(); trades.add(new Trade(new Operation(0, OperationType.BUY), new Operation(1, OperationType.SELL))); trades.add(new Trade(new Operation(2, OperationType.BUY), new Operation(3, OperationType.SELL))); Decision dummy1 = new DummyDecision(trades); decisions.add(dummy1); List<Trade> trades2 = new LinkedList<Trade>(); trades2.add(new Trade(new Operation(4, OperationType.BUY), new Operation(5, OperationType.SELL))); Decision dummy2 = new DummyDecision(trades2); decisions.add(dummy2); AnalysisCriterion averateProfitable = new AverageProfitableTradesCriterion(); assertEquals(2d/3, averateProfitable.summarize(series, decisions), 0.01); } @Test public void testEquals() { AverageProfitableTradesCriterion criterion = new AverageProfitableTradesCriterion(); assertTrue(criterion.equals(criterion)); assertTrue(criterion.equals(new AverageProfitableTradesCriterion())); assertFalse(criterion.equals(new TotalProfitCriterion())); assertFalse(criterion.equals(5d)); assertFalse(criterion.equals(null)); } } |