tests/testthat/testIEConsistency.R

context("IE Consistency")

data1 <- read.csv(file = "../data/example_1.csv")
data2 <- read.csv(file = "../data/example_2.csv")
data3 <- read.csv(file = "../data/example_3.csv")

test_that("Returns majority class proportion on empty set", {
  classCount <- sort(table(data2['class']),decreasing=TRUE)
  expect_equal(IEConsistency()(data2, 'class', c()), as.numeric(classCount[1] / sum(classCount)))
})

test_that("Returns 1 on empty set in a 1 class only dataset", {
  expect_equal(IEConsistency()(data3, 'class', c()), 1)
})

test_that("Returns 1 on full set", {
  expect_equal(IEConsistency()(data2, 'class', c('x1','x2','x3','x4','x5','x6')),1)
})

test_that("Results are correct", {
  expect_equal(IEConsistency()(data1, 'class', 'x1'), 0.5)
  expect_equal(IEConsistency()(data1, 'class', c('x1', 'x2')), 0.6666, tolerance=1e-3)
  expect_equal(IEConsistency()(data2, 'class', c('x1', 'x2', 'x3', 'x4', 'x5', 'x6')), 1, tolerance=1e-4)
})

test_that("It has correct name", {
  expect_equal(attr(IEConsistency(), 'name'),"Inconsistent Examples Consistency")
  expect_equal(attr(IEConsistency(), 'shortName'),"IEConsistency")
})

Try the FSinR package in your browser

Any scripts or data that you put into this service are public.

FSinR documentation built on Nov. 23, 2020, 5:10 p.m.