tests/testthat/test-transition_probability.R

context("transition_probability.R")

test_that("testing",{
  off  <- locus( 1:2 )
  mom  <- locus( c(1,1) )
  dad1 <- locus( c(2,2) )
  dad2 <- locus( c(1,2) )
  dad3 <- locus( c(1,1) )

  expect_that( transition_probability(), throws_error() ) 
  
  t1 <- transition_probability( off, mom, dad1 )
  t2 <- transition_probability( off, mom, dad2 )
  t3 <- transition_probability( off, mom, dad3 )
  
  expect_that( t1, equals(1.0) )
  expect_that( t2, equals(0.5) )
  expect_that( t3, equals(0.0) )

  
  t4 <- transition_probability( mom, dad3)  # 1.0
  t5 <- transition_probability( off, mom )  # 0.5
  t6 <- transition_probability( mom, dad1 ) # 0.0
  expect_that( t4, equals(1.0))
  expect_that( t5, equals(0.5))
  expect_that( t6, equals(0.0))
  
  
  # test to see if it handles 
  df <- data.frame( ID=1:5, PGM=c(off,mom,dad1,dad2,dad3))
  expect_that( transition_probability( df[1,], df[2,] ), is_equivalent_to(0.5))
  expect_that( transition_probability( df[2,], df[3,] ), is_equivalent_to(0.0))
  expect_that( transition_probability( df[2,], df[5,] ), is_equivalent_to(1.0))
  
  df$PGI <- df$PGM
  df$TPI <- df$PGM
  expect_that( transition_probability( df[1,], df[2,], df[4,] ), is_equivalent_to(0.5^3))
  expect_that( transition_probability( df[1,], df[2,], df[4,], multilocus=FALSE ), is_equivalent_to(c(0.5,0.5,0.5)))
  expect_that( transition_probability( df[1,], df[2,], df[3,] ), is_equivalent_to(1.0))
  expect_that( transition_probability( df[1,], df[2,], df[5,] ), is_equivalent_to(0.0))
  
  

  df$PGI[1] <- NA
  expect_that( transition_probability( df[1,], df[2,], df[4,], multilocus=FALSE ), is_equivalent_to( c(0.5,NA,0.5)) )
  expect_that( transition_probability( df[1,], df[2,], df[4,] ), is_equivalent_to( 0.25) )
  
               
})
dyerlab/gstudio documentation built on Feb. 2, 2024, 8:24 p.m.