File: test-type_functions.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 (63 lines) | stat: -rw-r--r-- 1,179 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
rm(list=ls())

assert('zero', {
  zero() %::% Function
  zero() %as% { function() 1 }

  act <- zero()
  (act() == 1)
})

assert('one_application', {
  fn.0 <- function() 0

  one_application(x) %::% Function : numeric
  one_application(x) %as% { x() }

  act <- one_application(fn.0)
  (act == 0)
})

assert('one_identity', {
  fn.0 <- function() 0

  one_identity(x) %::% Function : Function
  one_identity(x) %as% { x }

  act <- one_identity(fn.0)
  identical(act, fn.0)
})

assert('two_application', {
  fn.1 <- function(x) x

  two_application(x,y) %::% Function : numeric : numeric
  two_application(x,y) %as% { x(y) }

  two_application(y,x) %::% numeric : Function : numeric
  two_application(y,x) %as% { x(y) }

  act <- two_application(fn.1,2)
  (act == 2)

  act <- two_application(4,fn.1)
  (act == 4)
})

assert('two_identity', {
  fn.0 <- function() 0
  fn.1 <- function(x) x

  two_identity(x,y) %::% Function : numeric : Function
  two_identity(x,y) %as% { x }

  two_identity(y,x) %::% numeric : Function : Function
  two_identity(y,x) %as% { x }

  act <- two_identity(fn.0, 1)
  identical(act, fn.0)

  act <- two_identity(2, fn.1)
  identical(act, fn.1)
})