tests/testthat/test-myDescriptiveStatistics.R

context("Descriptive Statistics")


# my.arithmetic.mean(src.vector)
test_that("my.arithmetic.mean", {
  expect_equal(my.arithmetic.mean(1:50), 25.5)
})

# my.geometric.mean(src.vector)
test_that("my.geometric.mean", {
  expect_equal(my.geometric.mean(c(1,10,1000,10,1)), 10)
})

# my.harmonic.mean(src.vector)
test_that("my.harmonic.mean", {
  expect_equal(my.harmonic.mean(c(1,2,4,1)), 1.4545, tolerance = 5e-05)
})

# my.mode(src.vector)
test_that("my.mode", {
  expect_equal(my.mode(1:50), 1:50)
  expect_equal(my.mode(c(1, 1:50)), 1)
  expect_equal(my.mode(c(1, 2, 1:50)), c(1, 2))
})

# my.percentile(src.vector, quartile.fraction)
test_that("my.percentile", {
  expect_equal(my.percentile(1:50, percentile.fraction = 0), 1)
  expect_equal(my.percentile(1:50, percentile.fraction = 0.1), 5.1)
  expect_equal(my.percentile(1:50, percentile.fraction = 0.4), 20.4)
  expect_equal(my.percentile(1:50, percentile.fraction = 0.5), 25.5)
  expect_equal(my.percentile(1:50, percentile.fraction = 0.6), 30.6)
  expect_equal(my.percentile(1:50, percentile.fraction = 0.9), 45.9)
  expect_equal(my.percentile(1:50, percentile.fraction = 1), 50)
})

# my.median(src.vector)
test_that("my.median", {
  expect_equal(my.median(1:50), 25.5)
})

# my.lower.quartile(src.vector)
test_that("my.lower.quartile", {
  expect_equal(my.lower.quartile(1:50), 13.25)
})

# my.upper.quartile(src.vector)
test_that("my.upper.quartile", {
  expect_equal(my.upper.quartile(1:50), 37.75)
})

# my.inner.quartile.range(src.vector)
test_that("my.inner.quartile.range", {
  expect_equal(my.inner.quartile.range(1:50), 24.5)
})

# my.confidence.interval
test_that("my.confidence.interval", {
  set.seed(666)
  nums <- rnorm(1000)
  expect_equal(my.confidence.interval(nums), c(min=-0.08059,max=0.04156), tolerance = 1e-05)
})

# my.outliers(src.vector)
test_that("my.outliers", {
  set.seed(666)
  nums <- rnorm(1000)
  expect_equal(my.outliers(nums), c(-2.943, -3.149, -2.785, -3.135, 2.745, -3.218),
    tolerance = 5e-04)
})

# my.variance(src.vector)
test_that("my.variance", {
  set.seed(666)
  nums <- rnorm(1000)
  expect_equal(my.variance(nums), var(nums))
})

# my.standard.deviation(src.vector)
test_that("my.standard.deviation", {
  set.seed(666)
  nums <- rnorm(1000)
  expect_equal(my.standard.deviation(nums), sd(nums))
})

# my.standard.error(src.vector)
test_that("my.standard.error", {
  set.seed(666)
  nums <- rnorm(1000)
  expect_equal(my.standard.error(nums), 0.03112, tolerance = 1e-05)
})

# my.z.score(src.vector, is.sample)
test_that("my.z.score", {
  set.seed(666)
  nums <- rnorm(1000) + 2
  expect_equal(my.z.score(nums), (nums - mean(nums))/sd(nums))  # there is no r function for z-score
  expect_equal(my.z.score(c(85, 100, 115), center = 100, scale = 15), c(-1, 0, 1))
})

# my.variance.ratio(src.vector1, src.vector2)
test_that("my.variance.ratio", {
  set.seed(666)
  a <- rnorm(10, 15, 2)
  b <- rnorm(10, 15, 4)
  ref <- var.test(a, b)
  expect_equal(my.variance.ratio(a, b), ref$p.val)
})
vanNijnatten/Learn-Statistics documentation built on Dec. 23, 2021, 2:09 p.m.