context("toJSON keep_vec_names")
test_that("keep_vec_names with named vectors", {
# Basic types should give messages
# Length-1 vectors
expect_message(expect_equal(toJSON2(c(a=1)), '{"a":1}'))
expect_message(expect_equal(toJSON2(c(a="x")), '{"a":"x"}'))
expect_message(expect_equal(toJSON2(c(a=TRUE)), '{"a":true}'))
# Longer vectors
expect_message(expect_equal(toJSON2(c(a=1,b=2)), '{"a":1,"b":2}'))
expect_message(expect_equal(toJSON2(c(a="x",b="y")), '{"a":"x","b":"y"}'))
expect_message(expect_equal(toJSON2(c(a=FALSE,b=TRUE)), '{"a":false,"b":true}'))
# Some other types
expect_message(expect_equal(toJSON2(factor(c(a="x"))), '{"a":"x"}'))
expect_message(expect_equal(toJSON2(c(a=as.Date("2015-01-01"))), '{"a":"2015-01-01"}'))
expect_message(expect_equal(toJSON2(c(a=as.POSIXct("2015-01-01 3:00:00"))), '{"a":"2015-01-01 03:00:00"}'))
expect_message(expect_equal(toJSON2(c(a=as.POSIXlt("2015-01-01 3:00:00"))), '{"a":"2015-01-01 03:00:00"}'))
# keep_vec_names shouldn't affect unnamed vectors
expect_equal(toJSON2(1), '1')
expect_equal(toJSON2(c(1:3)), '[1,2,3]')
})
# Data frames generally don't allow named columns, except in very unusual cases
test_that("keep_vec_names with data frames", {
expect_equal(toJSON3(data.frame(x=c(a=1), y=2)), '{"x":[1],"y":[2]}')
expect_equal(toJSON3(data.frame(x=c(a=1,b=2), y=c(c=3,d=4))), '{"x":[1,2],"y":[3,4]}')
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.