Nothing
objects <- list(
as.POSIXlt("2013-06-17 22:33:44"),
as.POSIXct("2013-06-17 22:33:44"),
as.POSIXlt("2013-06-17 22:33:44", tz="Australia/Darwin"),
as.POSIXct("2013-06-17 22:33:44", tz="Australia/Darwin")
)
test_that("Encoding POSIXt Objects", {
#string based formats do not depends on the current local timezone
invisible(lapply(objects, function(object){
expect_equal(toJSON(object), "[\"2013-06-17 22:33:44\"]");
expect_equal(toJSON(object, POSIXt="string"), "[\"2013-06-17 22:33:44\"]");
expect_equal(toJSON(object, POSIXt="ISO8601"), "[\"2013-06-17T22:33:44\"]");
expect_error(toJSON(object, POSIXt="sdfsdsdf"), "one of");
}));
#object 1 and 2 will result in a location specific epoch
invisible(lapply(objects[3:4], function(object){
expect_equal(toJSON(object, POSIXt="epoch"), "[1371474224000]");
expect_equal(toJSON(object, POSIXt="mongo"), "[{\"$date\":1371474224000}]");
}));
});
test_that("Encoding POSIXt object in a list", {
#string based formats do not depends on the current local timezone
invisible(lapply(objects, function(object){
expect_equal(toJSON(list(foo=object)), "{\"foo\":[\"2013-06-17 22:33:44\"]}");
expect_equal(toJSON(list(foo=object), POSIXt="string"), "{\"foo\":[\"2013-06-17 22:33:44\"]}");
expect_equal(toJSON(list(foo=object), POSIXt="ISO8601"), "{\"foo\":[\"2013-06-17T22:33:44\"]}");
expect_error(toJSON(list(foo=object), POSIXt="sdfsdsdf"), "one of");
}));
#list(foo=object) 1 and 2 will result in a location specific epoch
invisible(lapply(objects[3:4], function(object){
expect_equal(toJSON(list(foo=object), POSIXt="epoch"), "{\"foo\":[1371474224000]}");
expect_equal(toJSON(list(foo=object), POSIXt="mongo"), "{\"foo\":[{\"$date\":1371474224000}]}");
}));
});
test_that("Encoding POSIXt object in a list", {
#string based formats do not depends on the current local timezone
invisible(lapply(objects, function(object){
expect_equal(toJSON(data.frame(foo=object)), "[{\"foo\":\"2013-06-17 22:33:44\"}]");
expect_equal(toJSON(data.frame(foo=object), POSIXt="string"), "[{\"foo\":\"2013-06-17 22:33:44\"}]");
expect_equal(toJSON(data.frame(foo=object), POSIXt="ISO8601"), "[{\"foo\":\"2013-06-17T22:33:44\"}]");
expect_error(toJSON(data.frame(foo=object), POSIXt="sdfsdsdf"), "one of");
}));
#list(foo=object) 1 and 2 will result in a location specific epoch
invisible(lapply(objects[3:4], function(object){
expect_equal(toJSON(data.frame(foo=object), POSIXt="epoch"), "[{\"foo\":1371474224000}]");
expect_equal(toJSON(data.frame(foo=object), POSIXt="mongo"), "[{\"foo\":{\"$date\":1371474224000}}]");
}));
});
test_that("POSIXt NA values", {
newobj <- list(
c(objects[[1]], NA),
c(objects[[2]], NA)
);
lapply(newobj, function(object){
expect_equal(toJSON(object), "[\"2013-06-17 22:33:44\",null]");
expect_equal(toJSON(object, na="string"), "[\"2013-06-17 22:33:44\",\"NA\"]");
expect_equal(toJSON(data.frame(foo=object)), "[{\"foo\":\"2013-06-17 22:33:44\"},{}]");
expect_equal(toJSON(data.frame(foo=object), na="null"), "[{\"foo\":\"2013-06-17 22:33:44\"},{\"foo\":null}]");
expect_equal(toJSON(data.frame(foo=object), na="string"), "[{\"foo\":\"2013-06-17 22:33:44\"},{\"foo\":\"NA\"}]");
});
tzobj <- list(
c(objects[[3]], NA),
c(objects[[4]], NA)
);
lapply(tzobj, function(object) {
expect_equal(toJSON(object, POSIXt = "mongo"), "[{\"$date\":1371474224000},null]");
expect_equal(toJSON(object, POSIXt = "mongo", na="string"), "[{\"$date\":1371474224000},\"NA\"]");
expect_equal(toJSON(data.frame(foo=object), POSIXt = "mongo"), "[{\"foo\":{\"$date\":1371474224000}},{}]");
expect_equal(toJSON(data.frame(foo=object), POSIXt = "mongo", na="null"), "[{\"foo\":{\"$date\":1371474224000}},{\"foo\":null}]");
expect_equal(toJSON(data.frame(foo=object), POSIXt = "mongo", na="string"), "[{\"foo\":{\"$date\":1371474224000}},{\"foo\":\"NA\"}]");
})
});
test_that("Negative dates", {
x <- objects[[2]]
y <- x - c(1e9, 2e9, 3e9)
expect_equal(fromJSON(toJSON(y, POSIXt = "mongo")), y);
})
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.