feat: competitive intelligence & historical pattern matching layer

This commit is contained in:
Celes Renata
2026-04-14 19:42:48 +00:00
parent b478022ba3
commit f7a11d14ea
203 changed files with 20155 additions and 97 deletions
+39
View File
@@ -185,3 +185,42 @@ def test_custom_config_relaxed_thresholds():
relaxed = SuppressionConfig(min_avg_extraction_confidence=0.2)
result = evaluate_suppression(summary, ctx, config=relaxed, reference_time=NOW)
assert SuppressionReason.LOW_DATA_CONFIDENCE not in result.reasons
# ---------------------------------------------------------------------------
# Macro-only suppression (Requirements: 10.3)
# ---------------------------------------------------------------------------
from services.recommendation.suppression import (
evaluate_macro_only_suppression,
MACRO_ONLY_CAVEAT,
)
class TestMacroOnlySuppression:
def test_suppressed_when_only_macro_signals(self):
summary = _make_summary()
result = evaluate_macro_only_suppression(summary, macro_signal_count=3, company_signal_count=0)
assert result is True
def test_not_suppressed_when_company_signals_present(self):
summary = _make_summary()
result = evaluate_macro_only_suppression(summary, macro_signal_count=3, company_signal_count=2)
assert result is False
def test_not_suppressed_when_no_macro_signals(self):
summary = _make_summary()
result = evaluate_macro_only_suppression(summary, macro_signal_count=0, company_signal_count=5)
assert result is False
def test_not_suppressed_when_no_signals_at_all(self):
summary = _make_summary()
result = evaluate_macro_only_suppression(summary, macro_signal_count=0, company_signal_count=0)
assert result is False
def test_macro_only_caveat_is_string(self):
assert isinstance(MACRO_ONLY_CAVEAT, str)
assert "macro" in MACRO_ONLY_CAVEAT.lower()
def test_suppression_reason_enum_has_macro_only(self):
assert SuppressionReason.MACRO_ONLY_SIGNAL.value == "macro_only_signal"