Nothing
context("KQL: escaping")
# Identifiers ------------------------------------------------------------------
ei <- function(...) unclass(escape(ident(c(...))))
test_that("identifiers are bracket-escaped", {
expect_equal(ei("x"), "['x']")
})
test_that("identifiers are comma separated", {
expect_equal(ei("x", "y"), "['x'], ['y']")
})
# Zero-length inputs ------------------------------------------------------
test_that("zero length inputs yield zero length output when not collapsed", {
expect_equal(kql_vector(kql(), collapse = NULL), kql())
expect_equal(kql_vector(ident(), collapse = NULL), kql())
})
test_that("zero length inputs yield length-1 output when collapsed", {
expect_equal(kql_vector(kql(), parens = FALSE, collapse = ""), kql(""))
expect_equal(kql_vector(kql(), parens = TRUE, collapse = ""), kql("()"))
expect_equal(kql_vector(ident(), parens = FALSE, collapse = ""), kql(""))
expect_equal(kql_vector(ident(), parens = TRUE, collapse = ""), kql("()"))
})
# Special values ----------------------------------------------------------------
test_that("missing vaues become null", {
expect_equal(escape(NA), kql("null"))
expect_equal(escape(NA_real_), kql("real(null)"))
expect_equal(escape(NA_integer_), kql("int(null)"))
expect_equal(escape(NA_character_), kql("''"))
})
test_that("-Inf and Inf are expanded and quoted", {
expect_equal(escape(Inf), kql("'real(+inf)'"))
expect_equal(escape(-Inf), kql("'real(-inf)'"))
})
test_that("can escape logical values", {
expect_equal(escape(TRUE), kql("true"))
expect_equal(escape(FALSE), kql("false"))
expect_equal(escape(NA), kql("null"))
})
test_that("can escape integer64 values", {
skip_if_not_installed("bit64")
expect_equal(escape(bit64::as.integer64(NA)), kql("long(null)"))
expect_equal(escape(bit64::as.integer64("123456789123456789")), kql("123456789123456789"))
})
# Times -------------------------------------------------------------------
test_that("times are converted to ISO 8601", {
x <- ISOdatetime(2000, 1, 2, 3, 4, 5, tz = "America/Chicago")
expect_equal(escape(x), kql("'2000-01-02T09:04:05Z'"))
})
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.