Nothing
checkAbundanceAB <- function(abundance) {
expect_true(!is.null(abundance))
expect_s3_class(abundance, "data.frame")
expect_contains(colnames(abundance), list("Year","Agency", "Species","Count", "Trap","TrapEvents", "Abundance", "FiveYearAvg", "YearsInAverage", "Delta"))
}
#Test 1: Returns valid dataframe with valid paramaeters
test_that(" Returns valid dataframe with valid paramaeters",{
checkAbundanceAB(getAbundanceAnomaly(testing_collections,interval = "Biweek", target_year = 2024))
checkAbundanceAB(getAbundanceAnomaly(testing_collections,interval = "Week", target_year = 2024, sex = "male", trap="CO2"))
checkAbundanceAB(getAbundanceAnomaly(testing_collections,interval = "Month", target_year = 2024, species = "Cx tarsalis" , separate_by = "agency"))
checkAbundanceAB(getAbundanceAnomaly(testing_collections,interval = "Week", target_year = 2024, trap = "CO2"))
checkAbundanceAB(getAbundanceAnomaly(testing_collections,interval = "Month", target_year = 2024, species =c("Cx tarsalis","Cx pipiens"),separate_by = c("agency", "trap")))
})
#Test 2: Error Cases
test_that("Error thrown if target year missing",{
expect_error(getAbundanceAnomaly(testing_collections,interval = "Biweek", target_year = 2025),"Target year not present in data.")
})
#Test 3: Warning
test_that("Warning if years before target year, check these are not included in calculation result",{
expect_warning(getAbundanceAnomaly(sample_collections,interval = "Biweek", target_year = 2019),"There are years greater than the target year in the data. These years will not be included in the anomaly calculation.")
#check that years before target year are
#for(year in unique(ab$surv_year)){expect_lte(year,2021)}
})
# Test 4: Check if the function handles empty data gracefully
test_that("Handles wrong/incorrect collections data", {
# Create an empty data frame
empty_collections = data.frame()
# Expect an error or specific behavior for empty data
expect_error(getAbundanceAnomaly(empty_collections, interval = "Biweek", target_year = 2021), "Collections data is empty")
})
test_that("getAbundance returns accurate abundance", {
# Assuming you have a specific test scenario
true_species = "Cx pipiens, Cx tarsalis"
true_abundance = 30.83
true_avg = 25.9
true_delta = 19.06
# Now, you can compare the result of getAbundance with the manually calculated test_cut_aggregated
# For example:
result <- getAbundanceAnomaly(collections = testing_collections, target_year = 2024, interval = "Week", species = list("Cx pipiens","Cx tarsalis"), separate = "trap")
# Assert that the result matches your expectations
filter_res = result %>% filter(Year==2024, Trap=="CO2", Week==20)
expect_equal(filter_res$Species, true_species)
expect_equal(filter_res$Abundance, true_abundance)
expect_equal(round(filter_res$FiveYearAvg,1), round(true_avg,1))
expect_equal(round(filter_res$Delta), round(true_delta))
})
test_that("Error thrown when incorrect collections data",{
expect_error(getAbundanceAnomaly(sample_collections[1:3]), "Insufficent collections data provided")
})
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.