Nothing
testthat::test_that("split_digit handles first/middle/last boundaries", {
mr <- measure_monoid(function(a, b) a + b, 0, function(el) 1)
ms <- ensure_size_monoids(list(count = mr))
d <- Digit("a", "b", "c")
s1 <- Immutables:::split_digit(function(v) v >= 1, 0, d, ms, "count")
testthat::expect_identical(s1$value, "a")
testthat::expect_identical(unclass(s1$left), list())
testthat::expect_identical(unclass(s1$right), list("b", "c"))
s2 <- Immutables:::split_digit(function(v) v >= 2, 0, d, ms, "count")
testthat::expect_identical(s2$value, "b")
testthat::expect_identical(unclass(s2$left), list("a"))
testthat::expect_identical(unclass(s2$right), list("c"))
s3 <- Immutables:::split_digit(function(v) v >= 3, 0, d, ms, "count")
testthat::expect_identical(s3$value, "c")
testthat::expect_identical(unclass(s3$left), list("a", "b"))
testthat::expect_identical(unclass(s3$right), list())
})
testthat::test_that("split_digit works when digit holds nodes", {
mr <- measure_monoid(function(a, b) a + b, 0, function(el) 1)
ms <- ensure_size_monoids(list(count = mr))
n2 <- Node2("a", "b")
n3 <- Node3("c", "d", "e")
d <- Digit(n2, n3)
s <- Immutables:::split_digit(function(v) v >= 3, 0, d, ms, "count")
testthat::expect_true(s$value %isa% Node)
testthat::expect_identical(length(s$left), 1L)
testthat::expect_identical(length(s$right), 0L)
})
testthat::test_that("split_digit errors for invalid preconditions", {
mr <- measure_monoid(function(a, b) a + b, 0, function(el) 1)
ms <- ensure_size_monoids(list(count = mr))
testthat::expect_error(
Immutables:::split_digit(function(v) v >= 1, 0, list(), ms, "count"),
"empty digit"
)
d <- Digit("a", "b")
testthat::expect_error(
Immutables:::split_digit(function(v) v >= 10, 0, d, ms, "count"),
"predicate never became true"
)
})
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.