tests/testthat/test-rope.R

test_that("rope() returns the correct values.", {
  expect_equal(xtr_rope(NA_real_), NA_real_)
  expect_equal(xtr_rope(NA_integer_), NA_real_)
  expect_equal(xtr_rope(c(NA_integer_, 1:2)), NA_real_)
  expect_equal(xtr_rope(c(NA_integer_, 1:2), na_rm = TRUE), 0)
  expect_equal(xtr_rope(c(NA_integer_, 1), na_rm = TRUE), NA_real_)
  expect_equal(xtr_rope(c(NA_integer_, 0:1), na_rm = TRUE), 0.5)
  expect_equal(xtr_rope(c(NA_integer_, 0), na_rm = TRUE), NA_real_)
  expect_equal(xtr_rope(c(NA_integer_, NA_integer_, 0), na_rm = TRUE), NA_real_)
  expect_equal(xtr_rope(numeric(0)), NA_real_)
  expect_equal(xtr_rope(seq(-0.1, 0.1, by = 0.01)), 1)
  expect_equal(xtr_rope(0), NA_real_)
  expect_equal(xtr_rope(1:100), 0)
  expect_equal(xtr_rope(c(0, Inf)), 0.5)
  expect_equal(xtr_rope(c(rep(Inf, 19), 0)), 0.05)
  expect_equal(xtr_rope(c(Inf, Inf)), 0)
  expect_equal(xtr_rope(c(-Inf, Inf)), 0)
  expect_equal(xtr_rope(seq(0, 1, length.out = 1e3)), 0.1)
  expect_equal(xtr_rope(seq(-1, 1, length.out = 2e3)), 0.1)
  expect_equal(xtr_rope(seq(-0.1, 0.3, length.out = 2e3)), 0.5)
  expect_equal(xtr_rope(seq(-0.1, 0.3, length.out = 2e3), level = 0.5), 0.2460)
})

Try the extras package in your browser

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

extras documentation built on July 16, 2026, 1:07 a.m.