Nothing
dbpath <- rbedrock_example_world("example1.mcworld")
db <- bedrockdb(dbpath)
test_that("get_keys returns all keys", {
keys <- get_keys(db)
expect_equal(length(keys), 1136L)
})
test_that("get_keys returns all keys with a prefix", {
keys <- get_keys(db)
pre_str <- get_keys(db, "plain:VILLAGE")
expect_equal(pre_str, grep("^plain:VILLAGE", keys, value = TRUE))
pre_chunk <- get_keys(db, "chunk:37:6:0")
expect_equal(pre_chunk, grep("^chunk:37:6:0", keys, value = TRUE))
})
test_that("get_value returns a single, raw value", {
expect_equal(get_value(db, "chunk:31:6:0:44"), as.raw(0x15))
expect_equal(get_value(db, "plain:Overworld"), as.raw(c(
0x0a, 0x00, 0x00, 0x0a, 0x04, 0x00, 0x64, 0x61,
0x74, 0x61, 0x09, 0x0d, 0x00, 0x4c, 0x69, 0x6d,
0x62, 0x6f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69,
0x65, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00
)))
expect_null(get_value(db, "plain:MissingKey"))
})
test_that("get_value requires a scalar character argument", {
expect_error(get_value(db, NULL), class = "vctrs_error_scalar_type")
expect_error(get_value(db, 1L), class = "vctrs_error_assert_ptype")
expect_error(get_value(db, as.raw(1L)), class = "vctrs_error_assert_ptype")
expect_error(get_value(db, c("hello", "world")),
class = "vctrs_error_assert_size"
)
})
test_that("get_values returns a list of raw values", {
expect_equal(
get_values(db, c(
"chunk:31:6:0:44", "plain:Overworld",
"plain:NotFound"
)),
list("chunk:31:6:0:44" = as.raw(0x15), "plain:Overworld" = as.raw(c(
0x0a, 0x00, 0x00, 0x0a, 0x04, 0x00, 0x64, 0x61,
0x74, 0x61, 0x09, 0x0d, 0x00, 0x4c, 0x69, 0x6d,
0x62, 0x6f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69,
0x65, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00
)), "plain:NotFound" = NULL)
)
})
test_that("get_values returns all keys with a prefix", {
keys <- get_keys(db)
pre_str <- get_values(db, starts_with = "plain:VILLAGE")
expect_equal(names(pre_str), grep("^plain:VILLAGE", keys, value = TRUE))
pre_chunk <- get_values(db, starts_with = "chunk:37:6:0")
expect_equal(names(pre_chunk), grep("^chunk:37:6:0", keys, value = TRUE))
pre_chunk <- get_values(db, starts_with = "chunk:37:6:0:47")
expect_equal(names(pre_chunk), grep("^chunk:37:6:0:47", keys, value = TRUE))
})
test_that("has_values returns a logical vector", {
expect_equal(
has_values(db, c(
"chunk:31:6:0:44", "plain:Overworld",
"plain:NotFound"
)),
c(
"chunk:31:6:0:44" = TRUE, "plain:Overworld" = TRUE,
"plain:NotFound" = FALSE
)
)
})
test_that("put_value writes data into the db", {
put_value(db, "plain:Test%01", charToRaw("Hello World"))
put_result <- get_value(db, "plain:Test%01")
expect_equal(put_result, charToRaw("Hello World"))
put_value(db, "chunk:0:0:0:44", as.raw(15))
put_result <- get_value(db, "chunk:0:0:0:44")
expect_equal(put_result, as.raw(15))
put_value(db, "plain:Test%01", charToRaw("Hello New World"))
put_result <- get_value(db, "plain:Test%01")
expect_equal(put_result, charToRaw("Hello New World"))
})
test_that("put_value throws errors are incorrect arguments", {
expect_error(put_value(db, NULL, raw(1L)),
class = "vctrs_error_scalar_type"
)
expect_error(put_value(db, 1L, raw(1L)),
class = "vctrs_error_assert_ptype"
)
expect_error(put_value(db, as.raw(1L), raw(1L)),
class = "vctrs_error_assert_ptype"
)
expect_error(put_value(db, c("plain:hello", "plain:world"), raw(1L)),
class = "vctrs_error_assert_size"
)
expect_error(put_value(db, "plain:Test%02", "hello Error"), "expected raw")
})
test_that("put_values writes data into the db", {
put_values(
db, c("plain:Test%01", "plain:Test%02"),
list(as.raw(0x1), as.raw(0x2))
)
put_result <- get_values(db, c("plain:Test%01", "plain:Test%02"))
expect_equal(put_result, list(
"plain:Test%01" = as.raw(0x1),
"plain:Test%02" = as.raw(0x2)
))
})
test_that("put_data writes data into the db", {
put_data(db, list(
"plain:Test%01" = as.raw(0x1),
"plain:Test%02" = as.raw(0x2)
))
put_result <- get_values(db, c("plain:Test%01", "plain:Test%02"))
expect_equal(put_result, list(
"plain:Test%01" = as.raw(0x1),
"plain:Test%02" = as.raw(0x2)
))
})
test_that("delete_values removes data from the db", {
put_data(db, list(
"plain:Test%01" = as.raw(0x1),
"plain:Test%02" = as.raw(0x2)
))
delete_ret <- delete_values(db, c("plain:Test%01", "plain:Test%02"))
expect_null(delete_ret)
delete_result <- get_values(db, c("plain:Test%01", "plain:Test%02"))
expect_equal(delete_result, list(
"plain:Test%01" = NULL,
"plain:Test%02" = NULL
))
put_data(db, list(
"plain:Test%01" = as.raw(0x1),
"plain:Test%02" = as.raw(0x2)
))
delete_ret <- delete_values(db, c(
"plain:Test%01", "plain:Test%03",
"plain:Test%02"
), report = TRUE)
expect_equal(delete_ret, c(TRUE, FALSE, TRUE))
})
# clean up
close(db)
fs::dir_delete(dbpath)
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.