context("coo_ utilities")
# coo_check -----
test_that("coo_check works fine", {
expect_true(is_shp(coo_check(bot[1])))
expect_true(is_shp(coo_check(olea[1])))
expect_true(is_shp(coo_check(wings[1])))
expect_error(coo_check(flower[1]))
expect_false(is_shp("plop"))
expect_true(is_Out(coo_check(bot)))
bot[1] <- NA
expect_error(is_Out(coo_check(bot)))
expect_true(is_Opn(coo_check(olea)))
data(bot)
olea[1] <- NA
expect_error(is_Opn(coo_check(olea)))
data(olea)
expect_true(is_Ldk(coo_check(wings)))
wings[1] <- NA
expect_error(is_Ldk(coo_check(wings)))
data(wings)
expect_error(coo_check(flower))
})
# coo_nb -----
test_that("coo_nb works fine", {
expect_equal(coo_nb(coo_sample(bot[1], 45)), 45)
expect_equal(coo_nb(coo_sample(bot[1], 0)), 0)
expect_identical(sapply(bot$coo, function(x) nrow(x)), coo_nb(bot))
})
# coo_center -----
test_that("coo_center works fine", {
expect_equal(apply(coo_center(bot[1]), 2, mean), rep(0, 2))
expect_equal(sum(sapply(coo_center(bot)$coo, function(x) apply(x, 2, mean))), 0)
})
# coo_scale ----
test_that("coo_scale works fine", {
expect_equal(coo_centsize(coo_scale(bot[1])), 1)
expect_equal(sum(coo_centsize(coo_scale(bot))), length(bot))
})
# coo_scalex -----
test_that("coo_scalex works fine", {
expect_equal(diff(range(coo_scalex(coo_template(bot[1]), 1.5)[, 1])), diff(range(coo_template(bot[1])[, 1]))*1.5)
expect_equal(diff(range(coo_scalex(coo_template(olea[1]), 1/3)[, 1])), diff(range(coo_template(olea[1])[, 1]))*1/3)
})
# coo_scalex -----
test_that("coo_scaley works fine", {
expect_equal(diff(range(coo_scaley(coo_template(bot[1]), 1.5)[, 2])), diff(range(coo_template(bot[1])[, 2]))*1.5)
expect_equal(diff(range(coo_scaley(coo_template(olea[1]), 1/3)[, 2])), diff(range(coo_template(olea[1])[, 2]))*1/3)
})
# coo_template -----
test_that("coo_template works fine", {
expect_equal(max(coo_template(bot[1])), 0.5)
expect_equal(max(coo_template(olea[1])), 0.5)
expect_equal(max(coo_template(wings[1])), 0.5)
expect_equal(max(coo_template(wings[1], 5)), 5/2)
expect_equal(max(coo_template(wings[1], 0.01)), 0.01/2)
expect_equal(max(sapply(coo_template(bot)$coo, max)), 0.5)
expect_equal(max(sapply(coo_template(bot)$coo, min)), -0.5)
})
# coo_rotate ----
test_that("coo_rotate works fine", {
shp <- bot[1]
shp.rot <- coo_rotate(shp, pi/7)
nr <- nrow(shp)
expect_equal(.coo_angle_edge1(rbind(shp[24,], c(0, 0), c(1e3, 0))) - pi/7,
.coo_angle_edge1(rbind(shp.rot[24,], c(0, 0), c(1e3, 0))))
})
# coo_translate -----
test_that("coo_translate works fine", {
cp <- coo_centpos(bot[1])
cpt <- coo_centpos(coo_trans(bot[1], 123, -321))
expect_equal(cpt[1] - cp[1], 123)
expect_equal(cpt[2] - cp[2], -321)
})
# coo_centsize ----
test_that("coo_centsize works fine", {
expect_equal(coo_centsize(bot[1]), coo_centsize(coo_trans(bot[1], runif(1, -1e3, 1e3), runif(1, -1e3, 1e3))))
expect_equal(sum(coo_centsize(olea) -
coo_centsize(coo_trans(olea, runif(1, -1e3, 1e3), runif(1, -1e3, 1e3)))), 0)
})
# coo_area -----
test_that("coo_area works fine", {
expect_equal(coo_area(matrix(c(0, 0, 0, 1, 1, 1, 1, 0, 0, 0), nc=2, byrow=TRUE)), 1)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.