Nothing
quiet_collect <- function(x){
quiet_fun <- purrr::quietly(dplyr::collect)
quiet_fun(x) |>
purrr::pluck("result")
}
quiet_species <- function(...){
quiet_fun <- purrr::quietly(atlas_species)
quiet_fun(...) |>
purrr::pluck("result")
}
test_that("atlas_species fails nicely if no email is provided", {
skip_if_offline(); skip_on_ci()
galah_config(email = "", run_checks = TRUE) # run_checks = FALSE doesn't provide error message
galah_call() |>
identify("Osphranter") |>
atlas_species() |>
expect_error()
galah_config(email = "ala4r@ala.org.au")
})
test_that("`atlas_species()` returns a tibble", {
skip_if_offline(); skip_on_ci()
species <- galah_call() |>
identify("Osphranter") |>
quiet_species()
expect_s3_class(species, c("tbl_df", "tbl", "data.frame"))
expect_gt(nrow(species), 1)
})
test_that("`select()` works for type = 'species' with `counts`", {
skip_if_offline(); skip_on_ci()
x <- galah_call(type = "species") |>
identify("Crinia") |>
select(counts) |>
quiet_collect()
expect_equal(colnames(x), c("species_id", "count"))
expect_gt(nrow(x), 10)
})
test_that("`select()` works for type = 'species' with group = 'taxonomy'", {
skip_if_offline(); skip_on_ci()
x <- galah_call(type = "species") |>
identify("Crinia") |>
select(counts, lists, group = "taxonomy") |>
quiet_collect()
expect_true(all(c("species", "count", "kingdom", "phylum") %in% colnames(x)))
expect_gt(nrow(x), 10)
})
test_that("`atlas_species()` returns correct results when piped", {
skip_if_offline(); skip_on_ci()
galah_config(run_checks = TRUE)
species <- galah_call() |>
identify("perameles") |>
filter(year > 2000) |>
quiet_species()
expected_species <- c("Perameles nasuta",
"Perameles gunnii",
"Perameles fasciata",
"Perameles pallescens",
"Perameles bougainville")
expected_cols <- c("species", "species_name",
"scientific_name_authorship", "taxon_rank",
"kingdom", "phylum", "class", "order", "family",
"genus", "vernacular_name")
expect_setequal(names(species), expected_cols)
(expected_species %in% species$species_name) |>
all() |>
expect_true()
expect_gt(nrow(species), 1)
expect_s3_class(species, c("tbl_df", "tbl", "data.frame"))
})
test_that("`atlas_species()` returns correct results filtered by galah_geolocate", {
skip_if_offline(); skip_on_ci()
galah_config(run_checks = TRUE)
wkt <- "POLYGON ((146.5425 -42.63203, 146.8312 -43.13203, 147.4085 -43.13203,
147.6972 -42.63203, 147.4085 -42.13203, 146.8312 -42.13203, 146.5425 -42.63203))"
species <- galah_call() |>
identify("perameles") |>
filter(year > 2000) |>
geolocate(wkt) |>
quiet_species()
expected_species <- c("Perameles gunnii")
expected_cols <- c("species", "species_name",
"scientific_name_authorship", "taxon_rank",
"kingdom", "phylum", "class", "order", "family",
"genus", "vernacular_name")
expect_setequal(names(species), expected_cols)
expect_equal(species$species_name[1], expected_species)
expect_gt(nrow(species), 0)
expect_s3_class(species, c("tbl_df", "tbl", "data.frame"))
})
test_that("`atlas_species()` works when no species are present", {
skip_if_offline(); skip_on_ci()
galah_config(email = "ala4r@ala.org.au")
galah_config(run_checks = TRUE)
result <- galah_call() |>
identify("eolophus") |>
filter(cl1048 == "Kimberley") |>
quiet_species()
expect_s3_class(result, c("tbl_df", "tbl", "data.frame"))
expect_equal(ncol(result), 11)
expect_equal(nrow(result), 0)
})
test_that("collapse -> compute -> collect workflow is functional", {
skip_if_offline(); skip_on_ci()
galah_config(email = "ala4r@ala.org.au")
query <- galah_call(type = "species") |>
identify("perameles") |>
filter(year > 2000)
species_collapse <- query |> collapse()
species_compute <- species_collapse |> compute()
species_collect <- species_compute |> quiet_collect()
atlas_species <- query |> quiet_species()
expect_s3_class(query, "data_request")
expect_s3_class(species_collapse, "query")
expect_s3_class(species_compute, "computed_query")
expect_s3_class(species_collect, c("tbl_df", "tbl", "data.frame"))
expect_equal(species_collect, atlas_species)
})
test_that("collapse works when no `filter()` is supplied", {
# NOTE: this test was added to check for the error: "`speciesID` is not a valid field"
# this occurred when calling `atlas_species()` because `speciesID` is a facet,
# but `group_by` wasn't being called, so checks weren't constructed properly
skip_if_offline(); skip_on_ci()
wkt <- "POLYGON((73.0 -53, 95.6 -11.5, 105.6 -10.1, 123 -12.1, 130.7 -9.5, 142.2 -9.8, 168.1 -29.05, 159.1 -54.9, 73.0 -53))"
expect_no_error({x <- galah_call(type = "species") |>
st_crop(wkt) |>
collapse()})
expect_s3_class(x, "query")
})
test_that("atlas_species reformats column names when empty tibble is returned", {
skip_if_offline(); skip_on_ci()
galah_config(run_checks = TRUE)
# No matching species expected, an empty tibble should be returned
species <- galah_call() |>
identify("sarcopterygii") |>
filter(cl1048 == "Wet Tropics") |>
quiet_species()
expected_cols <- c("species", "species_name",
"scientific_name_authorship", "taxon_rank",
"kingdom", "phylum", "class", "order", "family",
"genus", "vernacular_name")
expect_setequal(names(species), expected_cols)
expect_equal(nrow(species), 0)
expect_s3_class(species, c("tbl_df", "tbl", "data.frame"))
})
test_that("`atlas_species()` accepts `distinct()` to set the grouping variable", {
skip_if_offline(); skip_on_ci()
genera <- galah_call() |>
identify("Limnodynastidae") |>
distinct(genusID) |>
quiet_species()
expect_s3_class(genera, c("tbl_df", "tbl", "data.frame"))
expect_true(nrow(genera) > 4 & nrow(genera) < 10)
expect_gte(ncol(genera), 10) # test that `.keep_all = TRUE` is not required
# as this is implied (and asserted) by calling `atlas_species()`
all(genera$taxon_rank == "genus") |>
expect_true()
})
rm(quiet_collect, quiet_species)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.