thefinalboss commited on
Commit
58018c8
·
verified ·
1 Parent(s): 79beb6e

v3_scale: Checker CS1 r2 — audit verdict_CS1 r2 (tests synthétiques r2) — scripts + agrégats

Browse files
v3_scale/checker/cs1_r2_audit_1435/make_copy.py ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copie de verdict_CS1.py r2 (fc8f0861…) : SEULS les chemins d'entrée hors runs sont redirigés vers ./synth_inputs (copies) ; logique inchangée.
2
+ import hashlib, os, shutil
3
+ SRC = "/workspace/spira_shared/hashing_gen/code_scale_v1/cs1/verdict_CS1.py"; t = open(SRC).read()
4
+ assert hashlib.sha256(t.encode()).hexdigest() == "fc8f0861aa054f4673f96f9d64e49b46d69118b1469bf30607e85614da931749"
5
+ H = os.path.dirname(os.path.abspath(__file__)); SI = f"{H}/synth_inputs"; os.makedirs(SI, exist_ok=True)
6
+ S = "/workspace/spira_shared"
7
+ for src, dst in [(f"{S}/hashing_gen/m8_v1b/sample/recount64_v1b_sample.json", "rc_ref.json"), (f"{S}/hashing_gen/corpus_v1b/manifest_corpus_diverse_v1b.json", "rc_v1b.json"),
8
+ (f"{S}/checker/recount/code_scale_v1_scan/scan64_code_scale_v1.json", "rc_code.json"), (f"{S}/hashing_gen/lever2/verdict_AH1/mask_oldtest_strict.npz", "mask.npz"),
9
+ (f"{S}/checker/recount/cs1_mix_1418/recount64_cs1_mix_sample.json", "rc_mix.json")]:
10
+ shutil.copyfile(src, f"{SI}/{dst}")
11
+ open(f"{SI}/GO_CS1", "w").write("synthetique\n")
12
+ rep = [('RC_REF = f"{B8}/sample/recount64_v1b_sample.json"; RC_MIX = f"{C1}/recount_mix/recount64_cs1_mix_sample.json"',
13
+ f'RC_REF = "{SI}/rc_ref.json"; RC_MIX = os.environ.get("SYN_RC_MIX", "{SI}/rc_mix.json")'),
14
+ ('RC_V1B = f"{S}/hashing_gen/corpus_v1b/manifest_corpus_diverse_v1b.json"; RC_CODE = f"{S}/checker/recount/code_scale_v1_scan/scan64_code_scale_v1.json"',
15
+ f'RC_V1B = "{SI}/rc_v1b.json"; RC_CODE = "{SI}/rc_code.json"'),
16
+ ('GO = f"{C1}/GO_CS1"; MASKP = f"{S}/hashing_gen/lever2/verdict_AH1/mask_oldtest_strict.npz"', f'GO = "{SI}/GO_CS1"; MASKP = "{SI}/mask.npz"'),
17
+ ('_ap.add_argument("--runs-ref", default=f"{C1}/runs/v1b"); _ap.add_argument("--runs-cand", default=f"{C1}/runs/mix"); _ap.add_argument("--outdir", default=f"{C1}/verdict")',
18
+ f'_ap.add_argument("--runs-ref", default="{H}/NONE_ref"); _ap.add_argument("--runs-cand", default="{H}/NONE_cand"); _ap.add_argument("--outdir", default="{H}/NONE_out")')]
19
+ for a, b in rep:
20
+ assert t.count(a) == 1, a; t = t.replace(a, b)
21
+ open(f"{H}/verdict_CS1_synthcopy.py", "w").write(t); print("ok", hashlib.sha256(t.encode()).hexdigest())
v3_scale/checker/cs1_r2_audit_1435/synth_results.json ADDED
@@ -0,0 +1,3090 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "A_adopte": {
3
+ "expected": "ADOPTÉ",
4
+ "got": "ADOPTÉ",
5
+ "reasons": [],
6
+ "counts_agree_independent": true,
7
+ "windows": {
8
+ "fc2": {
9
+ "got": [
10
+ 3644,
11
+ 0,
12
+ 734,
13
+ 1.0,
14
+ 1.0
15
+ ],
16
+ "indep": [
17
+ 3644,
18
+ 0,
19
+ 734,
20
+ 1.0,
21
+ 1.0
22
+ ],
23
+ "rate_in_range_indep": 1.0,
24
+ "valid": true,
25
+ "gain": true,
26
+ "loss": false,
27
+ "p": 2.2131618651272261e-221,
28
+ "ci": [
29
+ 18.612936182784587,
30
+ 21.614078101058517
31
+ ]
32
+ },
33
+ "fresh_en": {
34
+ "got": [
35
+ 3619,
36
+ 0,
37
+ 0,
38
+ 1.0,
39
+ 1.0
40
+ ],
41
+ "indep": [
42
+ 3619,
43
+ 0,
44
+ 0,
45
+ 1.0,
46
+ 1.0
47
+ ],
48
+ "rate_in_range_indep": 1.0,
49
+ "valid": true,
50
+ "gain": false,
51
+ "loss": false,
52
+ "p": 1.0,
53
+ "ci": [
54
+ 0.0,
55
+ 0.0
56
+ ]
57
+ },
58
+ "fresh_fr": {
59
+ "got": [
60
+ 3604,
61
+ 0,
62
+ 0,
63
+ 1.0,
64
+ 1.0
65
+ ],
66
+ "indep": [
67
+ 3604,
68
+ 0,
69
+ 0,
70
+ 1.0,
71
+ 1.0
72
+ ],
73
+ "rate_in_range_indep": 1.0,
74
+ "valid": true,
75
+ "gain": false,
76
+ "loss": false,
77
+ "p": 1.0,
78
+ "ci": [
79
+ 0.0,
80
+ 0.0
81
+ ]
82
+ },
83
+ "test20k": {
84
+ "got": [
85
+ 3605,
86
+ 0,
87
+ 0,
88
+ 1.0,
89
+ 1.0
90
+ ],
91
+ "indep": [
92
+ 3605,
93
+ 0,
94
+ 0,
95
+ 1.0,
96
+ 1.0
97
+ ],
98
+ "rate_in_range_indep": 1.0,
99
+ "valid": true,
100
+ "gain": false,
101
+ "loss": false,
102
+ "p": 1.0,
103
+ "ci": [
104
+ 0.0,
105
+ 0.0
106
+ ]
107
+ },
108
+ "test_v3": {
109
+ "got": [
110
+ 3607,
111
+ 0,
112
+ 0,
113
+ 1.0,
114
+ 1.0
115
+ ],
116
+ "indep": [
117
+ 3607,
118
+ 0,
119
+ 0,
120
+ 1.0,
121
+ 1.0
122
+ ],
123
+ "rate_in_range_indep": 1.0,
124
+ "valid": true,
125
+ "gain": false,
126
+ "loss": false,
127
+ "p": 1.0,
128
+ "ci": [
129
+ 0.0,
130
+ 0.0
131
+ ]
132
+ },
133
+ "queries": {
134
+ "got": [
135
+ 3610,
136
+ 0,
137
+ 0,
138
+ 1.0,
139
+ 1.0
140
+ ],
141
+ "indep": [
142
+ 3610,
143
+ 0,
144
+ 0,
145
+ 1.0,
146
+ 1.0
147
+ ],
148
+ "rate_in_range_indep": 1.0,
149
+ "valid": true,
150
+ "gain": false,
151
+ "loss": false,
152
+ "p": 1.0,
153
+ "ci": [
154
+ 0.0,
155
+ 0.0
156
+ ]
157
+ }
158
+ },
159
+ "ok": true
160
+ },
161
+ "B1_rejete_perte": {
162
+ "expected": "REJETÉ",
163
+ "got": "REJETÉ",
164
+ "reasons": [
165
+ "perte(s) significative(s) : fresh_fr"
166
+ ],
167
+ "counts_agree_independent": true,
168
+ "windows": {
169
+ "fc2": {
170
+ "got": [
171
+ 3644,
172
+ 0,
173
+ 734,
174
+ 1.0,
175
+ 1.0
176
+ ],
177
+ "indep": [
178
+ 3644,
179
+ 0,
180
+ 734,
181
+ 1.0,
182
+ 1.0
183
+ ],
184
+ "rate_in_range_indep": 1.0,
185
+ "valid": true,
186
+ "gain": true,
187
+ "loss": false,
188
+ "p": 2.2131618651272261e-221,
189
+ "ci": [
190
+ 18.612936182784587,
191
+ 21.614078101058517
192
+ ]
193
+ },
194
+ "fresh_en": {
195
+ "got": [
196
+ 3619,
197
+ 0,
198
+ 0,
199
+ 1.0,
200
+ 1.0
201
+ ],
202
+ "indep": [
203
+ 3619,
204
+ 0,
205
+ 0,
206
+ 1.0,
207
+ 1.0
208
+ ],
209
+ "rate_in_range_indep": 1.0,
210
+ "valid": true,
211
+ "gain": false,
212
+ "loss": false,
213
+ "p": 1.0,
214
+ "ci": [
215
+ 0.0,
216
+ 0.0
217
+ ]
218
+ },
219
+ "fresh_fr": {
220
+ "got": [
221
+ 3604,
222
+ 715,
223
+ 0,
224
+ 1.0,
225
+ 1.0
226
+ ],
227
+ "indep": [
228
+ 3604,
229
+ 715,
230
+ 0,
231
+ 1.0,
232
+ 1.0
233
+ ],
234
+ "rate_in_range_indep": 1.0,
235
+ "valid": true,
236
+ "gain": false,
237
+ "loss": true,
238
+ "p": 1.1603342079438231e-215,
239
+ "ci": [
240
+ -21.27174691969445,
241
+ -18.441457134130808
242
+ ]
243
+ },
244
+ "test20k": {
245
+ "got": [
246
+ 3586,
247
+ 0,
248
+ 0,
249
+ 1.0,
250
+ 1.0
251
+ ],
252
+ "indep": [
253
+ 3586,
254
+ 0,
255
+ 0,
256
+ 1.0,
257
+ 1.0
258
+ ],
259
+ "rate_in_range_indep": 1.0,
260
+ "valid": true,
261
+ "gain": false,
262
+ "loss": false,
263
+ "p": 1.0,
264
+ "ci": [
265
+ 0.0,
266
+ 0.0
267
+ ]
268
+ },
269
+ "test_v3": {
270
+ "got": [
271
+ 3615,
272
+ 0,
273
+ 0,
274
+ 1.0,
275
+ 1.0
276
+ ],
277
+ "indep": [
278
+ 3615,
279
+ 0,
280
+ 0,
281
+ 1.0,
282
+ 1.0
283
+ ],
284
+ "rate_in_range_indep": 1.0,
285
+ "valid": true,
286
+ "gain": false,
287
+ "loss": false,
288
+ "p": 1.0,
289
+ "ci": [
290
+ 0.0,
291
+ 0.0
292
+ ]
293
+ },
294
+ "queries": {
295
+ "got": [
296
+ 3616,
297
+ 0,
298
+ 0,
299
+ 1.0,
300
+ 1.0
301
+ ],
302
+ "indep": [
303
+ 3616,
304
+ 0,
305
+ 0,
306
+ 1.0,
307
+ 1.0
308
+ ],
309
+ "rate_in_range_indep": 1.0,
310
+ "valid": true,
311
+ "gain": false,
312
+ "loss": false,
313
+ "p": 1.0,
314
+ "ci": [
315
+ 0.0,
316
+ 0.0
317
+ ]
318
+ }
319
+ },
320
+ "ok": true
321
+ },
322
+ "B2_rejete_sans_gain": {
323
+ "expected": "REJETÉ",
324
+ "got": "REJETÉ",
325
+ "reasons": [
326
+ "aucun gain significatif sur une fenêtre fraîche valide"
327
+ ],
328
+ "counts_agree_independent": true,
329
+ "windows": {
330
+ "fc2": {
331
+ "got": [
332
+ 3644,
333
+ 0,
334
+ 0,
335
+ 1.0,
336
+ 1.0
337
+ ],
338
+ "indep": [
339
+ 3644,
340
+ 0,
341
+ 0,
342
+ 1.0,
343
+ 1.0
344
+ ],
345
+ "rate_in_range_indep": 1.0,
346
+ "valid": true,
347
+ "gain": false,
348
+ "loss": false,
349
+ "p": 1.0,
350
+ "ci": [
351
+ 0.0,
352
+ 0.0
353
+ ]
354
+ },
355
+ "fresh_en": {
356
+ "got": [
357
+ 3632,
358
+ 0,
359
+ 0,
360
+ 1.0,
361
+ 1.0
362
+ ],
363
+ "indep": [
364
+ 3632,
365
+ 0,
366
+ 0,
367
+ 1.0,
368
+ 1.0
369
+ ],
370
+ "rate_in_range_indep": 1.0,
371
+ "valid": true,
372
+ "gain": false,
373
+ "loss": false,
374
+ "p": 1.0,
375
+ "ci": [
376
+ 0.0,
377
+ 0.0
378
+ ]
379
+ },
380
+ "fresh_fr": {
381
+ "got": [
382
+ 3605,
383
+ 0,
384
+ 0,
385
+ 1.0,
386
+ 1.0
387
+ ],
388
+ "indep": [
389
+ 3605,
390
+ 0,
391
+ 0,
392
+ 1.0,
393
+ 1.0
394
+ ],
395
+ "rate_in_range_indep": 1.0,
396
+ "valid": true,
397
+ "gain": false,
398
+ "loss": false,
399
+ "p": 1.0,
400
+ "ci": [
401
+ 0.0,
402
+ 0.0
403
+ ]
404
+ },
405
+ "test20k": {
406
+ "got": [
407
+ 3579,
408
+ 0,
409
+ 0,
410
+ 1.0,
411
+ 1.0
412
+ ],
413
+ "indep": [
414
+ 3579,
415
+ 0,
416
+ 0,
417
+ 1.0,
418
+ 1.0
419
+ ],
420
+ "rate_in_range_indep": 1.0,
421
+ "valid": true,
422
+ "gain": false,
423
+ "loss": false,
424
+ "p": 1.0,
425
+ "ci": [
426
+ 0.0,
427
+ 0.0
428
+ ]
429
+ },
430
+ "test_v3": {
431
+ "got": [
432
+ 3611,
433
+ 0,
434
+ 0,
435
+ 1.0,
436
+ 1.0
437
+ ],
438
+ "indep": [
439
+ 3611,
440
+ 0,
441
+ 0,
442
+ 1.0,
443
+ 1.0
444
+ ],
445
+ "rate_in_range_indep": 1.0,
446
+ "valid": true,
447
+ "gain": false,
448
+ "loss": false,
449
+ "p": 1.0,
450
+ "ci": [
451
+ 0.0,
452
+ 0.0
453
+ ]
454
+ },
455
+ "queries": {
456
+ "got": [
457
+ 3590,
458
+ 0,
459
+ 0,
460
+ 1.0,
461
+ 1.0
462
+ ],
463
+ "indep": [
464
+ 3590,
465
+ 0,
466
+ 0,
467
+ 1.0,
468
+ 1.0
469
+ ],
470
+ "rate_in_range_indep": 1.0,
471
+ "valid": true,
472
+ "gain": false,
473
+ "loss": false,
474
+ "p": 1.0,
475
+ "ci": [
476
+ 0.0,
477
+ 0.0
478
+ ]
479
+ }
480
+ },
481
+ "ok": true
482
+ },
483
+ "B3_perte_queries_seulement_hors_regle": {
484
+ "expected": "ADOPTÉ",
485
+ "got": "ADOPTÉ",
486
+ "reasons": [],
487
+ "counts_agree_independent": true,
488
+ "windows": {
489
+ "fc2": {
490
+ "got": [
491
+ 3644,
492
+ 0,
493
+ 734,
494
+ 1.0,
495
+ 1.0
496
+ ],
497
+ "indep": [
498
+ 3644,
499
+ 0,
500
+ 734,
501
+ 1.0,
502
+ 1.0
503
+ ],
504
+ "rate_in_range_indep": 1.0,
505
+ "valid": true,
506
+ "gain": true,
507
+ "loss": false,
508
+ "p": 2.2131618651272261e-221,
509
+ "ci": [
510
+ 18.612936182784587,
511
+ 21.614078101058517
512
+ ]
513
+ },
514
+ "fresh_en": {
515
+ "got": [
516
+ 3619,
517
+ 0,
518
+ 0,
519
+ 1.0,
520
+ 1.0
521
+ ],
522
+ "indep": [
523
+ 3619,
524
+ 0,
525
+ 0,
526
+ 1.0,
527
+ 1.0
528
+ ],
529
+ "rate_in_range_indep": 1.0,
530
+ "valid": true,
531
+ "gain": false,
532
+ "loss": false,
533
+ "p": 1.0,
534
+ "ci": [
535
+ 0.0,
536
+ 0.0
537
+ ]
538
+ },
539
+ "fresh_fr": {
540
+ "got": [
541
+ 3604,
542
+ 0,
543
+ 0,
544
+ 1.0,
545
+ 1.0
546
+ ],
547
+ "indep": [
548
+ 3604,
549
+ 0,
550
+ 0,
551
+ 1.0,
552
+ 1.0
553
+ ],
554
+ "rate_in_range_indep": 1.0,
555
+ "valid": true,
556
+ "gain": false,
557
+ "loss": false,
558
+ "p": 1.0,
559
+ "ci": [
560
+ 0.0,
561
+ 0.0
562
+ ]
563
+ },
564
+ "test20k": {
565
+ "got": [
566
+ 3605,
567
+ 0,
568
+ 0,
569
+ 1.0,
570
+ 1.0
571
+ ],
572
+ "indep": [
573
+ 3605,
574
+ 0,
575
+ 0,
576
+ 1.0,
577
+ 1.0
578
+ ],
579
+ "rate_in_range_indep": 1.0,
580
+ "valid": true,
581
+ "gain": false,
582
+ "loss": false,
583
+ "p": 1.0,
584
+ "ci": [
585
+ 0.0,
586
+ 0.0
587
+ ]
588
+ },
589
+ "test_v3": {
590
+ "got": [
591
+ 3607,
592
+ 0,
593
+ 0,
594
+ 1.0,
595
+ 1.0
596
+ ],
597
+ "indep": [
598
+ 3607,
599
+ 0,
600
+ 0,
601
+ 1.0,
602
+ 1.0
603
+ ],
604
+ "rate_in_range_indep": 1.0,
605
+ "valid": true,
606
+ "gain": false,
607
+ "loss": false,
608
+ "p": 1.0,
609
+ "ci": [
610
+ 0.0,
611
+ 0.0
612
+ ]
613
+ },
614
+ "queries": {
615
+ "got": [
616
+ 3610,
617
+ 1043,
618
+ 0,
619
+ 1.0,
620
+ 1.0
621
+ ],
622
+ "indep": [
623
+ 3610,
624
+ 1043,
625
+ 0,
626
+ 1.0,
627
+ 1.0
628
+ ],
629
+ "rate_in_range_indep": 1.0,
630
+ "valid": true,
631
+ "gain": false,
632
+ "loss": true,
633
+ "p": 2.121995791e-314,
634
+ "ci": [
635
+ -30.067001675041876,
636
+ -27.730120327265638
637
+ ]
638
+ }
639
+ },
640
+ "ok": true
641
+ },
642
+ "C1_scale_cand_0.12": {
643
+ "expected": "NON MESURABLE",
644
+ "got": "NON MESURABLE",
645
+ "reasons": [
646
+ "fusion.scale hors [0.03 ; 0.11] : réf 0.07 / cand 0.12"
647
+ ],
648
+ "counts_agree_independent": true,
649
+ "windows": {
650
+ "fc2": {
651
+ "got": [
652
+ 3644,
653
+ 0,
654
+ 734,
655
+ 1.0,
656
+ 1.0
657
+ ],
658
+ "indep": [
659
+ 3644,
660
+ 0,
661
+ 734,
662
+ 1.0,
663
+ 1.0
664
+ ],
665
+ "rate_in_range_indep": 1.0,
666
+ "valid": true,
667
+ "gain": true,
668
+ "loss": false,
669
+ "p": 2.2131618651272261e-221,
670
+ "ci": [
671
+ 18.612936182784587,
672
+ 21.614078101058517
673
+ ]
674
+ },
675
+ "fresh_en": {
676
+ "got": [
677
+ 3619,
678
+ 0,
679
+ 0,
680
+ 1.0,
681
+ 1.0
682
+ ],
683
+ "indep": [
684
+ 3619,
685
+ 0,
686
+ 0,
687
+ 1.0,
688
+ 1.0
689
+ ],
690
+ "rate_in_range_indep": 1.0,
691
+ "valid": true,
692
+ "gain": false,
693
+ "loss": false,
694
+ "p": 1.0,
695
+ "ci": [
696
+ 0.0,
697
+ 0.0
698
+ ]
699
+ },
700
+ "fresh_fr": {
701
+ "got": [
702
+ 3604,
703
+ 0,
704
+ 0,
705
+ 1.0,
706
+ 1.0
707
+ ],
708
+ "indep": [
709
+ 3604,
710
+ 0,
711
+ 0,
712
+ 1.0,
713
+ 1.0
714
+ ],
715
+ "rate_in_range_indep": 1.0,
716
+ "valid": true,
717
+ "gain": false,
718
+ "loss": false,
719
+ "p": 1.0,
720
+ "ci": [
721
+ 0.0,
722
+ 0.0
723
+ ]
724
+ },
725
+ "test20k": {
726
+ "got": [
727
+ 3605,
728
+ 0,
729
+ 0,
730
+ 1.0,
731
+ 1.0
732
+ ],
733
+ "indep": [
734
+ 3605,
735
+ 0,
736
+ 0,
737
+ 1.0,
738
+ 1.0
739
+ ],
740
+ "rate_in_range_indep": 1.0,
741
+ "valid": true,
742
+ "gain": false,
743
+ "loss": false,
744
+ "p": 1.0,
745
+ "ci": [
746
+ 0.0,
747
+ 0.0
748
+ ]
749
+ },
750
+ "test_v3": {
751
+ "got": [
752
+ 3607,
753
+ 0,
754
+ 0,
755
+ 1.0,
756
+ 1.0
757
+ ],
758
+ "indep": [
759
+ 3607,
760
+ 0,
761
+ 0,
762
+ 1.0,
763
+ 1.0
764
+ ],
765
+ "rate_in_range_indep": 1.0,
766
+ "valid": true,
767
+ "gain": false,
768
+ "loss": false,
769
+ "p": 1.0,
770
+ "ci": [
771
+ 0.0,
772
+ 0.0
773
+ ]
774
+ },
775
+ "queries": {
776
+ "got": [
777
+ 3610,
778
+ 0,
779
+ 0,
780
+ 1.0,
781
+ 1.0
782
+ ],
783
+ "indep": [
784
+ 3610,
785
+ 0,
786
+ 0,
787
+ 1.0,
788
+ 1.0
789
+ ],
790
+ "rate_in_range_indep": 1.0,
791
+ "valid": true,
792
+ "gain": false,
793
+ "loss": false,
794
+ "p": 1.0,
795
+ "ci": [
796
+ 0.0,
797
+ 0.0
798
+ ]
799
+ }
800
+ },
801
+ "ok": true
802
+ },
803
+ "C2_scale_ref_0.029": {
804
+ "expected": "NON MESURABLE",
805
+ "got": "NON MESURABLE",
806
+ "reasons": [
807
+ "fusion.scale hors [0.03 ; 0.11] : réf 0.029 / cand 0.07"
808
+ ],
809
+ "counts_agree_independent": true,
810
+ "windows": {
811
+ "fc2": {
812
+ "got": [
813
+ 3644,
814
+ 0,
815
+ 734,
816
+ 1.0,
817
+ 1.0
818
+ ],
819
+ "indep": [
820
+ 3644,
821
+ 0,
822
+ 734,
823
+ 1.0,
824
+ 1.0
825
+ ],
826
+ "rate_in_range_indep": 1.0,
827
+ "valid": true,
828
+ "gain": true,
829
+ "loss": false,
830
+ "p": 2.2131618651272261e-221,
831
+ "ci": [
832
+ 18.612936182784587,
833
+ 21.614078101058517
834
+ ]
835
+ },
836
+ "fresh_en": {
837
+ "got": [
838
+ 3619,
839
+ 0,
840
+ 0,
841
+ 1.0,
842
+ 1.0
843
+ ],
844
+ "indep": [
845
+ 3619,
846
+ 0,
847
+ 0,
848
+ 1.0,
849
+ 1.0
850
+ ],
851
+ "rate_in_range_indep": 1.0,
852
+ "valid": true,
853
+ "gain": false,
854
+ "loss": false,
855
+ "p": 1.0,
856
+ "ci": [
857
+ 0.0,
858
+ 0.0
859
+ ]
860
+ },
861
+ "fresh_fr": {
862
+ "got": [
863
+ 3604,
864
+ 0,
865
+ 0,
866
+ 1.0,
867
+ 1.0
868
+ ],
869
+ "indep": [
870
+ 3604,
871
+ 0,
872
+ 0,
873
+ 1.0,
874
+ 1.0
875
+ ],
876
+ "rate_in_range_indep": 1.0,
877
+ "valid": true,
878
+ "gain": false,
879
+ "loss": false,
880
+ "p": 1.0,
881
+ "ci": [
882
+ 0.0,
883
+ 0.0
884
+ ]
885
+ },
886
+ "test20k": {
887
+ "got": [
888
+ 3605,
889
+ 0,
890
+ 0,
891
+ 1.0,
892
+ 1.0
893
+ ],
894
+ "indep": [
895
+ 3605,
896
+ 0,
897
+ 0,
898
+ 1.0,
899
+ 1.0
900
+ ],
901
+ "rate_in_range_indep": 1.0,
902
+ "valid": true,
903
+ "gain": false,
904
+ "loss": false,
905
+ "p": 1.0,
906
+ "ci": [
907
+ 0.0,
908
+ 0.0
909
+ ]
910
+ },
911
+ "test_v3": {
912
+ "got": [
913
+ 3607,
914
+ 0,
915
+ 0,
916
+ 1.0,
917
+ 1.0
918
+ ],
919
+ "indep": [
920
+ 3607,
921
+ 0,
922
+ 0,
923
+ 1.0,
924
+ 1.0
925
+ ],
926
+ "rate_in_range_indep": 1.0,
927
+ "valid": true,
928
+ "gain": false,
929
+ "loss": false,
930
+ "p": 1.0,
931
+ "ci": [
932
+ 0.0,
933
+ 0.0
934
+ ]
935
+ },
936
+ "queries": {
937
+ "got": [
938
+ 3610,
939
+ 0,
940
+ 0,
941
+ 1.0,
942
+ 1.0
943
+ ],
944
+ "indep": [
945
+ 3610,
946
+ 0,
947
+ 0,
948
+ 1.0,
949
+ 1.0
950
+ ],
951
+ "rate_in_range_indep": 1.0,
952
+ "valid": true,
953
+ "gain": false,
954
+ "loss": false,
955
+ "p": 1.0,
956
+ "ci": [
957
+ 0.0,
958
+ 0.0
959
+ ]
960
+ }
961
+ },
962
+ "ok": true
963
+ },
964
+ "C3_scale_bornes_incluses_0.03_0.11": {
965
+ "expected": "ADOPTÉ",
966
+ "got": "ADOPTÉ",
967
+ "reasons": [],
968
+ "counts_agree_independent": true,
969
+ "windows": {
970
+ "fc2": {
971
+ "got": [
972
+ 3644,
973
+ 0,
974
+ 734,
975
+ 1.0,
976
+ 1.0
977
+ ],
978
+ "indep": [
979
+ 3644,
980
+ 0,
981
+ 734,
982
+ 1.0,
983
+ 1.0
984
+ ],
985
+ "rate_in_range_indep": 1.0,
986
+ "valid": true,
987
+ "gain": true,
988
+ "loss": false,
989
+ "p": 2.2131618651272261e-221,
990
+ "ci": [
991
+ 18.612936182784587,
992
+ 21.614078101058517
993
+ ]
994
+ },
995
+ "fresh_en": {
996
+ "got": [
997
+ 3619,
998
+ 0,
999
+ 0,
1000
+ 1.0,
1001
+ 1.0
1002
+ ],
1003
+ "indep": [
1004
+ 3619,
1005
+ 0,
1006
+ 0,
1007
+ 1.0,
1008
+ 1.0
1009
+ ],
1010
+ "rate_in_range_indep": 1.0,
1011
+ "valid": true,
1012
+ "gain": false,
1013
+ "loss": false,
1014
+ "p": 1.0,
1015
+ "ci": [
1016
+ 0.0,
1017
+ 0.0
1018
+ ]
1019
+ },
1020
+ "fresh_fr": {
1021
+ "got": [
1022
+ 3604,
1023
+ 0,
1024
+ 0,
1025
+ 1.0,
1026
+ 1.0
1027
+ ],
1028
+ "indep": [
1029
+ 3604,
1030
+ 0,
1031
+ 0,
1032
+ 1.0,
1033
+ 1.0
1034
+ ],
1035
+ "rate_in_range_indep": 1.0,
1036
+ "valid": true,
1037
+ "gain": false,
1038
+ "loss": false,
1039
+ "p": 1.0,
1040
+ "ci": [
1041
+ 0.0,
1042
+ 0.0
1043
+ ]
1044
+ },
1045
+ "test20k": {
1046
+ "got": [
1047
+ 3605,
1048
+ 0,
1049
+ 0,
1050
+ 1.0,
1051
+ 1.0
1052
+ ],
1053
+ "indep": [
1054
+ 3605,
1055
+ 0,
1056
+ 0,
1057
+ 1.0,
1058
+ 1.0
1059
+ ],
1060
+ "rate_in_range_indep": 1.0,
1061
+ "valid": true,
1062
+ "gain": false,
1063
+ "loss": false,
1064
+ "p": 1.0,
1065
+ "ci": [
1066
+ 0.0,
1067
+ 0.0
1068
+ ]
1069
+ },
1070
+ "test_v3": {
1071
+ "got": [
1072
+ 3607,
1073
+ 0,
1074
+ 0,
1075
+ 1.0,
1076
+ 1.0
1077
+ ],
1078
+ "indep": [
1079
+ 3607,
1080
+ 0,
1081
+ 0,
1082
+ 1.0,
1083
+ 1.0
1084
+ ],
1085
+ "rate_in_range_indep": 1.0,
1086
+ "valid": true,
1087
+ "gain": false,
1088
+ "loss": false,
1089
+ "p": 1.0,
1090
+ "ci": [
1091
+ 0.0,
1092
+ 0.0
1093
+ ]
1094
+ },
1095
+ "queries": {
1096
+ "got": [
1097
+ 3610,
1098
+ 0,
1099
+ 0,
1100
+ 1.0,
1101
+ 1.0
1102
+ ],
1103
+ "indep": [
1104
+ 3610,
1105
+ 0,
1106
+ 0,
1107
+ 1.0,
1108
+ 1.0
1109
+ ],
1110
+ "rate_in_range_indep": 1.0,
1111
+ "valid": true,
1112
+ "gain": false,
1113
+ "loss": false,
1114
+ "p": 1.0,
1115
+ "ci": [
1116
+ 0.0,
1117
+ 0.0
1118
+ ]
1119
+ }
1120
+ },
1121
+ "ok": true
1122
+ },
1123
+ "C4_scale_absente": {
1124
+ "expected": "NON MESURABLE",
1125
+ "got": "NON MESURABLE",
1126
+ "reasons": [
1127
+ "fusion.scale hors [0.03 ; 0.11] : réf 0.07 / cand None"
1128
+ ],
1129
+ "counts_agree_independent": true,
1130
+ "windows": {
1131
+ "fc2": {
1132
+ "got": [
1133
+ 3644,
1134
+ 0,
1135
+ 734,
1136
+ 1.0,
1137
+ 1.0
1138
+ ],
1139
+ "indep": [
1140
+ 3644,
1141
+ 0,
1142
+ 734,
1143
+ 1.0,
1144
+ 1.0
1145
+ ],
1146
+ "rate_in_range_indep": 1.0,
1147
+ "valid": true,
1148
+ "gain": true,
1149
+ "loss": false,
1150
+ "p": 2.2131618651272261e-221,
1151
+ "ci": [
1152
+ 18.612936182784587,
1153
+ 21.614078101058517
1154
+ ]
1155
+ },
1156
+ "fresh_en": {
1157
+ "got": [
1158
+ 3619,
1159
+ 0,
1160
+ 0,
1161
+ 1.0,
1162
+ 1.0
1163
+ ],
1164
+ "indep": [
1165
+ 3619,
1166
+ 0,
1167
+ 0,
1168
+ 1.0,
1169
+ 1.0
1170
+ ],
1171
+ "rate_in_range_indep": 1.0,
1172
+ "valid": true,
1173
+ "gain": false,
1174
+ "loss": false,
1175
+ "p": 1.0,
1176
+ "ci": [
1177
+ 0.0,
1178
+ 0.0
1179
+ ]
1180
+ },
1181
+ "fresh_fr": {
1182
+ "got": [
1183
+ 3604,
1184
+ 0,
1185
+ 0,
1186
+ 1.0,
1187
+ 1.0
1188
+ ],
1189
+ "indep": [
1190
+ 3604,
1191
+ 0,
1192
+ 0,
1193
+ 1.0,
1194
+ 1.0
1195
+ ],
1196
+ "rate_in_range_indep": 1.0,
1197
+ "valid": true,
1198
+ "gain": false,
1199
+ "loss": false,
1200
+ "p": 1.0,
1201
+ "ci": [
1202
+ 0.0,
1203
+ 0.0
1204
+ ]
1205
+ },
1206
+ "test20k": {
1207
+ "got": [
1208
+ 3605,
1209
+ 0,
1210
+ 0,
1211
+ 1.0,
1212
+ 1.0
1213
+ ],
1214
+ "indep": [
1215
+ 3605,
1216
+ 0,
1217
+ 0,
1218
+ 1.0,
1219
+ 1.0
1220
+ ],
1221
+ "rate_in_range_indep": 1.0,
1222
+ "valid": true,
1223
+ "gain": false,
1224
+ "loss": false,
1225
+ "p": 1.0,
1226
+ "ci": [
1227
+ 0.0,
1228
+ 0.0
1229
+ ]
1230
+ },
1231
+ "test_v3": {
1232
+ "got": [
1233
+ 3607,
1234
+ 0,
1235
+ 0,
1236
+ 1.0,
1237
+ 1.0
1238
+ ],
1239
+ "indep": [
1240
+ 3607,
1241
+ 0,
1242
+ 0,
1243
+ 1.0,
1244
+ 1.0
1245
+ ],
1246
+ "rate_in_range_indep": 1.0,
1247
+ "valid": true,
1248
+ "gain": false,
1249
+ "loss": false,
1250
+ "p": 1.0,
1251
+ "ci": [
1252
+ 0.0,
1253
+ 0.0
1254
+ ]
1255
+ },
1256
+ "queries": {
1257
+ "got": [
1258
+ 3610,
1259
+ 0,
1260
+ 0,
1261
+ 1.0,
1262
+ 1.0
1263
+ ],
1264
+ "indep": [
1265
+ 3610,
1266
+ 0,
1267
+ 0,
1268
+ 1.0,
1269
+ 1.0
1270
+ ],
1271
+ "rate_in_range_indep": 1.0,
1272
+ "valid": true,
1273
+ "gain": false,
1274
+ "loss": false,
1275
+ "p": 1.0,
1276
+ "ci": [
1277
+ 0.0,
1278
+ 0.0
1279
+ ]
1280
+ }
1281
+ },
1282
+ "ok": true
1283
+ },
1284
+ "C5_scale_NaN": {
1285
+ "expected": "NON MESURABLE",
1286
+ "got": "NON MESURABLE",
1287
+ "reasons": [
1288
+ "fusion.scale hors [0.03 ; 0.11] : réf 0.07 / cand nan"
1289
+ ],
1290
+ "counts_agree_independent": true,
1291
+ "windows": {
1292
+ "fc2": {
1293
+ "got": [
1294
+ 3644,
1295
+ 0,
1296
+ 734,
1297
+ 1.0,
1298
+ 1.0
1299
+ ],
1300
+ "indep": [
1301
+ 3644,
1302
+ 0,
1303
+ 734,
1304
+ 1.0,
1305
+ 1.0
1306
+ ],
1307
+ "rate_in_range_indep": 1.0,
1308
+ "valid": true,
1309
+ "gain": true,
1310
+ "loss": false,
1311
+ "p": 2.2131618651272261e-221,
1312
+ "ci": [
1313
+ 18.612936182784587,
1314
+ 21.614078101058517
1315
+ ]
1316
+ },
1317
+ "fresh_en": {
1318
+ "got": [
1319
+ 3619,
1320
+ 0,
1321
+ 0,
1322
+ 1.0,
1323
+ 1.0
1324
+ ],
1325
+ "indep": [
1326
+ 3619,
1327
+ 0,
1328
+ 0,
1329
+ 1.0,
1330
+ 1.0
1331
+ ],
1332
+ "rate_in_range_indep": 1.0,
1333
+ "valid": true,
1334
+ "gain": false,
1335
+ "loss": false,
1336
+ "p": 1.0,
1337
+ "ci": [
1338
+ 0.0,
1339
+ 0.0
1340
+ ]
1341
+ },
1342
+ "fresh_fr": {
1343
+ "got": [
1344
+ 3604,
1345
+ 0,
1346
+ 0,
1347
+ 1.0,
1348
+ 1.0
1349
+ ],
1350
+ "indep": [
1351
+ 3604,
1352
+ 0,
1353
+ 0,
1354
+ 1.0,
1355
+ 1.0
1356
+ ],
1357
+ "rate_in_range_indep": 1.0,
1358
+ "valid": true,
1359
+ "gain": false,
1360
+ "loss": false,
1361
+ "p": 1.0,
1362
+ "ci": [
1363
+ 0.0,
1364
+ 0.0
1365
+ ]
1366
+ },
1367
+ "test20k": {
1368
+ "got": [
1369
+ 3605,
1370
+ 0,
1371
+ 0,
1372
+ 1.0,
1373
+ 1.0
1374
+ ],
1375
+ "indep": [
1376
+ 3605,
1377
+ 0,
1378
+ 0,
1379
+ 1.0,
1380
+ 1.0
1381
+ ],
1382
+ "rate_in_range_indep": 1.0,
1383
+ "valid": true,
1384
+ "gain": false,
1385
+ "loss": false,
1386
+ "p": 1.0,
1387
+ "ci": [
1388
+ 0.0,
1389
+ 0.0
1390
+ ]
1391
+ },
1392
+ "test_v3": {
1393
+ "got": [
1394
+ 3607,
1395
+ 0,
1396
+ 0,
1397
+ 1.0,
1398
+ 1.0
1399
+ ],
1400
+ "indep": [
1401
+ 3607,
1402
+ 0,
1403
+ 0,
1404
+ 1.0,
1405
+ 1.0
1406
+ ],
1407
+ "rate_in_range_indep": 1.0,
1408
+ "valid": true,
1409
+ "gain": false,
1410
+ "loss": false,
1411
+ "p": 1.0,
1412
+ "ci": [
1413
+ 0.0,
1414
+ 0.0
1415
+ ]
1416
+ },
1417
+ "queries": {
1418
+ "got": [
1419
+ 3610,
1420
+ 0,
1421
+ 0,
1422
+ 1.0,
1423
+ 1.0
1424
+ ],
1425
+ "indep": [
1426
+ 3610,
1427
+ 0,
1428
+ 0,
1429
+ 1.0,
1430
+ 1.0
1431
+ ],
1432
+ "rate_in_range_indep": 1.0,
1433
+ "valid": true,
1434
+ "gain": false,
1435
+ "loss": false,
1436
+ "p": 1.0,
1437
+ "ci": [
1438
+ 0.0,
1439
+ 0.0
1440
+ ]
1441
+ }
1442
+ },
1443
+ "ok": true
1444
+ },
1445
+ "C6_tentative_surcharge_--scale-hi": {
1446
+ "expected": "rc=2",
1447
+ "got": "rc=2",
1448
+ "detail": [
1449
+ "verdict_CS1_synthcopy.py: error: unrecognized arguments: --scale-hi 2.0"
1450
+ ],
1451
+ "ok": true
1452
+ },
1453
+ "D1_budget_snn_inegal": {
1454
+ "expected": "NON MESURABLE",
1455
+ "got": "NON MESURABLE",
1456
+ "reasons": [
1457
+ "budgets réf/cand inégaux : snn_tokens, ticks_per_epoch"
1458
+ ],
1459
+ "counts_agree_independent": true,
1460
+ "windows": {
1461
+ "fc2": {
1462
+ "got": [
1463
+ 3644,
1464
+ 0,
1465
+ 734,
1466
+ 1.0,
1467
+ 1.0
1468
+ ],
1469
+ "indep": [
1470
+ 3644,
1471
+ 0,
1472
+ 734,
1473
+ 1.0,
1474
+ 1.0
1475
+ ],
1476
+ "rate_in_range_indep": 1.0,
1477
+ "valid": true,
1478
+ "gain": true,
1479
+ "loss": false,
1480
+ "p": 2.2131618651272261e-221,
1481
+ "ci": [
1482
+ 18.612936182784587,
1483
+ 21.614078101058517
1484
+ ]
1485
+ },
1486
+ "fresh_en": {
1487
+ "got": [
1488
+ 3619,
1489
+ 0,
1490
+ 0,
1491
+ 1.0,
1492
+ 1.0
1493
+ ],
1494
+ "indep": [
1495
+ 3619,
1496
+ 0,
1497
+ 0,
1498
+ 1.0,
1499
+ 1.0
1500
+ ],
1501
+ "rate_in_range_indep": 1.0,
1502
+ "valid": true,
1503
+ "gain": false,
1504
+ "loss": false,
1505
+ "p": 1.0,
1506
+ "ci": [
1507
+ 0.0,
1508
+ 0.0
1509
+ ]
1510
+ },
1511
+ "fresh_fr": {
1512
+ "got": [
1513
+ 3604,
1514
+ 0,
1515
+ 0,
1516
+ 1.0,
1517
+ 1.0
1518
+ ],
1519
+ "indep": [
1520
+ 3604,
1521
+ 0,
1522
+ 0,
1523
+ 1.0,
1524
+ 1.0
1525
+ ],
1526
+ "rate_in_range_indep": 1.0,
1527
+ "valid": true,
1528
+ "gain": false,
1529
+ "loss": false,
1530
+ "p": 1.0,
1531
+ "ci": [
1532
+ 0.0,
1533
+ 0.0
1534
+ ]
1535
+ },
1536
+ "test20k": {
1537
+ "got": [
1538
+ 3605,
1539
+ 0,
1540
+ 0,
1541
+ 1.0,
1542
+ 1.0
1543
+ ],
1544
+ "indep": [
1545
+ 3605,
1546
+ 0,
1547
+ 0,
1548
+ 1.0,
1549
+ 1.0
1550
+ ],
1551
+ "rate_in_range_indep": 1.0,
1552
+ "valid": true,
1553
+ "gain": false,
1554
+ "loss": false,
1555
+ "p": 1.0,
1556
+ "ci": [
1557
+ 0.0,
1558
+ 0.0
1559
+ ]
1560
+ },
1561
+ "test_v3": {
1562
+ "got": [
1563
+ 3607,
1564
+ 0,
1565
+ 0,
1566
+ 1.0,
1567
+ 1.0
1568
+ ],
1569
+ "indep": [
1570
+ 3607,
1571
+ 0,
1572
+ 0,
1573
+ 1.0,
1574
+ 1.0
1575
+ ],
1576
+ "rate_in_range_indep": 1.0,
1577
+ "valid": true,
1578
+ "gain": false,
1579
+ "loss": false,
1580
+ "p": 1.0,
1581
+ "ci": [
1582
+ 0.0,
1583
+ 0.0
1584
+ ]
1585
+ },
1586
+ "queries": {
1587
+ "got": [
1588
+ 3610,
1589
+ 0,
1590
+ 0,
1591
+ 1.0,
1592
+ 1.0
1593
+ ],
1594
+ "indep": [
1595
+ 3610,
1596
+ 0,
1597
+ 0,
1598
+ 1.0,
1599
+ 1.0
1600
+ ],
1601
+ "rate_in_range_indep": 1.0,
1602
+ "valid": true,
1603
+ "gain": false,
1604
+ "loss": false,
1605
+ "p": 1.0,
1606
+ "ci": [
1607
+ 0.0,
1608
+ 0.0
1609
+ ]
1610
+ }
1611
+ },
1612
+ "ok": true
1613
+ },
1614
+ "D2_passe_snn_incomplete": {
1615
+ "expected": "NON MESURABLE",
1616
+ "got": "NON MESURABLE",
1617
+ "reasons": [
1618
+ "passe SNN incomplète : tokens entraînés/époque (ticks × 1) réf [600000, 3000] / cand [600000, 3000] != snn_tokens 600000/600000",
1619
+ "seen d'un bras avec trained_frac < 0,99 ou non vérifiable"
1620
+ ],
1621
+ "counts_agree_independent": true,
1622
+ "windows": {
1623
+ "fc2": {
1624
+ "got": [
1625
+ 3644,
1626
+ 0,
1627
+ 734,
1628
+ 1.0,
1629
+ 1.0
1630
+ ],
1631
+ "indep": [
1632
+ 3644,
1633
+ 0,
1634
+ 734,
1635
+ 1.0,
1636
+ 1.0
1637
+ ],
1638
+ "rate_in_range_indep": 1.0,
1639
+ "valid": true,
1640
+ "gain": true,
1641
+ "loss": false,
1642
+ "p": 2.2131618651272261e-221,
1643
+ "ci": [
1644
+ 18.612936182784587,
1645
+ 21.614078101058517
1646
+ ]
1647
+ },
1648
+ "fresh_en": {
1649
+ "got": [
1650
+ 3619,
1651
+ 0,
1652
+ 0,
1653
+ 1.0,
1654
+ 1.0
1655
+ ],
1656
+ "indep": [
1657
+ 3619,
1658
+ 0,
1659
+ 0,
1660
+ 1.0,
1661
+ 1.0
1662
+ ],
1663
+ "rate_in_range_indep": 1.0,
1664
+ "valid": true,
1665
+ "gain": false,
1666
+ "loss": false,
1667
+ "p": 1.0,
1668
+ "ci": [
1669
+ 0.0,
1670
+ 0.0
1671
+ ]
1672
+ },
1673
+ "fresh_fr": {
1674
+ "got": [
1675
+ 3604,
1676
+ 0,
1677
+ 0,
1678
+ 1.0,
1679
+ 1.0
1680
+ ],
1681
+ "indep": [
1682
+ 3604,
1683
+ 0,
1684
+ 0,
1685
+ 1.0,
1686
+ 1.0
1687
+ ],
1688
+ "rate_in_range_indep": 1.0,
1689
+ "valid": true,
1690
+ "gain": false,
1691
+ "loss": false,
1692
+ "p": 1.0,
1693
+ "ci": [
1694
+ 0.0,
1695
+ 0.0
1696
+ ]
1697
+ },
1698
+ "test20k": {
1699
+ "got": [
1700
+ 3605,
1701
+ 0,
1702
+ 0,
1703
+ 1.0,
1704
+ 1.0
1705
+ ],
1706
+ "indep": [
1707
+ 3605,
1708
+ 0,
1709
+ 0,
1710
+ 1.0,
1711
+ 1.0
1712
+ ],
1713
+ "rate_in_range_indep": 1.0,
1714
+ "valid": true,
1715
+ "gain": false,
1716
+ "loss": false,
1717
+ "p": 1.0,
1718
+ "ci": [
1719
+ 0.0,
1720
+ 0.0
1721
+ ]
1722
+ },
1723
+ "test_v3": {
1724
+ "got": [
1725
+ 3607,
1726
+ 0,
1727
+ 0,
1728
+ 1.0,
1729
+ 1.0
1730
+ ],
1731
+ "indep": [
1732
+ 3607,
1733
+ 0,
1734
+ 0,
1735
+ 1.0,
1736
+ 1.0
1737
+ ],
1738
+ "rate_in_range_indep": 1.0,
1739
+ "valid": true,
1740
+ "gain": false,
1741
+ "loss": false,
1742
+ "p": 1.0,
1743
+ "ci": [
1744
+ 0.0,
1745
+ 0.0
1746
+ ]
1747
+ },
1748
+ "queries": {
1749
+ "got": [
1750
+ 3610,
1751
+ 0,
1752
+ 0,
1753
+ 1.0,
1754
+ 1.0
1755
+ ],
1756
+ "indep": [
1757
+ 3610,
1758
+ 0,
1759
+ 0,
1760
+ 1.0,
1761
+ 1.0
1762
+ ],
1763
+ "rate_in_range_indep": 1.0,
1764
+ "valid": true,
1765
+ "gain": false,
1766
+ "loss": false,
1767
+ "p": 1.0,
1768
+ "ci": [
1769
+ 0.0,
1770
+ 0.0
1771
+ ]
1772
+ }
1773
+ },
1774
+ "ok": true
1775
+ },
1776
+ "D3_am_inegal": {
1777
+ "expected": "NON MESURABLE",
1778
+ "got": "NON MESURABLE",
1779
+ "reasons": [
1780
+ "budgets réf/cand inégaux : am_tokens"
1781
+ ],
1782
+ "counts_agree_independent": true,
1783
+ "windows": {
1784
+ "fc2": {
1785
+ "got": [
1786
+ 3644,
1787
+ 0,
1788
+ 734,
1789
+ 1.0,
1790
+ 1.0
1791
+ ],
1792
+ "indep": [
1793
+ 3644,
1794
+ 0,
1795
+ 734,
1796
+ 1.0,
1797
+ 1.0
1798
+ ],
1799
+ "rate_in_range_indep": 1.0,
1800
+ "valid": true,
1801
+ "gain": true,
1802
+ "loss": false,
1803
+ "p": 2.2131618651272261e-221,
1804
+ "ci": [
1805
+ 18.612936182784587,
1806
+ 21.614078101058517
1807
+ ]
1808
+ },
1809
+ "fresh_en": {
1810
+ "got": [
1811
+ 3619,
1812
+ 0,
1813
+ 0,
1814
+ 1.0,
1815
+ 1.0
1816
+ ],
1817
+ "indep": [
1818
+ 3619,
1819
+ 0,
1820
+ 0,
1821
+ 1.0,
1822
+ 1.0
1823
+ ],
1824
+ "rate_in_range_indep": 1.0,
1825
+ "valid": true,
1826
+ "gain": false,
1827
+ "loss": false,
1828
+ "p": 1.0,
1829
+ "ci": [
1830
+ 0.0,
1831
+ 0.0
1832
+ ]
1833
+ },
1834
+ "fresh_fr": {
1835
+ "got": [
1836
+ 3604,
1837
+ 0,
1838
+ 0,
1839
+ 1.0,
1840
+ 1.0
1841
+ ],
1842
+ "indep": [
1843
+ 3604,
1844
+ 0,
1845
+ 0,
1846
+ 1.0,
1847
+ 1.0
1848
+ ],
1849
+ "rate_in_range_indep": 1.0,
1850
+ "valid": true,
1851
+ "gain": false,
1852
+ "loss": false,
1853
+ "p": 1.0,
1854
+ "ci": [
1855
+ 0.0,
1856
+ 0.0
1857
+ ]
1858
+ },
1859
+ "test20k": {
1860
+ "got": [
1861
+ 3605,
1862
+ 0,
1863
+ 0,
1864
+ 1.0,
1865
+ 1.0
1866
+ ],
1867
+ "indep": [
1868
+ 3605,
1869
+ 0,
1870
+ 0,
1871
+ 1.0,
1872
+ 1.0
1873
+ ],
1874
+ "rate_in_range_indep": 1.0,
1875
+ "valid": true,
1876
+ "gain": false,
1877
+ "loss": false,
1878
+ "p": 1.0,
1879
+ "ci": [
1880
+ 0.0,
1881
+ 0.0
1882
+ ]
1883
+ },
1884
+ "test_v3": {
1885
+ "got": [
1886
+ 3607,
1887
+ 0,
1888
+ 0,
1889
+ 1.0,
1890
+ 1.0
1891
+ ],
1892
+ "indep": [
1893
+ 3607,
1894
+ 0,
1895
+ 0,
1896
+ 1.0,
1897
+ 1.0
1898
+ ],
1899
+ "rate_in_range_indep": 1.0,
1900
+ "valid": true,
1901
+ "gain": false,
1902
+ "loss": false,
1903
+ "p": 1.0,
1904
+ "ci": [
1905
+ 0.0,
1906
+ 0.0
1907
+ ]
1908
+ },
1909
+ "queries": {
1910
+ "got": [
1911
+ 3610,
1912
+ 0,
1913
+ 0,
1914
+ 1.0,
1915
+ 1.0
1916
+ ],
1917
+ "indep": [
1918
+ 3610,
1919
+ 0,
1920
+ 0,
1921
+ 1.0,
1922
+ 1.0
1923
+ ],
1924
+ "rate_in_range_indep": 1.0,
1925
+ "valid": true,
1926
+ "gain": false,
1927
+ "loss": false,
1928
+ "p": 1.0,
1929
+ "ci": [
1930
+ 0.0,
1931
+ 0.0
1932
+ ]
1933
+ }
1934
+ },
1935
+ "ok": true
1936
+ },
1937
+ "D4_data_sha_cand_egal_ref": {
1938
+ "expected": "NON MESURABLE",
1939
+ "got": "NON MESURABLE",
1940
+ "reasons": [
1941
+ "données cand != cs1_mix_sample (9ea562e44f708adda470c53144dcae748796d77b98039b5fc52ac962d877370b)"
1942
+ ],
1943
+ "counts_agree_independent": true,
1944
+ "windows": {
1945
+ "fc2": {
1946
+ "got": [
1947
+ 3644,
1948
+ 0,
1949
+ 734,
1950
+ 1.0,
1951
+ 1.0
1952
+ ],
1953
+ "indep": [
1954
+ 3644,
1955
+ 0,
1956
+ 734,
1957
+ 1.0,
1958
+ 1.0
1959
+ ],
1960
+ "rate_in_range_indep": 1.0,
1961
+ "valid": true,
1962
+ "gain": true,
1963
+ "loss": false,
1964
+ "p": 2.2131618651272261e-221,
1965
+ "ci": [
1966
+ 18.612936182784587,
1967
+ 21.614078101058517
1968
+ ]
1969
+ },
1970
+ "fresh_en": {
1971
+ "got": [
1972
+ 3619,
1973
+ 0,
1974
+ 0,
1975
+ 1.0,
1976
+ 1.0
1977
+ ],
1978
+ "indep": [
1979
+ 3619,
1980
+ 0,
1981
+ 0,
1982
+ 1.0,
1983
+ 1.0
1984
+ ],
1985
+ "rate_in_range_indep": 1.0,
1986
+ "valid": true,
1987
+ "gain": false,
1988
+ "loss": false,
1989
+ "p": 1.0,
1990
+ "ci": [
1991
+ 0.0,
1992
+ 0.0
1993
+ ]
1994
+ },
1995
+ "fresh_fr": {
1996
+ "got": [
1997
+ 3604,
1998
+ 0,
1999
+ 0,
2000
+ 1.0,
2001
+ 1.0
2002
+ ],
2003
+ "indep": [
2004
+ 3604,
2005
+ 0,
2006
+ 0,
2007
+ 1.0,
2008
+ 1.0
2009
+ ],
2010
+ "rate_in_range_indep": 1.0,
2011
+ "valid": true,
2012
+ "gain": false,
2013
+ "loss": false,
2014
+ "p": 1.0,
2015
+ "ci": [
2016
+ 0.0,
2017
+ 0.0
2018
+ ]
2019
+ },
2020
+ "test20k": {
2021
+ "got": [
2022
+ 3605,
2023
+ 0,
2024
+ 0,
2025
+ 1.0,
2026
+ 1.0
2027
+ ],
2028
+ "indep": [
2029
+ 3605,
2030
+ 0,
2031
+ 0,
2032
+ 1.0,
2033
+ 1.0
2034
+ ],
2035
+ "rate_in_range_indep": 1.0,
2036
+ "valid": true,
2037
+ "gain": false,
2038
+ "loss": false,
2039
+ "p": 1.0,
2040
+ "ci": [
2041
+ 0.0,
2042
+ 0.0
2043
+ ]
2044
+ },
2045
+ "test_v3": {
2046
+ "got": [
2047
+ 3607,
2048
+ 0,
2049
+ 0,
2050
+ 1.0,
2051
+ 1.0
2052
+ ],
2053
+ "indep": [
2054
+ 3607,
2055
+ 0,
2056
+ 0,
2057
+ 1.0,
2058
+ 1.0
2059
+ ],
2060
+ "rate_in_range_indep": 1.0,
2061
+ "valid": true,
2062
+ "gain": false,
2063
+ "loss": false,
2064
+ "p": 1.0,
2065
+ "ci": [
2066
+ 0.0,
2067
+ 0.0
2068
+ ]
2069
+ },
2070
+ "queries": {
2071
+ "got": [
2072
+ 3610,
2073
+ 0,
2074
+ 0,
2075
+ 1.0,
2076
+ 1.0
2077
+ ],
2078
+ "indep": [
2079
+ 3610,
2080
+ 0,
2081
+ 0,
2082
+ 1.0,
2083
+ 1.0
2084
+ ],
2085
+ "rate_in_range_indep": 1.0,
2086
+ "valid": true,
2087
+ "gain": false,
2088
+ "loss": false,
2089
+ "p": 1.0,
2090
+ "ci": [
2091
+ 0.0,
2092
+ 0.0
2093
+ ]
2094
+ }
2095
+ },
2096
+ "ok": true
2097
+ },
2098
+ "E1_tokenisations_differentes_aleatoires": {
2099
+ "expected": "NON MESURABLE",
2100
+ "got": "NON MESURABLE",
2101
+ "reasons": [
2102
+ "aucune fenêtre fraîche valide"
2103
+ ],
2104
+ "counts_agree_independent": true,
2105
+ "windows": {
2106
+ "fc2": {
2107
+ "got": [
2108
+ 363,
2109
+ 0,
2110
+ 76,
2111
+ 0.0989,
2112
+ 0.0978
2113
+ ],
2114
+ "indep": [
2115
+ 363,
2116
+ 0,
2117
+ 76,
2118
+ 0.0989,
2119
+ 0.0978
2120
+ ],
2121
+ "rate_in_range_indep": 0.0989,
2122
+ "valid": false,
2123
+ "gain": true,
2124
+ "loss": false,
2125
+ "p": 2.6469779601696886e-23,
2126
+ "ci": [
2127
+ 17.59530791788856,
2128
+ 24.765034080124238
2129
+ ]
2130
+ },
2131
+ "fresh_en": {
2132
+ "got": [
2133
+ 361,
2134
+ 0,
2135
+ 0,
2136
+ 0.0995,
2137
+ 0.099
2138
+ ],
2139
+ "indep": [
2140
+ 361,
2141
+ 0,
2142
+ 0,
2143
+ 0.0995,
2144
+ 0.099
2145
+ ],
2146
+ "rate_in_range_indep": 0.0995,
2147
+ "valid": false,
2148
+ "gain": false,
2149
+ "loss": false,
2150
+ "p": 1.0,
2151
+ "ci": [
2152
+ 0.0,
2153
+ 0.0
2154
+ ]
2155
+ },
2156
+ "fresh_fr": {
2157
+ "got": [
2158
+ 340,
2159
+ 0,
2160
+ 0,
2161
+ 0.0935,
2162
+ 0.093
2163
+ ],
2164
+ "indep": [
2165
+ 340,
2166
+ 0,
2167
+ 0,
2168
+ 0.0935,
2169
+ 0.093
2170
+ ],
2171
+ "rate_in_range_indep": 0.0935,
2172
+ "valid": false,
2173
+ "gain": false,
2174
+ "loss": false,
2175
+ "p": 1.0,
2176
+ "ci": [
2177
+ 0.0,
2178
+ 0.0
2179
+ ]
2180
+ },
2181
+ "test20k": {
2182
+ "got": [
2183
+ 360,
2184
+ 0,
2185
+ 0,
2186
+ 0.1029,
2187
+ 0.1027
2188
+ ],
2189
+ "indep": [
2190
+ 360,
2191
+ 0,
2192
+ 0,
2193
+ 0.1029,
2194
+ 0.1027
2195
+ ],
2196
+ "rate_in_range_indep": 0.1029,
2197
+ "valid": false,
2198
+ "gain": false,
2199
+ "loss": false,
2200
+ "p": 1.0,
2201
+ "ci": [
2202
+ 0.0,
2203
+ 0.0
2204
+ ]
2205
+ },
2206
+ "test_v3": {
2207
+ "got": [
2208
+ 399,
2209
+ 0,
2210
+ 0,
2211
+ 0.1115,
2212
+ 0.11
2213
+ ],
2214
+ "indep": [
2215
+ 399,
2216
+ 0,
2217
+ 0,
2218
+ 0.1115,
2219
+ 0.11
2220
+ ],
2221
+ "rate_in_range_indep": 0.1115,
2222
+ "valid": false,
2223
+ "gain": false,
2224
+ "loss": false,
2225
+ "p": 1.0,
2226
+ "ci": [
2227
+ 0.0,
2228
+ 0.0
2229
+ ]
2230
+ },
2231
+ "queries": {
2232
+ "got": [
2233
+ 380,
2234
+ 0,
2235
+ 0,
2236
+ 0.1074,
2237
+ 0.1067
2238
+ ],
2239
+ "indep": [
2240
+ 380,
2241
+ 0,
2242
+ 0,
2243
+ 0.1074,
2244
+ 0.1067
2245
+ ],
2246
+ "rate_in_range_indep": 0.1074,
2247
+ "valid": false,
2248
+ "gain": false,
2249
+ "loss": false,
2250
+ "p": 1.0,
2251
+ "ci": [
2252
+ 0.0,
2253
+ 0.0
2254
+ ]
2255
+ }
2256
+ },
2257
+ "ok": true
2258
+ },
2259
+ "E2_tokenisations_partielles_gain_r2_plage_commune": {
2260
+ "expected": "ADOPTÉ",
2261
+ "got": "ADOPTÉ",
2262
+ "reasons": [],
2263
+ "counts_agree_independent": true,
2264
+ "windows": {
2265
+ "fc2": {
2266
+ "got": [
2267
+ 1797,
2268
+ 0,
2269
+ 362,
2270
+ 0.6965,
2271
+ 0.487
2272
+ ],
2273
+ "indep": [
2274
+ 1797,
2275
+ 0,
2276
+ 362,
2277
+ 0.6965,
2278
+ 0.487
2279
+ ],
2280
+ "rate_in_range_indep": 0.6965,
2281
+ "valid": true,
2282
+ "gain": true,
2283
+ "loss": false,
2284
+ "p": 2.1289799200040754e-109,
2285
+ "ci": [
2286
+ 18.57618257014883,
2287
+ 21.85860800920628
2288
+ ]
2289
+ },
2290
+ "fresh_en": {
2291
+ "got": [
2292
+ 1757,
2293
+ 0,
2294
+ 0,
2295
+ 0.6965,
2296
+ 0.487
2297
+ ],
2298
+ "indep": [
2299
+ 1757,
2300
+ 0,
2301
+ 0,
2302
+ 0.6965,
2303
+ 0.487
2304
+ ],
2305
+ "rate_in_range_indep": 0.6965,
2306
+ "valid": true,
2307
+ "gain": false,
2308
+ "loss": false,
2309
+ "p": 1.0,
2310
+ "ci": [
2311
+ 0.0,
2312
+ 0.0
2313
+ ]
2314
+ },
2315
+ "fresh_fr": {
2316
+ "got": [
2317
+ 1778,
2318
+ 0,
2319
+ 0,
2320
+ 0.6965,
2321
+ 0.487
2322
+ ],
2323
+ "indep": [
2324
+ 1778,
2325
+ 0,
2326
+ 0,
2327
+ 0.6965,
2328
+ 0.487
2329
+ ],
2330
+ "rate_in_range_indep": 0.6965,
2331
+ "valid": true,
2332
+ "gain": false,
2333
+ "loss": false,
2334
+ "p": 1.0,
2335
+ "ci": [
2336
+ 0.0,
2337
+ 0.0
2338
+ ]
2339
+ },
2340
+ "test20k": {
2341
+ "got": [
2342
+ 1740,
2343
+ 0,
2344
+ 0,
2345
+ 0.6965,
2346
+ 0.487
2347
+ ],
2348
+ "indep": [
2349
+ 1740,
2350
+ 0,
2351
+ 0,
2352
+ 0.6965,
2353
+ 0.487
2354
+ ],
2355
+ "rate_in_range_indep": 0.6965,
2356
+ "valid": true,
2357
+ "gain": false,
2358
+ "loss": false,
2359
+ "p": 1.0,
2360
+ "ci": [
2361
+ 0.0,
2362
+ 0.0
2363
+ ]
2364
+ },
2365
+ "test_v3": {
2366
+ "got": [
2367
+ 1762,
2368
+ 0,
2369
+ 0,
2370
+ 0.6965,
2371
+ 0.487
2372
+ ],
2373
+ "indep": [
2374
+ 1762,
2375
+ 0,
2376
+ 0,
2377
+ 0.6965,
2378
+ 0.487
2379
+ ],
2380
+ "rate_in_range_indep": 0.6965,
2381
+ "valid": true,
2382
+ "gain": false,
2383
+ "loss": false,
2384
+ "p": 1.0,
2385
+ "ci": [
2386
+ 0.0,
2387
+ 0.0
2388
+ ]
2389
+ },
2390
+ "queries": {
2391
+ "got": [
2392
+ 1760,
2393
+ 0,
2394
+ 0,
2395
+ 0.6965,
2396
+ 0.487
2397
+ ],
2398
+ "indep": [
2399
+ 1760,
2400
+ 0,
2401
+ 0,
2402
+ 0.6965,
2403
+ 0.487
2404
+ ],
2405
+ "rate_in_range_indep": 0.6965,
2406
+ "valid": true,
2407
+ "gain": false,
2408
+ "loss": false,
2409
+ "p": 1.0,
2410
+ "ci": [
2411
+ 0.0,
2412
+ 0.0
2413
+ ]
2414
+ }
2415
+ },
2416
+ "ok": true
2417
+ },
2418
+ "E3_coarse_tail_taux_0.5_accepte": {
2419
+ "expected": "ADOPTÉ",
2420
+ "got": "ADOPTÉ",
2421
+ "reasons": [],
2422
+ "counts_agree_independent": true,
2423
+ "windows": {
2424
+ "fc2": {
2425
+ "got": [
2426
+ 1834,
2427
+ 0,
2428
+ 381,
2429
+ 0.6667,
2430
+ 0.5
2431
+ ],
2432
+ "indep": [
2433
+ 1834,
2434
+ 0,
2435
+ 381,
2436
+ 0.6667,
2437
+ 0.5
2438
+ ],
2439
+ "rate_in_range_indep": 0.6667,
2440
+ "valid": true,
2441
+ "gain": true,
2442
+ "loss": false,
2443
+ "p": 4.060706939705039e-115,
2444
+ "ci": [
2445
+ 19.275028768699656,
2446
+ 22.186322024771137
2447
+ ]
2448
+ },
2449
+ "fresh_en": {
2450
+ "got": [
2451
+ 1796,
2452
+ 0,
2453
+ 0,
2454
+ 0.6667,
2455
+ 0.5
2456
+ ],
2457
+ "indep": [
2458
+ 1796,
2459
+ 0,
2460
+ 0,
2461
+ 0.6667,
2462
+ 0.5
2463
+ ],
2464
+ "rate_in_range_indep": 0.6667,
2465
+ "valid": true,
2466
+ "gain": false,
2467
+ "loss": false,
2468
+ "p": 1.0,
2469
+ "ci": [
2470
+ 0.0,
2471
+ 0.0
2472
+ ]
2473
+ },
2474
+ "fresh_fr": {
2475
+ "got": [
2476
+ 1809,
2477
+ 0,
2478
+ 0,
2479
+ 0.6667,
2480
+ 0.5
2481
+ ],
2482
+ "indep": [
2483
+ 1809,
2484
+ 0,
2485
+ 0,
2486
+ 0.6667,
2487
+ 0.5
2488
+ ],
2489
+ "rate_in_range_indep": 0.6667,
2490
+ "valid": true,
2491
+ "gain": false,
2492
+ "loss": false,
2493
+ "p": 1.0,
2494
+ "ci": [
2495
+ 0.0,
2496
+ 0.0
2497
+ ]
2498
+ },
2499
+ "test20k": {
2500
+ "got": [
2501
+ 1801,
2502
+ 0,
2503
+ 0,
2504
+ 0.6667,
2505
+ 0.5
2506
+ ],
2507
+ "indep": [
2508
+ 1801,
2509
+ 0,
2510
+ 0,
2511
+ 0.6667,
2512
+ 0.5
2513
+ ],
2514
+ "rate_in_range_indep": 0.6667,
2515
+ "valid": true,
2516
+ "gain": false,
2517
+ "loss": false,
2518
+ "p": 1.0,
2519
+ "ci": [
2520
+ 0.0,
2521
+ 0.0
2522
+ ]
2523
+ },
2524
+ "test_v3": {
2525
+ "got": [
2526
+ 1804,
2527
+ 0,
2528
+ 0,
2529
+ 0.6667,
2530
+ 0.5
2531
+ ],
2532
+ "indep": [
2533
+ 1804,
2534
+ 0,
2535
+ 0,
2536
+ 0.6667,
2537
+ 0.5
2538
+ ],
2539
+ "rate_in_range_indep": 0.6667,
2540
+ "valid": true,
2541
+ "gain": false,
2542
+ "loss": false,
2543
+ "p": 1.0,
2544
+ "ci": [
2545
+ 0.0,
2546
+ 0.0
2547
+ ]
2548
+ },
2549
+ "queries": {
2550
+ "got": [
2551
+ 1810,
2552
+ 0,
2553
+ 0,
2554
+ 0.6667,
2555
+ 0.5
2556
+ ],
2557
+ "indep": [
2558
+ 1810,
2559
+ 0,
2560
+ 0,
2561
+ 0.6667,
2562
+ 0.5
2563
+ ],
2564
+ "rate_in_range_indep": 0.6667,
2565
+ "valid": true,
2566
+ "gain": false,
2567
+ "loss": false,
2568
+ "p": 1.0,
2569
+ "ci": [
2570
+ 0.0,
2571
+ 0.0
2572
+ ]
2573
+ }
2574
+ },
2575
+ "ok": true
2576
+ },
2577
+ "F1_recompte_mix_absent": {
2578
+ "expected": "NON MESURABLE",
2579
+ "got": "NON MESURABLE",
2580
+ "reasons": [
2581
+ "aucune fenêtre fraîche valide"
2582
+ ],
2583
+ "counts_agree_independent": true,
2584
+ "windows": {
2585
+ "fc2": {
2586
+ "got": [
2587
+ 3644,
2588
+ 0,
2589
+ 734,
2590
+ 1.0,
2591
+ 1.0
2592
+ ],
2593
+ "indep": [
2594
+ 3644,
2595
+ 0,
2596
+ 734,
2597
+ 1.0,
2598
+ 1.0
2599
+ ],
2600
+ "rate_in_range_indep": 1.0,
2601
+ "valid": false,
2602
+ "gain": true,
2603
+ "loss": false,
2604
+ "p": 2.2131618651272261e-221,
2605
+ "ci": [
2606
+ 18.612936182784587,
2607
+ 21.614078101058517
2608
+ ]
2609
+ },
2610
+ "fresh_en": {
2611
+ "got": [
2612
+ 3619,
2613
+ 0,
2614
+ 0,
2615
+ 1.0,
2616
+ 1.0
2617
+ ],
2618
+ "indep": [
2619
+ 3619,
2620
+ 0,
2621
+ 0,
2622
+ 1.0,
2623
+ 1.0
2624
+ ],
2625
+ "rate_in_range_indep": 1.0,
2626
+ "valid": false,
2627
+ "gain": false,
2628
+ "loss": false,
2629
+ "p": 1.0,
2630
+ "ci": [
2631
+ 0.0,
2632
+ 0.0
2633
+ ]
2634
+ },
2635
+ "fresh_fr": {
2636
+ "got": [
2637
+ 3604,
2638
+ 0,
2639
+ 0,
2640
+ 1.0,
2641
+ 1.0
2642
+ ],
2643
+ "indep": [
2644
+ 3604,
2645
+ 0,
2646
+ 0,
2647
+ 1.0,
2648
+ 1.0
2649
+ ],
2650
+ "rate_in_range_indep": 1.0,
2651
+ "valid": false,
2652
+ "gain": false,
2653
+ "loss": false,
2654
+ "p": 1.0,
2655
+ "ci": [
2656
+ 0.0,
2657
+ 0.0
2658
+ ]
2659
+ },
2660
+ "test20k": {
2661
+ "got": [
2662
+ 3605,
2663
+ 0,
2664
+ 0,
2665
+ 1.0,
2666
+ 1.0
2667
+ ],
2668
+ "indep": [
2669
+ 3605,
2670
+ 0,
2671
+ 0,
2672
+ 1.0,
2673
+ 1.0
2674
+ ],
2675
+ "rate_in_range_indep": 1.0,
2676
+ "valid": false,
2677
+ "gain": false,
2678
+ "loss": false,
2679
+ "p": 1.0,
2680
+ "ci": [
2681
+ 0.0,
2682
+ 0.0
2683
+ ]
2684
+ },
2685
+ "test_v3": {
2686
+ "got": [
2687
+ 3607,
2688
+ 0,
2689
+ 0,
2690
+ 1.0,
2691
+ 1.0
2692
+ ],
2693
+ "indep": [
2694
+ 3607,
2695
+ 0,
2696
+ 0,
2697
+ 1.0,
2698
+ 1.0
2699
+ ],
2700
+ "rate_in_range_indep": 1.0,
2701
+ "valid": false,
2702
+ "gain": false,
2703
+ "loss": false,
2704
+ "p": 1.0,
2705
+ "ci": [
2706
+ 0.0,
2707
+ 0.0
2708
+ ]
2709
+ },
2710
+ "queries": {
2711
+ "got": [
2712
+ 3610,
2713
+ 0,
2714
+ 0,
2715
+ 1.0,
2716
+ 1.0
2717
+ ],
2718
+ "indep": [
2719
+ 3610,
2720
+ 0,
2721
+ 0,
2722
+ 1.0,
2723
+ 1.0
2724
+ ],
2725
+ "rate_in_range_indep": 1.0,
2726
+ "valid": false,
2727
+ "gain": false,
2728
+ "loss": false,
2729
+ "p": 1.0,
2730
+ "ci": [
2731
+ 0.0,
2732
+ 0.0
2733
+ ]
2734
+ }
2735
+ },
2736
+ "ok": true
2737
+ },
2738
+ "G1_test20k_broad_e89725bb_refuse": {
2739
+ "expected": "rc=1",
2740
+ "got": "rc=1",
2741
+ "detail": [
2742
+ "AssertionError: ref:/workspace/spira_shared/checker/recount/cs1_r2_audit_1435/runs_G1_test20k_broad_e89725bb_refuse/ref/ctl__test20k.npz: window_sha256 e89725bb… (broad_*_test) — interdit en CS1"
2743
+ ],
2744
+ "ok": true
2745
+ },
2746
+ "G2_octets_fenetre_differents_refuse": {
2747
+ "expected": "rc=1",
2748
+ "got": "rc=1",
2749
+ "detail": [
2750
+ "AssertionError: fresh_en: octets différents"
2751
+ ],
2752
+ "ok": true
2753
+ },
2754
+ "H1_npz_broad_en_plus_sous_dossier_refuse": {
2755
+ "expected": "rc=1",
2756
+ "got": "rc=1",
2757
+ "detail": [
2758
+ "AssertionError: cand:/workspace/spira_shared/checker/recount/cs1_r2_audit_1435/runs_H1_npz_broad_en_plus_sous_dossier_refuse/cand/ckpt_ctl/extra.npz: window_sha256 e89725bb… (broad_*_test) — interdit en CS1"
2759
+ ],
2760
+ "ok": true
2761
+ },
2762
+ "H2_cand_arm_cm_refuse": {
2763
+ "expected": "rc=2",
2764
+ "got": "rc=2",
2765
+ "detail": [
2766
+ "verdict_CS1_synthcopy.py: error: argument --cand-arm: invalid choice: 'cm' (choose from ctl)"
2767
+ ],
2768
+ "ok": true
2769
+ },
2770
+ "H3_perte_seen_fisher_avec_gain": {
2771
+ "expected": "REJETÉ",
2772
+ "got": "REJETÉ",
2773
+ "reasons": [
2774
+ "perte(s) significative(s) : seen (non apparié, Fisher)"
2775
+ ],
2776
+ "counts_agree_independent": true,
2777
+ "windows": {
2778
+ "fc2": {
2779
+ "got": [
2780
+ 3644,
2781
+ 0,
2782
+ 734,
2783
+ 1.0,
2784
+ 1.0
2785
+ ],
2786
+ "indep": [
2787
+ 3644,
2788
+ 0,
2789
+ 734,
2790
+ 1.0,
2791
+ 1.0
2792
+ ],
2793
+ "rate_in_range_indep": 1.0,
2794
+ "valid": true,
2795
+ "gain": true,
2796
+ "loss": false,
2797
+ "p": 2.2131618651272261e-221,
2798
+ "ci": [
2799
+ 18.612936182784587,
2800
+ 21.614078101058517
2801
+ ]
2802
+ },
2803
+ "fresh_en": {
2804
+ "got": [
2805
+ 3619,
2806
+ 0,
2807
+ 0,
2808
+ 1.0,
2809
+ 1.0
2810
+ ],
2811
+ "indep": [
2812
+ 3619,
2813
+ 0,
2814
+ 0,
2815
+ 1.0,
2816
+ 1.0
2817
+ ],
2818
+ "rate_in_range_indep": 1.0,
2819
+ "valid": true,
2820
+ "gain": false,
2821
+ "loss": false,
2822
+ "p": 1.0,
2823
+ "ci": [
2824
+ 0.0,
2825
+ 0.0
2826
+ ]
2827
+ },
2828
+ "fresh_fr": {
2829
+ "got": [
2830
+ 3604,
2831
+ 0,
2832
+ 0,
2833
+ 1.0,
2834
+ 1.0
2835
+ ],
2836
+ "indep": [
2837
+ 3604,
2838
+ 0,
2839
+ 0,
2840
+ 1.0,
2841
+ 1.0
2842
+ ],
2843
+ "rate_in_range_indep": 1.0,
2844
+ "valid": true,
2845
+ "gain": false,
2846
+ "loss": false,
2847
+ "p": 1.0,
2848
+ "ci": [
2849
+ 0.0,
2850
+ 0.0
2851
+ ]
2852
+ },
2853
+ "test20k": {
2854
+ "got": [
2855
+ 3605,
2856
+ 0,
2857
+ 0,
2858
+ 1.0,
2859
+ 1.0
2860
+ ],
2861
+ "indep": [
2862
+ 3605,
2863
+ 0,
2864
+ 0,
2865
+ 1.0,
2866
+ 1.0
2867
+ ],
2868
+ "rate_in_range_indep": 1.0,
2869
+ "valid": true,
2870
+ "gain": false,
2871
+ "loss": false,
2872
+ "p": 1.0,
2873
+ "ci": [
2874
+ 0.0,
2875
+ 0.0
2876
+ ]
2877
+ },
2878
+ "test_v3": {
2879
+ "got": [
2880
+ 3607,
2881
+ 0,
2882
+ 0,
2883
+ 1.0,
2884
+ 1.0
2885
+ ],
2886
+ "indep": [
2887
+ 3607,
2888
+ 0,
2889
+ 0,
2890
+ 1.0,
2891
+ 1.0
2892
+ ],
2893
+ "rate_in_range_indep": 1.0,
2894
+ "valid": true,
2895
+ "gain": false,
2896
+ "loss": false,
2897
+ "p": 1.0,
2898
+ "ci": [
2899
+ 0.0,
2900
+ 0.0
2901
+ ]
2902
+ },
2903
+ "queries": {
2904
+ "got": [
2905
+ 3610,
2906
+ 0,
2907
+ 0,
2908
+ 1.0,
2909
+ 1.0
2910
+ ],
2911
+ "indep": [
2912
+ 3610,
2913
+ 0,
2914
+ 0,
2915
+ 1.0,
2916
+ 1.0
2917
+ ],
2918
+ "rate_in_range_indep": 1.0,
2919
+ "valid": true,
2920
+ "gain": false,
2921
+ "loss": false,
2922
+ "p": 1.0,
2923
+ "ci": [
2924
+ 0.0,
2925
+ 0.0
2926
+ ]
2927
+ }
2928
+ },
2929
+ "ok": true
2930
+ },
2931
+ "H4_seen_ecart_minime_non_sig": {
2932
+ "expected": "ADOPTÉ",
2933
+ "got": "ADOPTÉ",
2934
+ "reasons": [],
2935
+ "counts_agree_independent": true,
2936
+ "windows": {
2937
+ "fc2": {
2938
+ "got": [
2939
+ 3644,
2940
+ 0,
2941
+ 734,
2942
+ 1.0,
2943
+ 1.0
2944
+ ],
2945
+ "indep": [
2946
+ 3644,
2947
+ 0,
2948
+ 734,
2949
+ 1.0,
2950
+ 1.0
2951
+ ],
2952
+ "rate_in_range_indep": 1.0,
2953
+ "valid": true,
2954
+ "gain": true,
2955
+ "loss": false,
2956
+ "p": 2.2131618651272261e-221,
2957
+ "ci": [
2958
+ 18.612936182784587,
2959
+ 21.614078101058517
2960
+ ]
2961
+ },
2962
+ "fresh_en": {
2963
+ "got": [
2964
+ 3619,
2965
+ 0,
2966
+ 0,
2967
+ 1.0,
2968
+ 1.0
2969
+ ],
2970
+ "indep": [
2971
+ 3619,
2972
+ 0,
2973
+ 0,
2974
+ 1.0,
2975
+ 1.0
2976
+ ],
2977
+ "rate_in_range_indep": 1.0,
2978
+ "valid": true,
2979
+ "gain": false,
2980
+ "loss": false,
2981
+ "p": 1.0,
2982
+ "ci": [
2983
+ 0.0,
2984
+ 0.0
2985
+ ]
2986
+ },
2987
+ "fresh_fr": {
2988
+ "got": [
2989
+ 3604,
2990
+ 0,
2991
+ 0,
2992
+ 1.0,
2993
+ 1.0
2994
+ ],
2995
+ "indep": [
2996
+ 3604,
2997
+ 0,
2998
+ 0,
2999
+ 1.0,
3000
+ 1.0
3001
+ ],
3002
+ "rate_in_range_indep": 1.0,
3003
+ "valid": true,
3004
+ "gain": false,
3005
+ "loss": false,
3006
+ "p": 1.0,
3007
+ "ci": [
3008
+ 0.0,
3009
+ 0.0
3010
+ ]
3011
+ },
3012
+ "test20k": {
3013
+ "got": [
3014
+ 3605,
3015
+ 0,
3016
+ 0,
3017
+ 1.0,
3018
+ 1.0
3019
+ ],
3020
+ "indep": [
3021
+ 3605,
3022
+ 0,
3023
+ 0,
3024
+ 1.0,
3025
+ 1.0
3026
+ ],
3027
+ "rate_in_range_indep": 1.0,
3028
+ "valid": true,
3029
+ "gain": false,
3030
+ "loss": false,
3031
+ "p": 1.0,
3032
+ "ci": [
3033
+ 0.0,
3034
+ 0.0
3035
+ ]
3036
+ },
3037
+ "test_v3": {
3038
+ "got": [
3039
+ 3607,
3040
+ 0,
3041
+ 0,
3042
+ 1.0,
3043
+ 1.0
3044
+ ],
3045
+ "indep": [
3046
+ 3607,
3047
+ 0,
3048
+ 0,
3049
+ 1.0,
3050
+ 1.0
3051
+ ],
3052
+ "rate_in_range_indep": 1.0,
3053
+ "valid": true,
3054
+ "gain": false,
3055
+ "loss": false,
3056
+ "p": 1.0,
3057
+ "ci": [
3058
+ 0.0,
3059
+ 0.0
3060
+ ]
3061
+ },
3062
+ "queries": {
3063
+ "got": [
3064
+ 3610,
3065
+ 0,
3066
+ 0,
3067
+ 1.0,
3068
+ 1.0
3069
+ ],
3070
+ "indep": [
3071
+ 3610,
3072
+ 0,
3073
+ 0,
3074
+ 1.0,
3075
+ 1.0
3076
+ ],
3077
+ "rate_in_range_indep": 1.0,
3078
+ "valid": true,
3079
+ "gain": false,
3080
+ "loss": false,
3081
+ "p": 1.0,
3082
+ "ci": [
3083
+ 0.0,
3084
+ 0.0
3085
+ ]
3086
+ }
3087
+ },
3088
+ "ok": true
3089
+ }
3090
+ }
v3_scale/checker/cs1_r2_audit_1435/synth_tests_r2.py ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Tests synthétiques de verdict_CS1 r2 (harnais Checker 14 h 24 adapté : taux plage commune, E2 attendu ADOPTÉ, + H1-H4) (copie à chemins redirigés). Entrées 100 % synthétiques (runs/ fabriqués ici) ;
2
+ seuls les échantillons v1b_sample.bin / cs1_mix_sample.bin et les fenêtres d'éval sont LUS (sha). Attendus calculés indépendamment."""
3
+ import os, json, hashlib, subprocess, shutil, math, numpy as np
4
+ H = os.path.dirname(os.path.abspath(__file__)); S = "/workspace/spira_shared"; PY = "/workspace/SPIRA-venv/bin/python"
5
+ REF_SHA = "9ea562e44f708adda470c53144dcae748796d77b98039b5fc52ac962d877370b"; CAND_SHA = "85e977700bbfc4ad571d4be15623450eaa4360fdfd1fe9451b0706f81bfc1453"
6
+ SMP = {"ref": f"{S}/hashing_gen/m8_v1b/sample/v1b_sample.bin", "cand": f"{S}/hashing_gen/code_scale_v1/sample/cs1_mix_sample.bin"}
7
+ WF = {"fc2": "broad/freshcode_v2.bin", "fresh_en": "spira_m7/windows/fresh_en.bin", "fresh_fr": "spira_m7/windows/fresh_fr.bin", "test20k": "spira_m7/windows/test20k.bin",
8
+ "test_v3": "corpus_v3/test.bin", "queries": "spira_m7/windows/queries.bin"}
9
+ WSHA = {w: hashlib.sha256(open(f"{S}/{p}", "rb").read()).hexdigest() for w, p in WF.items()}
10
+ SEENSHA = {x: hashlib.sha256(open(SMP[x], "rb").read(200_000)).hexdigest() for x in SMP}
11
+ N = 4000
12
+ def seg(rng, lens, n=N): # tokenisation synthétique : n pièces ; renvoie (tgt_start, tgt_len) = pièces 1..n (pièce 0 = contexte), comme train_m8v1b
13
+ pl = rng.choice(lens, n + 1).astype(np.int64); o2 = np.concatenate([[0], np.cumsum(pl)]); return o2[1:n + 1], pl[1:n + 1]
14
+ def write_arm(d, side, spec, res_over=None):
15
+ os.makedirs(d, exist_ok=True); recs = []
16
+ base = {"arm": "ctl", "snn_tokens": 600000, "am_tokens": 1200000, "epochs": 2, "ticks_per_epoch": [600000, 600000], "cal": {"scale": 0.07},
17
+ "data_sha256": REF_SHA if side == "ref" else CAND_SHA}
18
+ if res_over: base.update(res_over)
19
+ for w, (st, ln, iv, hit) in spec.items():
20
+ np.savez_compressed(f"{d}/ctl__{w}.npz", fused_hit=hit, invocab=iv, tgt_start=st, tgt_len=ln, window_sha256=np.array(WSHA[w] if w != "seen" else SEENSHA[side]))
21
+ recs.append(dict(base, window=w))
22
+ open(f"{d}/results.jsonl", "w").write("\n".join(json.dumps(r) for r in recs) + "\n")
23
+ SEENP = {"ref": 0.99, "cand": 0.99}
24
+ def seen_spec(rng, p=0.99):
25
+ st, ln = seg(rng, [1, 2, 3]); return (st, ln, np.ones(N, bool), rng.random(N) < p)
26
+ def build(name, plan, tok="same", res_ref=None, res_cand=None, seed=0):
27
+ """plan[w] = (p_ref, p_cand, corr) : probas de hit ; corr=True -> hits identiques sauf fraction contrôlée."""
28
+ rng = np.random.default_rng(seed); spec = {"ref": {}, "cand": {}}; expect = {}
29
+ for w in WF:
30
+ st_a, ln_a = seg(rng, [1, 2, 3, 4])
31
+ if tok == "same": st_b, ln_b = st_a.copy(), ln_a.copy()
32
+ elif tok == "diff": st_b, ln_b = seg(np.random.default_rng(seed + 1000 + len(w)), [1, 2, 3, 4])
33
+ elif tok == "partial": # mêmes frontières sauf fusions aléatoires de paires de pièces (~30 %)
34
+ o = np.concatenate([[st_a[0] - 1 if False else 0], st_a, [st_a[-1] + ln_a[-1]]]); keep = np.ones(len(o), bool); r2 = np.random.default_rng(seed + 7)
35
+ keep[1:-1] = r2.random(len(o) - 2) > 0.3; keep[1] = True; ob = o[keep]; pl = np.diff(ob); st_b, ln_b = ob[1:-1][:N], pl[1:][:N]
36
+ # complète jusqu'à N avec des pièces de 2 o
37
+ if len(st_b) < N:
38
+ e = int(st_b[-1] + ln_b[-1]); k = N - len(st_b); st_b = np.concatenate([st_b, e + 2 * np.arange(k)]); ln_b = np.concatenate([ln_b, np.full(k, 2)])
39
+ elif tok == "coarse_tail": # identique sur les 2000 premières pièces, puis pièces de 4 o (couvre plus loin)
40
+ st_a = 1 + 2 * np.arange(N); ln_a = np.full(N, 2); st_b = np.concatenate([st_a[:2000], st_a[2000] + 4 * np.arange(N - 2000)]); ln_b = np.concatenate([ln_a[:2000], np.full(N - 2000, 4)])
41
+ pr, pc = plan.get(w, (0.5, 0.5))
42
+ ka = {(int(s), int(l)): i for i, (s, l) in enumerate(zip(st_a, ln_a))}; kb = {(int(s), int(l)): i for i, (s, l) in enumerate(zip(st_b, ln_b))}
43
+ u = rng.random(N + 8000); hit_a = u[:len(st_a)] < pr; iv_a = rng.random(len(st_a)) > 0.05
44
+ hit_b = np.zeros(len(st_b), bool); iv_b = rng.random(len(st_b)) > 0.05
45
+ for key, j in kb.items(): # couplage : sur cible commune, cand = ref sauf bascule contrôlée
46
+ if key in ka:
47
+ i = ka[key]; base_hit = hit_a[i]
48
+ if pc > pr: hit_b[j] = True if (base_hit or rng.random() < (pc - pr) / max(1e-9, 1 - pr)) else False
49
+ elif pc < pr: hit_b[j] = base_hit and rng.random() < pc / pr
50
+ else: hit_b[j] = base_hit
51
+ else: hit_b[j] = rng.random() < pc
52
+ spec["ref"][w] = (st_a, ln_a, iv_a, hit_a); spec["cand"][w] = (st_b, ln_b, iv_b, hit_b)
53
+ # attendu indépendant : dictionnaire des cibles communes dans la plage commune, in-vocab deux bras
54
+ END = min(int((st_a + ln_a).max()), int((st_b + ln_b).max())); b = c = n = 0
55
+ for key, i in ka.items():
56
+ j = kb.get(key)
57
+ if j is None or key[0] + key[1] > END or not (iv_a[i] and iv_b[j]): continue
58
+ n += 1; b += int(hit_a[i] and not hit_b[j]); c += int(hit_b[j] and not hit_a[i])
59
+ nm = sum(1 for key in ka if key in kb and key[0] + key[1] <= END)
60
+ expect[w] = {"n_clean": n, "b": b, "c": c, "match_rate": nm / min(len(st_a), len(st_b)),
61
+ "rate_in_range": nm / max(1, min(int(((st_a + ln_a) <= END).sum()), int(((st_b + ln_b) <= END).sum())))}
62
+ spec["ref"]["seen"] = seen_spec(rng, SEENP["ref"]); spec["cand"]["seen"] = seen_spec(rng, SEENP["cand"])
63
+ D = f"{H}/runs_{name}"; shutil.rmtree(D, ignore_errors=True)
64
+ write_arm(f"{D}/ref", "ref", spec["ref"], res_ref); write_arm(f"{D}/cand", "cand", spec["cand"], res_cand); return D, expect
65
+ def run(name, D, extra=(), env=None):
66
+ out = f"{D}/out"; p = subprocess.run([PY, f"{H}/verdict_CS1_synthcopy.py", "--runs-ref", f"{D}/ref", "--runs-cand", f"{D}/cand", "--outdir", out, *extra],
67
+ capture_output=True, text=True, env=dict(os.environ, **(env or {})))
68
+ if p.returncode: return {"rc": p.returncode, "stderr_tail": p.stderr.strip().splitlines()[-1:]}
69
+ return dict(json.load(open(f"{out}/verdict_CS1.json")), rc=0)
70
+ R = {}
71
+ def case(name, expected, plan, **kw):
72
+ extra = kw.pop("extra", ()); env = kw.pop("env", None); mut = kw.pop("mutate", None); D, ex = build(name, plan, **kw)
73
+ if mut: mut(D)
74
+ v = run(name, D, extra, env)
75
+ if v["rc"]: R[name] = {"expected": expected, "got": f"rc={v['rc']}", "detail": v["stderr_tail"], "ok": expected == f"rc={v['rc']}"}; print(name, R[name]); return v, ex
76
+ pw = v["per_window"]; chk = {w: {"got": [pw[w]["n_clean"], pw[w]["b_ref_only"], pw[w]["c_cand_only"], round(pw[w]["pairing"]["match_rate"], 4), round(pw[w]["pairing"]["match_rate_all_positions_r1_info"], 4)],
77
+ "indep": [ex[w]["n_clean"], ex[w]["b"], ex[w]["c"], round(ex[w]["rate_in_range"], 4), round(ex[w]["match_rate"], 4)], "rate_in_range_indep": round(ex[w]["rate_in_range"], 4),
78
+ "valid": pw[w]["valid"], "gain": pw[w]["sig_gain"], "loss": pw[w]["sig_loss"], "p": pw[w]["mcnemar_p"], "ci": pw[w]["boot_ci95_delta_pct"]} for w in pw}
79
+ agree = all(c["got"] == c["indep"] for c in chk.values())
80
+ R[name] = {"expected": expected, "got": v["decision"], "reasons": v["reasons"], "counts_agree_independent": agree, "windows": chk,
81
+ "ok": v["decision"] == expected and agree}
82
+ print(name, expected, v["decision"], agree, v["reasons"]); return v, ex
83
+ G = {"fc2": (0.40, 0.60)}
84
+ case("A_adopte", "ADOPTÉ", G)
85
+ case("B1_rejete_perte", "REJETÉ", {"fc2": (0.40, 0.60), "fresh_fr": (0.60, 0.40)})
86
+ case("B2_rejete_sans_gain", "REJETÉ", {})
87
+ case("B3_perte_queries_seulement_hors_regle", "ADOPTÉ", {"fc2": (0.40, 0.60), "queries": (0.6, 0.3)})
88
+ case("C1_scale_cand_0.12", "NON MESURABLE", G, res_cand={"cal": {"scale": 0.12}})
89
+ case("C2_scale_ref_0.029", "NON MESURABLE", G, res_ref={"cal": {"scale": 0.029}})
90
+ case("C3_scale_bornes_incluses_0.03_0.11", "ADOPTÉ", G, res_ref={"cal": {"scale": 0.03}}, res_cand={"cal": {"scale": 0.11}})
91
+ case("C4_scale_absente", "NON MESURABLE", G, res_cand={"cal": {}})
92
+ case("C5_scale_NaN", "NON MESURABLE", G, res_cand={"cal": {"scale": float("nan")}})
93
+ case("C6_tentative_surcharge_--scale-hi", "rc=2", G, extra=("--scale-hi", "2.0"))
94
+ case("D1_budget_snn_inegal", "NON MESURABLE", G, res_cand={"snn_tokens": 500000, "ticks_per_epoch": [500000, 500000]})
95
+ case("D2_passe_snn_incomplete", "NON MESURABLE", G, res_cand={"ticks_per_epoch": [600000, 3000]}, res_ref={"ticks_per_epoch": [600000, 3000]})
96
+ case("D3_am_inegal", "NON MESURABLE", G, res_cand={"am_tokens": 1000000})
97
+ case("D4_data_sha_cand_egal_ref", "NON MESURABLE", G, res_cand={"data_sha256": REF_SHA})
98
+ case("E1_tokenisations_differentes_aleatoires", "NON MESURABLE", G, tok="diff")
99
+ case("E2_tokenisations_partielles_gain_r2_plage_commune", "ADOPTÉ", G, tok="partial")
100
+ case("E3_coarse_tail_taux_0.5_accepte", "ADOPTÉ", G, tok="coarse_tail")
101
+ case("F1_recompte_mix_absent", "NON MESURABLE", G, env={"SYN_RC_MIX": f"{H}/synth_inputs/ABSENT.json"})
102
+ BROAD = "e89725bb94d9f167ffad1f68ae372343a14a1957ae0a1f0a67167aa974ec75a9"
103
+ def put_broad(D):
104
+ for side in ("ref", "cand"):
105
+ f = f"{D}/{side}/ctl__test20k.npz"; z = dict(np.load(f)); z["window_sha256"] = np.array(BROAD); np.savez_compressed(f, **z)
106
+ case("G1_test20k_broad_e89725bb_refuse", "rc=1", G, mutate=put_broad)
107
+ def put_diffwin(D):
108
+ f = f"{D}/cand/ctl__fresh_en.npz"; z = dict(np.load(f)); z["window_sha256"] = np.array(WSHA["fresh_fr"]); np.savez_compressed(f, **z)
109
+ case("G2_octets_fenetre_differents_refuse", "rc=1", G, mutate=put_diffwin)
110
+ def put_extra_broad(D):
111
+ z = dict(np.load(f"{D}/cand/ctl__fc2.npz")); z["window_sha256"] = np.array(BROAD); os.makedirs(f"{D}/cand/ckpt_ctl", exist_ok=True); np.savez_compressed(f"{D}/cand/ckpt_ctl/extra.npz", **z)
112
+ case("H1_npz_broad_en_plus_sous_dossier_refuse", "rc=1", G, mutate=put_extra_broad)
113
+ case("H2_cand_arm_cm_refuse", "rc=2", G, extra=("--cand-arm", "cm"))
114
+ SEENP.update(ref=0.99, cand=0.90); case("H3_perte_seen_fisher_avec_gain", "REJETÉ", G)
115
+ SEENP.update(ref=0.99, cand=0.985); case("H4_seen_ecart_minime_non_sig", "ADOPTÉ", G)
116
+ SEENP.update(ref=0.99, cand=0.99)
117
+ json.dump(R, open(f"{H}/synth_results.json", "w"), indent=1, ensure_ascii=False, default=str)
118
+ print("ALL_OK", all(r["ok"] for r in R.values()), {k: r["ok"] for k, r in R.items()})