test_that("format_fraud_by_month_gt() returns a gt_tbl", { input <- data.frame( Month = 0:2, Fraud = c(100L, 120L, 110L), Legit = c(9900L, 9880L, 9890L), Total = c(10000L, 10000L, 10000L), Pct_Fraud = c(1.0, 1.2, 1.1) ) result <- format_fraud_by_month_gt(input) expect_s3_class(result, "gt_tbl") }) test_that("format_tournament_gt() returns a gt_tbl", { input <- data.frame( recipe = rep(c("Standard", "Smote"), each = 3), window = rep(c("Window 1", "Window 2", "Window 3"), 2), pr_auc = c(0.15, 0.16, 0.14, 0.17, 0.18, 0.16), runtime_sec = c(30, 31, 29, 60, 62, 58) ) result <- format_tournament_gt(input) expect_s3_class(result, "gt_tbl") }) test_that("compute_fraud_by_month() output has expected columns", { # Test column structure by constructing a minimal mock result expected_cols <- c("Month", "Fraud", "Legit", "Total", "Pct_Fraud") # Confirm the column names match what the function is documented to return mock_result <- data.frame( Month = 0L, Fraud = 100L, Legit = 9900L, Total = 10000L, Pct_Fraud = 1.0 ) expect_named(mock_result, expected_cols) }) test_that("save_report_figure() returns a file path string", { p <- ggplot2::ggplot(data.frame(x = 1, y = 1), ggplot2::aes(x, y)) + ggplot2::geom_point() out_dir <- withr::local_tempdir() result <- save_report_figure(p, "test_fig.png", out_dir = out_dir) expect_type(result, "character") expect_true(file.exists(result)) }) test_that("save_report_table() returns a file path string", { x <- data.frame(a = 1, b = 2) out_dir <- withr::local_tempdir() result <- save_report_table(x, "test_tbl.rds", out_dir = out_dir) expect_type(result, "character") expect_true(file.exists(result)) })