fix: support surviving spouse filing status in us-cpa
This commit is contained in:
@@ -16,6 +16,7 @@ TOPIC_RULES = [
|
|||||||
"answer_by_status": {
|
"answer_by_status": {
|
||||||
"single": "$15,750",
|
"single": "$15,750",
|
||||||
"married_filing_jointly": "$31,500",
|
"married_filing_jointly": "$31,500",
|
||||||
|
"qualifying_surviving_spouse": "$31,500",
|
||||||
"head_of_household": "$23,625",
|
"head_of_household": "$23,625",
|
||||||
},
|
},
|
||||||
"summary_template": "{filing_status_label} filers use a {answer} standard deduction for tax year {tax_year}.",
|
"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 = (
|
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"),
|
(("married filing jointly",), "married_filing_jointly"),
|
||||||
(("mfj",), "married_filing_jointly"),
|
(("mfj",), "married_filing_jointly"),
|
||||||
(("head of household",), "head_of_household"),
|
(("head of household",), "head_of_household"),
|
||||||
|
|||||||
@@ -65,6 +65,34 @@ class QuestionEngineTests(unittest.TestCase):
|
|||||||
self.assertEqual(analysis["conclusion"]["answer"], "$23,625")
|
self.assertEqual(analysis["conclusion"]["answer"], "$23,625")
|
||||||
self.assertIn("Head Of Household", analysis["conclusion"]["summary"])
|
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:
|
def test_complex_question_flags_primary_law_escalation(self) -> None:
|
||||||
with tempfile.TemporaryDirectory() as temp_dir:
|
with tempfile.TemporaryDirectory() as temp_dir:
|
||||||
engine = self.build_engine(temp_dir)
|
engine = self.build_engine(temp_dir)
|
||||||
|
|||||||
Reference in New Issue
Block a user