# arbitrary ordination object
pca <- augment_ord(as_tbl_ord(prcomp(iris[, -5])))
test_that("`pull_*()` returns a vector", {
expect_equal(pull_cols(pca, name), names(iris)[-5])
})
test_that("`cbind_*()` appends a column only of the correct length", {
expect_equal(
ncol(fortify(cbind_rows(pca, iris[, 5, drop = FALSE]), .matrix = "rows")),
# original + bound + fortified (`.matrix` & `.supplement`)
4L + 1L + 2L
)
expect_equal(
ncol(fortify(cbind_rows(pca, species = iris[[5]]), .matrix = "rows")),
# original + bound + fortified (`.matrix` & `.supplement`)
4L + 1L + 2L
)
expect_error(cbind_rows(pca, letter = letters),
regexp = "length|recycle",
class = "vctrs_error_incompatible_size")
})
pca <- cbind_rows(pca, iris[, 5, drop = FALSE])
test_that("`rename_*()` applies to both augmented and annotated variables", {
expect_named(annotation_rows(rename_rows(pca, species = Species)), "species")
expect_named(
annotation_cols(rename_cols(pca, measure = name)),
c("measure", "center")
)
})
test_that("`rename_*()` does not recognize shared coordinates", {
expect_error(rename_rows(pca, dim1 = PC1))
})
test_that("`select()` applies to both augmented and annotated variables", {
expect_false("Species" %in% names(fortify(select_rows(pca, -Species))))
expect_true("species" %in% names(fortify(select_rows(pca, species = Species))))
})
test_that("`select_*()` does not recognize shared coordinates", {
expect_error(select_rows(pca, PC1))
})
test_that("`mutate_*()` recognizes but does not change shared coordinates", {
expect_named(
annotation_rows(mutate_rows(pca, Species = toupper(Species))),
"Species"
)
expect_named(
annotation_cols(mutate_cols(pca, diff = PC1 - center)),
c("name", "center", "diff")
)
})
test_that("`transmute_*()` recognizes but does not change shared coordinates", {
expect_named(
annotation_rows(transmute_rows(pca, species = toupper(Species))),
"species"
)
expect_named(annotation_cols(transmute_cols(pca, diff = PC1 - center)), "diff")
})
means <- aggregate(iris[, -5], iris[, 5, drop = FALSE], mean)
test_that("`left_join_*()` joins new columns", {
expect_named(
annotation_rows(left_join_rows(pca, means, by = "Species")),
c("Species", names(iris)[-5])
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.