context("calculateHeight")
################################################################################
# CHANGE LOG
# 21.11.2021: Fixed unique sample names in df7.
# 21.11.2021: Changed partial match argument "na" to full name "na.replace".
# 22.03.2019: Changed deprecated 'matches' to 'expect_match'.
# 16.09.2016: Updated with test 21-22 for complete negative samples, updated test 16.
# 15.09.2016: Updated with test 20 for homozygous double notation.
# 19.08.2016: Updated as a consequence of a bug fix.
# 15.08.2016: Updated to match re-written function. Added additional tests.
# 12.10.2014: Added test for NA in Allele column (test 14 and 15).
# 10.09.2014: Added test for parameter 'exclude' (test 12 and 13).
# 10.09.2014: Changed test for column name from grepl to %in% to handle partial matches.
# 10.09.2014: Added test for new functionality (TPH - total peak height).
# 10.09.2014: Function changed name from calculateH to calculateHeight.
# 04.03.2014: Added test for no NA and na!=NULL.
# 25.02.2014: Updated test to change in 'calculateH'. Added more tests.
#
# require(testthat)
# test_dir("inst/tests/")
# test_file("tests/testthat/test-calculateHeight.r")
# test_dir("tests/testthat")
test_that("calculateHeight", {
# Generate test data.
markers <- c("D3", "vWA", "D16", "D2", "AMEL", "D8", "D21", "D18", "D19", "TH01", "FGA")
height.1 <- c(3349, 1273, 627, 77, 7189, 3303, 582, 175, 2854, 1217, 460)
height.2 <- c(2296, 1470, 377, NA, NA, 3026, 737, 174, 2547, NA, 355)
df1 <- data.frame(
Sample.Name = "MySample",
Marker = markers,
Height.1 = height.1,
Height.2 = height.2,
stringsAsFactors = FALSE
)
df1 <- slim(
data = df1,
fix = c("Sample.Name", "Marker"),
stack = c("Height")
)
# Generate test data.
markers <- c("D3", "vWA", "D16", "D2", "AMEL", "D8", "D21", "D18", "D19", "TH01", "FGA")
height.1 <- c(3349, 1273, 627, 77, 7189, 3303, 582, 175, 3416, 1217, 460)
height.2 <- c(2296, 1470, 377, NA, NA, 3026, 737, 174, NA, NA, 355)
df2 <- data.frame(
Sample.Name = "AnotherSample",
Marker = markers,
Height.1 = height.1,
Height.2 = height.2,
stringsAsFactors = FALSE
)
df2 <- slim(
data = df2,
fix = c("Sample.Name", "Marker"),
stack = c("Height")
)
df2 <- rbind(df1, df2)
# One negative sample.
df3 <- df2
df3[df3$Sample.Name == "AnotherSample", ]$Height <- as.numeric(NA)
# Off-ladder alleles "OL".
df4 <- df1
df4$Allele <- c(
"10", "11", "12", "13", "14", "15", "OL", "X", "18", "19", "20",
"21", "22", "OL", "24", "25", "26", "27", "28"
)
# Create reference dataset.
ref4 <- df4[df4$Allele != "OL", ]
# Create reference dataset with double notation for homozygotes.
ref5 <- rbind(ref4[1:7, ], ref4[7:12, ], ref4[12:15, ], ref4[15:17, ])
# Introduce an NA allele.
df5 <- df4
df5$Allele[17] <- NA
df5$Height[17] <- NA
# A single negative sample.
df6 <- df1
df6$Height <- NA
df6$Allele <- NA
# One result and one negative sample.
df7 <- df6
df7$Sample.Name <- "AnotherSample"
df7 <- rbind(df7, df4)
# Check correct formula, division by expected alleles.
df8 <- ref4
df8$Sample.Name <- "MySample2"
df8 <- rbind(ref4, df8)
df8$Height <- NA
df8[df8$Sample.Name == "MySample2" & df8$Marker == "AMEL", ]$Height <- 200
df8[df8$Sample.Name == "MySample", ]$Height <- 100
df8[df8$Sample.Name == "MySample" & df8$Marker == "AMEL", ]$Height <- 200
df8[df8$Sample.Name == "MySample" & df8$Marker == "D18", ]$Height <- 200
df8[df8$Sample.Name == "MySample" & df8$Marker == "TH01", ]$Height <- 200
# TEST 01 -------------------------------------------------------------------
# Test that analysis of one sample works.
# Analyse dataframe.
res <- calculateHeight(data = df1, na.replace = NULL, add = FALSE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("Peaks" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$Peaks)))
# Check result.
expect_that(res$TPH, equals(32088))
expect_that(res$Peaks, equals(19))
# TEST 02 -------------------------------------------------------------------
# Test that analysis of a dataset with multiple samples works.
# Analyse dataframe.
res <- calculateHeight(data = df2, na.replace = NULL, add = FALSE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("Peaks" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$Peaks)))
# Check result.
expect_that(res$TPH[1], equals(32088))
expect_that(res$TPH[2], equals(30103))
expect_that(res$Peaks[1], equals(19))
expect_that(res$Peaks[2], equals(18))
# TEST 03 -------------------------------------------------------------------
# Test that analysis of a dataset including negative samples work.
# Analyse dataframe.
res <- calculateHeight(data = df3, na.replace = NULL, add = FALSE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("Peaks" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$Peaks)))
# Check result.
expect_that(res$TPH[1], equals(32088))
expect_that(res$TPH[2], equals(0))
expect_that(res$Peaks[1], equals(19))
expect_that(res$Peaks[2], equals(0))
# TEST 04 -------------------------------------------------------------------
# Test that analysis of a dataset with negative samples work,
# with replacement of NA.
# Analyse dataframe.
res <- calculateHeight(data = df3, na.replace = 0, add = FALSE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("Peaks" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$Peaks)))
# Check result.
expect_that(res$TPH[1], equals(32088))
expect_that(res$TPH[2], equals(0))
expect_that(res$Peaks[1], equals(19))
expect_that(res$Peaks[2], equals(0))
# TEST 05 -------------------------------------------------------------------
# Test that analysis of one sample works.
# Add to dataframe.
# Analyse dataframe.
res <- calculateHeight(data = df1, na.replace = NULL, add = TRUE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("Marker" %in% names(res))
expect_true("Height" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("Peaks" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$Marker)))
expect_false(any(is.na(res$Height)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$Peaks)))
# Check result.
expect_that(res$Sample.Name, equals(df1$Sample.Name))
expect_that(res$Marker, equals(df1$Marker))
expect_that(res$Height, equals(as.numeric(df1$Height)))
expect_that(unique(res$TPH), equals(32088))
expect_that(unique(res$Peaks), equals(19))
# TEST 06 -------------------------------------------------------------------
# Test that analysis of a dataset with multiple samples works.
# Add to dataframe.
# Analyse dataframe.
res <- calculateHeight(data = df2, na.replace = NULL, add = TRUE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("Marker" %in% names(res))
expect_true("Height" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("Peaks" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$Marker)))
expect_false(any(is.na(res$Height)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$Peaks)))
# Check result.
expect_that(res$Sample.Name, equals(df2$Sample.Name))
expect_that(res$Marker, equals(df2$Marker))
expect_that(res$Height, equals(as.numeric(df2$Height)))
expect_that(unique(res$TPH)[1], equals(32088))
expect_that(unique(res$TPH)[2], equals(30103))
expect_that(unique(res$Peaks)[1], equals(19))
expect_that(unique(res$Peaks)[2], equals(18))
# TEST 07 -------------------------------------------------------------------
# Test that analysis of a dataset including negative samples work.
# Add to dataframe.
# Analyse dataframe.
res <- calculateHeight(data = df3, na.replace = NULL, add = TRUE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("Marker" %in% names(res))
expect_true("Height" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("Peaks" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$Marker)))
expect_true(any(is.na(res$Height)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$Peaks)))
# Check result.
expect_that(res$Sample.Name, equals(df3$Sample.Name))
expect_that(res$Marker, equals(df3$Marker))
expect_that(res$Height, equals(as.numeric(df3$Height)))
expect_that(unique(res$TPH)[1], equals(32088))
expect_that(unique(res$TPH)[2], equals(0))
expect_that(unique(res$Peaks)[1], equals(19))
expect_that(unique(res$Peaks)[2], equals(0))
# TEST 08 -------------------------------------------------------------------
# Test that analysis of a dataset including negative samples work,
# with replacement of NA.
# Add to dataframe.
# Analyse dataframe.
res <- calculateHeight(data = df3, na.replace = 0, add = TRUE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("Marker" %in% names(res))
expect_true("Height" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("Peaks" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$Marker)))
expect_true(any(is.na(res$Height)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$Peaks)))
# Check result.
expect_that(res$Sample.Name, equals(df3$Sample.Name))
expect_that(res$Marker, equals(df3$Marker))
expect_that(res$Height, equals(as.numeric(df3$Height)))
expect_that(unique(res$TPH)[1], equals(32088))
expect_that(unique(res$TPH)[2], equals(0))
expect_that(unique(res$Peaks)[1], equals(19))
expect_that(unique(res$Peaks)[2], equals(0))
# TEST 09 -------------------------------------------------------------------
# Test that analysis work when no NA and na.replace!=NULL.
# Analyse dataframe.
res <- calculateHeight(data = df1, na.replace = 0, add = FALSE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("Peaks" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$Peaks)))
# Check result.
expect_that(res$TPH, equals(32088))
expect_that(res$Peaks, equals(19))
# TEST 10 -------------------------------------------------------------------
# Test that analysis of one sample with off-ladder alleles work.
# Analyse dataframe.
res <- calculateHeight(data = df4, na.replace = NULL, add = FALSE, exclude = "OL")
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("Peaks" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$Peaks)))
# Check result.
expect_that(res$TPH, equals(31837))
expect_that(res$Peaks, equals(17))
# TEST 11 -------------------------------------------------------------------
# Test that analysis of one sample with vector as exclude work.
# Analyse dataframe.
res <- calculateHeight(data = df4, na.replace = NULL, add = TRUE, exclude = c("X", "OL"))
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("Marker" %in% names(res))
expect_true("Height" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("Peaks" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$Marker)))
expect_false(any(is.na(res$Height)))
expect_false(any(is.na(res$Allele)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$Peaks)))
# Check result.
expect_that(res$Sample.Name, equals(df4$Sample.Name[c(-7, -8, -14)]))
expect_that(res$Marker, equals(df4$Marker[c(-7, -8, -14)]))
expect_that(res$Height, equals(as.numeric(df4$Height[c(-7, -8, -14)])))
expect_that(unique(res$TPH), equals(24648))
expect_that(unique(res$Peaks), equals(16))
# TEST 12 -------------------------------------------------------------------
# Test that analysis of one sample with off-ladder alleles work + NA allele.
# Analyse dataframe.
res <- calculateHeight(data = df5, na.replace = NULL, add = FALSE, exclude = "OL")
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("Peaks" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$Peaks)))
# Check result.
expect_that(res$TPH, equals(30620))
expect_that(res$Peaks, equals(16))
# TEST 13 -------------------------------------------------------------------
# Test that analysis of one sample with vector as exclude work + NA allele.
# Analyse dataframe.
res <- calculateHeight(data = df5, na.replace = NULL, add = TRUE, exclude = c("X", "OL"))
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("Marker" %in% names(res))
expect_true("Height" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("Peaks" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$Marker)))
expect_true(any(is.na(res$Height)))
expect_true(any(is.na(res$Allele)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$Peaks)))
# Check result.
expect_that(res$Sample.Name, equals(df5$Sample.Name[c(-7, -8, -14)]))
expect_that(res$Marker, equals(df5$Marker[c(-7, -8, -14)]))
expect_that(res$Height, equals(as.numeric(df5$Height[c(-7, -8, -14)])))
expect_that(unique(res$TPH), equals(23431))
expect_that(unique(res$Peaks), equals(15))
# TEST 14 -------------------------------------------------------------------
# Test that analysis of one sample with reference works.
# Analyse dataframe.
res <- calculateHeight(data = df4, ref = ref4, na.replace = NULL, add = FALSE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("H" %in% names(res))
expect_true("Peaks" %in% names(res))
expect_true("Expected" %in% names(res))
expect_true("Proportion" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$H)))
expect_false(any(is.na(res$Peaks)))
expect_false(any(is.na(res$Expected)))
expect_false(any(is.na(res$Proportion)))
# Check result.
expect_that(res$TPH, equals(31837))
expect_that(round(res$H, 3), equals(1591.85))
expect_that(res$Peaks, equals(17))
expect_that(res$Expected, equals(17))
expect_that(res$Proportion, equals(1))
# TEST 15 -------------------------------------------------------------------
# Test that analysis of a dataset with reference works.
# Includes NA.
# Analyse dataframe.
res <- calculateHeight(data = df5, ref = ref4, na.replace = NULL, add = FALSE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("H" %in% names(res))
expect_true("Peaks" %in% names(res))
expect_true("Expected" %in% names(res))
expect_true("Proportion" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$H)))
expect_false(any(is.na(res$Peaks)))
expect_false(any(is.na(res$Expected)))
expect_false(any(is.na(res$Proportion)))
# Check result.
expect_that(res$TPH, equals(30620))
expect_that(round(res$H, 3), equals(1701.111))
expect_that(res$Peaks, equals(16))
expect_that(res$Expected, equals(17))
expect_that(round(res$Proportion, 3), equals(0.941))
# TEST 16 -------------------------------------------------------------------
# Test that analysis of a dataset with only a negative sample work.
# Analyse dataframe.
res <- calculateHeight(data = df6, ref = ref4, na.replace = NULL, add = FALSE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that an empty dataset was returned.
# Updated 16.09.2016. No longer remove NA samples.
expect_false(nrow(res) == 0)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("H" %in% names(res))
expect_true("Peaks" %in% names(res))
expect_true("Expected" %in% names(res))
expect_true("Proportion" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$TPH)))
expect_true(any(is.na(res$H)))
expect_false(any(is.na(res$Peaks)))
expect_false(any(is.na(res$Expected)))
expect_false(any(is.na(res$Proportion)))
# Check result.
expect_that(res$TPH, equals(0))
expect_that(round(res$H, 3), equals(NaN))
expect_that(res$Peaks, equals(0))
expect_that(res$Expected, equals(17))
expect_that(round(res$Proportion, 3), equals(0))
# TEST 17 -------------------------------------------------------------------
# Test that analysis of a dataset with 1 result and 1 negative sample work.
# Analyse dataframe.
res <- calculateHeight(data = df7, ref = ref4, na.replace = NULL, add = FALSE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("H" %in% names(res))
expect_true("Peaks" %in% names(res))
expect_true("Expected" %in% names(res))
expect_true("Proportion" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$H)))
expect_false(any(is.na(res$Peaks)))
expect_false(any(is.na(res$Expected)))
expect_false(any(is.na(res$Proportion)))
# Check result.
expect_that(res$TPH, equals(31837))
expect_that(round(res$H, 3), equals(1591.85))
expect_that(res$Peaks, equals(17))
expect_that(res$Expected, equals(17))
expect_that(round(res$Proportion, 3), equals(1))
# TEST 18 -------------------------------------------------------------------
# Test that analysis of one sample works.
# Add to dataframe.
# Analyse dataframe.
res <- calculateHeight(data = df5, ref = ref4, na.replace = NULL, add = TRUE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("H" %in% names(res))
expect_true("Peaks" %in% names(res))
expect_true("Expected" %in% names(res))
expect_true("Proportion" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$H)))
expect_false(any(is.na(res$Peaks)))
expect_false(any(is.na(res$Expected)))
expect_false(any(is.na(res$Proportion)))
# Check result.
expect_that(unique(res$TPH), equals(30620))
expect_that(unique(round(res$H, 3)), equals(1701.111))
expect_that(unique(res$Peaks), equals(16))
expect_that(unique(res$Expected), equals(17))
expect_that(unique(round(res$Proportion, 3)), equals(0.941))
# TEST 19 -------------------------------------------------------------------
# Test that analysis of one sample works.
# Add to dataframe.
# Remove sex markers.
# Analyse dataframe.
res <- calculateHeight(
data = df5, ref = ref4, na.replace = NULL, add = TRUE,
sex.rm = TRUE, kit = "SGMPlus"
)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("H" %in% names(res))
expect_true("Peaks" %in% names(res))
expect_true("Expected" %in% names(res))
expect_true("Proportion" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$H)))
expect_false(any(is.na(res$Peaks)))
expect_false(any(is.na(res$Expected)))
expect_false(any(is.na(res$Proportion)))
# Check result.
expect_that(unique(res$TPH), equals(23431))
expect_that(unique(round(res$H, 3)), equals(1464.438))
expect_that(unique(res$Peaks), equals(15))
expect_that(unique(res$Expected), equals(16))
expect_that(unique(round(res$Proportion, 3)), equals(0.938))
# TEST 20 -------------------------------------------------------------------
# Test that analysis of one sample works,
# with double notation for homozygotes in reference.
# Analyse dataframe.
res <- calculateHeight(data = df4, ref = ref5, na.replace = NULL, add = FALSE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("H" %in% names(res))
expect_true("Peaks" %in% names(res))
expect_true("Expected" %in% names(res))
expect_true("Proportion" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$H)))
expect_false(any(is.na(res$Peaks)))
expect_false(any(is.na(res$Expected)))
expect_false(any(is.na(res$Proportion)))
# Check result.
expect_that(res$TPH, equals(31837))
expect_that(round(res$H, 3), equals(1591.85))
expect_that(res$Peaks, equals(17))
expect_that(res$Expected, equals(17))
expect_that(res$Proportion, equals(1))
# TEST 21 -------------------------------------------------------------------
# Test that analysis of a dataset with only a negative sample work,
# with reference and replacement of NA.
# Analyse dataframe.
res <- calculateHeight(data = df6, ref = ref4, na.replace = 0, add = FALSE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("H" %in% names(res))
expect_true("Peaks" %in% names(res))
expect_true("Expected" %in% names(res))
expect_true("Proportion" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$H)))
expect_false(any(is.na(res$Peaks)))
expect_false(any(is.na(res$Expected)))
expect_false(any(is.na(res$Proportion)))
# Check result.
expect_that(res$TPH, equals(0))
expect_that(res$H, equals(0))
expect_that(res$Peaks, equals(0))
expect_that(res$Expected, equals(17))
expect_that(res$Proportion, equals(0))
# TEST 22 -------------------------------------------------------------------
# Test that analysis of a dataset with only a negative sample work,
# with reference.
# Analyse dataframe.
res <- calculateHeight(data = df6, ref = ref4, na.replace = NULL, add = FALSE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("H" %in% names(res))
expect_true("Peaks" %in% names(res))
expect_true("Expected" %in% names(res))
expect_true("Proportion" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$TPH)))
expect_true(any(is.na(res$H)))
expect_false(any(is.na(res$Peaks)))
expect_false(any(is.na(res$Expected)))
expect_false(any(is.na(res$Proportion)))
# Check result.
expect_that(res$TPH, equals(0))
expect_that(res$H, equals(NaN))
expect_that(res$Peaks, equals(0))
expect_that(res$Expected, equals(17))
expect_that(res$Proportion, equals(0))
# TEST 23 -------------------------------------------------------------------
# Test correctness of formula, division by expected alleles.
# A full profile with H=100 and a sample with a single allele H=100/20.
# Analyse dataframe.
res <- calculateHeight(data = df8, ref = ref4, na.replace = NULL, add = FALSE)
# Check return class.
expect_match(class(res), class(data.frame()))
# Check that expected columns exist.
expect_true("Sample.Name" %in% names(res))
expect_true("TPH" %in% names(res))
expect_true("H" %in% names(res))
expect_true("Peaks" %in% names(res))
expect_true("Expected" %in% names(res))
expect_true("Proportion" %in% names(res))
# Check for NA's.
expect_false(any(is.na(res$Sample.Name)))
expect_false(any(is.na(res$TPH)))
expect_false(any(is.na(res$H)))
expect_false(any(is.na(res$Peaks)))
expect_false(any(is.na(res$Expected)))
expect_false(any(is.na(res$Proportion)))
# Check result.
expect_that(res$TPH[1], equals(2000))
expect_that(res$TPH[2], equals(200))
expect_that(res$H[1], equals(100))
expect_that(res$H[2], equals(100))
expect_that(res$Peaks[1], equals(17))
expect_that(res$Peaks[2], equals(1))
expect_that(res$Expected[1], equals(17))
expect_that(res$Expected[2], equals(17))
expect_that(res$Proportion[1], equals(17 / 17))
expect_that(res$Proportion[2], equals(1 / 17))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.