context("EPG generation")
################################################################################
# CHANGE LOG
# 22.03.2019: Changed deprecated 'matches' to 'expect_match'.
# 21.04.2016: Fixed old argument name 'keepNA' -> 'keep.na'.
#
# require(strvalidator)
# require(testthat)
# test_dir("inst/tests/")
# test_file("tests/testthat/test-heightToPeak.r")
# test_dir("tests/testthat")
test_that("heightToPeak", {
# Three alleles with sizes and heights.
peakw <- 1
mydf <- data.frame(Size = c(100, 120, 130), Height = c(5000, 4500, 4000))
res <- heightToPeak(data = mydf, width = peakw, keep.na = TRUE)
# TEST 01--------------------------------------------------------------------
# Normal data.
# Test some faulty arguments.
expect_that(heightToPeak(data = mydf, width = "String"), throws_error())
expect_that(heightToPeak(data = c(12, 14)), throws_error())
expect_that(heightToPeak(data = mydf, keep.na = "String"), throws_error())
# Check return class.
expect_match(class(res), class(data.frame()))
# Check length.
expect_that(nrow(res), equals(9))
# Check peak width.
expect_that(res$Size[3] - res$Size[1], is_equivalent_to(peakw))
# Check that expected columns exist.
expect_true(any(grepl("Size", names(res))))
expect_true(any(grepl("Height", names(res))))
# Check for NA's.
expect_false(any(is.na(res$Size)))
expect_false(any(is.na(res$Height)))
# TEST 02--------------------------------------------------------------------
# Data with a missing height and an additional column for sample name.
# Three alleles with sizes and heights (NA in heigt).
# Sample name colum with text as strings (stringsAsFactors=FALSE).
# Wider peaks.
name <- "TEST"
peakw <- 2.5
mydf <- data.frame(
Sample.Name = name, Size = c(100, 120, 130),
Height = c(5000, NA, 4000), stringsAsFactors = FALSE
)
res <- heightToPeak(data = mydf, width = peakw, keep.na = TRUE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check length.
expect_that(nrow(res), equals(9))
# Check sample name (error if returned as factor level).
expect_that(res$Sample.Name[1], is_equivalent_to(name))
# Check peak width.
expect_that(res$Size[3] - res$Size[1], is_equivalent_to(peakw))
# Check that expected columns exist.
expect_true(any(grepl("Sample.Name", names(res))))
expect_true(any(grepl("Size", names(res))))
expect_true(any(grepl("Height", names(res))))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$Size)))
expect_false(any(is.na(res$Height)))
# TEST 03--------------------------------------------------------------------
# keep.na=FALSE and an additional column for numerical sample name.
# Three alleles with sizes and heights (NA in heigt).
# Sample name colum with numerical names (stringsAsFactors=TRUE).
name <- 123456
peakw <- 1 / 3
mydf <- data.frame(Sample.Name = name, Size = c(100, 120, 130), Height = c(5000, NA, NA))
res <- heightToPeak(data = mydf, width = peakw, keep.na = FALSE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check length.
expect_that(nrow(res), equals(3))
# Check sample name (error if returned as factor level).
expect_that(res$Sample.Name[1], is_equivalent_to(name))
# Check peak width.
expect_that(res$Size[3] - res$Size[1], is_equivalent_to(peakw))
# Check that expected columns exist.
expect_true(any(grepl("Sample.Name", names(res))))
expect_true(any(grepl("Size", names(res))))
expect_true(any(grepl("Height", names(res))))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$Size)))
expect_false(any(is.na(res$Height)))
# TEST 04--------------------------------------------------------------------
# keep.na=FALSE and an additional column for numerical sample name.
# Completely negative sample.
# Three alleles with sizes and heights (NA in heigt).
# Sample name colum with numerical names (stringsAsFactors=TRUE).
name <- 123456
mydf <- data.frame(Sample.Name = name, Size = c(100, 120, 130), Height = c(NA, NA, NA))
res <- heightToPeak(data = mydf, keep.na = FALSE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check length.
expect_that(nrow(res), equals(0))
# Check that expected columns exist.
expect_true(any(grepl("Sample.Name", names(res))))
expect_true(any(grepl("Size", names(res))))
expect_true(any(grepl("Height", names(res))))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$Size)))
expect_false(any(is.na(res$Height)))
# NEW DATA.
res <- heightToPeak(data = mydf, keep.na = TRUE)
# Check length.
expect_that(nrow(res), equals(9))
# Check that expected columns exist.
expect_true(any(grepl("Sample.Name", names(res))))
expect_true(any(grepl("Size", names(res))))
expect_true(any(grepl("Height", names(res))))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$Size)))
expect_false(any(is.na(res$Height)))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.