Skip to content

Commit 9b8d496

Browse files
authored
atime test: forderv with existing index (#6555)
1 parent bb9faf6 commit 9b8d496

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

.ci/atime/tests.R

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,31 @@ for (extra.arg in extra.args.6107){
1919
extra.test.list[[sprintf("fread(%s) improved in #6107", extra.arg)]] <- this.test
2020
}
2121

22+
# Test case adapted from https://github.com/Rdatatable/data.table/pull/4386#issue-602528139 which is where the performance was improved.
23+
for(retGrp_chr in c("T","F"))extra.test.list[[sprintf(
24+
"forderv(retGrp=%s) improved in #4386", retGrp_chr
25+
)]] <- list(
26+
setup = quote({
27+
dt <- data.table(group = rep(1:2, l=N))
28+
}),
29+
expr = substitute({
30+
old.opt <- options(datatable.forder.auto.index = TRUE) # required for test, un-documented, comments in forder.c say it is for debugging only.
31+
data.table:::forderv(dt, "group", retGrp = RETGRP)
32+
options(old.opt) # so the option does not affect other tests.
33+
}, list(RETGRP=eval(str2lang(retGrp_chr)))),
34+
## From ?bench::mark, "Each expression will always run at least twice,
35+
## once to measure the memory allocation and store results
36+
## and one or more times to measure timing."
37+
## So for atime(times=10) that means 11 times total.
38+
## First time for memory allocation measurement,
39+
## (also sets the index of dt in this example),
40+
## then 10 more times for time measurement.
41+
## Timings should be constant if the cached index is used (Fast),
42+
## and (log-)linear if the index is re-computed (Slow).
43+
Slow = "b1b1832b0d2d4032b46477d9fe6efb15006664f4", # Parent of the first commit (https://github.com/Rdatatable/data.table/commit/b0efcf59442a7d086c6df17fa6a45c81b082322e) in the PR (https://github.com/Rdatatable/data.table/pull/4386/commits) where the performance was improved.
44+
Fast = "ffe431fbc1fe2d52ed9499f78e7e16eae4d71a93" # Last commit of the PR (https://github.com/Rdatatable/data.table/pull/4386/commits) where the performance was improved.
45+
)
46+
2247
# A list of performance tests.
2348
#
2449
# See documentation in https://github.com/Rdatatable/data.table/wiki/Performance-testing for best practices.

0 commit comments

Comments
 (0)