File: test-ellipsis_arguments.1.R

package info (click to toggle)
r-cran-lambda.r 1.2.4-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 284 kB
  • sloc: sh: 9; makefile: 2
file content (47 lines) | stat: -rw-r--r-- 864 bytes parent folder | download | duplicates (2)
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
rm(list=ls())

Prices(series, asset.class, periodicity) %as% 
{
  series@asset.class <- asset.class
  series@periodicity <- periodicity
  series@visualize <- TRUE
  series
}

visualize(x, ...) %when% {
  x@visualize == TRUE
} %as% {
  plot(x, ...)
}
seal(Prices)
seal(visualize)

dummy(x, ...) %as% { list(...) }
seal(dummy)


assert('ellipsis_arguments_1', {
  ps <- Prices(rnorm(50), 'equity', 'daily')
  visualize(ps, main='Prices', xlab='time')

  scatter <- matrix(rnorm(200), ncol=2)
  act <- tryCatch(visualize(scatter), error=function(x) 'error')

  attr(scatter,'visualize') <- TRUE
  visualize(scatter)

  visualize(scatter, main='random')

  (act == 'error')
})

assert('ellipsis_unnamed_arguments 1', {
  act <- dummy(1,2)
  all.equal(act, list(2))
})

assert('ellipsis_unnamed_arguments 2', {
  act <- dummy(1,2,3,4)
  all.equal(act, list(2,3,4))
})