Newer
Older
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
##############################################
test_that("1. Input checks", {
expect_error(
CST_ChangeDimNames(1),
"Parameter 'data' must be an object of class 's2dv_cube'."
)
expect_error(
CST_ChangeDimNames(lonlat_prec_st, 1, 'bbb'),
paste0("Parameter 'original_names' must be a character string or a ",
"vector of character strings.")
)
expect_error(
CST_ChangeDimNames(lonlat_prec_st, 'aaa', 1),
paste0("Parameter 'new_names' must be a character string or a ",
"vector of character strings.")
)
expect_error(
CST_ChangeDimNames(lonlat_prec_st, 'aaa', c('aaa', 'bbb')),
paste0("The number of dimension names in 'new_names' must be the same ",
"as in 'original_names'.")
)
expect_error(
CST_ChangeDimNames(lonlat_prec_st, 'aaa', 'bbb'),
paste0("Some of the dimensions in 'original_names' could not be found in ",
"'data'.")
)
})
##############################################
test_that("2. Output checks", {
exp <- CST_ChangeDimNames(lonlat_temp_st$exp,
original_names = c("lon", 'ftime', 'sdate'),
new_names = c("lons", 'ftimes', 'sdates'))
# dims
expect_equal(
dim(exp$data),
c(dataset = 1, var = 1, member = 15, sdates = 6, ftimes = 3, lat = 22, lons = 53)
)
expect_equal(
exp$dims,
dim(exp$data)
)
expect_equal(
as.vector(exp$data),
as.vector(lonlat_temp_st$exp$data)
)
# coords
expect_equal(
names(exp$coords),
c("dataset", "var", "member", "sdates", "ftimes", "lat", "lons")
)
# dim Dates
expect_equal(
dim(exp$attrs$Dates),
c(sdates = 6, ftimes = 3)
)
# variable metadata
expect_equal(
names(exp$attrs$Variable$metadata),
c("lat", "lons", "ftimes", "tas" )
)
# source_files
expect_equal(
dim(exp$attrs$source_files),
c(dataset = 1, var = 1, sdates = 6)
)
# Dates 'dim' attribute
dat <- CST_ChangeDimNames(lonlat_prec,
original_names = c("lon", 'ftime', 'sdate', 'member'),
new_names = c("lons", 'ftimes', 'sdates', 'members'))
expect_equal(
as.vector(lonlat_prec$data),
as.vector(dat$data)
)
expect_equal(
attributes(dat$attrs$Dates)$dim,
c(ftimes = 31, sdates = 3)
)
expect_equal(
attributes(exp$attrs$Dates)$dim,
c(sdates = 6, ftimes = 3)
)
expect_equal(
as.vector(dat$attrs$Dates),
as.vector(lonlat_prec$attrs$Dates)
)
# attribute dimensions
expect_equal(
attributes(dat$data)$dimensions,
names(dim(dat$data))
)
expect_equal(
attributes(exp$data)$dimensions,
NULL
)
})