class AlgorithmTestCase(unittest.TestCase): def setUp(self): dna.test_utils.setup_logger(self) self.test_index = pd.date_range("2012/01/01", "2012/01/7", tz=pytz.utc) self.today = dt.datetime.today() self.past_date = self.today - dt.timedelta(days=10) self.test_properties = {"test": True} self.algo = TestAlgorithm(properties=self.test_properties) def tearDown(self): dna.test_utils.teardown_logger(self) @nottest def _setup_source(self): market = Market() market.parse_universe_description("forex,5") return HybridDataFactory(universe=market, index=self.test_index, backtest=FakeBacktestDatasource) @nottest def _check_algorithm_object(self, algo): eq_(algo.days, 0) self.assertFalse(algo.auto) self.assertFalse(algo.initialized) self.assertIsNone(algo.realworld) self.assertIsNone(algo.sim_params) eq_(algo.sids, []) eq_(algo.middlewares, []) eq_(algo.sources, []) eq_(algo.capital_base, 100000.0) def test_new_algorithm(self): self.assertIsNone(self.algo.manager) self._check_algorithm_object(self.algo) @raises(TypeError) def test_new_algorithm_without_properties(self): TestAlgorithm() def test_overload_initialize(self): eq_(self.algo.properties, self.test_properties) def test__is_interactive(self): self.algo.realworld = False for self.algo.datetime in [self.past_date, self.today]: ok_(self.algo._is_interactive()) self.algo.realworld = True self.algo.datetime = self.today ok_(self.algo._is_interactive()) self.algo.datetime = self.past_date self.assertFalse(self.algo._is_interactive()) def test_run_algorithm(self): results = self.algo.run(self._setup_source()) ok_(not results.empty) def test_warm_overload(self): pass
def setUp(self): dna.test_utils.setup_logger(self) self.test_index = pd.date_range("2012/01/01", "2012/01/7", tz=pytz.utc) self.today = dt.datetime.today() self.past_date = self.today - dt.timedelta(days=10) self.test_properties = {"test": True} self.algo = TestAlgorithm(properties=self.test_properties)