@@ -1712,6 +1712,82 @@ def test_arch_consumer_fact_jsonl_provider_maps_state_broad_soi_concepts(
17121712 )
17131713
17141714
1715+ def test_arch_consumer_fact_jsonl_provider_maps_soi_alimony_concepts (
1716+ tmp_path : Path ,
1717+ ) -> None :
1718+ consumer_jsonl = tmp_path / "consumer_facts.jsonl"
1719+ rows = [
1720+ _consumer_fact (
1721+ "soi-alimony-received-returns" ,
1722+ concept = "irs_soi.returns_with_alimony_received" ,
1723+ domain = "all_individual_income_tax_returns" ,
1724+ source_name = "irs_soi" ,
1725+ source_table = "Publication 1304 Table 1.4" ,
1726+ period = {"type" : "tax_year" , "value" : 2023 },
1727+ value = 183_582 ,
1728+ ),
1729+ _consumer_fact (
1730+ "soi-alimony-received-amount" ,
1731+ concept = "irs_soi.alimony_received" ,
1732+ domain = "all_individual_income_tax_returns" ,
1733+ source_name = "irs_soi" ,
1734+ source_table = "Publication 1304 Table 1.4" ,
1735+ period = {"type" : "tax_year" , "value" : 2023 },
1736+ value = 6_686_429_000 ,
1737+ unit = "usd" ,
1738+ ),
1739+ _consumer_fact (
1740+ "soi-alimony-paid-returns" ,
1741+ concept = "irs_soi.returns_with_alimony_paid" ,
1742+ domain = "all_individual_income_tax_returns" ,
1743+ source_name = "irs_soi" ,
1744+ source_table = "Publication 1304 Table 1.4" ,
1745+ period = {"type" : "tax_year" , "value" : 2023 },
1746+ value = 278_541 ,
1747+ ),
1748+ _consumer_fact (
1749+ "soi-alimony-paid-amount" ,
1750+ concept = "irs_soi.alimony_paid" ,
1751+ domain = "all_individual_income_tax_returns" ,
1752+ source_name = "irs_soi" ,
1753+ source_table = "Publication 1304 Table 1.4" ,
1754+ period = {"type" : "tax_year" , "value" : 2023 },
1755+ value = 7_497_135_000 ,
1756+ unit = "usd" ,
1757+ ),
1758+ ]
1759+ consumer_jsonl .write_text (
1760+ "\n " .join (json .dumps (row , sort_keys = True ) for row in rows ) + "\n "
1761+ )
1762+
1763+ target_set = ArchConsumerFactJSONLTargetProvider (consumer_jsonl ).load_target_set (
1764+ TargetQuery (period = 2023 )
1765+ )
1766+ targets_by_arch_variable = {
1767+ target .metadata ["arch_variable" ]: target for target in target_set .targets
1768+ }
1769+
1770+ received_amount = targets_by_arch_variable ["alimony_received_amount" ]
1771+ assert received_amount .metadata ["variable" ] == "alimony_income"
1772+ assert received_amount .measure == "alimony_income"
1773+
1774+ received_returns = targets_by_arch_variable ["alimony_received_returns" ]
1775+ assert received_returns .metadata ["variable" ] == "tax_unit_count"
1776+ assert received_returns .aggregation .value == "count"
1777+ assert ("alimony_income" , ">" , "0" ) in _target_filter_tuples (
1778+ received_returns
1779+ )
1780+
1781+ paid_amount = targets_by_arch_variable ["alimony_paid_amount" ]
1782+ assert paid_amount .metadata ["variable" ] == "alimony_expense"
1783+ assert paid_amount .measure == "alimony_expense"
1784+
1785+ paid_returns = targets_by_arch_variable ["alimony_paid_returns" ]
1786+ assert paid_returns .metadata ["variable" ] == "tax_unit_count"
1787+ assert paid_returns .aggregation .value == "count"
1788+ assert ("alimony_expense" , ">" , "0" ) in _target_filter_tuples (paid_returns )
1789+
1790+
17151791def test_arch_consumer_fact_jsonl_provider_maps_eitc_by_agi_and_children (
17161792 tmp_path : Path ,
17171793) -> None :
0 commit comments