tests/testthat/test_gcd.R

context("GCD")

test_that("The gcd works", {
  expect_equal(gcd(integer(0), integer(0)), integer(0))
  expect_equal(gcd(5L, 5L), 5L)
  expect_equal(gcd(5L, 0L), 5L)
  expect_equal(gcd(c(154, 32, 105, 29), c(42,12)), c(14L, 4L, 21L, 1L))
})

test_that("The scm works", {
  expect_equal(scm(integer(0), integer(0)), integer(0))
  expect_equal(scm(5L, 5L), 5L)
  expect_equal(scm(5L, 0L), 0L)
  expect_equal(scm(c(154, 32, 105, 29), c(42,12)), c(462L, 96L, 210L, 348L))
})

test_that("Reduction functions", {
  expect_equal(Rscm(c(12, 24, 36), 42), 504L)
  expect_equal(Rscm(5), 5L)
  expect_equal(Rscm(double(0)), integer(0))

  expect_equal(Rgcd(c(12, 24, 36), 42), 6L)
  expect_equal(Rgcd(5), 5L)
  expect_equal(Rgcd(double(0)), integer(0))
})

test_that("coprime works", {
  expect_true(coprime(35,99))
  expect_false(coprime(72, 210))
  expect_equal(coprime(c(26:27, 39), 13), c(FALSE, TRUE, FALSE))
  expect_equal(coprime(99, integer(0)), logical(0))
})
Ironholds/primes documentation built on Feb. 1, 2024, 1:26 a.m.