# Tests for plot_lag function test_that("plot_lag creates ggplot object", { dat <- simulate_invasion(seed = 123) result <- detect_lag(dat$year, dat$count) p <- plot_lag(result) expect_s3_class(p, "ggplot") }) test_that("plot_lag handles different types", { dat <- simulate_invasion(seed = 123) result <- detect_lag(dat$year, dat$count) p_main <- plot_lag(result, type = "main") p_phases <- plot_lag(result, type = "phases") expect_s3_class(p_main, "ggplot") expect_s3_class(p_phases, "ggplot") }) test_that("plot_lag handles different themes", { dat <- simulate_invasion(seed = 123) result <- detect_lag(dat$year, dat$count) p_minimal <- plot_lag(result, theme = "minimal") p_classic <- plot_lag(result, theme = "classic") p_pub <- plot_lag(result, theme = "publication") expect_s3_class(p_minimal, "ggplot") expect_s3_class(p_classic, "ggplot") expect_s3_class(p_pub, "ggplot") }) test_that("plot.invalag method works", { dat <- simulate_invasion(seed = 123) result <- detect_lag(dat$year, dat$count) p <- plot(result) expect_s3_class(p, "ggplot") }) test_that("plot_lag validates input", { expect_error(plot_lag("not an invalag object")) expect_error(plot_lag(list(a = 1, b = 2))) })