Wire the phase 2b arms into the same judging rig so their contrasts stay comparable with phase 2a

This commit is contained in:
heaven 2026-08-08 00:53:16 +03:00
parent bcd86807f7
commit 8be5653862

View file

@ -82,6 +82,17 @@ SALT = _salt(PASS)
# D/D_ берутся из второй редакции СОЗНАТЕЛЬНО: однопроходки черновика не видят, их вход
# (исходник + блок закона) в обеих редакциях побайтно один, и это проверяется в selfcheck.
ARMS = ("F3", "A", "A_law", "B", "D", "D_")
# ⚠ Армы Ф2б (точечный ремонт C и обратная связка E) судятся ТЕМ ЖЕ ригом и теми же агентами.
# Иначе их числа несравнимы с Ф2а, и покупка обесценивается — это первое, что назвала
# верификация до траты. Тексты берутся из `phase2b`, всё остальное в риге не меняется.
ARMS_2B = ("C", "E")
def _text(arm, u):
if arm in ARMS_2B:
import phase2b as P2 # noqa: PLC0415
return P2.text_of(arm, u["uid"])
return BO.text3_of(arm, u)
# СЕМЕЙСТВО КОНТРАСТОВ, объявленное ДО первого ответа судьи. Поправка Холма считается по всем
# семи; сузить семейство после того, как увидены p-значения, — это и есть p-hacking, и именно
@ -119,8 +130,8 @@ def layout(uid: str, slots: list[str]) -> list[str]:
def build_unit(u: dict) -> tuple[str, dict]:
"""Задание на одну единицу + ключ раскладки. Контроли подмешаны и неотличимы от боевых."""
slots: dict[str, str] = {a: BO.text3_of(a, u) for a in ARMS}
kinds: dict[str, str] = {a: "боевой" for a in ARMS}
slots: dict[str, str] = {a: _text(a, u) for a in tuple(ARMS) + ARMS_2B}
kinds: dict[str, str] = {a: "боевой" for a in tuple(ARMS) + ARMS_2B}
clean = slots["A"]
planted, n = _plant(clean)