Nothing
context("Binary")
test_that("Rational example works", {
suppressWarnings({
Rational <- defineClass("Rational", contains = c("Show", "Binary"), {
numer <- 0
denom <- 1
.g <- 1
.gcd <- function(a, b) if(b == 0) a else Recall(b, a %% b)
init <- function(numer, denom) {
.self$.g <- .gcd(numer, denom)
.self$numer <- numer / .g
.self$denom <- denom / .g
}
show <- function() {
cat(paste0(.self$numer, "/", .self$denom, "\n"))
}
".+" <- function(that) {
Rational(numer = numer * that$denom + that$numer * denom,
denom = denom * that$denom)
}
neg <- function() {
Rational(numer = -.self$numer,
denom = .self$denom)
}
".-" <- function(that) {
.self + that$neg()
}
})
rational <- Rational(2, 3)
expect_equal(rational$numer, 2)
expect_equal(rational$denom, 3)
rational <- rational + rational
expect_equal(rational$numer, 4)
expect_equal(rational$denom, 3)
rational <- rational$neg()
expect_equal(rational$numer, -4)
expect_equal(rational$denom, 3)
rational <- rational - rational
expect_equal(rational$numer, 0)
expect_equal(rational$denom, 1)
x <- Rational(numer = 1, denom = 3)
y <- Rational(numer = 5, denom = 7)
z <- Rational(numer = 3, denom = 2)
rational <- x - y - z
expect_equal(rational$numer, -79)
expect_equal(rational$denom, 42)
})
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.