30 lines
1.0 KiB
Python
30 lines
1.0 KiB
Python
from app.llm.schemas import Classification
|
|
from app.proactive.policy import decide
|
|
|
|
FACT = Classification(True, True, False, False, False, 0.95)
|
|
|
|
|
|
def test_safe_policy_allows_high_confidence_existing_fact() -> None:
|
|
assert decide(
|
|
"safe", FACT, is_mention=False, duplicate=False, cooldown=False, threshold=0.86
|
|
).respond
|
|
|
|
|
|
def test_policy_rejects_new_technical_decision_and_duplicates() -> None:
|
|
decision = Classification(True, True, True, False, False, 0.99)
|
|
assert not decide(
|
|
"active", decision, is_mention=False, duplicate=False, cooldown=False, threshold=0.86
|
|
).respond
|
|
assert not decide(
|
|
"safe", FACT, is_mention=False, duplicate=True, cooldown=False, threshold=0.86
|
|
).respond
|
|
|
|
|
|
def test_mentions_mode_requires_bot_mention() -> None:
|
|
assert not decide(
|
|
"mentions", FACT, is_mention=False, duplicate=False, cooldown=False, threshold=0.86
|
|
).respond
|
|
assert decide(
|
|
"mentions", FACT, is_mention=True, duplicate=False, cooldown=False, threshold=0.86
|
|
).respond
|