tests/testthat/test-psi_equation.R

test_that("`psi_...()` works", {

  d <- "euclidean"

  diagonal <- TRUE

  x <- zoo_simulate(
    name = "x",
    rows = 20,
    seasons = 1,
    seed = 1
    )

  expect_true(zoo::is.zoo(x))
  expect_true(nrow(zoo::coredata(x)) == 20)

  y <- zoo_simulate(
    name = "y",
    rows = 30,
    seasons = 1,
    seed = 2
    )

  expect_true(zoo::is.zoo(y))
  expect_true(nrow(zoo::coredata(y)) == 30)

  dist_matrix <- psi_distance_matrix(
    x = x,
    y = y,
    distance = d
    )

  expect_true(is.matrix(dist_matrix))
  expect_true(ncol(dist_matrix) == 20)
  expect_true(nrow(dist_matrix) == 30)


  cost_matrix <- psi_cost_matrix(
    dist_matrix = dist_matrix,
    diagonal = diagonal
    )

  expect_true(is.matrix(cost_matrix))
  expect_equal(dim(dist_matrix), dim(cost_matrix))


  cost_path <- psi_cost_path(
    dist_matrix = dist_matrix,
    cost_matrix = cost_matrix,
    diagonal = diagonal
  )

  expect_true(is.data.frame(cost_path))
  expect_equal(colnames(cost_path), c("x", "y", "dist", "cost"))

  a <- psi_cost_path_sum(path = cost_path)

  expect_true(is.numeric(a))

  b <- psi_auto_sum(
    x = x,
    y = y,
    distance = d
    )

  expect_true(is.numeric(b))

  psi <- psi_equation(
    a = a,
    b = b,
    diagonal = diagonal
    )

  expect_true(is.numeric(psi))

  #compare with distantia
  expect_equal(
    distantia(
      tsl = list(x = x, y = y),
      distance = d
      )$psi,
    psi
    )

})
BlasBenito/distantia documentation built on Feb. 21, 2025, 2:48 a.m.