Nothing
context("redenominate")
.dat <- new.env()
currency(c("USD", "CCY"))
exchange_rate("USDCCY")
stock("xus", "USD")
stock("xcy", "CCY")
with(.dat, {
xus <- xts(1:5, as.Date("2010-01-01")-5:1)
xcy <- xts(c(40, 45), as.Date("2010-01-01")-2:1)
USDCCY <- xts(c(10, 11, 9, 10, 12), as.Date("2010-01-01")-5:1)
})
test_that("convert TO USD", {
expect_equal(as.numeric(redenominate("xcy", "USD", env=.dat)), c(4.00, 3.75))
})
test_that("convert FROM USD", {
expect_equal(as.numeric(redenominate("xus", "CCY", env=.dat)), c(10, 22, 27, 40, 60))
})
test_that("xts instead of name", {
expect_equal(as.numeric(redenominate(.dat$xcy, "USD", "CCY", env=.dat)), c(4.00, 3.75))
})
test_that("uses currency from instrument if old_base is missing", {
expect_equal(as.numeric(redenominate("xus", "CCY", env=.dat)), c(10, 22, 27, 40, 60))
})
test_that("provided old_base overrides instrument", {
expect_equal(as.numeric(redenominate("xus", "CCY", "USD", env=.dat)), c(10, 22, 27, 40, 60))
})
test_that("no instrument defined", {
rm_instruments("xus")
expect_equal(as.numeric(redenominate("xus", "CCY", "USD", env=.dat)), c(10, 22, 27, 40, 60))
expect_error(redenominate("xus", "CCY", env=.dat), "old_base is not provided")
})
test_that("inverts FX if necessary", {
with.usdccy <- redenominate("xus", "CCY", "USD", env=.dat)
with(.dat, {
CCYUSD <- 1 / USDCCY
rm(USDCCY)
})
expect_equal(with.usdccy, redenominate("xus", "CCY", "USD", env=.dat))
})
# TODO: test mixing intraday and daily data
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.