feat: competitive intelligence & historical pattern matching layer
This commit is contained in:
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user