test: require signal facts in research artifact
This commit is contained in:
@@ -89,6 +89,22 @@ def test_research_artifact_projects_versioned_queryable_fact_tables() -> None:
|
|||||||
assert artifact.nav["benchmark_return"].tolist() == pytest.approx(
|
assert artifact.nav["benchmark_return"].tolist() == pytest.approx(
|
||||||
[0.0, 0.01, -0.01, 0.02]
|
[0.0, 0.01, -0.01, 0.02]
|
||||||
)
|
)
|
||||||
|
assert artifact.signals.columns.tolist() == [
|
||||||
|
"run_id",
|
||||||
|
"signal_date",
|
||||||
|
"execution_date",
|
||||||
|
"asset_id",
|
||||||
|
"factor_score",
|
||||||
|
"target_weight",
|
||||||
|
]
|
||||||
|
first_signal = artifact.signals[
|
||||||
|
artifact.signals["signal_date"] == result.factor_scores.index[0].date()
|
||||||
|
]
|
||||||
|
assert first_signal.set_index("asset_id").loc["A", "factor_score"] == 2.0
|
||||||
|
assert first_signal.set_index("asset_id").loc["A", "target_weight"] == 1.0
|
||||||
|
assert first_signal["execution_date"].unique().tolist() == [
|
||||||
|
result.schedule.signal_to_execution.iloc[0].date()
|
||||||
|
]
|
||||||
assert set(artifact.trades["side"]) == {"buy", "sell"}
|
assert set(artifact.trades["side"]) == {"buy", "sell"}
|
||||||
assert {"security", "cash"}.issubset(set(artifact.positions["asset_type"]))
|
assert {"security", "cash"}.issubset(set(artifact.positions["asset_type"]))
|
||||||
assert artifact.positions.groupby("trade_date")["weight"].sum().tolist() == pytest.approx(
|
assert artifact.positions.groupby("trade_date")["weight"].sum().tolist() == pytest.approx(
|
||||||
|
|||||||
Reference in New Issue
Block a user