File: test-type_inheritance.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 (121 lines) | stat: -rw-r--r-- 1,869 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
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121


rm(list=ls())
assert('inheritance_one_arg', {
  Base(x) %as% x
  A(x) %as% { Base(x) }
  B(x) %as% { A(x) }
  E(x) %as% { Base(x) }

  one.arg(x) %::% A : character
  one.arg(x) %as% { "a" }

  one.arg(x) %::% Base : character
  one.arg(x) %as% { "base" }

  seal(Base)
  seal(A)
  seal(B)
  seal(E)
  seal(one.arg)

  a <- A(1)
  b <- B(2)
  c <- E(3)
  act.a <- one.arg(a)
  (act.a == "a")
  act.b <- one.arg(b)
  (act.b == "a")
  act.c <- one.arg(c)
  (act.c == "base")
})


rm(list=ls())
assert('inheritance_two_arg', {
  Base(x) %as% x
  A(x) %as% { Base(x) }
  B(x) %as% { A(x) }
  E(x) %as% { Base(x) }

  two.arg(x,y) %::% A : B : character
  two.arg(x,y) %as% { "a" }

  two.arg(x,y) %::% Base : Base : character
  two.arg(x,y) %as% { "base" }

  seal(Base)
  seal(A)
  seal(B)
  seal(E)
  seal(two.arg)

  a <- A(1)
  b <- B(2)
  c <- E(3)
  act.a <- two.arg(a,b)
  (act.a == "a")
  act.b <- two.arg(b,b)
  (act.b == "a")
  act.c <- two.arg(c,b)
  (act.c == "base")
})


rm(list=ls())
assert('inheritance_with_type_variable', {
  Base(x) %as% x
  A(x) %as% { Base(x) }
  B(x) %as% { A(x) }
  E(x) %as% { Base(x) }

  two.arg(x,y) %::% a : B : character
  two.arg(x,y) %as% { "a" }

  two.arg(x,y) %::% Base : Base : character
  two.arg(x,y) %as% { "base" }

  seal(Base)
  seal(A)
  seal(B)
  seal(E)
  seal(two.arg)

  a <- A(1)
  b <- B(2)
  c <- E(3)
  act.a <- two.arg(a,b)
  (act.a == "a")
  act.b <- two.arg(b,b)
  (act.b == "a")
  act.c <- two.arg(c,b)
  (act.c == "a")
})


rm(list=ls())
assert('inheritance_with_ellipsis_1', {
  Base(x, ...) %as% list(x=x, ...)
  A(x, z) %as% { Base(x, z=z) }

  seal(Base)
  seal(A)

  a <- A(1, 2)
  (a$x == 1)
  (a$z == 2)
})


rm(list=ls())
assert('inheritance_with_ellipsis_2', {
  Base(x=1, ...) %as% list(x=x, ...)
  A(z) %as% { Base(z=z) }

  seal(Base)
  seal(A)

  a <- A(2)
  (a$x == 1)
  (a$z == 2)
})