library(datapackage)
source("helpers.R")
fielddescriptor <- list(
name = "boolean",
title = "A boolean field",
description = "A description",
type = "boolean"
)
res <- datapackage:::dp_to_boolean.character(c("TRUE", "FALSE", ""),
fielddescriptor = fielddescriptor)
expect_equal(res, c(TRUE, FALSE, NA), attributes = FALSE)
expect_attribute(res, "fielddescriptor",
c(fielddescriptor, list(trueValues = c("true", "TRUE", "True", "1"),
falseValues = c("false", "FALSE", "False", "0"))))
res <- datapackage:::dp_to_boolean.character(c("True", "False", ""),
fielddescriptor = fielddescriptor)
expect_equal(res, c(TRUE, FALSE, NA), attributes = FALSE)
res <- datapackage:::dp_to_boolean.character(c("true", "false", ""),
fielddescriptor = fielddescriptor)
expect_equal(res, c(TRUE, FALSE, NA), attributes = FALSE)
res <- datapackage:::dp_to_boolean.character(c("1", "0", ""),
fielddescriptor = fielddescriptor)
expect_equal(res, c(TRUE, FALSE, NA), attributes = FALSE)
res <- datapackage:::dp_to_boolean.character(c(),
fielddescriptor = fielddescriptor)
expect_equal(res, logical(0), attributes = FALSE)
res <- datapackage:::dp_to_boolean.character(c(""),
fielddescriptor = fielddescriptor)
expect_equal(res, as.logical(NA), attributes = FALSE)
expect_error( datapackage:::dp_to_boolean.character(c("foo", ""),
fielddescriptor = fielddescriptor) )
# ==== Custom trueValues and falseValues
fielddescriptor <- list(
name = "boolean",
title = "A boolean field",
description = "A description",
type = "boolean",
trueValues = "yes",
falseValues = "no"
)
expect_error( datapackage:::dp_to_boolean.character(c("FALSE", "TRUE", ""),
fielddescriptor = fielddescriptor) )
res <- datapackage:::dp_to_boolean.character(c("yes", "no", "", "yes"),
fielddescriptor = fielddescriptor)
expect_equal(res, c(TRUE, FALSE, NA, TRUE), attributes = FALSE)
expect_attribute(res, "fielddescriptor", fielddescriptor)
# ==== No fielddescriptor
res <- datapackage:::dp_to_boolean.character(c("true", "False", "FALSE", "0", "", NA, "TRUE"))
expect_equal(res, c(TRUE, FALSE, FALSE, FALSE, NA, NA, TRUE), attributes = FALSE)
fielddescriptor <- list(
type = "boolean",
trueValues = c("true", "TRUE", "True", "1"),
falseValues = c("false", "FALSE", "False", "0")
)
expect_attribute(res, "fielddescriptor", fielddescriptor)
# =============================================================================
# dp_to_boolean.integer
fielddescriptor <- list(
type = "boolean",
trueValues = "1",
falseValues = "0"
)
res <- datapackage:::dp_to_boolean.integer(c(1, 0, NA),
fielddescriptor = fielddescriptor)
expect_equal(res, c(TRUE, FALSE, NA), attributes = FALSE)
expect_attribute(res, "fielddescriptor", fielddescriptor)
fielddescriptor <- list(
type = "boolean",
trueValues = "42",
falseValues = "0"
)
res <- datapackage:::dp_to_boolean.integer(c(42, 0, NA),
fielddescriptor = fielddescriptor)
expect_equal(res, c(TRUE, FALSE, NA), attributes = FALSE)
fielddescriptor <- list(
type = "boolean",
trueValues = "42",
falseValues = "1"
)
res <- datapackage:::dp_to_boolean.integer(c(42, 1, NA),
fielddescriptor = fielddescriptor)
expect_equal(res, c(TRUE, FALSE, NA), attributes = FALSE)
fielddescriptor <- list(
type = "boolean",
trueValues = c("1", "42"),
falseValues = "0"
)
res <- datapackage:::dp_to_boolean.integer(c(42, 1, 0, NA),
fielddescriptor = fielddescriptor)
expect_equal(res, c(TRUE, TRUE, FALSE, NA), attributes = FALSE)
fielddescriptor <- list(
type = "boolean",
trueValues = c("1", "one"),
falseValues = "0"
)
expect_error(datapackage:::dp_to_boolean.integer(c(42, 1, 0, NA),
fielddescriptor = fielddescriptor))
fielddescriptor <- list(
type = "boolean",
trueValues = "1",
falseValues = "0"
)
expect_warning(
res <- datapackage:::dp_to_boolean.integer(c(42, 1, 0, NA, 0),
fielddescriptor = fielddescriptor)
)
expect_equal(res, c(TRUE, TRUE, FALSE, NA, FALSE), attributes = FALSE)
# === NA
fielddescriptor <- list(
name = "boolean",
missingValues = c("--")
)
res <- dp_to_boolean(c("TRUE","--", "FALSE", NA), fielddescriptor)
expect_equal(res, c(TRUE, NA, FALSE, NA), attributes = FALSE)
expect_error(res <- dp_to_boolean(c("TRUE","---", "FALSE", NA), fielddescriptor))
# =============================================================================
# csv_colclass
res <- datapackage:::csv_colclass_boolean(
list(trueValues = "True", falseValues = "False"))
expect_equal(res, "character")
res <- datapackage:::csv_colclass_boolean(
list(trueValues = "true", falseValues = "false"))
expect_equal(res, "character")
res <- datapackage:::csv_colclass_boolean(
list(trueValues = "TRUE", falseValues = "FALSE"))
expect_equal(res, "logical")
res <- datapackage:::csv_colclass_boolean(
list(trueValues = "1", falseValues = "0"))
expect_equal(res, "integer")
res <- datapackage:::csv_colclass_boolean()
expect_equal(res, "character")
res <- datapackage:::csv_colclass_boolean(
list(trueValues = "TRUE", falseValues = "false"))
expect_equal(res, "character")
res <- datapackage:::csv_colclass_boolean(
list(trueValues = "TRUE"))
expect_equal(res, "character")
res <- datapackage:::csv_colclass_boolean(
list(falseValues = "FALSE"))
expect_equal(res, "character")
res <- datapackage:::csv_colclass_boolean(
list(trueValues = c("true", "TRUE"), falseValues = "FALSE"))
expect_equal(res, "character")
res <- datapackage:::csv_colclass_boolean(
list(missingValues = c("--")))
expect_equal(res, "character")
# =============================================================================
# csv_format
res <- datapackage:::csv_format_boolean(c(TRUE, FALSE, NA))
expect_equal(res, c(TRUE, FALSE, NA))
res <- datapackage:::csv_format_boolean(c(TRUE, FALSE, NA),
fielddescriptor = list(missingValues = c("X", "-")))
expect_equal(res, c("TRUE", "FALSE", "X"))
res <- datapackage:::csv_format_boolean(c(TRUE, FALSE, NA),
fielddescriptor = list(trueValues = c("WAAR", "TRUE"),
falseValues = c("ONWAAR", "FALSE")))
expect_equal(res, c(TRUE, FALSE, NA))
res <- datapackage:::csv_format_boolean(c(TRUE, FALSE, NA),
fielddescriptor = list(trueValues = c("WAAR"),
falseValues = c("ONWAAR")))
expect_equal(res, c("WAAR", "ONWAAR", NA))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.