Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
9129c8a
Charge the winter fuel payment back through income tax, person by person
MaxGhenis Oct 2, 2026
eeb4698
Test that tax credits do not exempt a person from the winter fuel pay…
MaxGhenis Oct 2, 2026
af3cc54
Merge origin/main into winter-fuel-payment-charge
MaxGhenis Oct 11, 2026
4cdedd6
Say why the property allowance route compares tax before the charge
MaxGhenis Oct 11, 2026
03154a1
Enter only the Income Support award in the IS partner case
MaxGhenis Oct 11, 2026
f27dfe7
Merge remote-tracking branch 'origin/main' into winter-fuel-payment-c…
MaxGhenis Oct 12, 2026
aede16d
Compare the means-test property tests with tax before the charge
MaxGhenis Oct 12, 2026
97e0c57
Compare the UC and CTR property tests with tax before the charge; tidy
MaxGhenis Oct 12, 2026
6ee0059
Merge remote-tracking branch 'origin/main' into winter-fuel-payment-c…
MaxGhenis Oct 12, 2026
4398cd0
Merge remote-tracking branch 'origin/main' into winter-fuel-payment-c…
MaxGhenis Oct 13, 2026
adcf821
Merge remote-tracking branch 'origin/main' into winter-fuel-payment-c…
MaxGhenis Oct 15, 2026
1024887
Count statutory pay in the charge's total income and the charge in th…
MaxGhenis Oct 15, 2026
1c2eba5
Merge remote-tracking branch 'origin/main' into winter-fuel-payment-c…
MaxGhenis Oct 15, 2026
bc1fe63
Bring the changelog up to date with main
MaxGhenis Oct 15, 2026
005a975
Name the property allowance case for the gap it pins
MaxGhenis Oct 15, 2026
8befc6d
Point main's rule comparison test at a formula and keep the charge in…
MaxGhenis Oct 15, 2026
1780238
Merge remote-tracking branch 'origin/main' into winter-fuel-payment-c…
MaxGhenis Oct 16, 2026
96d2519
Test total income as the law defines it, and fix review r6's findings
MaxGhenis Oct 16, 2026
2b3f2ba
Merge remote-tracking branch 'origin/main' into winter-fuel-payment-c…
MaxGhenis Oct 16, 2026
26ff324
Compare property routes with the charge for every landlord, one per h…
MaxGhenis Oct 16, 2026
5ca6f29
Merge origin/main 88a524802 into winter-fuel-payment-charge
MaxGhenis Oct 17, 2026
95ae26c
State when the property allowance election compares tax, and its roun…
MaxGhenis Oct 17, 2026
5c1dbeb
Deduct net pay pension contributions from the charge's total income
MaxGhenis Oct 17, 2026
72e0226
Merge remote-tracking branch 'origin/main' into winter-fuel-payment-c…
MaxGhenis Oct 18, 2026
d73e73b
Count statutory pay in the net pay deduction, and keep it off relief …
MaxGhenis Oct 18, 2026
ed0b799
Cite issue #2371 for the gap between the net pay deduction and the mo…
MaxGhenis Oct 18, 2026
d0920a9
Qualify two comments and the changelog after review r10
MaxGhenis Oct 18, 2026
75ca17c
Option B for d1669: compare property routes only where finance costs …
MaxGhenis Oct 18, 2026
5297da4
Merge origin/main (61b58544d) into winter-fuel-payment-charge
MaxGhenis Oct 20, 2026
567379a
Merge origin/main (79fa31727, #2078) into winter-fuel-payment-charge
MaxGhenis Oct 20, 2026
61d0bea
Merge origin/main (60b09a4e5: #2488, #1863) into winter-fuel-payment-…
MaxGhenis Oct 20, 2026
ab69a95
Say what the couples property checks under d1669 = B
MaxGhenis Oct 21, 2026
56a7fe2
Merge origin/main (69903500e: #2443, #2506, #2493) into winter-fuel-p…
MaxGhenis Oct 21, 2026
cc29614
Charge main's £35,000 and age-75 test cases back through income tax
MaxGhenis Oct 21, 2026
aeb1b92
Drop net_pay_pension_relief's note on #2371, which #2464 fixed
MaxGhenis Oct 21, 2026
e72300c
Merge main and keep Pension Credit tax deductions before WFP charge
MaxGhenis Oct 22, 2026
2d0c8f7
Fix fiscal eligibility reads after Winter Fuel Payment tax split
MaxGhenis Oct 23, 2026
f23c3d6
Hold pre-cap Universal Credit in trading-loss comparison
MaxGhenis Oct 23, 2026
862f893
Test declared-reader containment independently of tax levels
MaxGhenis Oct 23, 2026
76108fa
Scale reader containment tolerance by perturbation and response
MaxGhenis Oct 23, 2026
cad06c5
Merge main into winter-fuel-payment-charge
MaxGhenis Oct 24, 2026
b1505cd
State the paternity pay tax bound before the winter fuel payment charge
MaxGhenis Oct 24, 2026
3a3800e
Name the savings allowance and Child Benefit charge cliffs in invaria…
MaxGhenis Oct 24, 2026
9a3eb8f
Merge main into the winter fuel payment charge
MaxGhenis Oct 24, 2026
16ecb14
Enter Income Support's tax deduction as income tax before the charge
MaxGhenis Oct 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/2066-aggregate-reader-precision.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Fixed aggregate counted-once checks falsely identifying unchanged large tax heads as containing a component read through a declared dependency.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Correct fiscal-partition eligibility reads for income tax and the TV licence after separating the Winter Fuel Payment charge from tax deducted by Pension Credit.
3 changes: 3 additions & 0 deletions changelog.d/winter-fuel-payment-charge.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Add the winter fuel payment charge (`winter_fuel_payment_charge`, ITEPA 2003 s.681I, from 2025-26) with parameters under `gov.hmrc.income_tax.charges.winter_fuel_payment`. It is charged person by person: the whole Winter Fuel Payment (England, Wales and Northern Ireland) or Pension Age Winter Heating Payment, when the person's own total income (ITA 2007 s.23 Step 1) exceeds £35,000 and they are not entitled to Income Support, income-based JSA, Pension Credit, income-related ESA or Universal Credit. It is added to `income_tax` after tax reductions (ITA 2007 s.23 Step 7).
- Add `income_tax_before_winter_fuel_payment_charge`. The Pension Credit means test, including the income tax it attributes to employed and self-employed earnings (SPC Regs 2002 reg. 17(10) and (11)), and the Income Support, Housing Benefit (applicable income and net earnings) and Council Tax Reduction means tests now deduct it instead of `income_tax`. The charge recovers a payment rather than taxing the income those tests assess, and it depends on Pension Credit and Universal Credit receipt, so deducting it would make the model circular. Universal Credit earned income and the benefit cap's earnings test already deduct only each person's own tax on earnings, which leaves out the charge. The property allowance election still compares `income_tax`, which now includes the charge: a route can change total income and Pension Credit, and so whether the charge applies. Landlords decide one per household rather than one per benefit unit, because a couple's Pension Credit can change another benefit unit's shared payment and so its charge. Landlords without finance costs still take the allowance without comparing, as before; that can rarely cost more once the charge applies (when the lower tax ends Pension Credit and with it the exemption), but comparing for them made simulations several times slower.
- Add `total_income_charged_to_tax`, total income as ITA 2007 s.23 Step 1 defines it: the model's taxable income components (after employment expenses, capital allowances, the trading and property allowances and exempt ISA interest), less employee pension contributions relieved under a net pay arrangement (`net_pay_pension_relief`, new: FA 2004 s.193(2) deducts them from employment income, so up to taxable employment income, statutory sick, maternity and paternity pay included, and none from age 75), with losses brought forward added back. The winter fuel payment charge tests it, and `adjusted_total_income` now reads it for Step 1 instead of computing it itself, deducting at Steps 3 and 4 only the relieved contributions not already deducted, so its values are unchanged up to float32 rounding. `total_income` still sums gross income.
1 change: 1 addition & 0 deletions changelog.d/winter-fuel-payment-charge.changed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Deprecate `gov.dwp.winter_fuel_payment.eligibility.taxable_income_test`: it is off in every year and has effect only in a reform that both switches it on and requires a relevant benefit. Its limit now admits total income equal to it. Use `gov.hmrc.income_tax.charges.winter_fuel_payment` for the charge.
1 change: 1 addition & 0 deletions changelog.d/winter-fuel-payment-charge.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- From the 2025 qualifying week, pay the Winter Fuel Payment to everyone of pensionable age in England, Wales and Northern Ireland who meets its other conditions (SI 2025/969 reg. 2; NISR 2025/142 reg. 2) and recover it through the winter fuel payment charge, in place of a household income test. The test paid a whole household if any member of pensionable age had total income under £35,000. It applied only in England and Wales, so pensioners in Northern Ireland not on a relevant benefit were paid nothing, and nothing stood in for the charge on the Pension Age Winter Heating Payment. Its boundary was also wrong: total income of exactly £35,000 is not charged.
9 changes: 5 additions & 4 deletions policyengine_uk/data/fiscal_partition.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,10 @@ tax_heads:
payer: household
totals: [gov_tax, household_tax, pre_budget_change_household_tax]
sign: nonnegative
reads:
- head: nics_individual
route: income_tax -> winter_fuel_payment_charge -> is_on_pension_credit -> pension_credit -> pension_credit_income -> national_insurance
why: Pension Credit receipt exempts a person from the charge, and its means test deducts National Insurance
- id: nics_individual
label: National Insurance (employee and self-employed)
variable: national_insurance
Expand Down Expand Up @@ -375,12 +379,9 @@ tax_heads:
totals: [gov_tax, household_tax, pre_budget_change_household_tax]
sign: nonnegative
reads:
- head: income_tax
route: tv_licence -> tv_licence_discount -> pension_credit -> pension_credit_income -> income_tax
why: the over-75 discount depends on Pension Credit receipt, a means test on net income
- head: nics_individual
route: tv_licence -> tv_licence_discount -> pension_credit -> pension_credit_income -> national_insurance
why: as above
why: the over-75 discount depends on Pension Credit receipt, a means test on net income

# Property
- id: council_tax
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,28 @@
description: Whether a relevant benefit is a condition of the Winter Fuel Payment. It was for the 2024 qualifying week. From the 2025 qualifying week the regulations pay everyone of pensionable age, and the winter fuel payment charge (ITEPA 2003 s.681I) recovers the payment from people with total income over £35,000 who are not on a relevant benefit. The model keeps this true from 2025 and lets people who are not on a relevant benefit through the income test in taxable_income_test, which stands in for the charge.
description: Whether a relevant benefit is a condition of the Winter Fuel Payment. It was for the 2024 qualifying week only. Up to the 2023 week, and from the 2025 week, everyone of pensionable age resident where the payment is made is entitled; from 2025-26 the winter fuel payment charge (gov.hmrc.income_tax.charges.winter_fuel_payment) recovers the payment from people with total income over £35,000 who are not on a relevant benefit.
values:
2000-01-01: false
2000-01-01:
value: false
reference:
- title: The Social Fund Winter Fuel Payment Regulations 2000, reg. 2 (as in force for the 2023 qualifying week)
href: https://www.legislation.gov.uk/uksi/2000/729/regulation/2/2023-09-18
# Dated 1 January so that the year's value is the one for its September
# qualifying week; SI 2024/869 came into force on 16 September 2024.
2024-01-01:
value: true
metadata:
reference:
- title: The Social Fund Winter Fuel Payment Regulations 2024 regulation 2
href: https://www.legislation.gov.uk/uksi/2024/869/regulation/2
reference:
- title: The Social Fund Winter Fuel Payment Regulations 2024, reg. 2(2)(b)
href: https://www.legislation.gov.uk/uksi/2024/869/regulation/2/made
- title: The Social Fund Winter Fuel Payment Regulations (Northern Ireland) 2024, reg. 2(2)(b)
href: https://www.legislation.gov.uk/nisr/2024/160/regulation/2/made
# SI 2025/969 came into force on 15 September 2025, the first day of the
# 2025 qualifying week.
2025-01-01:
value: false
reference:
- title: The Social Fund Winter Fuel Payment Regulations 2025, reg. 2
href: https://www.legislation.gov.uk/uksi/2025/969/regulation/2/made
- title: The Social Fund Winter Fuel Payment Regulations (Northern Ireland) 2025, reg. 2
href: https://www.legislation.gov.uk/nisr/2025/142/regulation/2
metadata:
unit: bool
label: Winter Fuel Payment means-tested benefits requirement
reference:
- href: https://www.legislation.gov.uk/uksi/2000/729/regulation/2
title: The Social Fund Winter Fuel Payment Regulations 2000
- title: The Social Fund Winter Fuel Payment Regulations 2025, reg. 2
href: https://www.legislation.gov.uk/uksi/2025/969/regulation/2/made
- title: Finance Act 2026, Sch. 10 (ITEPA 2003 s.681I, winter fuel payment charge)
href: https://www.legislation.gov.uk/ukpga/2026/11/schedule/10
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
description: Households in England or Wales with a pensioner whose total income is at or below this amount are eligible for the Winter Fuel Payment. This stands in for the winter fuel payment charge, which recovers the payment from a person whose own total income exceeds £35,000 and who is not entitled to a relevant benefit.
description: Deprecated; use gov.hmrc.income_tax.charges.winter_fuel_payment.income_threshold for the winter fuel payment charge. The household income test (use_maximum_taxable_income) pays a person not on a relevant benefit if a member of their household who has reached pensionable age has total income at or under this amount. It has effect only when that test is switched on and a relevant benefit is required (require_benefits).
values:
2000-01-01: 0
2025-01-01:
value: 35_000
reference:
- title: Finance Act 2026, Sch. 10 para. 1 (ITEPA 2003 s.681I(1)(b), for 2025-26 on)
- title: Finance Act 2026, Sch. 10 para. 1 (ITEPA 2003 s.681I(1)(b), the charge's threshold, which this test stood in for)
href: https://www.legislation.gov.uk/ukpga/2026/11/schedule/10
metadata:
unit: currency-GBP
label: Winter Fuel Payment maximum taxable income
label: Winter Fuel Payment household income test limit (deprecated)
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
description: When this is true, households in England or Wales with a pensioner whose total income is at or below the maximum taxable income are eligible for the Winter Fuel Payment. This stands in for the winter fuel payment charge on people with total income over £35,000 (ITEPA 2003 s.681I, from 2025-26).
description: Deprecated; use gov.hmrc.income_tax.charges.winter_fuel_payment for the winter fuel payment charge. When this is true and a relevant benefit is required (require_benefits), a person who is not on one is still paid if a member of their household who has reached pensionable age has total income at or under maximum_taxable_income. No regulations have set such a test. It stood in for the winter fuel payment charge for 2025 before the model computed the charge, and is kept, off, so that reforms which set it still load. It has no effect while require_benefits is false, as it is from 2025.
values:
2000-01-01: false
2025-01-01: true
metadata:
unit: bool
label: WFA maximum taxable income eligibility
reference:
- title: Finance Act 2026, Sch. 10 para. 1 (ITEPA 2003 s.681I)
href: https://www.legislation.gov.uk/ukpga/2026/11/schedule/10
label: Winter Fuel Payment household income test (deprecated)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Winter fuel payment charge
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
description: Whether the winter fuel payment charge applies. It has effect for the tax year 2025-26 and later tax years.
values:
2000-01-01: false
# Dated 1 January so that the year's value is the one for the tax year
# beginning in its April (2025 = 2025-26), whose qualifying week is in
# September 2025.
2025-01-01:
value: true
reference:
- title: Finance Act 2026, Sch. 10 para. 5 (commencement)
href: https://www.legislation.gov.uk/ukpga/2026/11/schedule/10
metadata:
unit: bool
label: Winter fuel payment charge in effect
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
description: A person entitled to a winter fuel payment is liable to the winter fuel payment charge when their total income for the tax year exceeds this amount, unless they are entitled to a relevant benefit in the qualifying week. Total income of exactly this amount is not charged. The Treasury may change the amount by order for later tax years.
values:
2025-01-01:
value: 35_000
reference:
- title: Income Tax (Earnings and Pensions) Act 2003, s. 681I(1)(b), inserted by Finance Act 2026, Sch. 10 para. 1
href: https://www.legislation.gov.uk/ukpga/2003/1/section/681I
- title: Income Tax (Earnings and Pensions) Act 2003, s. 681J (alteration of income limit by Treasury order)
href: https://www.legislation.gov.uk/ukpga/2003/1/section/681J
metadata:
unit: currency-GBP
period: year
label: Winter fuel payment charge income threshold
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
description: Benefits that exempt a person from the winter fuel payment charge when they are entitled to one on any day in the qualifying week. The model takes a person to be entitled when an award is paid to them in the year. A couple's Income Support, income-based jobseeker's allowance, income-related employment and support allowance or Pension Credit is the claimant's, the member it is paid to, and not the partner's. Joint claimants of Universal Credit are both entitled.
values:
2025-01-01:
value:
- is_on_income_support
- is_on_income_based_jsa
- is_on_pension_credit
- is_on_income_related_esa
- is_on_universal_credit
reference:
- title: Income Tax (Earnings and Pensions) Act 2003, s. 681I(4) and (5)
href: https://www.legislation.gov.uk/ukpga/2003/1/section/681I
metadata:
unit: list
label: Winter fuel payment charge relevant benefits
6 changes: 3 additions & 3 deletions policyengine_uk/programs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ programs:
variable: income_tax
parameter_prefix: gov.hmrc.income_tax
verified_start_year: 2019
notes: Includes Scottish rates via devolved tax bands
notes: Includes Scottish rates via devolved tax bands, the high income child benefit charge and, from 2025-26, the winter fuel payment charge

- id: national_insurance
name: National Insurance
Expand Down Expand Up @@ -369,7 +369,7 @@ programs:
variable: winter_fuel_payment
parameter_prefix: gov.dwp.winter_fuel_payment
verified_start_year: 2022
notes: Great Britain to winter 2023-24, then England and Wales; Northern Ireland's mirror scheme uses the same parameters
notes: Great Britain to winter 2023-24, then England and Wales; Northern Ireland's mirror scheme uses the same parameters. From winter 2025-26 paid to everyone of pensionable age and recovered by the winter fuel payment charge (income tax)

- id: ssmg
name: Sure Start Maternity Grant
Expand Down Expand Up @@ -609,4 +609,4 @@ programs:
variable: pension_age_winter_heating_payment
parameter_prefix: gov.social_security_scotland.pawhp
verified_start_year: 2024
notes: Replaced the Winter Fuel Payment in Scotland from winter 2024-25
notes: Replaced the Winter Fuel Payment in Scotland from winter 2024-25. From winter 2025-26 recovered by the winter fuel payment charge (income tax) above £35,000 of total income
113 changes: 112 additions & 1 deletion policyengine_uk/tests/aggregate_impact/test_aggregate_impact_guard.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,14 @@
from hypothesis import given, settings
from hypothesis import strategies as st

from policyengine_uk.utils.aggregate_impact.guard import counted_once, snapshot_inputs
from policyengine_uk.utils.aggregate_impact.guard import (
_slack,
breaks_on_slope,
counted_once,
judge_total,
snapshot_inputs,
still_breaks,
)
from policyengine_uk.utils.aggregate_impact.partition import parse_partition

YEAR = 2026
Expand Down Expand Up @@ -232,6 +239,110 @@ def test_a_declared_read_may_respond_but_not_one_for_one():
assert row["status"] == "fail" and ("tax_a", "contains") in kinds(row)


@pytest.mark.parametrize("tax_level", [100_000, 300_000])
@pytest.mark.parametrize("declared", [False, True])
@pytest.mark.parametrize("contains", [False, True])
def test_a_large_tax_head_is_containment_only_when_it_responds_one_for_one(
tax_level, declared, contains
):
"""A flat £300,000 reader is unchanged at both NI-style perturbations."""
formulas = model(contains=False)
formulas["tax_a"] = lambda f: tax_level + contains * f("tax_b")
reads = {"tax_a": ["tax_b"]} if declared else {}
_, result = run(formulas, partition(["tax_a", "tax_b"], reads=reads))
row = by_variable(result)["tax_b"]
assert row["status"] == ("fail" if contains else "pass")
if contains:
assert ("tax_a", "contains" if declared else "moves") in kinds(row)
else:
assert "tax_a" not in row["responses"]["gov_tax"]
assert result["reset_reproduces_baseline"]


def test_a_large_reader_with_a_mediated_slope_has_no_held_containment():
"""Both held measurements are flat after the other head stops moving."""
formulas = model(contains=False)
formulas["tax_c"] = lambda f: 0.5 * f("tax_b")
formulas["tax_a"] = lambda f: 300_000 + 2 * f("tax_c")
formulas["gov_tax"] = lambda f: f("tax_a") + f("tax_b") + f("tax_c")
_, result = run(
formulas,
partition(
["tax_a", "tax_b", "tax_c"],
reads={"tax_a": ["tax_b", "tax_c"], "tax_c": ["tax_b"]},
),
)
row = by_variable(result)["tax_b"]
assert row["status"] == "pass"
assert [(m["head"], m["kind"], m["via"]) for m in row["mediated"]] == [
("tax_a", "contains", ["tax_c"])
]
assert result["reset_reproduces_baseline"]


def test_a_large_reader_contains_a_component_despite_an_extra_mediated_slope():
"""The unrestricted slope is 1.125; holding tax_c reveals containment."""
formulas = model(contains=False)
formulas["tax_c"] = lambda f: 0.25 * f("tax_b")
formulas["tax_a"] = lambda f: 300_000 + f("tax_b") + 0.5 * f("tax_c")
formulas["gov_tax"] = lambda f: f("tax_a") + f("tax_b") + f("tax_c")
_, result = run(
formulas,
partition(
["tax_a", "tax_b", "tax_c"],
reads={"tax_a": ["tax_b", "tax_c"], "tax_c": ["tax_b"]},
),
)
row = by_variable(result)["tax_b"]
assert row["status"] == "fail"
assert ("tax_a", "contains") in kinds(row)
assert result["reset_reproduces_baseline"]


@pytest.mark.parametrize("contains", [False, True])
@settings(max_examples=60, deadline=None)
@given(
tax_level=st.floats(0, 1e9),
perturbation=st.floats(1e-6, 1e6),
)
def test_containment_depends_on_the_response_and_perturbation_not_the_tax_level(
contains, tax_level, perturbation
):
"""Zero never contains; a one-for-one response always does, at any size."""
expected = np.array([perturbation])
first = expected if contains else np.zeros(1)
second = 2 * first
scales = np.array([tax_level])
where = np.array([True])
for second_changes in (None, {"tax_a": second}):
verdict = judge_total(
total="gov_tax",
is_tax=True,
component="tax_b",
own_variable="tax_b",
declared_double_count=False,
zero_baseline=False,
weights=np.ones(1),
expected=expected,
head_changes={"tax_b": expected, "tax_a": first},
head_scales={"tax_b": scales, "tax_a": scales},
model_change=None,
model_scale=None,
allowed_readers=["tax_a"],
second_changes=second_changes,
)
assert bool(verdict["problems"]) == contains
if contains:
assert verdict["problems"][0]["head"] == "tax_a"
assert verdict["problems"][0]["kind"] == "contains"
slack = _slack(scales)
for held_second in (None, second):
direct = still_breaks("contains", where, expected, slack, first, held_second)
assert bool(direct[0]) == contains
at_first = breaks_on_slope("contains", where, expected, slack, second - first)
assert bool(at_first[0]) == contains


def test_supplied_inputs_are_restored_after_perturbation():
formulas = model(contains=False)
formulas.pop("tax_b")
Expand Down
Loading
Loading