tests/testthat/test-sparse_set.R

context("Set")

test_that("fcaR operates on sparse sets", {

  A <- matrix(1, nrow = 10, ncol = 1)
  B <- matrix(1, nrow = 10, ncol = 5)

  expect_error(print(A), NA)

  expect_error(.difference2(A, B), NA)
  expect_error(.difference2(B, B), NA)
  expect_error(.difference2(B, A), NA)

  expect_error(.union(A, B), NA)
  expect_error(.union(B, B), NA)
  expect_error(.union(B, A), NA)

})

test_that("fcaR operates on sparse sets II", {

  A <- Matrix::Matrix(c(FALSE, TRUE, FALSE), nrow = 3, ncol = 1)
  B <- matrix(1, nrow = 3, ncol = 5)

  expect_error(.difference2(A, B), NA)
  expect_error(.difference2(B, B), NA)
  expect_error(.difference2(B, A), NA)

  expect_error(.union(A, B), NA)
  expect_error(.union(B, B), NA)
  expect_error(.union(B, A), NA)

})

test_that("fcaR uses class Set", {

  attributes <- paste0("P", 1:6)

  expect_error(A <- Set$new(attributes = attributes), NA)
  expect_error(A$assign(attributes = "P1", values = 0.3), NA)

  expect_error(A["P1"], NA)
  expect_is(A["P1"], "Set")
  expect_equal(A["P1"]$cardinal(), 0.3)

  expect_is(A$get_vector(), "Matrix")

  expect_equal(A$get_attributes(), attributes)

  expect_equal(A$length(), 6)

  expect_output(A$print())

  expect_is(A$to_latex(FALSE), "character")
  expect_is(capture_output(A$to_latex(TRUE)), "character")

  expect_true(A %<=% A)

  expect_error(v <- as_vector(A), NA)
  expect_error(A2 <- as_Set(v), NA)

  expect_true(A %==% A2)

})

test_that("fcaR computes operations of Sets", {

  attributes <- paste0("P", 1:6)

  expect_error(A <- Set$new(attributes = attributes), NA)
  expect_error(A$assign(attributes = "P1", values = 0.5), NA)

  expect_error(B <- Set$new(attributes = attributes), NA)
  expect_error(B$assign(attributes = "P1", values = 0.3), NA)

  expect_error(A %-% B, NA)
  expect_error(B %-% A, NA)

  # Build two sparse sets
  S <- Set$new(attributes = c("A", "B", "C"))
  S$assign(A = 1, B = 1)
  T <- Set$new(attributes = c("A", "B", "C"))
  T$assign(A = 1, C = 1)

  # Intersection
  expect_error(S %&% T, NA)

  # Build two sparse sets
  S <- Set$new(attributes = c("A", "B", "C"))
  S$assign(A = 1, B = 1)
  T <- Set$new(attributes = c("A", "B", "C"))
  T$assign(C = 1)

  # Union
  expect_error(S %|% T, NA)

})
neuroimaginador/fcaR documentation built on Dec. 10, 2023, 10:23 p.m.