context("dates")
test_that("Chronological age in months", {
# Two years exactly
expect_equal(chrono_age("2014-01-20", "2012-01-20"), 24)
# Shift a year
expect_equal(chrono_age("2014-01-20", "2013-01-20"), 12)
expect_equal(chrono_age("2014-01-20", "2011-01-20"), 36)
# Shift a month
expect_equal(chrono_age("2014-01-20", "2012-02-20"), 23)
expect_equal(chrono_age("2014-01-20", "2011-12-20"), 25)
# Multiple dates
t1 <- c("2014-01-20", "2014-01-20")
t2 <- c("2012-02-20", "2011-12-20")
expect_equal(chrono_age(t1, t2), c(23, 25))
# Missing dates raise warnings and default to NA
expect_warning(chrono_age(NA, "2011-12-20"))
expect_true(is.na(suppressWarnings(chrono_age(NA, "2011-12-20"))))
# 3 months exactly
expect_equal(chrono_age("2014-05-10", "2014-02-10"), 3)
# Borrow a month when the earlier date has a later day
expect_equal(chrono_age("2014-05-10", "2014-02-11"), 2)
# Reversed arguments
expect_equal(chrono_age("2012-01-20", "2014-01-20"), 24)
# Checks against EVT/PPVT examples
expect_equal(chrono_age("2007-06-29", "2001-03-03"), (6 * 12) + 3)
expect_equal(chrono_age("2007-05-08", "1999-08-02"), (7 * 12) + 9)
expect_equal(chrono_age("2007-08-13", "1985-11-24"), (21 * 12) + 8)
})
test_that("Excel date recovery", {
# An xls file
dates <- readxl::read_excel(test_path("data/dates.xls"))
# Parse expected date (string -> date)
dates$exp_date <- as.Date(dates$Expected)
# Convert excel date (string -> time -> date)
dates$new_date <- suppressWarnings(as.Date(undo_excel_date(dates$Date)))
expect_equal(dates$new_date, dates$exp_date)
# An xlsx file
x_dates <- readxl::read_excel(test_path("data/dates.xlsx"))
# Parse expected date (string -> date)
x_dates$exp_date <- as.Date(x_dates$Expected)
# Convert excel date (string -> time -> date)
x_dates$new_date <- suppressWarnings(as.Date(undo_excel_date(x_dates$Date)))
expect_equal(x_dates$new_date, x_dates$exp_date)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.