test_that("matching claim passes core audit", { ref <- stat_reference(10.4, "unemployment rate", "Spain", "2025", "percent", "Eurostat") clm <- stat_claim(10.4, "unemployment rate", "Spain", "2025", "%", "Eurostat") aud <- audit_stat_ai(ref, clm) expect_s3_class(aud, "stat_fidelity_audit") expect_equal(aud$components$numerical$score, 1) expect_equal(aud$components$unit$score, 1) expect_false(aud$critical_fail) }) test_that("wrong indicator is non-compensatory", { ref <- stat_reference(10.4, "unemployment rate", "Spain", "2025", "percent", "Eurostat") clm <- stat_claim(10.4, "employment rate", "Spain", "2025", "%", "Eurostat") aud <- audit_stat_ai(ref, clm) expect_true(aud$critical_fail) expect_equal(aud$certification, "FAIL") }) test_that("wrong source fails", { ref <- stat_reference(10.4, "unemployment rate", "Spain", "2025", "percent", "Eurostat") clm <- stat_claim(10.4, "unemployment rate", "Spain", "2025", "%", "Other source") aud <- audit_stat_ai(ref, clm) expect_equal(aud$components$provenance$score, 0) expect_true(aud$components$provenance$critical) }) test_that("batch audit returns component score columns", { refs <- list( stat_reference(10.4, "unemployment rate", "Spain", "2025", "percent", "Eurostat"), stat_reference(7.0, "unemployment rate", "France", "2025", "percent", "Eurostat") ) claims <- list( stat_claim(10.4, "unemployment rate", "Spain", "2025", "%", "Eurostat"), stat_claim(7.2, "unemployment rate", "France", "2025", "%", "Eurostat") ) out <- audit_batch(refs, claims, ids = c("ES", "FR")) expect_s3_class(out, "stat_fidelity_batch") expect_equal(nrow(out), 2) expect_true(all(c("semantic", "numerical", "context") %in% names(out))) expect_equal(out$certification[2], "FAIL") })