test_that("standardize_names works as expected with parameters", {
  skip_if_not_installed("parameters")

  set.seed(123)

  # lm object
  lm_mod <- lm(wt ~ mpg, mtcars)
  x <- as.data.frame(parameters::model_parameters(lm_mod))

  expect_named(standardize_names(x, style = "broom"), c(
    "term", "estimate", "std.error", "conf.level", "conf.low", "conf.high",
    "statistic", "df.error", "p.value"
  ))

  expect_named(standardize_names(x, style = "easystats"), c(
    "Parameter", "Coefficient", "SE", "CI", "CI_low", "CI_high",
    "Statistic", "df", "p"
  ))

  # aov object
  aov_mod <- aov(wt ~ mpg, mtcars)
  y <- as.data.frame(parameters::model_parameters(aov_mod))

  expect_named(standardize_names(y, style = "broom"), c("term", "sumsq", "df", "meansq", "statistic", "p.value"))

  # t-test (this is yet to be finalized)
  z <- as.data.frame(parameters::model_parameters(t.test(1:10, y = c(7:20))))

  expect_named(standardize_names(z, style = "broom"), c(
    "parameter1", "parameter2", "mean.parameter1", "mean.parameter2", "estimate",
    "conf.level", "conf.low", "conf.high", "statistic", "df.error", "p.value",
    "method", "alternative"
  ))

  # chi-square test
  chi <- as.data.frame(parameters::model_parameters(chisq.test(matrix(c(12, 5, 7, 7), ncol = 2))))

  expect_named(standardize_names(chi, style = "broom"), c("statistic", "df", "p.value", "method"))
})


test_that("standardize_names works as expected with performance", {
  skip_if_not_installed("performance")
  set.seed(123)

  # lm object
  lm_mod <- lm(wt ~ mpg, mtcars)
  x <- as.data.frame(performance::model_performance(
    lm_mod,
    metrics = c("AIC", "BIC", "R2", "R2_adj", "RMSE", "SIGMA")
  ))

  expect_named(standardize_names(x, style = "broom"), c("aic", "bic", "r.squared", "adj.r.squared", "rmse", "sigma"))
})

test_that("standardize_names works as expected with datawizard", {
  skip_if_not_installed("datawizard")
  set.seed(123)

  x <- datawizard::describe_distribution(rnorm(50))

  expect_named(standardize_names(x, style = "broom"), c(
    "estimate", "std.dev", "iqr", "min", "max", "skewness", "kurtosis",
    "n.obs", "missing.obs"
  ))
})
