tests/testthat/test-Minkowski.R

context("Minkowski distance")

test_that("Minkowski distance is correct for default parameter p = 2", {
  minkowksi <- Minkowski()
  euclidean <- Euclidean()
  expect_equal(minkowksi(c(1,2,3), c(2,3,4)), euclidean(c(1,2,3), c(2,3,4)))
  expect_equal(minkowksi(-c(1,1,1), c(1,1,1)), euclidean(-c(1,1,1), c(1,1,1)))
  expect_equal(minkowksi(c(10,1,-2), c(0,-5,3)), euclidean(c(10,1,-2), c(0,-5,3)))
  expect_equal(minkowksi(c(1,2), c(1,2)), euclidean(c(1,2), c(1,2)))
  expect_equal(minkowksi(0, 0), euclidean(0, 0))
  expect_equal(minkowksi(0, Inf), euclidean(0, Inf))
})

test_that("Minkowski distance is correct for non-default parameter p = 3", {
  minkowksi <- Minkowski(p = 3)
  expect_equal(minkowksi(c(1,2,3), c(2,3,4)), 3**(1/3))
  expect_equal(minkowksi(-c(1,1,1), c(1,1,1)), (3*2**3)**(1/3))
  expect_equal(minkowksi(c(10,1,-2), c(0,-5,3)), (10**3 + 6**3 + 5**3)**(1/3))
  expect_equal(minkowksi(c(1,2), c(1,2)), 0)
  expect_equal(minkowksi(0, 0), 0)
  expect_equal(minkowksi(0, Inf), Inf)
})

Try the comparator package in your browser

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

comparator documentation built on March 18, 2022, 6:15 p.m.