def test_normalize_window_raises_error_on_window_of_size_zero(): with pytest.raises(ValueError): x = ts.generate_series(10) normalize_window(x, 0) with pytest.raises(ValueError): x = ts.generate_series(10) normalize_window(x, Window(0, 0))
def test_normalize_window_single_str(): x = ts.generate_series(10) w = normalize_window(x, "2d") assert w.w == pd.DateOffset(days=2) assert w.r == pd.DateOffset(days=2) x = ts.generate_series(90) w = normalize_window(x, "3m") assert w.w == pd.DateOffset(months=3) assert w.r == pd.DateOffset(months=3)
def test_apply_ramp_raises_on_edge_cases(): with pytest.raises(ValueError): x = ts.generate_series(10) apply_ramp(x, Window(0, 0)) with pytest.raises(ValueError): x = ts.generate_series(10) apply_ramp(x, Window(-1, 0)) with pytest.raises(ValueError): x = ts.generate_series(10) apply_ramp(x, Window(2, -1)) with pytest.raises(ValueError): x = ts.generate_series(10) apply_ramp(x, Window(2, 11))
import gs_quant.timeseries as ts from gs_quant.timeseries import Window x = ts.generate_series( 1000) # Generate random timeseries with 1000 observations vol = ts.volatility( x, Window(22, 0) ) # Compute realized volatility using a window of 22 and a ramp up value of 0 vol.tail() # Show last few values
def test_normalize_window_handles_int(): x = ts.generate_series(10) w = normalize_window(x, 5) assert w.w == 5 assert w.r == 5
def test_normalize_window_defaults_window_if_passed(): x = ts.generate_series(10) w = normalize_window(x, None, default_window=2) assert w.w == 2 assert w.r == 0
def test_normalize_window_defaults_window_if_none_passed(): x = ts.generate_series(10) w = normalize_window(x, None) assert w.w == 10 assert w.r == 0
def test_apply_ramp_with_window_greater_than_series_length(): x = ts.generate_series(10) y = apply_ramp(x, Window(11, 2)) assert len(y) == 0
def test_apply_ramp(): x = ts.generate_series(10) y = apply_ramp(x, Window(2, 2)) assert len(y) == 8
def test_normalize_window_str(): x = ts.generate_series(10) w = normalize_window(x, Window('1w', '2d')) assert w.w == pd.DateOffset(weeks=1) assert w.r == pd.DateOffset(days=2)
def test_normalize_window_handles_ramp_of_size_zero(): x = ts.generate_series(10) w = normalize_window(x, Window(2, 0)) assert w.w == 2 assert w.r == 0
def test_normalize_window_handles_ramp_greater_than_series_length(): with pytest.raises(ValueError): x = ts.generate_series(10) normalize_window(x, Window(2, 11))
def test_normalize_window_handles_window_with_no_size(): x = ts.generate_series(10) w = normalize_window(x, Window(None, 2)) assert w.w == 10 assert w.r == 2
def test_normalize_window_handles_window_with_no_ramp(): x = ts.generate_series(10) w = normalize_window(x, Window(2, None)) assert w.w == 2 assert w.r == 2