tests/testthat/test-decbins.R

# Testing decimal -> binary conversion ------------------------------------


test_that("Decimal -> binary works for selected scalars", {
  expect_equal( d2b(0), 0)
  expect_equal( d2b(1), 1)
  expect_equal( d2b(10), c(1,0,1,0))
})



s <- quote(1:256)

test_that(paste0("Decimal -> binary returns proper numeric vectors for ", deparse(s)), {
  rval <- lapply(eval(s), d2b)
  expect_type(rval, "list")
  expect_true( all(vapply(rval, is.numeric, logical(1))) )
  expect_equal(
    vapply(rval, function(x) sum(2^seq(length(x)-1, 0) * x), numeric(1)),
    eval(s)
  )
})




# Testing binary -> decimal -----------------------------------------------

test_that("Binary -> decimal work for selected numbers", {
  expect_equal(b2d(1), 1)
  expect_equal(b2d(0), 0)
})

test_that("Binary -> decimal works for character input", {
  expect_equal(b2d(c(0,0,1)), 1)
})





# Testing decimal <-> binary conversion -----------------------------------

s <- quote(1:256)
test_that(paste0("Conversion works for numbers ", deparse(s)), {
  # Conversions
  d <- data.frame(dec = eval(s))
  d$xbin <- lapply(d$dec, d2b)
  d$xdec <- lapply(d$xbin, b2d)
  
  expect_false( any(with(d, dec != xdec)) )
})
mbojan/rgraph6 documentation built on Feb. 4, 2024, 3:40 p.m.