fix: support surviving spouse filing status in us-cpa
This commit is contained in:
@@ -16,6 +16,7 @@ TOPIC_RULES = [
|
||||
"answer_by_status": {
|
||||
"single": "$15,750",
|
||||
"married_filing_jointly": "$31,500",
|
||||
"qualifying_surviving_spouse": "$31,500",
|
||||
"head_of_household": "$23,625",
|
||||
},
|
||||
"summary_template": "{filing_status_label} filers use a {answer} standard deduction for tax year {tax_year}.",
|
||||
@@ -64,6 +65,10 @@ def _filing_status_label(status: str) -> str:
|
||||
|
||||
|
||||
FILING_STATUS_PATTERNS = (
|
||||
(("qualifying surviving spouse",), "qualifying_surviving_spouse"),
|
||||
(("qualifying widow",), "qualifying_surviving_spouse"),
|
||||
(("qualifying widower",), "qualifying_surviving_spouse"),
|
||||
(("surviving spouse",), "qualifying_surviving_spouse"),
|
||||
(("married filing jointly",), "married_filing_jointly"),
|
||||
(("mfj",), "married_filing_jointly"),
|
||||
(("head of household",), "head_of_household"),
|
||||
|
||||
@@ -65,6 +65,34 @@ class QuestionEngineTests(unittest.TestCase):
|
||||
self.assertEqual(analysis["conclusion"]["answer"], "$23,625")
|
||||
self.assertIn("Head Of Household", analysis["conclusion"]["summary"])
|
||||
|
||||
def test_standard_deduction_infers_qualifying_surviving_spouse_from_question(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as temp_dir:
|
||||
engine = self.build_engine(temp_dir)
|
||||
|
||||
analysis = engine.answer(
|
||||
question="What is the standard deduction for a qualifying surviving spouse?",
|
||||
tax_year=2025,
|
||||
case_facts={},
|
||||
)
|
||||
|
||||
self.assertEqual(analysis["issue"], "standard_deduction")
|
||||
self.assertEqual(analysis["conclusion"]["answer"], "$31,500")
|
||||
self.assertIn("Qualifying Surviving Spouse", analysis["conclusion"]["summary"])
|
||||
|
||||
def test_standard_deduction_infers_qualifying_widow_from_question(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as temp_dir:
|
||||
engine = self.build_engine(temp_dir)
|
||||
|
||||
analysis = engine.answer(
|
||||
question="What is the standard deduction for a qualifying widow?",
|
||||
tax_year=2025,
|
||||
case_facts={},
|
||||
)
|
||||
|
||||
self.assertEqual(analysis["issue"], "standard_deduction")
|
||||
self.assertEqual(analysis["conclusion"]["answer"], "$31,500")
|
||||
self.assertIn("Qualifying Surviving Spouse", analysis["conclusion"]["summary"])
|
||||
|
||||
def test_complex_question_flags_primary_law_escalation(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as temp_dir:
|
||||
engine = self.build_engine(temp_dir)
|
||||
|
||||
Reference in New Issue
Block a user