library(datapackage)
source("helpers.R")
# Some additional checks; we have functions returning a character in case of
# an error and TRUE otherwise.
expect_istrue <- function(x, ...) {
expect_equal( isTRUE(x), TRUE)
}
expect_nistrue <- function(x, ...) {
expect_equal( isTRUE(x), FALSE)
}
# =============================================================================
# Check is all columns are present and not too many columns are present
dr <- list(
name = "test",
schema = list(
fields = list(
list(name = "a", type = "integer"),
list(name = "b", type = "string")
)
)
) |> structure(class = "dataresource")
dta <- data.frame(a = 1:3, b = letters[1:3])
expect_istrue(dp_check_dataresource(dta, dr))
dr <- list(
name = "test",
schema = list(
fieldsMatch = "exact",
fields = list(
list(name = "a", type = "integer"),
list(name = "b", type = "string")
)
)
) |> structure(class = "dataresource")
dta <- data.frame(a = 1:3, b = letters[1:3])
expect_istrue(dp_check_dataresource(dta, dr))
dr <- list(
name = "test",
schema = list(
fieldsMatch = "exact",
fields = list(
list(name = "b", type = "string"),
list(name = "a", type = "integer")
)
)
) |> structure(class = "dataresource")
dta <- data.frame(a = 1:3, b = letters[1:3])
expect_nistrue(dp_check_dataresource(dta, dr))
dr <- list(
name = "test",
schema = list(
fieldsMatch = "equal",
fields = list(
list(name = "b", type = "string"),
list(name = "a", type = "integer")
)
)
) |> structure(class = "dataresource")
dta <- data.frame(a = 1:3, b = letters[1:3])
expect_istrue(dp_check_dataresource(dta, dr))
dr <- list(
name = "test",
schema = list(
fieldsMatch = "equal",
fields = list(
list(name = "a", type = "integer"),
list(name = "b", type = "string")
)
)
) |> structure(class = "dataresource")
dta <- data.frame(a = 1:3)
expect_nistrue(dp_check_dataresource(dta, dr))
dr <- list(
name = "test",
schema = list(
fieldsMatch = "superset",
fields = list(
list(name = "a", type = "integer"),
list(name = "b", type = "string")
)
)
) |> structure(class = "dataresource")
dta <- data.frame(a = 1:3)
expect_istrue(dp_check_dataresource(dta, dr))
dr <- list(
name = "test",
schema = list(
fieldsMatch = "equal",
fields = list(
list(name = "a", type = "integer"),
list(name = "b", type = "string")
)
)
) |> structure(class = "dataresource")
dta <- data.frame(a = 1:3, b = letters[1:3], c = letters[1:3])
expect_nistrue(dp_check_dataresource(dta, dr))
dr <- list(
name = "test",
schema = list(
fieldsMatch = "subset",
fields = list(
list(name = "a", type = "integer"),
list(name = "b", type = "string")
)
)
) |> structure(class = "dataresource")
dta <- data.frame(a = 1:3, b = letters[1:3], c = letters[1:3])
expect_istrue(dp_check_dataresource(dta, dr))
dr <- list(
name = "test",
schema = list(
fieldsMatch = "subset",
fields = list(
list(name = "a", type = "integer"),
list(name = "b", type = "string")
)
)
) |> structure(class = "dataresource")
dta <- data.frame(a = 1:3, c = letters[1:3])
expect_nistrue(dp_check_dataresource(dta, dr))
dr <- list(
name = "test",
schema = list(
fieldsMatch = "partial",
fields = list(
list(name = "a", type = "integer"),
list(name = "b", type = "string")
)
)
) |> structure(class = "dataresource")
dta <- data.frame(a = 1:3, c = letters[1:3])
expect_istrue(dp_check_dataresource(dta, dr))
dr <- list(
name = "test",
schema = list(
fieldsMatch = "partial",
fields = list(
list(name = "a", type = "integer"),
list(name = "b", type = "string")
)
)
) |> structure(class = "dataresource")
dta <- data.frame(d = 1:3, c = letters[1:3])
expect_nistrue(dp_check_dataresource(dta, dr))
# =============================================================================
# Check if dp_check_fields is called correctly; we will not check all option of
# dp_check_fields as this function is tested seperately
dr <- list(
name = "test",
schema = list(
fields = list(
list(name = "a", type = "string"),
list(name = "b", type = "string")
)
)
) |> structure(class = "dataresource")
dta <- data.frame(a = 1:3, b = letters[1:3])
expect_nistrue(dp_check_dataresource(dta, dr))
dr <- list(
name = "test",
schema = list(
fields = list(
list(name = "a", type = "integer", constraints = list(required = TRUE)),
list(name = "b", type = "string", constraints = list(required = TRUE))
)
)
) |> structure(class = "dataresource")
dta <- data.frame(a = c(1:3,NA), b = c(letters[1:3], NA))
expect_nistrue(dp_check_dataresource(dta, dr))
expect_error(dp_check_dataresource(dta, dr, throw = TRUE))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.