tests/testthat/test-utils.R

library(testthat)
library(assertthat)

test_that("multiplication works", {
  expect_equal(2 * 2, 4)
})


is_valid(generate_board_mat())
is_valid(generate_board_mat(n=1))
expect_error(is_valid(c(1)))
expect_error(is_valid(matrix(0, nrow = 2, ncol = 3)))
expect_error(is_valid(matrix(3, nrow = 3, ncol = 3)))


m1 = generate_board_mat()
test_that("generate_board_mat() works on default args ", {
  expect_true(is.matrix(m1) && dim(m1) == c(5,5) &&
                (all(m1 == 0 | m1 == 1)))
})

m2 = generate_board_mat(n = 3)
test_that("generate_board_mat() works on default args ", {
  expect_true(is.matrix(m2) && dim(m2) == c(3,3) &&
                (all(m2 == 0 | m2 == 1)))
})

m3 = generate_board_mat(n = 3, p = 0)
test_that("generate_board_mat() works on default args ", {
  expect_true(is.matrix(m3) && dim(m3) == c(3,3) &&
                (all(m3 == 1)))
})

m4 = generate_board_mat(n = 3, p = 1)
test_that("generate_board_mat() works on default args ", {
  expect_true(is.matrix(m4) && dim(m4) == c(3,3) &&
                (all(m4 == 0)))
})

test_that("generate_board_mat() preconditions hold", {
  expect_error(generate_board_mat(n=c(1,2)))
})

test_that("generate_board_mat() preconditions hold", {
  expect_error(generate_board_mat(n="asdf"))
})

test_that("generate_board_mat() preconditions hold", {
  expect_error(generate_board_mat(n=5.4))
})

test_that("generate_board_mat() preconditions hold", {
  expect_error(generate_board_mat(n=-5))
})


expect_error(generate_board_mat(matrix(3, ncol = 5, nrow = 6)))
m = generate_board_mat()

expect_equivalent(m, unclass(board(m)))
m = generate_board_mat(n=6, p = 0.75)

expect_equivalent(m, unclass(board(m)))
expect_equivalent(0.75, attr(board(m), "p"))
expect_equivalent(6, attr(board(m), "n"))

m = generate_board_mat(n=16, p = 0.15)

expect_equivalent(m, unclass(board(m)))
expect_error(board(n=-5))
expect_error(board(n=c(1,2)))
expect_error(board(n="asdf"))
expect_error(board(n=-5))


load(url("https://raw.githubusercontent.com/benjaminleroy/36-350-summer-data/master/Week5/percolate_test.Rdata"))
l1 = read_boards("https://raw.githubusercontent.com/benjaminleroy/36-350-summer-data/master/Week5/percolation_write_test.txt")
expect_true(identical(board_list, l1))


t1 = read_boards("https://raw.githubusercontent.com/benjaminleroy/36-350-summer-data/master/Week5/percolation_write_test1.txt")
test_that("contract test for read boards",
          expect_true(length(t1) == 1 && is.na(t1[[1]]))
)
t1 = read_boards("https://raw.githubusercontent.com/benjaminleroy/36-350-summer-data/master/Week5/percolation_write_test2.txt")
test_that("contract test for read boards",
          expect_true(length(t1) == 1 && is.na(t1[[1]]))
)
t1 = read_boards("https://raw.githubusercontent.com/benjaminleroy/36-350-summer-data/master/Week5/percolation_write_test3.txt")
test_that("contract test for read boards",
          expect_true(length(t1) == 1 && is.na(t1[[1]]))
)
t1 = read_boards("https://raw.githubusercontent.com/benjaminleroy/36-350-summer-data/master/Week5/percolation_write_test4.txt")
test_that("contract test for read boards",
          expect_true(length(t1) == 1 && is.na(t1[[1]]))
)
t1 = read_boards("https://raw.githubusercontent.com/benjaminleroy/36-350-summer-data/master/Week5/percolation_write_test5.txt")
test_that("contract test for read boards",
          expect_true(length(t1) == 1 && is.na(t1[[1]]))
)
t1 = read_boards("https://raw.githubusercontent.com/benjaminleroy/36-350-summer-data/master/Week5/percolation_write_test6.txt")
test_that("contract test for read boards",
          expect_true(length(t1) == 1 && is.na(t1[[1]]))
)
Achowdh1/percolate documentation built on Oct. 30, 2019, 4:09 a.m.