def test_run_daily(): target = mock.MagicMock() dts = pd.date_range('2010-01-01', periods=35) data = pd.DataFrame(index=dts, columns=['c1', 'c2'], data=100) target.data = data algo = algos.RunDaily() target.now = None assert not algo(target) # run on first date target.now = dts[0] assert algo(target) target.now = dts[1] assert algo(target) # run on last date target.now = dts[len(dts) - 1] assert not algo(target) algo = algos.RunDaily(run_on_first_date=False, run_on_end_of_period=True, run_on_last_date=True) # run on first date target.now = dts[0] assert not algo(target) target.now = dts[1] assert algo(target) # run on last date target.now = dts[len(dts) - 1] assert algo(target) # date not in index target.now = datetime(2009, 2, 15) assert not algo(target)
def test_run_daily(): target = mock.MagicMock() dts = pd.date_range('2010-01-01', periods=35) data = pd.DataFrame(index=dts, columns=['c1', 'c2'], data=100) algo = algos.RunDaily() # adds the initial day backtest = bt.Backtest(bt.Strategy('', [algo]), data) target.data = backtest.data target.now = dts[1] assert algo(target)