context("Distribution")
for(test in testlist) {
# Create the samc object
samc_obj <- test$samc
# Extract Q
Q <- samc_obj$q_matrix
Q <- as.matrix(Q)
# Prepare the occupancy data
occ_ras <- raster::raster(test$init)
pv <- as.vector(occ_ras)
pv <- pv[is.finite(pv)]
# Calculate P^t
Pt <- Q
for (i in 2:time) {
Pt <- Pt %*% Q
}
# Run the tests
test_that("Testing distribution(samc, time)", {
samc_obj$override <- TRUE
result <- distribution(samc_obj, time = time)
samc_obj$override <- FALSE
base_result <- Pt
expect_equal(dim(result), dim(base_result))
expect_equal(as.vector(result), as.vector(base_result))
})
test_that("Testing distribution(samc, origin, time)", {
result <- distribution(samc_obj, origin = row_vec[1], time = time)
result_char <- distribution(samc_obj, origin = as.character(row_vec[1]), time = time)
expect_equal(result, result_char)
base_result <- Pt[row_vec[1], ]
expect_equal(result, base_result, check.names = FALSE)
})
test_that("Testing distribution(samc, origin, time_vec)", {
result <- distribution(samc_obj, origin = row_vec[1], time = time_vec)
result_char <- distribution(samc_obj, origin = as.character(row_vec[1]), time = time_vec)
expect_equal(result, result_char)
for (i in 1:length(time_vec)) {
pt <- Q
for (j in 2:time_vec[i]) {
pt <- pt %*% Q
}
base_result <- pt[row_vec[1], ]
expect_equal(result[[i]], base_result, check.names = FALSE)
}
})
test_that("Testing distribution(samc, dest, time)", {
result <- distribution(samc_obj, dest = col_vec[1], time = time)
result_char <- distribution(samc_obj, dest = as.character(col_vec[1]), time = time)
expect_equal(result, result_char)
base_result <- Pt[, col_vec[1]]
expect_equal(result, base_result, check.names = FALSE)
})
test_that("Testing distribution(samc, dest, time_vec)", {
result <- distribution(samc_obj, dest = col_vec[1], time = time_vec)
result_char <- distribution(samc_obj, dest = as.character(col_vec[1]), time = time_vec)
expect_equal(result, result_char)
for (i in 1:length(time_vec)) {
pt <- Q
for (j in 2:time_vec[i]) {
pt <- Q %*% pt
}
base_result <- pt[, col_vec[1]]
expect_equal(result[[i]], base_result, check.names = FALSE)
}
})
test_that("Testing distribution(samc, origin, dest, time)", {
result <- distribution(samc_obj, origin = row_vec[1], dest = col_vec[1], time = time)
result_char <- distribution(samc_obj, origin = as.character(row_vec[1]), dest = as.character(col_vec[1]), time = time)
expect_equal(result, result_char)
base_result <- Pt[row_vec[1], col_vec[1]]
expect_equal(result, base_result)
})
test_that("Testing distribution(samc, origin, dest, time_vec)", {
result <- distribution(samc_obj, origin = row_vec[1], dest = col_vec[1], time = time_vec)
result_char <- distribution(samc_obj, origin = as.character(row_vec[1]), dest = as.character(col_vec[1]), time = time_vec)
expect_equal(result, result_char)
for (i in 1:length(time_vec)) {
pt <- Q
for (j in 2:time_vec[i]) {
pt <- pt %*% Q
}
base_result <- pt[row_vec[1], col_vec[1]]
expect_equal(result[[i]], base_result)
}
})
test_that("Testing distribution(samc, init, time)", {
result <- distribution(samc_obj, init = test$init, time = time)
base_result <- pv %*% (Pt)
expect_equal(as.vector(result), as.vector(base_result))
})
test_that("Testing distribution(samc, init, time_vec)", {
result <- distribution(samc_obj, init = test$init, time = time_vec)
for (i in 1:length(time_vec)) {
pt <- Q
for (j in 2:time_vec[i]) {
pt <- pt %*% Q
}
base_result <- pv %*% pt
expect_equal(result[[i]], as.vector(base_result))
}
})
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.