tests/testthat/test-itee.R

test_that("i_tee returns n independent numeric vectors", {
  # Iterate through each of the iterators without any order in mind
  iter_list <- i_tee(1:5, n=3)
  expect_equal(nextOr(iter_list[[1]], NA), 1)
  expect_equal(nextOr(iter_list[[1]], NA), 2)
  expect_equal(nextOr(iter_list[[1]], NA), 3)

  expect_equal(nextOr(iter_list[[2]], NA), 1)
  expect_equal(nextOr(iter_list[[2]], NA), 2)

  expect_equal(nextOr(iter_list[[3]], NA), 1)
  expect_equal(nextOr(iter_list[[3]], NA), 2)

  expect_equal(nextOr(iter_list[[1]], NA), 4)
  expect_equal(nextOr(iter_list[[1]], NA), 5)
  expect_equal(nextOr(iter_list[[1]], NA), NA)

  expect_equal(nextOr(iter_list[[2]], NA), 3)
  expect_equal(nextOr(iter_list[[2]], NA), 4)
  expect_equal(nextOr(iter_list[[2]], NA), 5)
  expect_equal(nextOr(iter_list[[2]], NA), NA)

  expect_equal(nextOr(iter_list[[3]], NA), 3)
  expect_equal(nextOr(iter_list[[3]], NA), 4)
  expect_equal(nextOr(iter_list[[3]], NA), 5)
  expect_equal(nextOr(iter_list[[3]], NA), NA)

  # After the iterators are exhausted, ensure that they are truly exhausted
  expect_equal(nextOr(iter_list[[1]], NA), NA)
  expect_equal(nextOr(iter_list[[2]], NA), NA)
  expect_equal(nextOr(iter_list[[3]], NA), NA)
})

# Based on GitHub Issue #36
test_that("i_tee returns n independent numeric vectors based on n iterators", {
  # Iterate through each of the iterators without any order in mind
  it <- iteror(1:5)
  iter_list <- i_tee(it, n=3)
  expect_equal(nextOr(iter_list[[1]], NA), 1)
  expect_equal(nextOr(iter_list[[1]], NA), 2)
  expect_equal(nextOr(iter_list[[1]], NA), 3)

  expect_equal(nextOr(iter_list[[2]], NA), 1)
  expect_equal(nextOr(iter_list[[2]], NA), 2)

  expect_equal(nextOr(iter_list[[3]], NA), 1)
  expect_equal(nextOr(iter_list[[3]], NA), 2)

  expect_equal(nextOr(iter_list[[1]], NA), 4)
  expect_equal(nextOr(iter_list[[1]], NA), 5)
  expect_equal(nextOr(iter_list[[1]], NA), NA)

  expect_equal(nextOr(iter_list[[2]], NA), 3)
  expect_equal(nextOr(iter_list[[2]], NA), 4)
  expect_equal(nextOr(iter_list[[2]], NA), 5)
  expect_equal(nextOr(iter_list[[2]], NA), NA)

  expect_equal(nextOr(iter_list[[3]], NA), 3)
  expect_equal(nextOr(iter_list[[3]], NA), 4)
  expect_equal(nextOr(iter_list[[3]], NA), 5)
  expect_equal(nextOr(iter_list[[3]], NA), NA)

  # After the iterators are exhausted, ensure that they are truly exhausted
  expect_equal(nextOr(iter_list[[1]], NA), NA)
  expect_equal(nextOr(iter_list[[2]], NA), NA)
  expect_equal(nextOr(iter_list[[3]], NA), NA)
})

Try the iterors package in your browser

Any scripts or data that you put into this service are public.

iterors documentation built on May 31, 2023, 5:36 p.m.