Skip to content

Commit 1b2e8c3

Browse files
committed
Add property tests for VaR/ES loss conventions and monotonicity
1 parent 717efc6 commit 1b2e8c3

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import numpy as np
2+
import pandas as pd
3+
from risklib.market.market_risk_model import MarketRiskModel, MarketRiskConfig
4+
5+
6+
def test_es_ge_var():
7+
rng = np.random.default_rng(0)
8+
returns = pd.DataFrame(rng.normal(0, 0.01, size=(1000, 3)), columns=["A", "B", "C"])
9+
w = np.array([0.4, 0.3, 0.3])
10+
11+
m = MarketRiskModel(returns, w, MarketRiskConfig(alpha=0.99, method="historical"))
12+
m.fit()
13+
14+
assert m.compute_var() >= 0
15+
assert m.compute_es() >= m.compute_var()
16+
17+
18+
def test_var_monotonicity():
19+
rng = np.random.default_rng(1)
20+
returns = pd.DataFrame(rng.normal(0, 0.01, size=(1000, 3)), columns=["A", "B", "C"])
21+
w = np.array([0.5, 0.2, 0.3])
22+
23+
m95 = MarketRiskModel(returns, w, MarketRiskConfig(alpha=0.95, method="historical"))
24+
m99 = MarketRiskModel(returns, w, MarketRiskConfig(alpha=0.99, method="historical"))
25+
m95.fit()
26+
m99.fit()
27+
28+
assert m99.compute_var() >= m95.compute_var()

0 commit comments

Comments
 (0)