File: test_extractSubList.R

package info (click to toggle)
r-cran-bbmisc 1.7-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 1,156 kB
  • ctags: 13
  • sloc: ansic: 152; sh: 9; makefile: 3
file content (64 lines) | stat: -rw-r--r-- 2,364 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
context("extractSubList")

test_that("extractSubList", {
  xs = list(
    a = list(x = 1, y = "foo", z = matrix(1,1,1)),
    b = list(x = 2L, y = "bar", z = matrix(2,2,2))
  )
  expect_equal(extractSubList(xs, "x"), c(a = 1, b = 2))
  expect_equal(extractSubList(xs, "y"), c(a = "foo", b = "bar"))
  expect_equal(extractSubList(xs, "z"), list(a = matrix(1,1,1), b = matrix(2,2,2)))

  expect_equal(extractSubList(xs, "x", use.names = FALSE), c(1, 2))
  expect_equal(extractSubList(xs, "y", use.names = FALSE), c("foo", "bar"))
  expect_equal(extractSubList(xs, "z", use.names = FALSE), list(matrix(1,1,1), matrix(2,2,2)))

  expect_equal(extractSubList(list(), "x"), list())

  expect_equal(extractSubList(list(), "x", element.value = numeric(1)), numeric(0))
  expect_equal(extractSubList(list(), "y", element.value = character(1)), character(0))

  expect_equal(extractSubList(xs, "x", element.value = numeric(1)), c(a = 1, b = 2))
  expect_equal(extractSubList(xs, "y", element.value = character(1)), c(a = "foo", b = "bar"))

  xs = list(
    list(x = 1, y = "foo", z = matrix(1,1,1)),
    list(x = 2L, y = "bar", z = matrix(2,2,2))
  )
  expect_equal(extractSubList(xs, "y", use.names = TRUE), c("foo", "bar"))
  expect_equal(extractSubList(xs, "y", use.names = FALSE), c("foo", "bar"))

  expect_equal(
    extractSubList(list(list(a = 1:2), list(a = 3:4)), "a", simplify = "rows"),
    matrix(1:4, nrow = 2L, ncol = 2L, byrow = TRUE)
  )

  expect_equal(
    extractSubList(list(list(a = 1), list(a = 2)), "a", simplify = "rows"),
    matrix(1:2, nrow = 2L, ncol = 1)
  )
})




test_that("extractSubList works with repeated indexing", {
  xs = list(
    a = list(v = list(x = 1), w = list(y = "foo")),
    b = list(v = list(x = 2), w = list(y = "bar"))
  )
  expect_equal(extractSubList(xs, c("v", "x")), c(a = 1, b = 2))
  expect_equal(extractSubList(xs, c("w", "y")), c(a = "foo", b = "bar"))

  expect_equal(extractSubList(xs, c("v", "x"), element.value = numeric(1)), c(a = 1, b = 2))
  expect_equal(extractSubList(xs, c("w", "y"), element.value = character(1)), c(a = "foo", b = "bar"))


  expect_equal(extractSubList(xs, c("v", "x"), simplify = "rows", use.names = FALSE), matrix(c(1, 2), nrow = 2))
  expect_equal(extractSubList(xs, c("v", "x"), simplify = "cols", use.names = TRUE),
    setColNames(matrix(c(1, 2), nrow = 1), c("a", "b")))
})