Nothing
# Load required data ---------------------------------------------------------------------------------
data("apparelTrans")
data("cdnow")
# Parameter data.transactions ------------------------------------------------------------------------------------
test_that("Fails if missing / NA / NULL", {
expect_error(clvdata(data.transactions = , time.unit = "w",date.format = "ymd"))
expect_error(clvdata(data.transactions = NULL, time.unit = "w",date.format = "ymd"))
expect_error(clvdata(data.transactions = NA_real_, time.unit = "w",date.format = "ymd"))
})
test_that("Fails if not a data.frame", {
expect_error(clvdata(data.transactions = as.list(cdnow), time.unit = "w",date.format = "ymd"))
expect_error(clvdata(data.transactions = unlist(cdnow), time.unit = "w",date.format = "ymd"))
expect_error(clvdata(data.transactions = c(Id=1:10, Date=seq(Sys.Date(), length.out = 10, by="day") ,
Price=1:10), time.unit = "w",date.format = "ymd"))
})
test_that("Fails if no rows or cols", {
expect_error(clvdata(data.transactions = data.frame(), time.unit = "w",date.format = "ymd"), regexp = "not be found")
expect_error(clvdata(data.transactions = data.frame(Id=character(0), Date=character(0), Price=numeric(), stringsAsFactors = FALSE),
time.unit = "w",date.format = "ymd"), regexp = "empty")
})
test_that("Fails if any NA in any column", {
cdnow.na <- data.table::copy(cdnow)
cdnow.na[100, Price:= NA_real_]
expect_error(clvdata(data.transactions = cdnow.na, time.unit = "w",date.format = "ymd"), regexp = "NAs")
cdnow.na[100, Price:= 0]
cdnow.na[100, Id := NA_character_]
expect_error(clvdata(data.transactions = cdnow.na, time.unit = "w",date.format = "ymd"), regexp = "NAs")
cdnow.na[100, Id := "1021"]
cdnow.na[100, Date:= as.Date(NA_character_)]
expect_error(clvdata(data.transactions = cdnow.na, time.unit = "w",date.format = "ymd"), regexp = "NAs")
})
test_that("Fails if Price is not numeric", {
cdnow.notnum <- data.table::copy(cdnow)
cdnow.notnum[, Price:=as.character(Price)]
expect_error(clvdata(data.transactions = cdnow.notnum, time.unit = "w",date.format = "ymd"), regexp = "numeric")
})
test_that("Fails if does not have the Id column", {
cdnow.noid <- data.table::copy(cdnow)
cdnow.noid[, Id := NULL]
expect_error(clvdata(data.transactions = cdnow.noid, time.unit = "w",date.format = "ymd"),
regexp = "could not be found")
})
test_that("Fails if does not have the Date column", {
cdnow.nodate <- data.table::copy(cdnow)
cdnow.nodate[, Date := NULL]
expect_error(clvdata(data.transactions = cdnow.nodate, time.unit = "w",date.format = "ymd"),
regexp = "could not be found")
})
test_that("Fails if does not have the Price column", {
cdnow.noprice <- data.table::copy(cdnow)
cdnow.noprice[, Price := NULL]
expect_error(clvdata(data.transactions = cdnow.noprice, time.unit = "w",date.format = "ymd"),
regexp = "could not be found")
})
test_that("Has no default argument", {
expect_true(is.symbol(formals(clvdata)$data.transactions))
})
# Parameter date.format ------------------------------------------------------------------------------------
test_that("Fails if missing/NULL/NA", {
expect_error(clvdata(data.transactions = cdnow, time.unit = "w"),
regexp = "missing")
expect_error(clvdata(date.format = NULL, data.transactions = cdnow, time.unit = "w"),
regexp = "needs to be of type character")
expect_error(clvdata(date.format = NA_character_, data.transactions = cdnow, time.unit = "w"),
regexp = "any NA")
})
test_that("Fails if not character", {
expect_error(clvdata(date.format = 1, data.transactions = cdnow, time.unit = "w"), regexp = "character")
expect_error(clvdata(date.format = lubridate::ymd, data.transactions = cdnow, time.unit = "w"), regexp = "character")
expect_error(clvdata(date.format = Sys.Date(), data.transactions = cdnow, time.unit = "w"), regexp = "character")
expect_error(clvdata(date.format = character(0), data.transactions = cdnow, time.unit = "w"), regexp = "exactly 1 element")
expect_error(clvdata(date.format = list("ymd"), data.transactions = cdnow, time.unit = "w"), regexp = "character")
expect_error(clvdata(date.format = data.frame("ymd"), data.transactions = cdnow, time.unit = "w"), regexp = "character")
})
test_that("Fails if date.format wrong format", {
cdnow.char <- data.table::copy(cdnow)
cdnow.char[, Date := as.character(Date)]
expect_error(clvdata(date.format = "ydm", data.transactions = cdnow.char, time.unit = "w"), regexp = "failed")
expect_error(clvdata(date.format = "dmy", data.transactions = cdnow.char, time.unit = "w"), regexp = "failed")
expect_error(clvdata(date.format = "dym", data.transactions = cdnow.char, time.unit = "w"), regexp = "failed")
expect_error(clvdata(date.format = "myd", data.transactions = cdnow.char, time.unit = "w"), regexp = "failed")
})
test_that("Fails if has multiple", {
expect_error(clvdata(date.format = c("ymd", "ymd"), data.transactions = cdnow, time.unit = "w"), regexp = "exactly 1 element")
expect_error(clvdata(date.format = c("ymd", "dmy"), data.transactions = cdnow, time.unit = "w"), regexp = "exactly 1 element")
})
test_that("Has no default argument", {
expect_true(is.symbol(formals(clvdata)$date.format))
})
# Parameter time.unit --------------------------------------------------------------------------------
test_that("Fails if missing/NULL/NA", {
expect_error(clvdata(data.transactions = cdnow, date.format="ymd"),
regexp = "missing")
expect_error(clvdata(time.unit = , data.transactions = cdnow, date.format="ymd"),
regexp = "missing")
expect_error(clvdata(time.unit = NULL, data.transactions = cdnow, date.format="ymd"),
regexp = "NULL")
expect_error(clvdata(time.unit = NA_character_ , data.transactions = cdnow, date.format="ymd"),
regexp = "any NA")
})
test_that("Fails if not character", {
expect_error(clvdata(time.unit = 1, data.transactions = cdnow, date.format="ymd"),
regexp = "character")
expect_error(clvdata(time.unit = list("week"), data.transactions = cdnow, date.format="ymd"),
regexp = "character")
expect_error(clvdata(time.unit = data.frame("week"), data.transactions = cdnow, date.format="ymd"),
regexp = "character")
})
test_that("Fails if wrong time.unit format", {
expect_error(clvdata(time.unit = character(0), data.transactions = cdnow, date.format="ymd"),
regexp = "exactly 1 element")
expect_error(clvdata(time.unit = "beeks", data.transactions = cdnow, date.format="ymd"),
regexp = "one of the following")
expect_error(clvdata(time.unit = "decade", data.transactions = cdnow, date.format="ymd"),
regexp = "one of the following")
expect_error(clvdata(time.unit = "bour", data.transactions = cdnow, date.format="ymd"),
regexp = "one of the following")
expect_error(clvdata(time.unit = "minute", data.transactions = cdnow, date.format="ymd"),
regexp = "one of the following")
})
test_that("Fails if has multiple", {
expect_error(clvdata(time.unit = c("weeks", "years"), data.transactions = cdnow, date.format="ymd"),
regexp = "exactly 1 element")
expect_error(clvdata(time.unit = c("weeks", "weeks"), data.transactions = cdnow, date.format="ymd"),
regexp = "exactly 1 element")
})
test_that("Has no default argument", {
expect_true(is.symbol(formals(clvdata)$time.unit))
})
# Parameter estimation.split ---------------------------------------------------------------------------
test_that("Fails if NA",{
expect_error(clvdata(estimation.split = NA_real_,time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "any NA")
})
test_that("Fails if not numeric, character, or date",{
expect_error(clvdata(estimation.split = data.frame(37),time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "of type")
expect_error(clvdata(estimation.split = list(37),time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "of type")
expect_error(clvdata(estimation.split = "37",time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "can be converted")
expect_error(clvdata(estimation.split = character(0),time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "exactly one single element")
expect_error(clvdata(estimation.split = numeric(),time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "exactly one single element")
expect_error(clvdata(estimation.split = as.Date(character(0)),time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "exactly one single element")
expect_error(clvdata(estimation.split = as.Date(NA_character_),time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "any NA")
})
test_that("Fails with character in wrong dateformat",{
expect_error(clvdata(estimation.split = "2010-15-12",time.unit = "w", data.transactions = cdnow,
date.format="ymd"), regexp = "date.format")
expect_error(clvdata(estimation.split = "12-15-2010",time.unit = "w", data.transactions = cdnow,
date.format="ymd"), regexp = "date.format")
})
test_that("Fails with split after last transaction",{
expect_error(clvdata(estimation.split = "2010-01-01",time.unit = "w", data.transactions = cdnow,
date.format="ymd"), regexp = "before the last transaction")
expect_error(clvdata(estimation.split = 200,time.unit = "w", data.transactions = cdnow,
date.format="ymd"), regexp = "before the last transaction")
expect_error(clvdata(estimation.split = 4,time.unit = "y", data.transactions = cdnow,
date.format="ymd"), regexp = "before the last transaction")
})
test_that("Fails with split in 2 periods before last transaction (ie in last period)",{
expect_error(clvdata(estimation.split = "1998-06-30",time.unit = "d", data.transactions = cdnow,
date.format="ymd"), regexp = "before the last transaction")
expect_error(clvdata(estimation.split = "1998-06-29",time.unit = "d", data.transactions = cdnow,
date.format="ymd"), regexp = "before the last transaction")
expect_error(clvdata(estimation.split = "1998-06-30",time.unit = "w", data.transactions = cdnow,
date.format="ymd"), regexp = "before the last transaction")
expect_error(clvdata(estimation.split = "1998-06-21",time.unit = "w", data.transactions = cdnow,
date.format="ymd"), regexp = "before the last transaction")
})
test_that("Fails if before all first transactions by customer", {
expect_error(clvdata(estimation.split = 4,time.unit = "w", data.transactions = cdnow,
date.format="ymd"), regexp = "Not all customers")
expect_error(clvdata(estimation.split = "1997-02-01",time.unit = "w", data.transactions = cdnow,
date.format="ymd"), regexp = "Not all customers")
})
test_that("Has default argument NULL",{
expect_true(is.null(formals(clvdata)$estimation.split))
})
# Parameter name.id ------------------------------------------------------------------------------------
test_that("Fails if NA/NULL", {
expect_error(clvdata(name.id = NULL, time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "NULL")
expect_error(clvdata(name.id = NA_character_, time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "any NA")
expect_error(clvdata(name.id = character(0), time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "exactly 1 element")
})
test_that("Fails if not character", {
expect_error(clvdata(name.id = list("Id"), time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "character")
expect_error(clvdata(name.id = data.frame("Id"), time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "character")
expect_error(clvdata(name.id = 1, time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "character")
})
test_that("Fails if multiple", {
expect_error(clvdata(name.id = c("Id", "Id"), time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "exactly 1 element")
expect_error(clvdata(name.id = c("Id", "Date"), time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "exactly 1 element")
})
test_that("Fails if not in transaction data", {
expect_error(clvdata(name.id = "id", time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "not be found in the data")
expect_error(clvdata(name.id = "ID", time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "not be found in the data")
expect_error(clvdata(name.id = "di", time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "not be found in the data")
expect_error(clvdata(name.id = "customer", time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "not be found in the data")
})
test_that("Has default argument Id",{
default.arg <- eval(formals(clvdata)[["name.id"]])
expect_true(is.character(default.arg))
expect_true(default.arg == "Id")
})
# Parameter name.date ------------------------------------------------------------------------------------
test_that("Fails if NA/NULL", {
expect_error(clvdata(name.date = NULL, time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "NULL")
expect_error(clvdata(name.date = NA_character_, time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "any NA")
expect_error(clvdata(name.date = character(0), time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "exactly 1 element")
})
test_that("Fails if not character", {
expect_error(clvdata(name.date = list("Id"), time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "character")
expect_error(clvdata(name.date = data.frame("Id"), time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "character")
expect_error(clvdata(name.date = 1, time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "character")
})
test_that("Fails if multiple", {
expect_error(clvdata(name.date = c("Id", "Id"), time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "exactly 1 element")
expect_error(clvdata(name.date = c("Id", "Date"), time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "exactly 1 element")
})
test_that("Fails if not in transaction data", {
expect_error(clvdata(name.date = "dat", time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "not be found in the data")
expect_error(clvdata(name.date = "date", time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "not be found in the data")
expect_error(clvdata(name.date = "Datee", time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "not be found in the data")
# expect_error(clvdata(name.date = "Price", time.unit = "w", data.transactions = cdnow, date.format="ymd"),
# regexp = "not be found in the data")
# expect_error(clvdata(name.date = "Id", time.unit = "w", data.transactions = cdnow, date.format="ymd"),
# regexp = "not be found in the data")
})
test_that("Has default argument Date",{
default.arg <- eval(formals(clvdata)[["name.date"]])
expect_true(is.character(default.arg))
expect_true(default.arg == "Date")
})
# Parameter name.price ------------------------------------------------------------------------------------
test_that("Fails if NA/empty", {
# Null is allowed to express no spending data
expect_error(clvdata(name.price = NA_character_, time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "any NA")
expect_error(clvdata(name.price = character(0), time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "exactly 1 element")
})
test_that("Fails if not character", {
expect_error(clvdata(name.price = list("Id"), time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "character")
expect_error(clvdata(name.price = data.frame("Id"), time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "character")
expect_error(clvdata(name.price = 1, time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "character")
})
test_that("Fails if multiple", {
expect_error(clvdata(name.price = c("Id", "Id"), time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "exactly 1 element")
expect_error(clvdata(name.price = c("Id", "Date"), time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "exactly 1 element")
})
test_that("Fails if not in transaction data", {
expect_error(clvdata(name.price = "price", time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "not be found in the data")
expect_error(clvdata(name.price = "PRICE", time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "not be found in the data")
expect_error(clvdata(name.price = "Pricee", time.unit = "w", data.transactions = cdnow, date.format="ymd"),
regexp = "not be found in the data")
# expect_error(clvdata(name.price = "Id", time.unit = "w", data.transactions = cdnow, date.format="ymd"),
# regexp = "not be found in the data")
# expect_error(clvdata(name.price = "Date", time.unit = "w", data.transactions = cdnow, date.format="ymd"),
# regexp = "not be found in the data")
})
test_that("Has default argument Price",{
default.arg <- eval(formals(clvdata)[["name.price"]])
expect_true(is.character(default.arg))
expect_true(default.arg == "Price")
})
# Parameter verbose ------------------------------------------------------------------------------------
# test_that("Has default argument verbose",{
# default.arg <- eval(formals(clvdata)[["verbose"]])
# expect_true(is.logical(default.arg))
# expect_true(default.arg)
# })
# Fails if Date is not convertible
# verbose has default True
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.