test_that("Encoding Complex", { expect_equal(toJSON(complex(real=2, imaginary=2)), "[\"2+2i\"]"); expect_equal(toJSON(complex(real=NA, imaginary=2)), "[\"NA\"]"); expect_equal(toJSON(complex(real=1, imaginary=NA)), "[\"NA\"]"); expect_equal(toJSON(complex(real=NA, imaginary=2), na="null"), "[null]"); }); test_that("Encoding Complex in Data Frame", { expect_equal(toJSON(data.frame(foo=complex(real=1, imaginary=2))), "[{\"foo\":\"1+2i\"}]"); expect_equal(toJSON(data.frame(foo=complex(real=NA, imaginary=2))), "[{}]"); expect_equal(toJSON(data.frame(foo=complex(real=NA, imaginary=2)), na="string"), "[{\"foo\":\"NA\"}]"); expect_equal(toJSON(data.frame(foo=complex(real=NA, imaginary=2)), na="null"), "[{\"foo\":null}]"); }); test_that("Encoding Complex as list", { x <- complex(real=c(1,2,NA), imaginary=3:1); expect_equal(toJSON(x), "[\"1+3i\",\"2+2i\",\"NA\"]"); expect_equal(toJSON(x, complex="list"), "{\"real\":[1,2,\"NA\"],\"imaginary\":[3,2,1]}"); expect_equal(toJSON(data.frame(foo=x), complex="list"), "[{\"foo\":{\"real\":1,\"imaginary\":3}},{\"foo\":{\"real\":2,\"imaginary\":2}},{\"foo\":{\"imaginary\":1}}]"); expect_equal(toJSON(data.frame(foo=x), complex="list", na="string"), "[{\"foo\":{\"real\":1,\"imaginary\":3}},{\"foo\":{\"real\":2,\"imaginary\":2}},{\"foo\":{\"real\":\"NA\",\"imaginary\":1}}]"); expect_equal(toJSON(data.frame(foo=x), complex="list", dataframe="columns"), "{\"foo\":{\"real\":[1,2,\"NA\"],\"imaginary\":[3,2,1]}}"); });