The R Project SVN R

Rev

Rev 88267 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 88267 Rev 89300
Line 2... Line 2...
2
## (contributed by Martin Morgan, 2011-2-9)
2
## (contributed by Martin Morgan, 2011-2-9)
3
setClass("A", representation("numeric"))
3
setClass("A", representation("numeric"))
4
a <- new("A")
4
a <- new("A")
5
 
5
 
6
setMethod("Logic", c("A", "A"), function(e1, e2) FALSE)
6
setMethod("Logic", c("A", "A"), function(e1, e2) FALSE)
7
res0 <- a & a                           # inherit &,A,A-method
7
stopifnot(isFALSE(a & a))               # inherit &,A,A-method
8
setMethod("Logic", c("A", "A"), function(e1, e2) TRUE)
8
setMethod("Logic", c("A", "A"), function(e1, e2) TRUE)
9
stopifnot(!res0, a & a)
9
stopifnot(isTRUE(a & a))
10
## feature in R >= 4.5.0: these get same method, but slightly differing result:
10
## feature in R >= 4.5.0: these get same method, but slightly differing result:
11
(sa <- selectMethod("&",     c("A", "A"))) # printing "Generic: ..."
11
(sa <- selectMethod("&",     c("A", "A"))) # printing "Generic: ..."
12
(sL <- selectMethod("Logic", c("A", "A"))) # 
12
(sL <- selectMethod("Logic", c("A", "A"))) # 
13
stopifnot(identical(sa@generic,
13
stopifnot(identical(sa@generic,
14
                    structure("Logic", package = "base",
14
                    structure("Logic", package = "base",
15
                              orig = structure("&", package = "base"))))
15
                              orig = structure("&", package = "base"))))
16
 
16
 
17
removeMethod("Logic", c("A", "A"))
17
removeMethod("Logic", c("A", "A"))
18
stopifnot(logical() == a & a)
18
stopifnot(identical(logical(), a & a))
19
 
19
 
20
removeClass("A")
20
removeClass("A")
21
 
21
 
22
### Find inherited group methods:
22
### Find inherited group methods:
23
if(require(Matrix)) { ## , lib.loc = .Library
23
if(require(Matrix)) { ## , lib.loc = .Library