Nothing
test_that("We can rotate a 2D matrix", {
slice <- matrix(seq.int(9), nrow = 3, byrow = TRUE)
slice_rot_90 <- rotate2D(slice, degrees = 90)
slice_rot_180 <- rotate2D(slice, degrees = 180)
slice_rot_270 <- rotate2D(slice, degrees = 270)
expected_result_90 <- matrix(c(7, 4, 1, 8, 5, 2, 9, 6, 3), nrow = 3, byrow = TRUE)
expected_result_180 <- matrix(seq.int(9, 1), nrow = 3, byrow = TRUE)
expected_result_270 <- matrix(c(3, 6, 9, 2, 5, 8, 1, 4, 7), nrow = 3, byrow = TRUE)
expect_equal(rotate2D(slice, degrees = 0), slice)
expect_equal(rotate2D(slice, degrees = 360), slice)
expect_equal(slice_rot_90, expected_result_90)
expect_equal(slice_rot_180, expected_result_180)
expect_equal(slice_rot_270, expected_result_270)
expect_equal(rotate2D(seq.int(5)), seq.int(5)) # returned as is
expect_error(rotate2D(slice, degrees = 77)) # degrees not a multiple of 90
expect_error(rotate2D(array(seq(8), dim = c(2, 2, 2)))) # 3D array not allowed
})
test_that("We can flip a 2D matrix", {
slice <- matrix(seq.int(9), nrow = 3, byrow = TRUE)
flipped_h <- flip2D(slice, how = "horizontally")
flipped_v <- flip2D(slice, how = "vertically")
expected_h <- matrix(c(7, 8, 9, 4, 5, 6, 1, 2, 3), nrow = 3, byrow = TRUE)
expected_v <- matrix(c(3, 2, 1, 6, 5, 4, 9, 8, 7), nrow = 3, byrow = TRUE)
expect_equal(flipped_h, expected_h)
expect_equal(flipped_v, expected_v)
expect_equal(flip2D(slice, how = NULL), slice)
expect_equal(flip2D(seq.int(5)), seq.int(5)) # returned as is
expect_error(flip2D(array(seq(8), dim = c(2, 2, 2)))) # 3D array not allowed
expect_error(flip2D(slice, how = "dunno")) # invalid how
})
test_that("We can flip a 3D matrix", {
vdim <- c(1, 2, 3)
volume <- array(seq(6), dim = vdim)
flipped_1_h <- flip3D(volume, axis = 1, how = "horizontally")
flipped_1_v <- flip3D(volume, axis = 1, how = "vertically")
flipped_2_h <- flip3D(volume, axis = 2, how = "h")
flipped_2_v <- flip3D(volume, axis = 2, how = "v")
flipped_3_h <- flip3D(volume, axis = 3, how = "horizontally")
flipped_3_v <- flip3D(volume, axis = 3, how = "vertically")
# dimensions must never change when flipping values
expect_equal(dim(flipped_1_h), vdim)
expect_equal(dim(flipped_1_v), vdim)
expect_equal(dim(flipped_2_h), vdim)
expect_equal(dim(flipped_2_v), vdim)
expect_equal(dim(flipped_3_h), vdim)
expect_equal(dim(flipped_3_v), vdim)
expect_error(flip3D(seq.int(5))) # not a matrix
expect_error(flip3D(volume, how = "dunno")) # invalid how
expect_error(flip3D(volume, axis = 4)) # invalid axis
})
test_that("We can rotate a 3D matrix", {
vdim <- c(1, 2, 3)
volume <- array(seq(6), dim = vdim)
rotated_1_90 <- rotate3D(volume, axis = 1, degrees = 90L)
rotated_1_180 <- rotate3D(volume, axis = 1, degrees = 180L)
rotated_2_90 <- rotate3D(volume, axis = 2, degrees = 90L)
rotated_2_180 <- rotate3D(volume, axis = 2, degrees = 180L)
rotated_3_90 <- rotate3D(volume, axis = 3, degrees = 90L)
rotated_3_180 <- rotate3D(volume, axis = 3, degrees = 180L)
# dimensions may change when rotating values
expect_equal(dim(rotated_1_90), c(1, 3, 2))
expect_equal(dim(rotated_1_180), vdim)
expect_equal(dim(rotated_2_90), c(3, 2, 1))
expect_equal(dim(rotated_2_180), vdim)
expect_equal(dim(rotated_3_90), c(2, 1, 3))
expect_equal(dim(rotated_3_180), vdim)
expect_error(rotate3D(seq.int(5))) # not a matrix
expect_error(rotate3D(volume, axis = "dunno")) # invalid axis
expect_error(rotate3D(volume, axis = 4)) # invalid axis
expect_error(rotate3D(volume, degrees = 77)) # invalid degrees
})
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.