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
context("Start() metadata reshaping")
# When data is reshaping (e.g., time_across = 'sdate'), the corresponding attribute should be reshaped too.
test_that("1. time across fyear, fyear depends on sdate", {
suppressWarnings(
data <- Start(dat = '/esarchive/exp/ecearth/a3w5/original_files/cmorfiles/DCPP/EC-Earth-Consortium/EC-Earth3/dcppA-hindcast/$member$/day/$var$/gr/v20210910/$var$_day_EC-Earth3_dcppA-hindcast_s$sdate$-$member$_gr_$fyear$.nc',
var = 'tasmin',
lat = indices(1),
lon = indices(1),
sdate = paste0(1960:1961),
time = 62:426, ## Jan to Dec (initialised in Nov)
time_across = 'fyear',
merge_across_dims = TRUE,
fyear = 'all',
fyear_depends = 'sdate',
member = 'r1i4p1f1',
synonims = list(lat = c('lat','latitude'),
lon = c('lon','longitude')),
return_vars = list(lat = NULL, lon = NULL,
time = c('sdate', 'fyear')),
retrieve = TRUE)
)
dates <- attr(data,'Variables')$common[['time']]
expect_equal(
dim(dates),
c(sdate = 2, time = 365)
)
expect_equal(
dim(drop(data)),
dim(dates)
)
expect_equal(
names(attributes(dates)),
c('variables', 'dim', 'class', 'tzone')
)
expect_equal(
class(dates),
c("POSIXct", "POSIXt")
)
expect_equal(
as.vector(dates[1, c(1:2, 365)]),
as.vector(as.POSIXct(c("1961-01-01 12:00:00", "1961-01-02 12:00:00", "1961-12-31 12:00:00"),
tz = 'UTC'))
)
expect_equal(
as.vector(dates[2, c(1:2, 365)]),
as.vector(as.POSIXct(c("1962-01-01 12:00:00", "1962-01-02 12:00:00", "1962-12-31 12:00:00"),
tz = 'UTC'))
)
})
test_that("2. time across fyear, only one sdate", {
suppressWarnings(
data <- Start(dat = '/esarchive/exp/ecearth/a3w5/original_files/cmorfiles/DCPP/EC-Earth-Consortium/EC-Earth3/dcppA-hindcast/$member$/day/$var$/gr/v20210910/$var$_day_EC-Earth3_dcppA-hindcast_s$sdate$-$member$_gr_$fyear$.nc',
var = 'tasmin',
lat = indices(1),
lon = indices(1),
sdate = paste0(1960),
time = 62:426, ## Jan to Dec (initialised in Nov)
time_across = 'fyear',
merge_across_dims = TRUE,
fyear = 'all',
# fyear_depends = 'sdate',
member = 'r1i4p1f1',
synonims = list(lat = c('lat','latitude'),
lon = c('lon','longitude')),
return_vars = list(lat = NULL, lon = NULL,
time = c('fyear')),
retrieve = TRUE)
)
dates <- attr(data,'Variables')$common[['time']]
expect_equal(
dim(dates),
c(time = 365)
)
expect_equal(
length(data),
length(dates)
)
expect_equal(
as.vector(dates[c(1:2, 365)]),
as.vector(as.POSIXct(c("1961-01-01 12:00:00", "1961-01-02 12:00:00", "1961-12-31 12:00:00"),
tz = 'UTC'))
)
})