|
From: Márcio V. d. S. <mv...@us...> - 2007-08-23 12:51:39
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/evaluator In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv13475/src/test/net/sf/tail/analysis/evaluator Modified Files: BestStrategyEvaluatorTest.java SampleDecision.java DecisionTest.java DummyDecision.java Log Message: Index: BestStrategyEvaluatorTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/evaluator/BestStrategyEvaluatorTest.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** BestStrategyEvaluatorTest.java 13 Aug 2007 20:21:16 -0000 1.5 --- BestStrategyEvaluatorTest.java 23 Aug 2007 12:51:08 -0000 1.6 *************** *** 22,42 **** private Operation[] enter; private Operation[] exit; private AlwaysOperateStrategy alwaysStrategy; private FakeStrategy buyAndHoldStrategy; private HashSet<Strategy> strategies; @Before public void setUp() { ! enter = new Operation[] { new Operation(0, OperationType.BUY), ! null, ! null, ! null ! }; ! exit = new Operation[] { null, ! null, ! null, ! new Operation(4, OperationType.SELL) ! }; alwaysStrategy = new AlwaysOperateStrategy(); buyAndHoldStrategy = new FakeStrategy(enter, exit); --- 22,38 ---- private Operation[] enter; + private Operation[] exit; + private AlwaysOperateStrategy alwaysStrategy; + private FakeStrategy buyAndHoldStrategy; + private HashSet<Strategy> strategies; @Before public void setUp() { ! enter = new Operation[] { new Operation(0, OperationType.BUY), null, null, null }; ! exit = new Operation[] { null, null, null, new Operation(4, OperationType.SELL) }; alwaysStrategy = new AlwaysOperateStrategy(); buyAndHoldStrategy = new FakeStrategy(enter, exit); *************** *** 45,68 **** strategies.add(buyAndHoldStrategy); } ! ! @Test public void ! bestShouldBeAlwaysOperateOnProfit() { ! SampleTimeSeries series = new SampleTimeSeries(new double[] {6.0, 9.0, 6.0, 6.0}); TimeSeries constrainedSeries = new ConstrainedTimeSeries(series, 0, 3); ! BestStrategyEvaluator evaluator = new BestStrategyEvaluator(new HistoryRunner(OperationType.BUY)); Decision decision = evaluator.evaluate(strategies, constrainedSeries, new TotalProfitCriterion()); ! assertEquals(alwaysStrategy, decision.getStrategy()); } ! @Test public void ! bestShouldBeBuyAndHoldOnLoss() { ! SampleTimeSeries series = new SampleTimeSeries(new double[] {6.0, 3.0, 6.0, 6.0}); TimeSeries constrainedSeries = new ConstrainedTimeSeries(series, 0, 3); ! BestStrategyEvaluator evaluator = new BestStrategyEvaluator(new HistoryRunner(OperationType.BUY)); Decision decision = evaluator.evaluate(strategies, constrainedSeries, new TotalProfitCriterion()); ! assertEquals(buyAndHoldStrategy, decision.getStrategy()); } --- 41,64 ---- strategies.add(buyAndHoldStrategy); } ! ! @Test ! public void bestShouldBeAlwaysOperateOnProfit() { ! SampleTimeSeries series = new SampleTimeSeries(new double[] { 6.0, 9.0, 6.0, 6.0 }); TimeSeries constrainedSeries = new ConstrainedTimeSeries(series, 0, 3); ! BestStrategyEvaluator evaluator = new BestStrategyEvaluator(new HistoryRunner(OperationType.BUY)); Decision decision = evaluator.evaluate(strategies, constrainedSeries, new TotalProfitCriterion()); ! assertEquals(alwaysStrategy, decision.getStrategy()); } ! @Test ! public void bestShouldBeBuyAndHoldOnLoss() { ! SampleTimeSeries series = new SampleTimeSeries(new double[] { 6.0, 3.0, 6.0, 6.0 }); TimeSeries constrainedSeries = new ConstrainedTimeSeries(series, 0, 3); ! BestStrategyEvaluator evaluator = new BestStrategyEvaluator(new HistoryRunner(OperationType.BUY)); Decision decision = evaluator.evaluate(strategies, constrainedSeries, new TotalProfitCriterion()); ! assertEquals(buyAndHoldStrategy, decision.getStrategy()); } Index: DecisionTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/evaluator/DecisionTest.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** DecisionTest.java 8 Aug 2007 18:09:06 -0000 1.9 --- DecisionTest.java 23 Aug 2007 12:51:08 -0000 1.10 *************** *** 24,33 **** private TimeSeries series; private AnalysisCriterion criteria; private Runner runner; @Before public void setUp() { ! criteria = new TotalProfitCriterion(); runner = new HistoryRunner(OperationType.BUY); } --- 24,35 ---- private TimeSeries series; + private AnalysisCriterion criteria; + private Runner runner; @Before public void setUp() { ! criteria = new TotalProfitCriterion(); runner = new HistoryRunner(OperationType.BUY); } *************** *** 35,59 **** @Test public void testEvaluateCriterion() { - - series = new SampleTimeSeries(3d, 5d, 7d, 9d ); - - Operation[] buy = new Operation[] { - new Operation(0, OperationType.BUY), - null, - new Operation(2, OperationType.BUY), - null - }; ! Operation[] sell = new Operation[] { ! null, ! new Operation(1, OperationType.SELL), ! null, ! new Operation(3, OperationType.SELL) ! }; Strategy fakeStrategy = new FakeStrategy(buy, sell); ! Decision decision = new Decision(fakeStrategy, series, criteria, runner.run(fakeStrategy, series ! .getBegin(), series.getEnd()), new HistoryRunner(OperationType.BUY)); assertEquals(45d / 21, decision.evaluateCriterion(), 0.001); } --- 37,53 ---- @Test public void testEvaluateCriterion() { ! series = new SampleTimeSeries(3d, 5d, 7d, 9d); ! ! Operation[] buy = new Operation[] { new Operation(0, OperationType.BUY), null, ! new Operation(2, OperationType.BUY), null }; ! ! Operation[] sell = new Operation[] { null, new Operation(1, OperationType.SELL), null, ! new Operation(3, OperationType.SELL) }; Strategy fakeStrategy = new FakeStrategy(buy, sell); ! Decision decision = new Decision(fakeStrategy, series, criteria, runner.run(fakeStrategy, series.getBegin(), ! series.getEnd()), new HistoryRunner(OperationType.BUY)); assertEquals(45d / 21, decision.evaluateCriterion(), 0.001); } *************** *** 61,72 **** @Test public void testEvaluateCriterionNotSelling() { ! series = new SampleTimeSeries(3d, 1d, 7d, 9d ); ! Operation[] buy = new Operation[] { ! new Operation(0, OperationType.BUY), ! null, ! new Operation(2, OperationType.BUY), ! null ! }; Operation[] sell = new Operation[] { null, null, null, null }; --- 55,62 ---- @Test public void testEvaluateCriterionNotSelling() { ! series = new SampleTimeSeries(3d, 1d, 7d, 9d); ! Operation[] buy = new Operation[] { new Operation(0, OperationType.BUY), null, ! new Operation(2, OperationType.BUY), null }; Operation[] sell = new Operation[] { null, null, null, null }; *************** *** 74,79 **** Strategy fakeStrategy = new FakeStrategy(buy, sell); ! Decision decision = new Decision(fakeStrategy, series, criteria, runner.run(fakeStrategy, series ! .getBegin(), series.getEnd()), new HistoryRunner(OperationType.BUY)); assertEquals(3d, decision.evaluateCriterion(), 0.0001); } --- 64,69 ---- Strategy fakeStrategy = new FakeStrategy(buy, sell); ! Decision decision = new Decision(fakeStrategy, series, criteria, runner.run(fakeStrategy, series.getBegin(), ! series.getEnd()), new HistoryRunner(OperationType.BUY)); assertEquals(3d, decision.evaluateCriterion(), 0.0001); } *************** *** 83,92 **** series = new SampleTimeSeries(3d, 1d, 7d, 9d); ! Operation[] buy = new Operation[] { ! new Operation(0, OperationType.BUY), ! null, ! new Operation(2, OperationType.BUY), ! null ! }; Operation[] sell = new Operation[] { null, null, null, null }; --- 73,78 ---- series = new SampleTimeSeries(3d, 1d, 7d, 9d); ! Operation[] buy = new Operation[] { new Operation(0, OperationType.BUY), null, ! new Operation(2, OperationType.BUY), null }; Operation[] sell = new Operation[] { null, null, null, null }; *************** *** 94,99 **** Strategy fakeStrategy = new FakeStrategy(buy, sell); ! Decision decision = new Decision(fakeStrategy, series, null, runner.run(fakeStrategy, series ! .getBegin(), series.getEnd()), new HistoryRunner(OperationType.BUY)); assertEquals(Math.pow(3d, 1d / 3), decision.evaluateCriterion(new AverageProfitCriterion()), 0.0001); } --- 80,85 ---- Strategy fakeStrategy = new FakeStrategy(buy, sell); ! Decision decision = new Decision(fakeStrategy, series, null, runner.run(fakeStrategy, series.getBegin(), series ! .getEnd()), new HistoryRunner(OperationType.BUY)); assertEquals(Math.pow(3d, 1d / 3), decision.evaluateCriterion(new AverageProfitCriterion()), 0.0001); } *************** *** 101,118 **** @Test public void testApplyFor() { ! series = new SampleTimeSeries(1d,2d,3d,4d,5d); ! TimeSeries nextSeries = new SampleTimeSeries(5d,5d,5d,5d,5d); ! ! Operation[] buy = new Operation[] {new Operation(0,OperationType.BUY), null, null, null, null}; ! Operation[] sell = new Operation[] {null, null, null, null, new Operation(4,OperationType.SELL)}; Strategy fakeStrategy = new FakeStrategy(buy, sell); List<Trade> trades = runner.run(fakeStrategy, series.getBegin(), series.getEnd()); Decision decision = new Decision(fakeStrategy, series, criteria, trades, new HistoryRunner(OperationType.BUY)); ! Decision nextDecision = new Decision(fakeStrategy, nextSeries, criteria, runner.run(fakeStrategy,nextSeries.getBegin(),nextSeries.getEnd()), new HistoryRunner(OperationType.BUY)); ! Decision appliedDecision = decision.applyFor(nextSeries); ! ! assertEquals(nextDecision,appliedDecision ); assertEquals(1d, appliedDecision.evaluateCriterion()); assertEquals(nextSeries, appliedDecision.getSeries()); --- 87,105 ---- @Test public void testApplyFor() { ! series = new SampleTimeSeries(1d, 2d, 3d, 4d, 5d); ! TimeSeries nextSeries = new SampleTimeSeries(5d, 5d, 5d, 5d, 5d); ! ! Operation[] buy = new Operation[] { new Operation(0, OperationType.BUY), null, null, null, null }; ! Operation[] sell = new Operation[] { null, null, null, null, new Operation(4, OperationType.SELL) }; Strategy fakeStrategy = new FakeStrategy(buy, sell); List<Trade> trades = runner.run(fakeStrategy, series.getBegin(), series.getEnd()); Decision decision = new Decision(fakeStrategy, series, criteria, trades, new HistoryRunner(OperationType.BUY)); ! Decision nextDecision = new Decision(fakeStrategy, nextSeries, criteria, runner.run(fakeStrategy, nextSeries ! .getBegin(), nextSeries.getEnd()), new HistoryRunner(OperationType.BUY)); ! Decision appliedDecision = decision.applyFor(nextSeries); ! ! assertEquals(nextDecision, appliedDecision); assertEquals(1d, appliedDecision.evaluateCriterion()); assertEquals(nextSeries, appliedDecision.getSeries()); Index: SampleDecision.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/evaluator/SampleDecision.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** SampleDecision.java 8 Aug 2007 17:19:51 -0000 1.2 --- SampleDecision.java 23 Aug 2007 12:51:08 -0000 1.3 *************** *** 5,9 **** public class SampleDecision extends Decision { ! private double value; --- 5,9 ---- public class SampleDecision extends Decision { ! private double value; *************** *** 12,16 **** this.value = value; } ! @Override public double evaluateCriterion() { --- 12,16 ---- this.value = value; } ! @Override public double evaluateCriterion() { Index: DummyDecision.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/analysis/evaluator/DummyDecision.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** DummyDecision.java 9 Aug 2007 15:21:26 -0000 1.4 --- DummyDecision.java 23 Aug 2007 12:51:08 -0000 1.5 *************** *** 9,13 **** public class DummyDecision extends Decision { ! private double value; --- 9,13 ---- public class DummyDecision extends Decision { ! private double value; *************** *** 16,28 **** this.value = value; } ! public DummyDecision(List<Trade> trades) { ! super(null, null, null, trades,new HistoryRunner(OperationType.BUY)); } ! @Override public double evaluateCriterion() { return this.value; } ! } --- 16,28 ---- this.value = value; } ! public DummyDecision(List<Trade> trades) { ! super(null, null, null, trades, new HistoryRunner(OperationType.BUY)); } ! @Override public double evaluateCriterion() { return this.value; } ! } |