Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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/h2-fixture-spi-composition.changed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Make the hermetic UK H2 spine fixture expose SPI support-channel person-mass changes caused by household composition.
31 changes: 31 additions & 0 deletions packages/microcosm-build/tests/test_uk_graph.py
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,37 @@ def test_spi_support_channel_declares_its_mass_change_and_cgt_clones_conserve()
assert graph.node("cgt_band_donors").mass == "free"


@pytest.mark.requires_uk
def test_spi_support_fixture_changes_person_mass_and_conserves_household_mass() -> None:
"""Keep H2 sensitive to support-channel composition changes."""

from pathlib import Path

from microcosm.build.uk_runtime.frs_spine import uk_frs_spine_seed_frame
from microcosm.build.uk_runtime.graph_kernels import fixture_stage_plan_inputs

root = Path(__file__).resolve().parents[3]
fixture = root / "packages/microcosm-graph/tests/fixtures/parity/uk_spine"
_, implementations = fixture_stage_plan_inputs(fixture / "sources")
before = implementations["frs_spine"](uk_frs_spine_seed_frame())
after = implementations["spi_support_channel"](before)

before_person_mass = before.stratum_mass()
after_person_mass = after.stratum_mass()
assert before_person_mass.index.equals(after_person_mass.index)
assert not np.isclose(
float(after_person_mass.sum()),
float(before_person_mass.sum()),
rtol=1e-9,
atol=0.0,
)

before_household_mass = before.weights_for("household").total
assert after.weights_for("household").total == before_household_mass
assert after.mass_log[-1].old_total == before_household_mass
assert after.mass_log[-1].new_total == before_household_mass


@pytest.mark.requires_uk
def test_driver_projects_a_stage_record_for_every_graph_stage_on_the_fixture(
tmp_path,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,135 +2,135 @@ benunit_id,frs_benunit_capital,is_married,dependent_children
101,1.0_1000000000000000e+02,True,0
201,1.0_2000000000000000e+02,True,0
301,1.0_3000000000000000e+02,True,0
401,1.0_4000000000000000e+02,True,1
501,1.0_5000000000000000e+02,True,0
401,1.0_4000000000000000e+02,True,0
501,1.0_5000000000000000e+02,True,1
601,1.0_6000000000000000e+02,True,0
701,1.0_7000000000000000e+02,True,0
801,1.0_8000000000000000e+02,True,1
801,1.0_8000000000000000e+02,True,0
901,1.0_9000000000000000e+02,True,0
1001,1.1_0000000000000000e+02,True,0
1001,1.1_0000000000000000e+02,True,1
1101,1.1_1000000000000000e+02,True,0
1201,1.1_2000000000000000e+02,True,1
1201,1.1_2000000000000000e+02,True,0
1301,1.1_3000000000000000e+02,True,0
1401,1.1_4000000000000000e+02,True,0
1501,1.1_5000000000000000e+02,True,0
1601,1.1_6000000000000000e+02,True,1
1501,1.1_5000000000000000e+02,True,1
1601,1.1_6000000000000000e+02,True,0
1701,1.1_7000000000000000e+02,True,0
1801,1.1_8000000000000000e+02,True,0
1901,1.1_9000000000000000e+02,True,0
2001,1.2_0000000000000000e+02,True,1
2101,1.2_1000000000000000e+02,True,0
2201,1.2_2000000000000000e+02,True,0
2301,1.2_3000000000000000e+02,True,0
2401,1.2_4000000000000000e+02,True,1
2501,1.2_5000000000000000e+02,True,0
2401,1.2_4000000000000000e+02,True,0
2501,1.2_5000000000000000e+02,True,1
2601,1.2_6000000000000000e+02,True,0
2701,1.2_7000000000000000e+02,True,0
2801,1.2_8000000000000000e+02,True,1
2801,1.2_8000000000000000e+02,True,0
2901,1.2_9000000000000000e+02,True,0
3001,1.3_0000000000000000e+02,True,0
3001,1.3_0000000000000000e+02,True,1
3101,1.3_1000000000000000e+02,True,0
3201,1.3_2000000000000000e+02,True,1
3201,1.3_2000000000000000e+02,True,0
3301,1.3_3000000000000000e+02,True,0
3401,1.3_4000000000000000e+02,True,0
3501,1.3_5000000000000000e+02,True,0
3601,1.3_6000000000000000e+02,True,1
3501,1.3_5000000000000000e+02,True,1
3601,1.3_6000000000000000e+02,True,0
3701,1.3_7000000000000000e+02,True,0
3801,1.3_8000000000000000e+02,True,0
3901,1.3_9000000000000000e+02,True,0
4001,1.4_0000000000000000e+02,True,1
4101,1.4_1000000000000000e+02,True,0
4201,1.4_2000000000000000e+02,True,0
4301,1.4_3000000000000000e+02,True,0
4401,1.4_4000000000000000e+02,True,1
4501,1.4_5000000000000000e+02,True,0
4401,1.4_4000000000000000e+02,True,0
4501,1.4_5000000000000000e+02,True,1
4601,1.4_6000000000000000e+02,True,0
4701,1.4_7000000000000000e+02,True,0
4801,1.4_8000000000000000e+02,True,1
4801,1.4_8000000000000000e+02,True,0
4901,1.4_9000000000000000e+02,True,0
5001,1.5_0000000000000000e+02,True,0
5001,1.5_0000000000000000e+02,True,1
5101,1.5_1000000000000000e+02,True,0
5201,1.5_2000000000000000e+02,True,1
5201,1.5_2000000000000000e+02,True,0
5301,1.5_3000000000000000e+02,True,0
5401,1.5_4000000000000000e+02,True,0
5501,1.5_5000000000000000e+02,True,0
5601,1.5_6000000000000000e+02,True,1
5501,1.5_5000000000000000e+02,True,1
5601,1.5_6000000000000000e+02,True,0
5701,1.5_7000000000000000e+02,True,0
5801,1.5_8000000000000000e+02,True,0
5901,1.5_9000000000000000e+02,True,0
6001,1.6_0000000000000000e+02,True,1
6101,1.6_1000000000000000e+02,True,0
6201,1.6_2000000000000000e+02,True,0
6301,1.6_3000000000000000e+02,True,0
6401,1.6_4000000000000000e+02,True,1
6501,1.6_5000000000000000e+02,True,0
6401,1.6_4000000000000000e+02,True,0
6501,1.6_5000000000000000e+02,True,1
6601,1.6_6000000000000000e+02,True,0
6701,1.6_7000000000000000e+02,True,0
6801,1.6_8000000000000000e+02,True,1
6801,1.6_8000000000000000e+02,True,0
6901,1.6_9000000000000000e+02,True,0
7001,1.7_0000000000000000e+02,True,0
7001,1.7_0000000000000000e+02,True,1
7101,1.7_1000000000000000e+02,True,0
7201,1.7_2000000000000000e+02,True,1
7201,1.7_2000000000000000e+02,True,0
7301,1.7_3000000000000000e+02,True,0
7401,1.7_4000000000000000e+02,True,0
7501,1.7_5000000000000000e+02,True,0
7601,1.7_6000000000000000e+02,True,1
7501,1.7_5000000000000000e+02,True,1
7601,1.7_6000000000000000e+02,True,0
7701,1.7_7000000000000000e+02,True,0
7801,1.7_8000000000000000e+02,True,0
7901,1.7_9000000000000000e+02,True,0
8001,1.8_0000000000000000e+02,True,1
8101,1.8_1000000000000000e+02,True,0
8201,1.8_2000000000000000e+02,True,0
8301,1.8_3000000000000000e+02,True,0
8401,1.8_4000000000000000e+02,True,1
8501,1.8_5000000000000000e+02,True,0
8401,1.8_4000000000000000e+02,True,0
8501,1.8_5000000000000000e+02,True,1
8601,1.8_6000000000000000e+02,True,0
8701,1.8_7000000000000000e+02,True,0
8801,1.8_8000000000000000e+02,True,1
8801,1.8_8000000000000000e+02,True,0
8901,1.8_9000000000000000e+02,True,0
9001,1.9_0000000000000000e+02,True,0
9001,1.9_0000000000000000e+02,True,1
9101,1.9_1000000000000000e+02,True,0
9201,1.9_2000000000000000e+02,True,1
9201,1.9_2000000000000000e+02,True,0
9301,1.9_3000000000000000e+02,True,0
9401,1.9_4000000000000000e+02,True,0
9501,1.9_5000000000000000e+02,True,0
9601,1.9_6000000000000000e+02,True,1
9501,1.9_5000000000000000e+02,True,1
9601,1.9_6000000000000000e+02,True,0
9701,1.9_7000000000000000e+02,True,0
9801,1.9_8000000000000000e+02,True,0
9901,1.9_9000000000000000e+02,True,0
10001,2.0_0000000000000000e+02,True,1
10101,2.0_1000000000000000e+02,True,0
10201,2.0_2000000000000000e+02,True,0
10301,2.0_3000000000000000e+02,True,0
10401,2.0_4000000000000000e+02,True,1
10501,2.0_5000000000000000e+02,True,0
10401,2.0_4000000000000000e+02,True,0
10501,2.0_5000000000000000e+02,True,1
10601,2.0_6000000000000000e+02,True,0
10701,2.0_7000000000000000e+02,True,0
10801,2.0_8000000000000000e+02,True,1
10801,2.0_8000000000000000e+02,True,0
10901,2.0_9000000000000000e+02,True,0
11001,2.1_0000000000000000e+02,True,0
11001,2.1_0000000000000000e+02,True,1
11101,2.1_1000000000000000e+02,True,0
11201,2.1_2000000000000000e+02,True,1
11201,2.1_2000000000000000e+02,True,0
11301,2.1_3000000000000000e+02,True,0
11401,2.1_4000000000000000e+02,True,0
11501,2.1_5000000000000000e+02,True,0
11601,2.1_6000000000000000e+02,True,1
11501,2.1_5000000000000000e+02,True,1
11601,2.1_6000000000000000e+02,True,0
11701,2.1_7000000000000000e+02,True,0
11801,2.1_8000000000000000e+02,True,0
11901,2.1_9000000000000000e+02,True,0
12001,2.2_0000000000000000e+02,True,1
12101,2.2_1000000000000000e+02,True,0
12201,2.2_2000000000000000e+02,True,0
12301,2.2_3000000000000000e+02,True,0
12401,2.2_4000000000000000e+02,True,1
12501,2.2_5000000000000000e+02,True,0
12401,2.2_4000000000000000e+02,True,0
12501,2.2_5000000000000000e+02,True,1
12601,2.2_6000000000000000e+02,True,0
12701,2.2_7000000000000000e+02,True,0
12801,2.2_8000000000000000e+02,True,1
12801,2.2_8000000000000000e+02,True,0
12901,2.2_9000000000000000e+02,True,0
13001,2.3_0000000000000000e+02,True,0
13001,2.3_0000000000000000e+02,True,1
13101,2.3_1000000000000000e+02,True,0
13201,2.3_2000000000000000e+02,True,1
13201,2.3_2000000000000000e+02,True,0
13301,2.3_3000000000000000e+02,True,0
13401,2.3_4000000000000000e+02,True,0
13501,2.3_5000000000000000e+02,True,0
13501,2.3_5000000000000000e+02,True,1
Original file line number Diff line number Diff line change
Expand Up @@ -531,8 +531,8 @@
"locator": "child.tab",
"role": "frs_table",
"runtime_sha256_required": true,
"sha256": "1c9648ffd2f13e080970a813fd26ee983011781d71e0cc762b06254b1d3bc4e5",
"size_bytes": 1915,
"sha256": "30f9fcabb0c54673e14c368e46627010b0b239c4305b2c4e4c46803d089c6fac",
"size_bytes": 1601,
"table": "child",
"vintage": "synthetic-h2"
}
Expand Down Expand Up @@ -973,7 +973,7 @@
"locator": "benunit.tab",
"role": "frs_table",
"runtime_sha256_required": true,
"sha256": "65b1abf29a565ccd15bf743a99cf8043475789b2c32c8dce42cf0d91b454657e",
"sha256": "2a1dacb6dcdb3c498fc9297f566e1367b7ae5191da5970b0300e3e873ce48f86",
"size_bytes": 2094,
"table": "benunit",
"vintage": "synthetic-h2"
Expand All @@ -984,8 +984,8 @@
"locator": "child.tab",
"role": "frs_table",
"runtime_sha256_required": true,
"sha256": "1c9648ffd2f13e080970a813fd26ee983011781d71e0cc762b06254b1d3bc4e5",
"size_bytes": 1915,
"sha256": "30f9fcabb0c54673e14c368e46627010b0b239c4305b2c4e4c46803d089c6fac",
"size_bytes": 1601,
"table": "child",
"vintage": "synthetic-h2"
},
Expand Down
Loading
Loading