def test__read_config(self):
        algo_name = 'Momentum'
        algo_cfg = json.load(open('{}/algos.cfg'.format(self.bt_path),
                                  'r'))[algo_name]
        assert (isinstance(algo_cfg['debug'], int))
        assert (isinstance(algo_cfg['window_length'], int))
        manager_name = 'OptimalFrontier'
        manager_cfg = json.load(
            open('{}/managers.cfg'.format(self.bt_path), 'r'))[manager_name]
        assert (isinstance(manager_cfg['max_weight'], float)
                or isinstance(manager_cfg['max_weight'], int))
        assert (isinstance(manager_cfg['source'], unicode))

        bt_cfg = {
            'algorithm': 'Momentum',
            'manager': 'Equity',
            'level': 'debug',
            'tickers': 'random,1',
            'start': '2005-01-10',
            'end': '2010-07-03',
            'interactive': True
        }
        algo_cfg = {'debug': 1, 'window_length': 3}
        manager_cfg = {'source': 'mysql', 'max_weight': 0.6, 'loopback': 60}
        engine = Simulation()
        args = engine.read_config(bt_cfg=bt_cfg,
                                  a_cfg=algo_cfg,
                                  m_cfg=manager_cfg)
 def test__run_backtest(self):
     engine = Simulation()
     #engine.backtest_cfg = {'algorithm' : 'Momentum', 'manager'   : 'Equity', 'level' : 'debug',
     #'tickers'   : 'google,apple', 'start' : '2005-01-10', 'end'     : '2010-07-03', 'interactive' : True}
     #engine.algo_cfg     = {'debug'     : 1, 'window_length'      : 3}
     #engine.manager_cfg  = {'source'    : 'mysql', 'max_weight'   : 0.6, 'loopback'   : 60}
     bt_cfg = {
         'algorithm': 'Momentum',
         'manager': 'Equity',
         'level': 'debug',
         'tickers': 'random,1',
         'start': '2005-01-10',
         'end': '2010-07-03',
         'interactive': True
     }
     algo_cfg = {'debug': 1, 'window_length': 3}
     manager_cfg = {'source': 'mysql', 'max_weight': 0.6, 'loopback': 60}
     engine = Simulation()
     args = engine.read_config(bt_cfg=bt_cfg,
                               a_cfg=algo_cfg,
                               m_cfg=manager_cfg)
     results = engine.runBacktest()
 def test__get_results(self):
     engine = Simulation()
     assert (engine is not None)
     risks = engine.overall_metrics(db_id='test', save=False)
     assert (isinstance(risks['Sharpe.Ratio'], float))
     assert (isinstance(risks['Volatility'], float))