Nothing
describe("nonempty_powerset", {
it("maps bitsets to their integer representation if max_size = cardinality", {
forall(
gen.element(0:10),
\(n) {
p <- nonempty_powerset(n, use_visited = FALSE)
expect_identical(
vapply(
p$bits,
\(bits) as.integer(sum(bits*2^(seq_len(n) - 1))),
integer(1)
),
seq_len(2^n - 1)
)
}
)
})
it("has bitset_index equal to seq_len(2^cardinality-1) if max_size = cardinality", {
forall(
gen.element(0:10),
expect_biidentical(
with_args(nonempty_powerset, use_visited = FALSE) %>>%
with_args(getElement, name = "bitset_index"),
(\(n) 2^n - 1) %>>%
seq_len
)
)
})
it("maps full-set node index to limited index using bitset_index", {
forall(
gen.element(0:10) |>
gen.c(of = 2) |>
gen.with(sort %>>% as.list),
\(n, m) {
p <- nonempty_powerset(n, use_visited = FALSE, max_size = m)
full <- nonempty_powerset(n, use_visited = FALSE)
full_bit_matches <- match(full$bits, p$bits)
expect_identical(full_bit_matches, p$bitset_index)
},
curry = TRUE
)
})
it("initialises visited values to FALSE if used", {
forall(
gen.element(0:10),
expect_biidentical(
with_args(nonempty_powerset, use_visited = TRUE) %>>%
with_args(getElement, name = "visited"),
(\(n) 2^n - 1) %>>% with_args(rep_len, x = FALSE)
)
)
})
})
describe("reduce_powerset", {
it("is like constructing with new cardinality", {
forall(
gen.element(0:10) |>
gen.and_then(\(n) list(
gen.pure(n),
gen.element(0:n),
gen.element(0:n)
)),
\(n, size, m) {
expect_identical(
nonempty_powerset(n, F, size) |>
reduce_powerset(m),
nonempty_powerset(m, F, size)
)
},
curry = 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.