Beispiel #1
0
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
Beispiel #2
0
 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)