Nothing
test_that("Serializing and unserializing a map", {
# Test with difficult encodings (code borrowed from encoding tests)
m <- fastmap()
k1 <- "abc"
# "åbc" in UTF-8
k2 <- "\u00e5bc"
# "åbc" in latin1
k3 <- iconv(k2, from = "UTF-8", to = "latin1")
# "中 A" in UTF-8
k4 <- "\u4e2d A"
k5 <- "xyz"
m$set(k1, 1)
m$set(k2, 2)
m$set(k3, 3)
m$set(k4, 4)
m$set(k5, 5)
m$remove(k1) # Make a hole
m1 <- unserialize(serialize(m, NULL))
expect_mapequal(m$as_list(), m1$as_list())
expect_identical(m$size(), m1$size())
expect_setequal(m$keys(), m1$keys())
expect_true(all(Encoding(m1$keys()) %in% c("unknown", "UTF-8")))
# Make sure that m1 behaves correctly when modified
m$set(k1, 10)
m$set(k3, 30)
m1$set(k1, 10)
m1$set(k3, 30)
expect_mapequal(m$as_list(), m1$as_list())
expect_identical(m$size(), m1$size())
expect_true(all(Encoding(m1$keys()) %in% c("unknown", "UTF-8")))
})
test_that("Serializing and unserializing fastmap with no holes", {
x <- seq_len(32)
m <- fastmap()
m$mset(.list = setNames(x, as.character(x)))
m1 <- unserialize(serialize(m, NULL))
expect_length(m1$as_list(), 32)
expect_mapequal(m$as_list(), m1$as_list())
})
test_that("Serializing and unserializing stress test", {
set.seed(3524)
n <- 1e4
# Generate keys and values.
values <- rnorm(n)
keys <- as.character(values)
m <- fastmap()
add_order <- sample.int(n)
for (i in add_order) {
m$set(keys[i], values[i])
}
# Then remove 1/3 them in random order
remove_order <- sample.int(n, size = round(1/3 * n))
for (i in remove_order) {
m$remove(keys[i])
}
m1 <- unserialize(serialize(m, NULL))
expect_mapequal(m$as_list(), m1$as_list())
expect_identical(m$size(), m1$size())
expect_setequal(m$keys(), m1$keys())
# Add some random subset of values to m and m1, and make sure the result is
# the same.
add_order <- sample.int(n, size = round(1/3 * n))
for (i in add_order) {
m$set(keys[i], values[i])
m1$set(keys[i], values[i])
}
expect_mapequal(m$as_list(), m1$as_list())
expect_identical(m$size(), m1$size())
expect_setequal(m$keys(), m1$keys())
# Remove a subset of values from m and m1, and make sure the result is the
# same.
remove_order <- sample.int(n, size = round(1/3 * n))
for (i in remove_order) {
m$remove(keys[i])
m1$remove(keys[i])
}
expect_mapequal(m$as_list(), m1$as_list())
expect_identical(m$size(), m1$size())
expect_setequal(m$keys(), m1$keys())
})
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.