context("frequencies.R")
test_that("frequencies.locus", {
AA <- locus( c("A","A") )
AB <- locus( c("A","B") )
BB <- locus( c("B","B") )
AC <- locus( c("A","C") )
AD <- locus( c("A","D") )
BC <- locus( c("B","C") )
BD <- locus( c("B","D") )
CC <- locus( c("C","C") )
CD <- locus( c("C","D") )
DD <- locus( c("D","D") )
loc1 <- c(AA,AB,AC,AD,BB,BC,BD,CC,CD,DD)
f <- frequencies( loc1 )
expect_that( f, is_a("data.frame"))
expect_that( names(f), is_equivalent_to(c("Allele","Frequency") ) )
expect_that( unique(sort(alleles(loc1))), is_equivalent_to(sort(f$Allele) ) )
expect_that( sum( f$Frequency ), equals(1))
})
test_that("frequencies.data.frame", {
AA <- locus( c("A","A") )
AB <- locus( c("A","B") )
BB <- locus( c("B","B") )
AC <- locus( c("A","C") )
AD <- locus( c("A","D") )
BC <- locus( c("B","C") )
BD <- locus( c("B","D") )
CC <- locus( c("C","C") )
CD <- locus( c("C","D") )
DD <- locus( c("D","D") )
loc1 <- c(AA,AB,AC,AD,BB,BC,BD,CC,CD,DD)
loc2 <- c(AA,AA,AC,AA,CC,CC,AC,CC,AA,AC)
df <- data.frame( Population=c(rep("A",5),rep("B",5)), TPI=loc1, PGM=loc2 )
f <- frequencies(df,loci="TPI")
expect_that(f, is_a("data.frame"))
expect_that(names(f), is_equivalent_to(c("Locus","Allele","Frequency")))
f <- frequencies(df)
expect_that( length(unique(f$Locus)), equals(2) )
expect_that( sum( f$Frequency), equals(2) )
expect_that( f <- frequencies( df, loci="bob"), throws_error() )
expect_that( f <- frequencies( df, loci=c("bob","TPI")), throws_error() )
expect_that( f <- frequencies( df, stratum="bob"), throws_error() )
})
# TODO: implement snp frequencies
# test_that("frequencies.data.frame", {
# x <- matrix( abs( rnorm(30)), ncol=3)
# x <- x / rowSums(x)
# df <- data.frame( Loc1_1=x[,1], Loc1_2=x[,2], Loc1_3=x[,3])
#
# f <- frequencies(df)
# expect_that( f, is_a("data.frame"))
# expect_that( names(f), is_equivalent_to(c("Locus","Allele","Frequency")))
# expect_that( f$Allele, is_equivalent_to(c("A","B")))
# expect_that( f$Locus, is_equivalent_to(c("Loc1","Loc1")))
# expect_that( sum(f$Frequency), is_equivalent_to(1))
#
# })
#
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.