37 lines
1.8 KiB
Python
37 lines
1.8 KiB
Python
import unittest
|
|
|
|
from src.meeting_lab.extraction.extract_chunks import build_prompt
|
|
|
|
|
|
class ClassificationInvariantPromptTests(unittest.TestCase):
|
|
def setUp(self) -> None:
|
|
self.prompt = build_prompt("regression.txt", "Meeting transcript.")
|
|
|
|
def test_decision_requires_settled_outcome_and_prefers_precision(self) -> None:
|
|
self.assertIn("settled, selected, approved", self.prompt)
|
|
self.assertIn("possibility, option", self.prompt)
|
|
self.assertIn("Prefer\nomission over a false Decision or Action Item", self.prompt)
|
|
|
|
def test_action_requires_established_future_work(self) -> None:
|
|
self.assertIn("concrete future action that the meeting establishes as", self.prompt)
|
|
self.assertIn("suggestion, hypothetical action, possible next step", self.prompt.lower())
|
|
self.assertIn("Do not create an Action Item merely because", self.prompt)
|
|
self.assertIn("statement contains an", self.prompt)
|
|
self.assertIn("imperative-like verb", self.prompt)
|
|
|
|
def test_action_existence_is_separate_from_responsibility(self) -> None:
|
|
self.assertIn("First decide whether the action itself exists", self.prompt)
|
|
self.assertIn("An Action Item may exist without a named responsible", self.prompt)
|
|
self.assertIn("responsible person", self.prompt)
|
|
self.assertIn("explicitly assigned, volunteering", self.prompt)
|
|
self.assertIn("accepting/confirming the task", self.prompt)
|
|
|
|
def test_open_question_requires_unresolved_need(self) -> None:
|
|
self.assertIn("concrete unresolved information, decision, or", self.prompt)
|
|
self.assertIn("Uncertainty, doubt, ignorance, difficulty", self.prompt)
|
|
self.assertIn("answered in the available context is not open", self.prompt)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|