Nothing
test_that("write_mix_json and read_mix_json work correctly", {
# Create a mixture object
nm <- mixnorm(rob = c(0.2, 0, 2), inf = c(0.8, 2, 2), sigma = 5)
# Use withr to create a temporary file
tempfile <- withr::local_tempfile(fileext = ".json")
# Serialize the mixture object to JSON
write_mix_json(nm, tempfile, pretty = TRUE, digits = 1)
# Check that the file was created
expect_true(file.exists(tempfile))
# Deserialize the JSON file back into a mixture object
mix <- read_mix_json(tempfile)
# Check that the deserialized object matches the original
expect_true(all(nm == mix))
})
test_that("write_mix_json handles EM objects correctly", {
# Create a mixture object with EM attributes
nm <- mixnorm(rob = c(0.2, 0, 2), inf = c(0.8, 2, 2), sigma = 5)
class(nm) <- c("EM", class(nm)) # Simulate an EM object
# Use withr to create a temporary file
tempfile <- withr::local_tempfile(fileext = ".json")
# Serialize the mixture object to JSON
expect_message(
write_mix_json(nm, tempfile, pretty = TRUE, digits = 1),
"Dropping EM information from mixture object before serialization."
)
# Deserialize the JSON file back into a mixture object
mix <- read_mix_json(tempfile)
# Check that the deserialized object matches the original (without EM attributes)
expect_true(all(unclass(nm) == mix))
})
test_that("read_mix_json rescaling works correctly", {
# Create a mixture object
nm <- mixnorm(rob = c(0.2, 0, 2), inf = c(0.8, 2, 2), sigma = 5)
nm[1,1] <- 0.15
# Use withr to create a temporary file
tempfile <- withr::local_tempfile(fileext = ".json")
# Serialize the mixture object to JSON
write_mix_json(nm, tempfile, pretty = TRUE, digits = 2)
# Deserialize the JSON file with rescaling
mixrescaled <- read_mix_json(tempfile, rescale = TRUE)
# Check that the weights sum to 1 after rescaling
expect_equal(sum(mixrescaled[1, ]), 1)
# Deserialize the JSON file without rescaling
mix_no_rescale <- read_mix_json(tempfile, rescale = FALSE)
# Check that the weights do not sum to 1 without rescaling
expect_false(sum(mix_no_rescale[1, ]) == 1)
})
test_that("write_mix_json warns about missing digits argument", {
# Create a mixture object
nm <- mixnorm(rob = c(0.2, 0, 2), inf = c(0.8, 2, 2), sigma = 5)
# Use withr to create a temporary file
temp_file <- withr::local_tempfile(fileext = ".json")
# Expect a warning when digits argument is not provided
expect_warning(
write_mix_json(nm, temp_file, pretty = TRUE),
"JSON serialization by default restricts number of digits"
)
})
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.