Repository navigation
G8-r2c B: transport.quantile_map@2 with a fitted grouped Pareto top band - #1459
Merged
Merged
Conversation
grouped_pareto_mle@1, in the new microcosm.build.tail_estimators, fits a Pareto alpha by maximum likelihood to contiguous anchor bands and the open top. It bisects the declared bracket for the declared iteration count, rounds once to six decimals half-even, carries alpha as p/10**6, and refuses a bracket without a sign change and an alpha at or below one by name. Its receipt records the anchors, their fact references and counts, the bracket, the iterations, l' at the final bracket, alpha and the implied top-band mean alpha*c/(alpha - 1). transport.quantile_map@2, in the new transport/quantile_kernels.py, reads the anchor counts from the same compiled band surface _surface_bands reads, then delegates to quantile_map@1's own run with the fitted alpha as a literal. The new module keeps @1's source hash, and every registered kernel's implementation hash is unchanged. Composition lists @2 beside @1 in SKELETON_KERNELS, the money producer sets and _SUPPORT_PRODUCERS (quantile_mapped), and the registry installs it with the population kernels. Invariants: l' is strictly decreasing, so the bisection finds the one root; exact Pareto expected counts recover alpha within 1e-6; scaling the counts leaves alpha unchanged; moving mass upward lowers alpha; @2's map is bitwise @1's at the fitted alpha; Belgium's RSZ counts give 3.348955. Hypothesis tests check each, and each of 13 mutants turns a test red. The bare-band-list support test is xfail(strict) until the w4 fix round's E1 lands. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N2tyHSTU4AFqsmoXwaTAXH
register_transport_population_kernels installs fifteen kernels now that transport.quantile_map@2 joins them. The docstring said thirteen on the base, while the test pinned fourteen; both now say fifteen. The pin lists the refs, not hashes, so no implementation hash moves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N2tyHSTU4AFqsmoXwaTAXH
This was referenced Nov 2, 2026
This merges the G8-w4 fix round's w4d head fcdb473 into G8-r2c hunk B. Git found no conflicts, so T/compose.py carries both sides' additions and the fix round's text in the code it owns. Invariant: the merge adds B's hunks to w4d and nothing else. The changed lines of `git diff fcdb473 HEAD` equal those of `git diff d81280b a401e22`, line for line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Since w4c, quantile_support returns the frozen QuantileSupport dataclass, which has no __iter__, so the old tuple unpack in test_the_w4_support_producer_reads_v2_params_with_an_open_top raised TypeError after the merge. The test now binds the dataclass, compares support.positive with a tuple of tuples, asserts that a bare band list feeds both signs (support.negative == support.positive), and passes both fields to quantile_bounds. The fix round's E1 makes a bare band list's support read on both signs, so test_v2_support_bounds_both_signs_for_a_bare_band_list XPASSed strictly. This removes its xfail mark; the assertion is unchanged. Checked: test_transport_quantile_map_v2.py passes, 37 of 37. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
test_property_one_band_and_the_top_match_the_closed_form returned early when the closed-form alpha fell outside 1.01 to 63, and test_property_v2_is_bitwise_v1_at_the_fitted_alpha returned early when the estimator refused. Hypothesis counted each return as a passing example. Each now calls hypothesis.assume, so Hypothesis replaces the draw and its health check would report a filter that rejects too much. test_property_the_score_changes_sign_once_on_the_bracket had the same guard, and it calls assume too. Checked with --hypothesis-show-statistics and a temporary hypothesis.event at each final assertion (not committed). Before, 30 of 60 counted examples reached the closed-form assertion and 44 of 60 reached the differential. After, all 60 of 60 reach it in each of the three properties (109, 14 and 7 invalid draws replaced), and no health check fired. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The review's mutant B-M1 (half-up in place of half-even in _round_half_even, B/tail_estimators.py:166) left every test green, because no test rounds a value lying exactly on a tie. test_six_decimal_rounding_is_half_even_at_an_exact_tie rounds Fraction("1.0078125") to 1.007812 and Fraction("1.0078135") to 1.007814, and two values just off the tie to their nearer neighbour.
Checked: with the condition changed to remainder >= half, the new test fails and the other 37 tests in the file pass; with the code restored, all 38 pass.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Under the r2c bracket [1 + 2**-20, 64] the rounded alpha is at least 1.000001, so alpha_not_above_one cannot fire, and heavy-tail data whose root lies at or below one is refused as bracket_without_sign_change. The module docstring now says so. The code doesn't change; both cases still refuse, so R2C-9 holds. The docstring is part of the module source that transport.quantile_map@2's implementation_hash digests, so that new row's hash moves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The tail estimator module docstring said the receipt names the bracket_without_sign_change reason. A refusal writes no receipt: TailEstimatorRefusalError raises from grouped_pareto_alpha before transport.quantile_map@2 delegates to @1, and its message and code carry the reason. This changes that one word and nothing else; the replacement has the same length, so no line moves. The change moves transport.quantile_map@2's implementation hash, because that hash digests tail_estimators. I recomputed implementation_hash() for all 44 kernels the engine-free toy registry installs, before and after; only transport.quantile_map@2 moved. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LwQq6FfhfP7EBWSvpa8Wv4
MaxGhenis
marked this pull request as ready for review
November 3, 2026 00:02
Contributor
Author
|
Merged by the NZ hub (session local_e407a527) at b20948d with --merge. Gates: |
MaxGhenis
pushed a commit
that referenced
this pull request
Nov 3, 2026
Brings in #1459 and #1461 (ea8f409), which landed after the first merge. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LwQq6Jmpqc2fSZAM219btF
10 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
G8-r2c shared hunk B (#1183):
transport.quantile_map@2andgrouped_pareto_mle@1. B's base is main at312dc4d6. #1452 merged into main, carrying the w4d headfcdb4739that the merge-up below brought in; the "Merge-up" section stays as history.Head:
b20948d9e83347968c7ab0a154c1cbdb722ba875, after the fix round below.Landing note. Belgium's hub measured a tree holding hunks A, B, C and D, and both
transport.quantile_map@2andmeasure.combine@1read differently there than in this PR's table. So when A and D land after B and C, they move those two rows again. This body quotes no@2value from that measurement, because F3 changed@2's hash after it.Merge-up
c9fa6639f5ebc3886fd948f7938f941429195a4a(wasa401e22f).fcdb47395293955347ec2697feef1a736a76cc23, in merge commit9ededbe1, withgit merge --no-ff. Nothing was rebased or force-pushed.T/compose.pysit apart from the fix round's. Every line of code the fix round owns keeps its text:quantile_supportandinside_quantile_supportinT/evidence_contract.py, the support and closure kernels inT/evidence_kernels.py, and_support_roster,support_roster_slices,_check_structural_columns,_requests,_check_unreached_requests,_check_closure_relation_slicesand_check_structural_rows_writteninT/compose.py.git diff fcdb4739 9ededbe1were identical, line for line, to those ofgit diff d81280bb a401e22f. So the merge commit adds B's hunks to w4d and nothing else.bcc9c4c2. Both are intest_transport_quantile_map_v2.py.test_the_w4_support_producer_reads_v2_params_with_an_open_top(:721) unpackedpositive, negative = quantile_support(...). Since w4c,quantile_supportreturns the frozenQuantileSupportdataclass (T/evidence_contract.py:569), which has no__iter__, so the line raisedTypeError. The test now bindssupport, comparessupport.positivewith a tuple of tuples, assertssupport.negative == support.positive(a bare list feeds both signs), and callsquantile_bounds(support.positive, support.negative).test_v2_support_bounds_both_signs_for_a_bare_band_list(:803) XPASSed strictly once E1 arrived, sobcc9c4c2removed itsxfail(strict=True)mark. The assertion is unchanged, and the test passes.Fix round
The review in #1183 comment 6590677926 (APPROVE_WITH_NITS) owed B one word of source and a body update. Every file:line is at
b20948d9.b20948d9B/tail_estimators.py:25: "and the receipt names that reason" becomes "and the refusal names that reason". The word has the same length, so no line movesTailEstimatorRefusalErrorraises at:343and:361, and its message andcodename the reason (:62-67)B/tail_estimators.py:25, B's own new file. It movestransport.quantile_map@2's hash, which digeststail_estimators(T/quantile_kernels.py:121-131); no other row movesReview fixes, earlier round
The review (#1183 comment 6585875953, APPROVE_WITH_NITS) owed B three fixes and two text changes. Every file:line is at this head.
334f5a19test_transport_quantile_map_v2.py:278and:534; also:361, which had the same guardassume, 60 of 60 do (see "Each property tests its full budget")a5dd62a8test_six_decimal_rounding_is_half_even_at_an_exact_tie, test file:258, on_round_half_even(B/tail_estimators.py:163-171)remainder >= halfat:169: that test, alonec9fa6639B/tail_estimators.py:22-25, and "The change" belowThe change
grouped_pareto_mle@1, in the newB/tail_estimators.py(B/ispackages/microcosm-build/src/microcosm/build/,T/isB/transport/).grouped_pareto_score(B/tail_estimators.py:314-322) computes ℓ′(α) = Σ n_k (d_k / expm1(α d_k) − u_k) − n_T t.grouped_pareto_mle(:325-375) bisects the bracket for the iteration count. Both come from the node'sestimatordeclaration (parse_grouped_pareto_declaration,:192-247), as exact decimal text and an integer. It rounds the midpoint once to 6 decimals, half-even, in exact rationals (_round_half_even,:163-171), and carries α as p/10^6.bracket_without_sign_changeandalpha_not_above_oneby name (TailEstimatorRefusalError,:62-68; raised at:343and:361).bracket_without_sign_change. Under the declared bracket [1 + 2^−20, 64], the rounded α is at least 1.000001, soalpha_not_above_onecan't fire: data whose root lies at or below 1 refuses asbracket_without_sign_changeinstead. It still refuses, so R2C-9 holds. The module docstring says so (B/tail_estimators.py:22-25).ParetoFit.receipt(:112-146) writes the estimator id and version, the anchor, each anchor's fact reference, cuts and count, the bracket, the iterations, ℓ′ at both ends of the final bracket, α as p/10^6 and as decimal text, and the implied top-band mean αc/(α − 1) as an exact fraction. The sensitivity variants are the NZ session's.transport.quantile_map@2, in the newT/quantile_kernels.py.estimated_alpha(T/quantile_kernels.py:54-112) decodes the band surface, runs_surface_bands(imported fromT/population_kernels.py, unedited) for the same validation the map's shares get, and reads each anchor's count from that surface's specs.run(:133-149) puts the fitted α intointerpolationas a literal and callsTRANSPORT_QUANTILE_MAP.run, which is@1's own code path. It then adds the fit underreceipt["tail_estimator"].@2accepts a bare band list only, and refuses a literal α (that's@1's), signed or component bands, and anchors that aren't the band list's top contiguous suffix ending at the open top.:121-131) digests its own module,tail_estimators, and every module@1's hash digests.T/compose.pylists@2beside@1inSKELETON_KERNELS, in the money producer sets used by_money_producer_gapsand_check_single_money_normalization, and in_SUPPORT_PRODUCERSasquantile_mapped.T/registry.pyinstalls it with the population kernels.Invariants, and the test that checks each
All tests are in
packages/microcosm-build/tests/engine_free/shared/test_transport_quantile_map_v2.py.test_property_the_score_changes_sign_once_on_the_bracket(Hypothesis)test_property_recovers_alpha_within_the_declared_tolerance(Hypothesis),test_recovers_a_known_alpha_from_exact_pareto_countstest_property_scaling_every_count_leaves_alpha_unchanged(Hypothesis)test_property_moving_mass_upward_lowers_alpha(Hypothesis)test_belgium_rsz_counts_give_the_closed_form_alpha(3.348955),test_property_one_band_and_the_top_match_the_closed_form(Hypothesis)@2with its fitted α is bitwise@1with that α as a literaltest_v2_equals_v1_with_its_estimated_alpha_as_a_literal,test_property_v2_is_bitwise_v1_at_the_fitted_alpha(Hypothesis differential)test_anchor_counts_are_the_band_rows_countstest_six_decimal_rounding_is_half_even_at_an_exact_tietest_refuses_a_bracket_without_a_sign_change_by_name,test_refuses_an_alpha_at_or_below_one_by_name,test_refuses_malformed_anchors,test_the_declaration_is_parsed_exactly,test_v2_refusals@2's params, reads a bare band list on both signs and reportsexpected_minandexpected_maxas nulltest_the_w4_support_producer_reads_v2_params_with_an_open_top,test_the_support_bounds_kernel_reports_a_null_expected_max_for_v2,test_v2_support_bounds_both_signs_for_a_bare_band_list@2as aquantile_mappedmoney producertest_composition_accepts_v2_as_the_quantile_mapped_money_producer,test_v2_is_registered_beside_v1The recovery tolerance, 1e-6. Rounding to 6 decimals contributes at most 5e-7. Sixty-four halvings of [1 + 2^−20, 64] leave a bracket of about 3e-18. The binary64 score's summation error moves the root by far less than 1e-9 here. Rounding alone rules out any tolerance below 5e-7.
Belgium's support request.
test_v2_support_bounds_both_signs_for_a_bare_band_listwasxfail(strict=True)ond81280bb, wherequantile_supportfed a bare band list to the positive side only. The w4 fix round's E1 (T/evidence_contract.py:591,signs():629-641atfcdb4739) reads it on both signs, so after the merge-up the test XPASSed strictly. Commitbcc9c4c2removed the mark; the assertion didn't change, and the test passes.Each property tests its full budget. Three properties used to return early on a draw they couldn't use, and Hypothesis counted each return as a pass. They now call
hypothesis.assume, so Hypothesis draws a replacement and its health check would report a filter that rejects too much. With--hypothesis-show-statisticsand a temporaryhypothesis.eventat each final assertion (not committed), all 60 of 60 counted examples reach the assertion in each property. The counts of replaced draws below come from one run, and they vary by run, because Hypothesis draws differently each time: the review's run (#1183 comment 6590677926) gave 102, 42 and 9. In every run, each property reaches its 60 examples.bcc9c4c2334f5a19test_property_one_band_and_the_top_match_the_closed_formtest_property_v2_is_bitwise_v1_at_the_fitted_alphatest_property_the_score_changes_sign_once_on_the_bracketMutants
Each mutant ran against the test file above with
-n 4. All 14 turn tests red. B-M1 is the review's (#1183 comment 6585875953) and ran ata5dd62a8; the other 13 ran ata401e22f.test_belgium_rsz_counts_give_the_closed_form_alpha,test_the_receipt_records_the_fittest_refuses_an_alpha_at_or_below_one_by_nametest_refuses_a_bracket_without_a_sign_change_by_name,test_degenerate_counts_fall_out_as_no_sign_change,test_v2_refusalstest_property_recovers_alpha_within_the_declared_tolerancetest_recovers_a_known_alpha_from_exact_pareto_counts,test_belgium_rsz_counts_give_the_closed_form_alphaand 3 moretest_property_moving_mass_upward_lowers_alpha@2reads the first band's count for every anchortest_anchor_counts_are_the_band_rows_counts,test_v2_equals_v1_with_its_estimated_alpha_as_a_literal@2passes the unrounded midpoint to@1test_v2_equals_v1_with_its_estimated_alpha_as_a_literal,test_property_v2_is_bitwise_v1_at_the_fitted_alphatest_v2_refusals@2from_SUPPORT_PRODUCERStest_v2_is_registered_beside_v1@2from the money producer setstest_composition_accepts_v2_as_the_quantile_mapped_money_producer@2fromSKELETON_KERNELStest_v2_is_registered_beside_v1@2's registrationtest_v2_is_registered_beside_v1remainder >= half,B/tail_estimators.py:169at this head,:166ata401e22f)test_six_decimal_rounding_is_half_even_at_an_exact_tie, aloneShared hunks (file:line at head
b20948d9)Every hunk below is B's;
git diff fcdb4739 b20948d9shows these and nothing else, and so doesgit diff origin/main...b20948d9. F3 changed one word atB/tail_estimators.py:25and moved no line.B/tail_estimators.py:1-375andT/quantile_kernels.py:1-158.T/compose.py:184(SKELETON_KERNELS),:219-220(_QUANTILE_MAPS,_MONEY_PRODUCERS),:847-850(docstring),:946-956(_money_producer_gaps's expected producers and message; changed lines:946-948,:952-954and:956),:1019(_check_single_money_normalization's kernel-to-route map),:1636(_SUPPORT_PRODUCERS). None of these is in the code the fix round owns.T/registry.py:56(import),:535(docstring count),:542(registration).packages/microcosm-build/tests/engine_free/shared/test_transport_quantile_map_v2.py:1-806.packages/microcosm-build/tests/engine_free/shared/test_transport_population_kernels.py:143and:156: the registration pin now liststransport.quantile_map@2and says fifteen. It pins refs, not hashes.Judgment calls
@2callsTRANSPORT_QUANTILE_MAP.runon adataclasses.replaceof its context, with the fitted α ininterpolation. So@1's own code maps, and@1's refusals keep namingtransport.quantile_map@1.anchor_references, which must be the band list's top contiguous suffix ending at the open top. That ties each anchor to the fact key it counts, and the receipt lists them.@2fits one α to a bare band list. A signed or component band document is refused by name, since one α across two distributions is a choice nobody has made yet.["1.00000095367431640625", "64"]), so a declaration states an exact rational and no binary float sits in a parameter.MAX_BISECTION_ITERATIONSis 200, because float bisection stops narrowing after about 64 halvings.TargetSpec.valuefor the same references_surface_bandsresolves._surface_bandsitself returns shares, not counts, so the kernel calls it for validation and reads the counts from the same decoded surface.Implementation hashes
I computed
implementation_hash()for every kernel the engine-free toy registry installs:make_composed_fixtureintest_support/microcosm_build/transport_composed.py, whosebuild_transport_registrycall installs the population, geography, target, gate, take-up, reporting and evidence kernels plus the threesimulate.*rule kernels for its toy engines. That's 43 kernels at main and atfcdb4739, 44 at B and 45 at C. The earlier tables left out the threesimulate.*rows; none of them moves. For312dc4d6I installedmicrocosm-emitter-interface==0.7.0, from itsuv.lock, into a scratch target onPYTHONPATH, not into the venv. Each worktree'ssrcdirectories came first onPYTHONPATH, and I printedmicrocosm.build.__path__to confirm it.Against the intake heads, only
transport.quantile_map@2moves (F3). Againstfcdb4739, B adds@2and C addsmeasure.combine@1.gates.battery@1moves on main, not here. Its hash digests the source closure of its gate bindings (binding_identity.describe,T/gate_kernels.py:740, hashed at:771-775), and three main merges afterfcdb4739changed modules in that closure: #1410'sa6bcd1ab(B/staging.py,B/staging_storage.py,B/us_runtime/worker_identity.py), #1428'se226192a(B/source_manifest.py) and #1051's4b1b1b10(B/us_runtime/multispine_pool.py). I found them by diffing the closure's per-module digests atfcdb4739and312dc4d6and runninggit log --first-parent --oneline fcdb4739..312dc4d6on those five files.312dc4d6fcdb4739c9fa6639b20948d910694ec0acfa6b94calibrate.ordered_adam@10d4577effa147ebe0d4577effa147ebe0d4577effa147ebe0d4577effa147ebe0d4577effa147ebe0d4577effa147ebecalibration.prepare@1c13e76497b8d2dfbc13e76497b8d2dfbc13e76497b8d2dfbc13e76497b8d2dfbc13e76497b8d2dfbc13e76497b8d2dfbconcepts.encode@17815fae8ed573af67815fae8ed573af67815fae8ed573af67815fae8ed573af67815fae8ed573af67815fae8ed573af6concepts.encode_groups@1062f88411ad605ab062f88411ad605ab062f88411ad605ab062f88411ad605ab062f88411ad605ab062f88411ad605abdiagnostics.calibration@1d38f8fad075a9aced38f8fad075a9aced38f8fad075a9aced38f8fad075a9aced38f8fad075a9aced38f8fad075a9aceexport.prepare@1af31fa6e1690b90caf31fa6e1690b90caf31fa6e1690b90caf31fa6e1690b90caf31fa6e1690b90caf31fa6e1690b90cexport.readback@196be393c760ca76896be393c760ca76896be393c760ca76896be393c760ca76896be393c760ca76896be393c760ca768gates.battery@15893a7fbe197685629f0505b6a0093f829f0505b6a0093f829f0505b6a0093f829f0505b6a0093f829f0505b6a0093f8a6bcd1ab, #1428'se226192aand #1051's4b1b1b10changed first-party modules in the battery's binding source closure. B and C move nothinggeography.assign_atomic@1d60f7ec388903678d60f7ec388903678d60f7ec388903678d60f7ec388903678d60f7ec388903678d60f7ec388903678geography.derive@1d60f7ec388903678d60f7ec388903678d60f7ec388903678d60f7ec388903678d60f7ec388903678d60f7ec388903678geography.gate@1d60f7ec388903678d60f7ec388903678d60f7ec388903678d60f7ec388903678d60f7ec388903678d60f7ec388903678geography.person_location@13efcbe3741d044973efcbe3741d044973efcbe3741d044973efcbe3741d044973efcbe3741d044973efcbe3741d04497geography.support_from_facts@160273ea8388098b860273ea8388098b860273ea8388098b860273ea8388098b860273ea8388098b860273ea8388098b8geography.support_import@1d60f7ec388903678d60f7ec388903678d60f7ec388903678d60f7ec388903678d60f7ec388903678d60f7ec388903678measure.combine@18636ac082235b9798636ac082235b979money.annual_transfers@1c8a067cd750ed2fec8a067cd750ed2fec8a067cd750ed2fec8a067cd750ed2fec8a067cd750ed2fec8a067cd750ed2femoney.minor_units@1c8a067cd750ed2fec8a067cd750ed2fec8a067cd750ed2fec8a067cd750ed2fec8a067cd750ed2fec8a067cd750ed2femoney.normalize@1f10fbeeaf87467b6f10fbeeaf87467b6f10fbeeaf87467b6f10fbeeaf87467b6f10fbeeaf87467b6f10fbeeaf87467b6reporting.carry_income_decile@180335f0183c2741080335f0183c2741080335f0183c2741080335f0183c2741080335f0183c2741080335f0183c27410reporting.income_decile@180335f0183c2741080335f0183c2741080335f0183c2741080335f0183c2741080335f0183c2741080335f0183c27410reporting.receipt_group@180335f0183c2741080335f0183c2741080335f0183c2741080335f0183c2741080335f0183c2741080335f0183c27410simulate.counterfactual@1d54638a3d73a25f1d54638a3d73a25f1d54638a3d73a25f1d54638a3d73a25f1d54638a3d73a25f1d54638a3d73a25f1simulate.rules_by_ref@15806634ec3d9c9445806634ec3d9c9445806634ec3d9c9445806634ec3d9c9445806634ec3d9c9445806634ec3d9c944simulate.solve_zero@145fd2ffdc8cdcabe45fd2ffdc8cdcabe45fd2ffdc8cdcabe45fd2ffdc8cdcabe45fd2ffdc8cdcabe45fd2ffdc8cdcabetakeup.assign@153caf4ae91fc4acb53caf4ae91fc4acb53caf4ae91fc4acb53caf4ae91fc4acb53caf4ae91fc4acb53caf4ae91fc4acbtakeup.bands@11ceca3ba7c7c9b921ceca3ba7c7c9b921ceca3ba7c7c9b921ceca3ba7c7c9b921ceca3ba7c7c9b921ceca3ba7c7c9b92takeup.cell_diagnostics@11ceca3ba7c7c9b921ceca3ba7c7c9b921ceca3ba7c7c9b921ceca3ba7c7c9b921ceca3ba7c7c9b921ceca3ba7c7c9b92takeup.compare@1a318a19b0d147ec9a318a19b0d147ec9a318a19b0d147ec9a318a19b0d147ec9a318a19b0d147ec9a318a19b0d147ec9takeup.gap@13e15ad5e2903c31c3e15ad5e2903c31c3e15ad5e2903c31c3e15ad5e2903c31c3e15ad5e2903c31c3e15ad5e2903c31ctargets.compile@1f3d372c40418665bf3d372c40418665bf3d372c40418665bf3d372c40418665bf3d372c40418665bf3d372c40418665btargets.problem@1aed111cadf163873aed111cadf163873aed111cadf163873aed111cadf163873aed111cadf163873aed111cadf163873transport.boundary@1fc9d10670f6a092ffc9d10670f6a092ffc9d10670f6a092ffc9d10670f6a092ffc9d10670f6a092ffc9d10670f6a092ftransport.create@182dc0880aefba15682dc0880aefba15682dc0880aefba15682dc0880aefba15682dc0880aefba15682dc0880aefba156transport.create@282dc0880aefba15682dc0880aefba15682dc0880aefba15682dc0880aefba15682dc0880aefba15682dc0880aefba156transport.currency@19c3457ddb908aa969c3457ddb908aa969c3457ddb908aa969c3457ddb908aa969c3457ddb908aa969c3457ddb908aa96transport.donor_ranges@162def362139a52e462def362139a52e462def362139a52e462def362139a52e462def362139a52e462def362139a52e4transport.donor_receipt@162def362139a52e462def362139a52e462def362139a52e462def362139a52e462def362139a52e462def362139a52e4transport.input_closure@123134112061495b723134112061495b723134112061495b723134112061495b723134112061495b723134112061495b7transport.package@1e86be552287a6eb3e86be552287a6eb3e86be552287a6eb3e86be552287a6eb3e86be552287a6eb3e86be552287a6eb3transport.quantile_map@10966a4eb8a4922160966a4eb8a4922160966a4eb8a4922160966a4eb8a4922160966a4eb8a4922160966a4eb8a492216transport.quantile_map@2aa0fd5e4e532264a40b17ba56c16b60faa0fd5e4e532264a40b17ba56c16b60fB/tail_estimators.py:25moved it fromaa0fd5e4e532264a, because@2digeststail_estimatorstransport.scenario_override@1062f88411ad605ab062f88411ad605ab062f88411ad605ab062f88411ad605ab062f88411ad605ab062f88411ad605abtransport.support_bounds@12303c60a7ec6135c2303c60a7ec6135c2303c60a7ec6135c2303c60a7ec6135c2303c60a7ec6135c2303c60a7ec6135ctransport.unit_attributes@1f50ec74a1bfe35bbf50ec74a1bfe35bbf50ec74a1bfe35bbf50ec74a1bfe35bbf50ec74a1bfe35bbf50ec74a1bfe35bbtransport.weights_audit@11f3d4750134561271f3d4750134561271f3d4750134561271f3d4750134561271f3d4750134561271f3d475013456127Tests
Closed list at head
b20948d9, with-n 4and no--maxfail. All files are inpackages/microcosm-build/tests/engine_free/shared/.test_transport_quantile_map_v2.pytest_transport_population_kernels.pytest_transport_graph.pytest_transport_evidence_kernels.pytest_country_spec.pyThe run reported
379 passed, with no skip and no xfail; I took the per-file counts from--collect-onlyon each file.test_transport_graph.py's guards against a float literal or a country name in anyT/*.pypass. At this head,python tools/ci_test_plan.py verifyprintsverification=ok, anduv run --no-sync ruff check .prints "All checks passed!".At
c9fa6639, the previous round ran a wider list of 52 files: 4124 passed and 86 skipped, each skip for a pinned NZ feed, pinned geography bytes, the Axiom dense engine or the real donor. This round didn't rerun those files.https://claude.ai/code/session_01LwQq6FfhfP7EBWSvpa8Wv4
Generated by Claude Code