test: cover factor rule summaries
This commit is contained in:
parent
d819f08ffe
commit
4c6437ba4e
|
|
@ -11,6 +11,7 @@ SPEC.loader.exec_module(factor_rules)
|
||||||
|
|
||||||
_candidate_rule_paths = factor_rules._candidate_rule_paths
|
_candidate_rule_paths = factor_rules._candidate_rule_paths
|
||||||
load_factor_rules = factor_rules.load_factor_rules
|
load_factor_rules = factor_rules.load_factor_rules
|
||||||
|
summarize_factor_rules = factor_rules.summarize_factor_rules
|
||||||
|
|
||||||
|
|
||||||
class FactorRulesPathTests(unittest.TestCase):
|
class FactorRulesPathTests(unittest.TestCase):
|
||||||
|
|
@ -68,6 +69,27 @@ class FactorRulesPathTests(unittest.TestCase):
|
||||||
self.assertEqual(rules, [])
|
self.assertEqual(rules, [])
|
||||||
self.assertIsNone(loaded_path)
|
self.assertIsNone(loaded_path)
|
||||||
|
|
||||||
|
def test_summarize_factor_rules_counts_biases(self):
|
||||||
|
summary = summarize_factor_rules(
|
||||||
|
[
|
||||||
|
{"name": "Value", "signal": "bullish", "weight": "high"},
|
||||||
|
{"name": "Momentum", "signal": "bearish", "weight": "medium"},
|
||||||
|
{"name": "Quality", "signal": "neutral", "weight": "low"},
|
||||||
|
],
|
||||||
|
ticker="AAPL",
|
||||||
|
trade_date="2026-03-07",
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertIn("Loaded 3 manually curated factor rules.", summary)
|
||||||
|
self.assertIn("- Bullish leaning rules: 1", summary)
|
||||||
|
self.assertIn("- Bearish leaning rules: 1", summary)
|
||||||
|
self.assertIn("- Neutral / mixed rules: 1", summary)
|
||||||
|
|
||||||
|
def test_summarize_factor_rules_empty_list_warns_against_fabrication(self):
|
||||||
|
summary = summarize_factor_rules([], ticker="MSFT", trade_date="2026-03-07")
|
||||||
|
self.assertIn("No factor rules were loaded", summary)
|
||||||
|
self.assertIn("do not fabricate rule-based signals", summary)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue