Nothing
# Tests for the finite_set R6 class
test_that("finite_set constructor creates valid object from vector", {
# Given: A numeric vector
values <- c(1, 2, 3, 4, 5)
# When: Creating a finite_set
fs <- finite_set$new(values)
# Then: Object has correct class and stores unique values
expect_s3_class(fs, "finite_set")
expect_equal(fs$values, values)
})
test_that("finite_set constructor stores unique values only", {
# Given: A vector with duplicates
values <- c(1, 1, 2, 2, 3)
# When: Creating a finite_set
fs <- finite_set$new(values)
# Then: Only unique values are stored
expect_equal(sort(fs$values), c(1, 2, 3))
})
test_that("finite_set works with matrix input", {
# Given: A matrix of values
values <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 3, ncol = 2)
# When: Creating a finite_set
fs <- finite_set$new(values)
# Then: Object stores the matrix
expect_true(is.matrix(fs$values))
})
test_that("finite_set$has correctly checks membership for vectors", {
fs <- finite_set$new(c(1, 2, 3))
expect_true(fs$has(1))
expect_true(fs$has(2))
expect_true(fs$has(3))
expect_false(fs$has(4))
expect_false(fs$has(0))
})
test_that("finite_set$has correctly checks membership for matrices", {
values <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 3, ncol = 2)
fs <- finite_set$new(values)
# Row that exists in the set
expect_true(fs$has(c(1, 4)))
expect_true(fs$has(c(2, 5)))
# Row that does not exist
expect_false(fs$has(c(1, 5)))
expect_false(fs$has(c(10, 20)))
})
test_that("finite_set$infimum returns minimum for vectors", {
fs <- finite_set$new(c(3, 1, 4, 1, 5, 9, 2, 6))
expect_equal(fs$infimum(), 1)
})
test_that("finite_set$infimum returns column-wise minimums for matrices", {
values <- matrix(c(1, 2, 3, 10, 5, 15), nrow = 3, ncol = 2)
fs <- finite_set$new(values)
expect_equal(fs$infimum(), c(1, 5))
})
test_that("finite_set$supremum returns maximum for vectors", {
fs <- finite_set$new(c(3, 1, 4, 1, 5, 9, 2, 6))
expect_equal(fs$supremum(), 9)
})
test_that("finite_set$supremum returns column-wise maximums for matrices", {
values <- matrix(c(1, 2, 3, 10, 5, 15), nrow = 3, ncol = 2)
fs <- finite_set$new(values)
expect_equal(fs$supremum(), c(3, 15))
})
test_that("finite_set$dim returns 1 for vectors", {
fs <- finite_set$new(c(1, 2, 3))
expect_equal(fs$dim(), 1)
})
test_that("finite_set$dim returns number of columns for matrices", {
values <- matrix(1:12, nrow = 4, ncol = 3)
fs <- finite_set$new(values)
expect_equal(fs$dim(), 3)
})
test_that("has.finite_set S3 wrapper works correctly", {
fs <- finite_set$new(c(1, 2, 3))
expect_true(has(fs, 1))
expect_false(has(fs, 4))
})
test_that("infimum.finite_set S3 wrapper works correctly", {
fs <- finite_set$new(c(5, 3, 7))
expect_equal(infimum(fs), 3)
})
test_that("supremum.finite_set S3 wrapper works correctly", {
fs <- finite_set$new(c(5, 3, 7))
expect_equal(supremum(fs), 7)
})
test_that("dim.finite_set S3 wrapper works correctly", {
fs <- finite_set$new(c(1, 2, 3))
expect_equal(dim(fs), 1)
})
test_that("finite_set handles single value", {
fs <- finite_set$new(42)
expect_equal(fs$values, 42)
expect_true(fs$has(42))
expect_false(fs$has(0))
expect_equal(fs$infimum(), 42)
expect_equal(fs$supremum(), 42)
expect_equal(fs$dim(), 1)
})
test_that("finite_set handles negative values", {
fs <- finite_set$new(c(-5, -3, 0, 2, 4))
expect_true(fs$has(-5))
expect_true(fs$has(0))
expect_equal(fs$infimum(), -5)
expect_equal(fs$supremum(), 4)
})
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.