Nothing
test_that("transform1d()", {
m <- transform1d(diag(2L))
expect_true(is_transform1d(m))
expect_equal(m, as_transform1d(m))
expect_equal(m, as_transform1d(diag(1L)))
expect_error(as_transform1d(t(translate1d(as_coord1d(1)))))
expect_error(as_transform1d(m + 2))
x <- c(2, 5, 7)
p1 <- as_coord1d(x = x)
expect_equal(p1, p1$transform()$transform(diag(2L)))
skip_if_not(getRversion() >= "4.3.0")
expect_true(is_transform1d(m %*% m))
})
test_that("transform2d()", {
m <- transform2d(diag(3))
expect_true(is_transform2d(m))
expect_equal(m, as_transform2d(m))
expect_equal(m, as_transform2d(diag(2)))
x <- c(2, 5, 7)
y <- c(3, 4, 6)
p1 <- as_coord2d(x = x, y = y)
expect_equal(p1, p1$transform()$transform(diag(3)))
skip_if_not(getRversion() >= "4.3.0")
expect_true(is_transform2d(m %*% m))
})
test_that("transform3d()", {
m <- transform3d(diag(4))
expect_true(is_transform3d(m))
expect_true(is_transform3d(solve(m)))
expect_error(as_transform3d(t(translate3d(as_coord3d(1, 2, 3)))))
expect_error(as_transform3d(m + 2))
expect_equal(m, as_transform3d(m))
expect_equal(m, as_transform3d(diag(3)))
x <- c(2, 5, 7)
y <- c(3, 4, 6)
z <- c(4, 9, 3)
p1 <- as_coord3d(x = x, y = y, z = z)
expect_equal(p1, p1$transform()$transform(diag(4)))
skip_if_not(getRversion() >= "4.3.0")
expect_true(is_transform3d(m %*% m))
})
test_that("at_matrix methods", {
m <- transform2d(diag(3))
expect_true(is_transform2d(solve(m)))
expect_false(is_transform2d(as.matrix(m)))
expect_false(is_transform2d(t(m)))
expect_false(is_transform2d(m + 2))
expect_error(as_transform2d(m + 2))
expect_false(is_transform2d(m + m))
expect_false(is_transform2d(abs(m)))
expect_false(is_transform2d(Re(m)))
expect_error(as_transform2d(t(translate2d(x = 2, y = 2))))
})
test_that("permute2d()", {
x <- c(2, 5, 7)
y <- c(3, 4, 6)
p <- as_coord2d(x, y)
expect_equal(p, p$clone()$permute())
expect_equal(as_coord2d(y, x), p$clone()$permute("yx"))
})
test_that("permute3d()", {
x <- c(2, 5, 7)
y <- c(3, 4, 6)
z <- c(4, 9, 3)
p <- as_coord3d(x, y, z)
expect_equal(p, p$clone()$permute())
expect_equal(as_coord3d(x, z, y), p$clone()$permute("xzy"))
expect_equal(as_coord3d(y, x, z), p$clone()$permute("yxz"))
expect_equal(as_coord3d(y, z, x), p$clone()$permute("yzx"))
expect_equal(as_coord3d(z, x, y), p$clone()$permute("zxy"))
expect_equal(as_coord3d(z, y, x), p$clone()$permute("zyx"))
})
test_that("project1d()", {
x <- c(2, 5, 7)
p1 <- as_coord1d(x = x)$project(as_coord1d(x=3))
expect_equal(p1$x, rep(3, 3))
})
test_that("project2d()", {
x <- c(2, 5, 7)
y <- c(3, 4, 6)
p1 <- as_coord2d(x = x, y = y)$project(as_line2d("x-axis"))
expect_equal(p1$x, x)
expect_equal(p1$y, rep(0, 3))
p2 <- as_coord2d(x = x, y = y)$project(degrees(90))
expect_equal(p2$x, rep(0, 3))
expect_equal(p2$y, y)
p3 <- as_coord2d(x = x, y = y)$project(scale = 0.5)
expect_equal(p3$x, x + 0.5 * y)
expect_equal(p3$y, rep(0, 3))
l4 <- as_line2d(a = 0, b = 1, c = -4)
p4 <- as_coord2d(x = x, y = y)$project(l4)
expect_equal(p4$x, x)
expect_equal(p4$y, rep(4, 3))
l5 <- as_line2d(a = 1, b = 0, c = -4)
p5 <- as_coord2d(x = x, y = y)$project(l5)
expect_equal(p5$x, rep(4, 3))
expect_equal(p5$y, y)
x6 <- c(-5, 5, 5)
y6 <- c(5, -5, 5)
l6 <- as_line2d(a = 1, b = -1, c = 0)
p6 <- as_coord2d(x = x6, y = y6)$project(l6)
expect_equal(p6$x, c(0, 0, 5))
expect_equal(p6$y, c(0, 0, 5))
l7 <- as_line2d(a = 1, b = -1, c = 2)
p7 <- as_coord2d(x = x6, y = y6)$project(l7)
expect_equal(p7$x, c(-1, -1, 4))
expect_equal(p7$y, c(1, 1, 6))
})
test_that("project3d()", {
x <- c(2, 5, 7)
y <- c(3, 4, 6)
z <- c(4, 9, 3)
p1 <- as_coord3d(x, y, z)$project()
expect_equal(p1$x, x)
expect_equal(p1$y, y)
expect_equal(p1$z, rep(0, 3))
p2 <- as_coord3d(x, y, z)$project("xz-plane")
expect_equal(p2$x, x)
expect_equal(p2$y, rep(0, 3))
expect_equal(p2$z, z)
p3 <- as_coord3d(x, y, z)$project("yz-plane")
expect_equal(p3$x, rep(0, 3))
expect_equal(p3$y, y)
expect_equal(p3$z, z)
alpha <- angle(60, "degrees")
scale <- 0.5
p4 <- as_coord3d(x, y, z)$project(scale = scale, alpha = alpha)
expect_equal(p4$x, x + scale * cos(alpha) * z)
expect_equal(p4$y, y + scale * sin(alpha) * z)
expect_equal(p4$z, rep(0, 3))
p42 <- as_coord3d(x, y, z)$project(scale = scale, alpha = 60, unit = "degrees")
p5 <- as_coord3d(x, y, z)$permute("xzy")$project(scale = scale, alpha = alpha)
expect_equal(p5$x, x + scale * cos(alpha) * y)
expect_equal(p5$y, z + scale * sin(alpha) * y)
expect_equal(p5$z, rep(0, 3))
# Planes not on origin
plane <- as_plane3d(a = 0, b = 0, c = 1, d = -2)
p6 <- as_coord3d(x, y, z)$project(plane = plane, scale = scale, alpha = alpha)
expect_equal(p6$x, x + scale * cos(alpha) * (z - 2))
expect_equal(p6$y, y + scale * sin(alpha) * (z - 2))
expect_equal(p6$z, rep(2, 3))
# Plane through origin, not axis-aligned
pl10 <- as_plane3d(a = -1, b = -1, c = 1, d = 0)
p10 <- as_coord3d(x = -5, y = -5, z = 5)$project(pl10)
expect_equal(p10$x, 0)
expect_equal(p10$y, 0)
expect_equal(p10$z, 0)
})
test_that("reflect1d()", {
x <- c(2, 5, 7)
p1 <- as_coord1d(x = x)$reflect("origin")
expect_equal(p1$x, -x)
p2 <- as_coord1d(x = x)$reflect(as_coord1d(x=5))
expect_equal(p2$x, c(8, 5, 3))
})
test_that("reflect2d()", {
x <- c(2, 5, 7)
y <- c(3, 4, 6)
p1 <- as_coord2d(x = x, y = y)$reflect("x-axis")
expect_equal(p1$x, x)
expect_equal(p1$y, -y)
p1 <- as_coord2d(x = x, y = y)$reflect(as_line2d(a = 0, b = 1, c = 0))
expect_equal(p1$x, x)
expect_equal(p1$y, -y)
p2 <- as_coord2d(x = x, y = y)$reflect("y-axis")
expect_equal(p2$x, -x)
expect_equal(p2$y, y)
p2 <- as_coord2d(x = x, y = y)$reflect(as_line2d(a = 1, b = 0, c = 0))
expect_equal(p2$x, -x)
expect_equal(p2$y, y)
p3 <- as_coord2d(x = x, y = y)$reflect(degrees(135))
expect_equal(p3$x, -y)
expect_equal(p3$y, -x)
p4 <- as_coord2d(x = x, y = y)$reflect(as_coord2d(1, 1))
expect_equal(p4$x, -y)
expect_equal(p4$y, -x)
lh <- as_line2d(a = 0, b = 1, c = -2) # y = 2
p5 <- as_coord2d(x = x, y = y)$reflect(lh)
expect_equal(p5$x, x)
expect_equal(p5$y, 2 -(y - 2))
lv <- as_line2d(a = 1, b = 0, c = -2) # x = 2
p6 <- as_coord2d(x = x, y = y)$reflect(lv)
expect_equal(p6$x, 2 -(x - 2))
expect_equal(p6$y, y)
x6 <- c(-5, 5, 5)
y6 <- c(5, -5, 5)
l7 <- as_line2d(a = 1, b = -1, c = 2)
p7 <- as_coord2d(x = x6, y = y6)$reflect(l7)
expect_equal(p7$x, c(3, -7, 3))
expect_equal(p7$y, c(-3, 7, 7))
})
test_that("reflect3d()", {
x <- c(2, 5, 7)
y <- c(3, 4, 6)
z <- c(4, 9, 3)
p1 <- as_coord3d(x = x, y = y, z = z)$reflect("xy-plane")
expect_equal(p1$x, x)
expect_equal(p1$y, y)
expect_equal(p1$z, -z)
p1a <- as_coord3d(x = x, y = y, z = z)$reflect(as_plane3d(a=0, b=0, c=1, d=-2))
expect_equal(p1a$x, x)
expect_equal(p1a$y, y)
expect_equal(p1a$z, 2-(z-2))
p2 <- as_coord3d(x = x, y = y, z = z)$reflect("xz-plane")
expect_equal(p2$x, x)
expect_equal(p2$y, -y)
expect_equal(p2$z, z)
p2a <- as_coord3d(x = x, y = y, z = z)$reflect(as_plane3d(a=0, b=1, c=0, d=-2))
expect_equal(p2a$x, x)
expect_equal(p2a$y, 2-(y-2))
expect_equal(p2a$z, z)
p3 <- as_coord3d(x = x, y = y, z = z)$reflect("yz-plane")
expect_equal(p3$x, -x)
expect_equal(p3$y, y)
expect_equal(p3$z, z)
p3a <- as_coord3d(x = x, y = y, z = z)$reflect(as_plane3d(a=1, b=0, c=0, d=-2))
expect_equal(p3a$x, 2-(x-2))
expect_equal(p3a$y, y)
expect_equal(p3a$z, z)
p4 <- as_coord3d(x = x, y = y, z = z)$reflect(as_coord3d(1, 0, 1))
expect_equal(p4$x, -z)
expect_equal(p4$y, y)
expect_equal(p4$z, -x)
# Planes not on origin
plh <- as_plane3d(a = 0, b = 1, c = 0, d = -2) # y = 2
p5 <- as_coord3d(x = x, y = y, z = 0)$reflect(plh)
expect_equal(p5$x, x)
expect_equal(p5$y, 2 -(y - 2))
expect_equal(p5$z, rep_len(0, 3))
plv <- as_plane3d(a = 1, b = 0, c = 0, d = -2) # x = 2
p6 <- as_coord3d(x = x, y = y, z = 0)$reflect(plv)
expect_equal(p6$x, 2 -(x - 2))
expect_equal(p6$y, y)
expect_equal(p6$z, rep_len(0, 3))
# Planes not on origin, not axis-aligned
x6 <- c(-5, 5, 5)
y6 <- c(5, -5, 5)
pl7 <- as_plane3d(a = 1, b = -1, c = 0, d = 2) # y = x + 2
p7 <- as_coord3d(x = x6, y = y6, z = 0)$reflect(pl7)
expect_equal(p7$x, c(3, -7, 3))
expect_equal(p7$y, c(-3, 7, 7))
expect_equal(p7$z, rep_len(0, 3))
pl8 <- as_plane3d(a = 1, b = 0, c = -1, d = 2) # z = x + 2
p8 <- as_coord3d(x = x6, y = 0, z = y6)$reflect(pl8)
expect_equal(p8$x, c(3, -7, 3))
expect_equal(p8$y, rep_len(0, 3))
expect_equal(p8$z, c(-3, 7, 7))
pl9 <- as_plane3d(a = 0, b = -1, c = 1, d = 2) # y = z + 2
p9 <- as_coord3d(x = 0, y = y6, z = x6)$reflect(pl9)
expect_equal(p9$x, rep_len(0, 3))
expect_equal(p9$y, c(-3, 7, 7))
expect_equal(p9$z, c(3, -7, 3))
# Plane through origin, not axis-aligned
pl10 <- as_plane3d(a = -1, b = -1, c = 1, d = 0)
p10 <- as_coord3d(x = -5, y = -5, z = 5)$reflect(pl10)
expect_equal(p10$x, 5)
expect_equal(p10$y, 5)
expect_equal(p10$z, -5)
})
test_that("rotate2d()", {
x <- c(2, 5, 7)
y <- c(3, 4, 6)
p1 <- as_coord2d(x = x, y = y)$rotate(90, "degrees")
expect_equal(p1$x, c(-3, -4, -6))
expect_equal(p1$y, c(2, 5, 7))
p2 <- as_coord2d(x = x, y = y)$rotate(-0.5, "pi-radians")
expect_equal(p2$x, c(3, 4, 6))
expect_equal(p2$y, c(-2, -5, -7))
p3 <- as_coord2d(x = x, y = y)$rotate(c(90, 0, -90), "degrees")
expect_equal(p3$x, c(-3, 5, 6))
expect_equal(p3$y, c(2, 4, -7))
skip_if_not(getRversion() >= "4.3.0")
expect_equal(rotate2d(90, "degrees"),
permute2d("yx") %*% scale2d(-1, 1))
})
test_that("rotate3d()", {
skip_if_not_installed("withr")
withr::local_options(affiner_options(default = TRUE))
x <- c(2, 5, 7)
y <- c(3, 4, 6)
z <- c(5, 2, 3)
p1 <- as_coord3d(x = x, y = y, z = z)$rotate("z-axis", 90, "degrees")
expect_equal(p1$x, -y)
expect_equal(p1$y, x)
expect_equal(p1$z, z)
p2 <- as_coord3d(x = x, y = y, z = z)$rotate("x-axis", 90, "degrees")
expect_equal(p2$x, x)
expect_equal(p2$y, -z)
expect_equal(p2$z, y)
expect_equal(rotate3d_to_AA(rotate3d("x-axis", 90, "degrees")),
list(axis = as_coord3d(1, 0, 0), theta = angle(90, "degrees")))
expect_equal(rotate3d_to_AA(rotate3d("y-axis", 90, "degrees")),
list(axis = as_coord3d(0, 1, 0), theta = angle(90, "degrees")))
expect_equal(rotate3d_to_AA(rotate3d(as_coord3d(0.5, 0.5, 0.7071068), 180, "degrees")),
list(axis = as_coord3d(0.5, 0.5, 0.7071068), theta = angle(180, "degrees")),
tolerance = 1e-6)
expect_equal(rotate3d_to_AA(rotate3d(as_coord3d(-0.6, 0.6, 0.8), 180, "degrees")),
list(axis = as_coord3d(-0.5144958, 0.5144958, 0.6859943), theta = angle(180, "degrees")),
tolerance = 1e-6)
expect_equal(rotate3d_to_AA(rotate3d(as_coord3d(0.6, -0.6, 0.5291503), 180, "degrees")),
list(axis = as_coord3d(0.6, -0.6, 0.5291503), theta = angle(180, "degrees")),
tolerance = 1e-6)
expect_equal(rotate3d_to_AA(rotate3d(as_coord3d(-0.6, -0.6, 0.5291503), 180, "degrees")),
list(axis = as_coord3d(-0.6, -0.6, 0.5291503), theta = angle(180, "degrees")),
tolerance = 1e-6)
expect_equal(rotate3d_to_AA(rotate3d(as_coord3d(-0.6, 0.6, 0.5291503), 0, "degrees")),
list(axis = as_coord3d(0, 0, 1), theta = angle(0, "degrees")),
tolerance = 1e-6)
})
test_that("scale1d()", {
x <- c(2, 5, 7)
p1 <- as_coord1d(x = x)$scale(2)
expect_equal(p1$x, 2 * x)
p2 <- as_coord1d(x = x)$scale(rep(2, 3))
expect_equal(p1, p2)
})
test_that("scale2d()", {
x <- c(2, 5, 7)
y <- c(3, 4, 6)
p1 <- as_coord2d(x = x, y = y)$scale(2, 3)
expect_equal(p1$x, 2 * x)
expect_equal(p1$y, 3 * y)
p2 <- as_coord2d(x = x, y = y)$scale(rep(2, 3), rep(3, 3))
expect_equal(p1, p2)
})
test_that("scale3d()", {
x <- c(2, 5, 7)
y <- c(3, 4, 6)
z <- c(5, 2, 3)
p1 <- as_coord3d(x = x, y = y, z = z)$scale(2, 3, 4)
expect_equal(p1$x, 2 * x)
expect_equal(p1$y, 3 * y)
expect_equal(p1$z, 4 * z)
p2 <- as_coord3d(x = x, y = y, z = z)$scale(rep(2, 3), rep(3, 3), rep(4, 3))
expect_equal(p1, p2)
})
test_that("shear2d()", {
x <- c(2, 5, 7)
y <- c(3, 4, 6)
p1 <- as_coord2d(x = x, y = y)$shear(x = 1)
expect_equal(p1$x, x + y)
expect_equal(p1$y, y)
p2 <- as_coord2d(x = x, y = y)$shear(y = 1)
expect_equal(p2$x, x)
expect_equal(p2$y, y + x)
p3 <- as_coord2d(x = x, y = y)$shear(x = 1, y = 1)
expect_equal(p3$x, x + y)
expect_equal(p3$y, y + x)
})
test_that("shear3d()", {
x <- c(2, 5, 7)
y <- c(3, 4, 6)
z <- c(5, 2, 3)
p1 <- as_coord3d(x = x, y = y, z = z)$shear(xy = 1, xz = 0.5)
expect_equal(p1$x, x + y + 0.5 * z)
expect_equal(p1$y, y)
expect_equal(p1$z, z)
p2 <- as_coord3d(x = x, y = y, z = z)$shear(zx = 1, yx = 1)
expect_equal(p2$x, x)
expect_equal(p2$y, y + x)
expect_equal(p2$z, z + x)
})
test_that("translate1d()", {
x <- c(2, 5, 7)
p0 <- as_coord1d(x = x)
vec <- as_coord1d(x = 2)
p1 <- p0$clone()$translate(vec)
expect_equal(p1$x, x + 2)
p2 <- p0$clone()$translate("origin")
expect_equal(p2$x, x)
p3 <- p0$clone()$translate(p0)
expect_equal(p3$x, x + x)
expect_equal(translate1d("origin"),
translate1d(as_coord1d(0)))
})
test_that("translate2d()", {
x <- c(2, 5, 7)
y <- c(3, 4, 6)
p0 <- as_coord2d(x = x, y = y)
vec <- as_coord2d(x = 2, y = 3)
p1 <- p0$clone()$translate(vec)
expect_equal(p1$x, x + 2)
expect_equal(p1$y, y + 3)
p2 <- p0$clone()$translate(angle(90, "degrees"), radius = 2)
expect_equal(p2$x, x)
expect_equal(p2$y, y + 2)
p3 <- p0$clone()$translate(p0)
expect_equal(p3$x, x + x)
expect_equal(p3$y, y + y)
expect_equal(translate2d(angle(90, "degrees"), radius = 1),
translate2d(as_coord2d(0, 1)))
})
test_that("translate3d()", {
x <- c(2, 5, 7)
y <- c(3, 4, 6)
z <- c(5, 2, 3)
p0 <- as_coord3d(x = x, y = y, z = z)
expect_equal(p0, p0$clone()$translate("origin"))
vec <- as_coord3d(x = 2, y = 3, z = 1)
p1 <- p0$clone()$translate(vec)
expect_equal(p1$x, x + 2)
expect_equal(p1$y, y + 3)
expect_equal(p1$z, z + 1)
p3 <- p0$clone()$translate(p0)
expect_equal(p3$x, x + x)
expect_equal(p3$y, y + y)
expect_equal(p3$z, z + z)
expect_equal(translate3d(as_coord3d(3, 2, 1)),
translate3d(as_coord2d(3, 2), z = 1))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.