Nothing
test_that("parse_args() works", {
expect_equal(
parse_args("a, c(b, d), c"),
c("a", "c(b, d)", "c")
)
})
test_that("clean_name() works", {
sfm <- xmile()
names_df <- get_names(sfm)
# Check for syntactically correct names
expect_equal(clean_name(c("TRUE", "T"), names_df[["name"]]), c("TRUE__1", "T_1"))
expect_equal(clean_name(c("a", "b", "T"), names_df[["name"]]), c("a", "b", "T_1"))
expect_equal(clean_name(c("a-1", "b!2", "c.1"), names_df[["name"]]), c("a_1", "b_2", "c_1"))
expect_equal(clean_name(c("a-1", "a!1"), names_df[["name"]]), c("a_1", "a_1_1"))
expect_equal(clean_name(c(" Hell0 ", "Hell0"), names_df[["name"]]), c("Hell0", "Hell0_1"))
# Difficult, but ensure unique names
expect_equal(clean_name(c("F"), "F_1"), c("F_1_1"))
expect_equal(clean_name(c("-1", "_1"), names_df[["name"]]), c("X_1", "X_1_1"))
})
test_that("clean_language works", {
expect_equal(clean_language("r"), "R")
expect_equal(clean_language(" r "), "R")
expect_equal(clean_language("JULIA"), "Julia")
expect_equal(clean_language(" julia"), "Julia")
expect_equal(clean_language("jl"), "Julia")
expect_error(clean_language("python"), "The language python is not one of the languages available in sdbuildR")
})
test_that("get_names() works", {
# Check no variables
expect_equal(get_names(xmile()), data.frame(type = character(), name = character(), label = character(), units = character()))
# Check with variables
sfm <- xmile() |>
build("a", "aux") |>
build("b", "aux")
result <- get_names(sfm)
expected <- data.frame(
type = c("aux", "aux"),
name = c("a", "b"),
label = c("a", "b"),
units = c("1", "1")
)
expect_equal(result, expected)
# Check with units
sfm <- xmile() |>
build("a", "stock", units = "1/s") |>
build("b", "aux", units = "m")
result <- get_names(sfm)
expected <- data.frame(
type = c("stock", "aux"),
name = c("a", "b"),
label = c("a", "b"),
units = c("1/s", "m")
)
expect_equal(result, expected)
# Check with label
sfm <- xmile() |>
build("a", "stock", label = "A") |>
build("b", "aux", label = "B")
result <- get_names(sfm)
expected <- data.frame(
type = c("stock", "aux"),
name = c("a", "b"),
label = c("A", "B"),
units = c("1", "1")
)
expect_equal(result, expected)
})
test_that("get_range_names() works", {
expect_equal(
get_range_names("[a]", "a", names_with_brackets = FALSE),
data.frame(start = 2, end = 2, name = "a")
)
expect_equal(
get_range_names("[a]", "a", names_with_brackets = TRUE),
data.frame(start = 1, end = 3, name = "a")
)
# Brackets in middle of text
expect_equal(
get_range_names("b + a + c", "a", names_with_brackets = FALSE),
data.frame(start = 5, end = 5, name = "a")
)
expect_equal(
get_range_names("[b] + [a] + [c]", "a", names_with_brackets = TRUE),
data.frame(start = 7, end = 9, name = "a")
)
# Multiple occurrences
expect_equal(
get_range_names("[a] + a", "a", names_with_brackets = FALSE),
data.frame(start = c(2, 7), end = c(2, 7), name = c("a", "a"))
)
expect_equal(
get_range_names("[a] + [a]", "a", names_with_brackets = TRUE),
data.frame(start = c(1, 7), end = c(3, 9), name = c("a", "a"))
)
# Special characters in names
expect_equal(
get_range_names("a.2", "a.2", names_with_brackets = FALSE),
data.frame(start = 1, end = 3, name = "a.2")
)
expect_equal(
get_range_names("[a.2]", "a.2", names_with_brackets = TRUE),
data.frame(start = 1, end = 5, name = "a.2")
)
# No matches
expect_equal(
get_range_names("b", "a", names_with_brackets = FALSE),
data.frame()
)
expect_equal(
get_range_names("[b]", "a", names_with_brackets = TRUE),
data.frame()
)
# Embedded in alphanumeric (should NOT match)
expect_equal(
get_range_names("aaa", "a", names_with_brackets = FALSE),
data.frame()
)
expect_equal(
get_range_names("[aaa]", "a", names_with_brackets = TRUE),
data.frame()
)
# At start/end of string
expect_equal(
get_range_names("a1 + no + a2", c("a1", "a2"), names_with_brackets = FALSE),
data.frame(start = c(1, 11), end = c(2, 12), name = c("a1", "a2"))
)
expect_equal(
get_range_names("[a1] + no + [a2]", c("a1", "a2"), names_with_brackets = TRUE),
data.frame(start = c(1, 13), end = c(4, 16), name = c("a1", "a2"))
)
})
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.