# Verification checks (P4) | # | check | outcome | |---|---|---| | 1 | Clean re-run: delete out/results.json, re-run analysis.py, byte-compare with previous copy | PASS (identical; sha256 12ac2088...a7d8) | | 2 | Input hashes unchanged and equal to README/bundle.json values | PASS | | 3 | National unemployment rate printed consistently: L17 (Highlights) "increased 0.1 percentage points to 6.5%" and L43 (Unemployment rate increases to 6.5%) "rose 0.1 percentage points to 6.5%"; also heading text says 6.5% | PASS (single value 6.5; script asserts uniqueness) | | 4 | Employment change printed consistently: L17 and L24 both "declined by 68,000 (-0.3%)"; sign negative because "declined" | PASS (-68000) | | 5 | Agreement with P2 baseline (manual grep of the same lines) | PASS (6.5, -68000, men "fell 0.2 ... to 5.8%") | | 6 | Locators name an actual `## ` heading containing the line (L16 for L17; L73 for L74-75) | PASS | | 7 | Regex false-positive screen: provincial/youth/55+ rate sentences ("The unemployment rate in Quebec was...", "youth unemployment rate was little changed at 13.0%", "aged 55 and older rose 0.2 ... to 5.3%") not matched | PASS (only L17, L43 matched for rate; L17, L24 for employment) | | 8 | Assertion: 5 of 6 elements stated, men's direction contradicted ("fell" vs asserted "rose") -> not_supported per task definition | PASS | | 9 | Magnitude sanity: -68,000 vs -0.3% implies employment level ~22.7 million, plausible for Canada; 6.5% within the year's printed range 6.4-6.9% | PASS | | 10 | n_input_rows equal to `wc -l` (9, 164) | PASS | | 11 | exclusions.csv: 164 - 0 = 164 | PASS | | 12 | No randomness; random_seed null | PASS |