def test_fwd_term(): with DataContext('2018-01-01', '2019-01-01'): _fwd_term_typical() _fwd_term_empty() with DataContext('2018-01-16', '2018-12-31'): out = _fwd_term_typical() assert out.empty with pytest.raises(NotImplementedError): tm.fwd_term(..., real_time=True)
def _fwd_term_typical(): assert DataContext.current_is_set data = {'tenor': ['1w', '2w', '1y', '2y'], 'forward': [1, 2, 3, 4]} out = pd.DataFrame(data=data, index=pd.DatetimeIndex(['2018-01-01'] * 4)) replace = Replacer() market_mock = replace( 'gs_quant.timeseries.measures.GsDataApi.get_market_data', Mock()) market_mock.return_value = out actual = tm.fwd_term(Index('MA123', AssetClass.Equity, '123')) idx = pd.DatetimeIndex( ['2018-01-08', '2018-01-15', '2019-01-01', '2020-01-01'], name='expirationDate') expected = pd.Series([1, 2, 3, 4], name='forward', index=idx) expected = expected.loc[DataContext.current.start_date:DataContext.current. end_date] if expected.empty: assert actual.empty else: assert_series_equal(expected, actual) market_mock.assert_called_once() replace.restore() return actual
def _fwd_term_empty(): replace = Replacer() market_mock = replace('gs_quant.timeseries.measures.GsDataApi.get_market_data', Mock()) market_mock.return_value = pd.DataFrame() actual = tm.fwd_term(Index('MAXYZ', AssetClass.Equity, 'XYZ')) assert actual.empty market_mock.assert_called_once() replace.restore()