context("stats-kmeans") skip_if_not_installed("modeltests") library(modeltests) set.seed(2) x <- rbind( matrix(rnorm(100, sd = 0.3), ncol = 2), matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2) ) fit <- kmeans(x, 2) d <- data.frame(x = runif(100), y = runif(100)) fit2 <- kmeans(x = d, centers = 5) test_that("kmeans tidier arguments", { check_arguments(tidy.kmeans) check_arguments(glance.kmeans) check_arguments(augment.kmeans, strict = FALSE) }) # tidy.kmeans uses the orginal column names to name columns in output. # Therefore, strict must be set to FALSE for this test to pass. test_that("tidy.kmeans", { td <- tidy(fit) check_tidy_output(td, strict = FALSE) }) test_that("tidy.kmeans", { gl <- glance(fit) check_glance_outputs(gl) }) test_that("augment.kmeans", { # data argument cannot be empty expect_error( augment(fit), regexp = "argument \"data\" is missing, with no default" ) check_augment_function( aug = augment.kmeans, model = fit, data = x, newdata = x, strict = FALSE ) check_augment_function( aug = augment.kmeans, model = fit2, data = d, newdata = d, strict = FALSE ) })