test_that("RunningStats works", {
    set.seed(42)
    rs <- new(RunningStats, na_rm=TRUE)
    chunk <- runif(1000)
    rs$update(chunk)
    expect_equal(rs$get_count(), length(chunk))
    expect_equal(rs$get_mean(), mean(chunk))
    expect_equal(rs$get_min(), min(chunk))
    expect_equal(rs$get_max(), max(chunk))
    expect_equal(rs$get_var(), var(chunk))
    expect_equal(rs$get_sd(), sd(chunk))
    chunk2 <- runif(1000)
    rs$update(chunk2)
    expect_equal(rs$get_count(), 2000)
    chunk3 <- (c(rep(NA, 10), runif(10)))
    rs$update(chunk3)
    expect_equal(rs$get_count(), 2010)
    expect_equal(rs$get_mean(), mean(c(chunk,chunk2,chunk3), na.rm=TRUE))
    rs$reset()
    expect_equal(rs$get_count(), 0)
    expect_equal(rs$get_sum(), 0)
    expect_true(is.na(rs$get_mean()))
    expect_true(is.na(rs$get_var()))
    expect_true(is.na(rs$get_sd()))
    expect_equal(rs$get_min(), Inf)
    expect_equal(rs$get_max(), -Inf)
})
