|
From: Danilo S. <dt...@us...> - 2007-06-06 19:24:54
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/strategy In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv1640/src/test/net/sf/tail/strategy Modified Files: ResistanceStrategyTest.java JustBuyOnceStrategyTest.java IndicatorCrossedIndicatorStrategyTest.java MinValueStarterStrategyTest.java IndicatorOverIndicatorStrategyTest.java MinValueStopperStrategyTest.java SupportStrategyTest.java Added Files: AlwaysOperateStrategyTest.java FakeStrategy.java Removed Files: FakeStratetgy.java Log Message: Incio da refatorao para usar Strategy.shouldOperate() Index: SupportStrategyTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/strategy/SupportStrategyTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** SupportStrategyTest.java 24 May 2007 20:10:01 -0000 1.1 --- SupportStrategyTest.java 6 Jun 2007 19:24:52 -0000 1.2 *************** *** 27,31 **** Operation[] enter = new Operation[] { null, null, null, null, null, null }; ! Strategy neverBuy = new FakeStratetgy( enter , enter); Strategy support = new SupportStrategy(indicator,neverBuy, 95); --- 27,31 ---- Operation[] enter = new Operation[] { null, null, null, null, null, null }; ! Strategy neverBuy = new FakeStrategy( enter , enter); Strategy support = new SupportStrategy(indicator,neverBuy, 95); --- NEW FILE: FakeStrategy.java --- package net.sf.tail.strategy; import net.sf.tail.Operation; import net.sf.tail.Strategy; import net.sf.tail.Trade; public class FakeStrategy implements Strategy { private Operation[] enter; private Operation[] exit; public FakeStrategy(Operation[] enter, Operation[] exit) { this.enter = enter; this.exit = exit; } public Operation shouldEnter(int index) { return enter[index]; } public Operation shouldExit(Operation entry, int index) { return exit[index]; } public boolean shouldOperate(Trade trade, int index) { if (enter[index] != null) { return trade.enter(index); } else if (exit[index] != null) { return trade.exit(index); } return false; } } Index: IndicatorOverIndicatorStrategyTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/strategy/IndicatorOverIndicatorStrategyTest.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** IndicatorOverIndicatorStrategyTest.java 24 May 2007 17:47:15 -0000 1.5 --- IndicatorOverIndicatorStrategyTest.java 6 Jun 2007 19:24:52 -0000 1.6 *************** *** 35,39 **** Operation buy = new Operation(2,OperationType.BUY); assertEquals(buy, s.shouldEnter(2)); ! assertEquals(null, s.shouldExit(buy, 3)); Operation sell = new Operation(4,OperationType.SELL); --- 35,39 ---- Operation buy = new Operation(2,OperationType.BUY); assertEquals(buy, s.shouldEnter(2)); ! assertEquals(null, s.shouldExit(buy, 3)); // TODO: ?? Não deveria mandar comprar mais? Operation sell = new Operation(4,OperationType.SELL); Index: MinValueStopperStrategyTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/strategy/MinValueStopperStrategyTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MinValueStopperStrategyTest.java 24 May 2007 20:08:07 -0000 1.2 --- MinValueStopperStrategyTest.java 6 Jun 2007 19:24:52 -0000 1.3 *************** *** 1,10 **** package net.sf.tail.strategy; ! import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; - import junit.framework.JUnit4TestAdapter; import net.sf.tail.Operation; import net.sf.tail.OperationType; import net.sf.tail.Strategy; import net.sf.tail.sample.SampleIndicator; --- 1,10 ---- package net.sf.tail.strategy; ! import static org.junit.Assert.*; import static org.junit.Assert.assertNull; import net.sf.tail.Operation; import net.sf.tail.OperationType; import net.sf.tail.Strategy; + import net.sf.tail.Trade; import net.sf.tail.sample.SampleIndicator; *************** *** 28,43 **** Operation buy = new Operation(0,OperationType.BUY); ! assertEquals(buy, stopper.shouldEnter(0)); ! assertNull(stopper.shouldExit(buy, 2)); ! assertNull(stopper.shouldExit(buy, 3)); ! Operation sell = new Operation(4,OperationType.SELL); ! assertEquals(sell, stopper.shouldExit(buy, 4)); } ! public static junit.framework.Test suite() { ! return new JUnit4TestAdapter(IndicatorOverIndicatorStrategyTest.class); ! } } --- 28,51 ---- Operation buy = new Operation(0,OperationType.BUY); + Operation sell = new Operation(4,OperationType.SELL); ! // assertEquals(buy, stopper.shouldEnter(0)); ! // assertNull(stopper.shouldExit(buy, 2)); ! // assertNull(stopper.shouldExit(buy, 3)); ! // ! // Operation sell = new Operation(4,OperationType.SELL); ! // assertEquals(sell, stopper.shouldExit(buy, 4)); ! Trade trade = new Trade(); ! assertTrue(stopper.shouldOperate(trade, 0)); ! assertEquals(buy, trade.getEntry()); ! assertFalse(stopper.shouldOperate(trade, 1)); ! assertFalse(stopper.shouldOperate(trade, 2)); ! assertFalse(stopper.shouldOperate(trade, 3)); ! assertTrue(stopper.shouldOperate(trade, 4)); ! assertEquals(sell, trade.getExit()); } ! } --- NEW FILE: AlwaysOperateStrategyTest.java --- package net.sf.tail.strategy; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import net.sf.tail.Operation; import net.sf.tail.OperationType; import net.sf.tail.Trade; import org.junit.Before; import org.junit.Test; public class AlwaysOperateStrategyTest { private AlwaysOperateStrategy strategy; private Trade trade, uncoveredTrade; @Before public void setUp() { this.strategy = new AlwaysOperateStrategy(); this.trade = new Trade(); this.uncoveredTrade = new Trade(OperationType.SELL); } @Test public void shouldEnterBuyingIfTradeIsNew() { assertTrue(strategy.shouldOperate(trade, 0)); assertEquals(new Operation(0, OperationType.BUY), trade.getEntry()); } @Test public void shouldExitSellingIfTradeIsOpened() { trade.enter(0); assertTrue(strategy.shouldOperate(trade, 1)); assertEquals(new Operation(1, OperationType.SELL), trade.getExit()); } @Test public void shouldNotOperateIfTradeIsClosed() { trade.enter(0); trade.exit(1); assertFalse(strategy.shouldOperate(trade, 2)); } @Test public void shouldEnterSellingIfUncoveredTradeIsNew() { assertTrue(strategy.shouldOperate(uncoveredTrade, 0)); assertEquals(new Operation(0, OperationType.SELL), uncoveredTrade.getEntry()); } @Test public void shouldExitBuyingIfUncoveredTradeIsOpened() { uncoveredTrade.enter(0); assertTrue(strategy.shouldOperate(uncoveredTrade, 1)); assertEquals(new Operation(1, OperationType.BUY), uncoveredTrade.getExit()); } } Index: ResistanceStrategyTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/strategy/ResistanceStrategyTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ResistanceStrategyTest.java 24 May 2007 20:10:01 -0000 1.1 --- ResistanceStrategyTest.java 6 Jun 2007 19:24:51 -0000 1.2 *************** *** 27,31 **** Operation[] enter = new Operation[] { null, null, null, null, null, null }; ! Strategy neverSell = new FakeStratetgy( enter , enter); Strategy resistance = new ResistanceStrategy(indicator,neverSell, 96); --- 27,31 ---- Operation[] enter = new Operation[] { null, null, null, null, null, null }; ! Strategy neverSell = new FakeStrategy( enter , enter); Strategy resistance = new ResistanceStrategy(indicator,neverSell, 96); --- FakeStratetgy.java DELETED --- Index: IndicatorCrossedIndicatorStrategyTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/strategy/IndicatorCrossedIndicatorStrategyTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** IndicatorCrossedIndicatorStrategyTest.java 31 May 2007 16:45:41 -0000 1.3 --- IndicatorCrossedIndicatorStrategyTest.java 6 Jun 2007 19:24:51 -0000 1.4 *************** *** 2,7 **** --- 2,9 ---- import static org.junit.Assert.assertEquals; + import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; + import static org.junit.Assert.assertTrue; import junit.framework.JUnit4TestAdapter; import net.sf.tail.Indicator; *************** *** 9,12 **** --- 11,15 ---- import net.sf.tail.OperationType; import net.sf.tail.Strategy; + import net.sf.tail.Trade; import net.sf.tail.sample.SampleIndicator; *************** *** 21,38 **** Strategy s = new IndicatorCrossedIndicatorStrategy(first, second); ! assertNull(s.shouldEnter(0)); ! assertNull(s.shouldEnter(1)); ! Operation enter = new Operation(2,OperationType.BUY); ! assertEquals(enter,s.shouldEnter(2)); ! assertNull(s.shouldEnter(3)); ! assertNull(s.shouldEnter(4)); ! assertNull(s.shouldExit(enter, 3)); Operation exit = new Operation(4,OperationType.SELL); ! assertEquals(exit,s.shouldExit(enter, 4)); ! assertNull(s.shouldEnter(5)); ! } --- 24,42 ---- Strategy s = new IndicatorCrossedIndicatorStrategy(first, second); ! Trade trade = new Trade(); ! assertFalse(s.shouldOperate(trade, 0)); ! assertFalse(s.shouldOperate(trade, 1)); ! assertTrue(s.shouldOperate(trade, 2)); ! Operation enter = new Operation(2, OperationType.BUY); ! assertEquals(enter, trade.getEntry()); + assertFalse(s.shouldOperate(trade, 3)); + + assertTrue(s.shouldOperate(trade, 4)); Operation exit = new Operation(4,OperationType.SELL); + assertEquals(exit, trade.getExit()); ! assertFalse(s.shouldOperate(trade, 5)); } Index: JustBuyOnceStrategyTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/strategy/JustBuyOnceStrategyTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** JustBuyOnceStrategyTest.java 24 May 2007 20:08:07 -0000 1.2 --- JustBuyOnceStrategyTest.java 6 Jun 2007 19:24:51 -0000 1.3 *************** *** 2,9 **** - import junit.framework.JUnit4TestAdapter; import net.sf.tail.Operation; import net.sf.tail.OperationType; import net.sf.tail.Strategy; import static org.junit.Assert.*; --- 2,9 ---- import net.sf.tail.Operation; import net.sf.tail.OperationType; import net.sf.tail.Strategy; + import net.sf.tail.Trade; import static org.junit.Assert.*; *************** *** 13,42 **** public class JustBuyOnceStrategyTest { @Before public void setUp() throws Exception { } ! @Test ! public void testIfOnlyBuy(){ ! Strategy strategy = new JustBuyOnceStrategy(); Operation buy = new Operation(0,OperationType.BUY); ! assertEquals(buy, strategy.shouldEnter(0)); ! assertNull(strategy.shouldEnter(1)); ! assertNull(strategy.shouldExit(buy, 6)); } ! @Test ! public void testSameIndexShouldResultSameAwnser(){ ! Strategy strategy = new JustBuyOnceStrategy(); Operation buy = new Operation(0,OperationType.BUY); ! assertEquals(buy, strategy.shouldEnter(0)); ! assertEquals(buy, strategy.shouldEnter(0)); } ! public static junit.framework.Test suite() { ! return new JUnit4TestAdapter(JustBuyOnceStrategyTest.class); ! } } --- 13,53 ---- public class JustBuyOnceStrategyTest { + private Strategy strategy; + private Trade trade; + @Before public void setUp() throws Exception { + this.strategy = new JustBuyOnceStrategy(); + this.trade = new Trade(); } ! @Test public void ! shouldBuyTradeOnce() { Operation buy = new Operation(0,OperationType.BUY); ! // assertEquals(buy, strategy.shouldEnter(0)); ! // assertNull(strategy.shouldEnter(1)); ! // assertNull(strategy.shouldExit(buy, 6)); ! assertTrue(strategy.shouldOperate(trade, 0)); ! assertEquals(buy, trade.getEntry()); ! assertFalse(strategy.shouldOperate(trade, 1)); ! assertFalse(strategy.shouldOperate(trade, 6)); } ! @Test public void ! sameIndexShouldResultSameAnswer() { Operation buy = new Operation(0,OperationType.BUY); ! // assertEquals(buy, strategy.shouldEnter(0)); ! // assertEquals(buy, strategy.shouldEnter(0)); ! // TODO: Discutir... ! assertTrue(strategy.shouldOperate(trade, 0)); ! assertEquals(buy, trade.getEntry()); ! Trade trade2 = new Trade(); ! assertTrue(strategy.shouldOperate(trade2, 0)); ! assertEquals(buy, trade2.getEntry()); } ! } Index: MinValueStarterStrategyTest.java =================================================================== RCS file: /cvsroot/tail/Tail/src/test/net/sf/tail/strategy/MinValueStarterStrategyTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MinValueStarterStrategyTest.java 24 May 2007 20:09:25 -0000 1.2 --- MinValueStarterStrategyTest.java 6 Jun 2007 19:24:51 -0000 1.3 *************** *** 28,32 **** Operation[] exit = new Operation[] { null, null, null, null, null }; ! Strategy alwaysBuy = new FakeStratetgy( enter , exit); Strategy starter = new MinValueStarterStrategy(indicator,alwaysBuy, 93); --- 28,32 ---- Operation[] exit = new Operation[] { null, null, null, null, null }; ! Strategy alwaysBuy = new FakeStrategy( enter , exit); Strategy starter = new MinValueStarterStrategy(indicator,alwaysBuy, 93); |