Nothing
library(testthat)
library(xegaSelectGene)
parm<-function(x) {function() {x}}
test_that("ScaleFitness OK",
{lF<-list()
lF$Offset<-function() {0.01}
fit<-sample(10, 15, replace=TRUE)
expect_setequal(ScaleFitness(fit, 0, lF), rep(1, 15))
expect_setequal(ScaleFitness(fit, 1, lF), fit)
expect_setequal(ScaleFitness(fit, 0.5, lF), (fit^0.5))
fitneg<-fit-10
expect_setequal(ScaleFitness(fitneg, 0, lF), rep(1, 15))
expect_setequal(ScaleFitness(fitneg, 1, lF), (fitneg+0.01+abs(min(fitneg))))
expect_setequal(ScaleFitness(fitneg, 2, lF), (fitneg+0.01+abs(min(fitneg)))^2)
}
)
test_that("ScalingFitness OK",
{lF<-list()
lF$Offset<-function() {0.01}
lF$ScalingExp<-function() {2}
fit<-sample(10, 15, replace=TRUE)
expect_setequal(ScalingFitness(fit, lF), (fit^2))
fitneg<-fit-10
expect_setequal(ScalingFitness(fitneg, lF), (fitneg+0.01+abs(min(fitneg)))^2)
}
)
test_that("ThresholdScaleFitness OK",
{
lF<-list()
lF$Offset<-parm(0.0001)
lF$ScalingThreshold<-parm(0.05)
lF$RDM<-parm(1.0)
lF$ScalingExp<-parm(0.5)
lF$ScalingExp2<-parm(2)
fit<-sample(10, 15, replace=TRUE)
expect_setequal(ThresholdScaleFitness(fit, lF), fit)
# increase pressure
lF$RDM<-parm(1.2)
expect_setequal(ThresholdScaleFitness(fit, lF), fit^0.5)
# decrease pressure
lF$RDM<-parm(0.5)
expect_setequal(ThresholdScaleFitness(fit, lF), fit^2)
}
)
test_that("ContinuousScaleFitness OK",
{
lF<-list()
lF$Offset<-parm(0.0001)
lF$ScalingThreshold<-parm(0.05)
lF$RDM<-parm(1.0)
lF$RDMWeight<-parm(1.0)
fit<-sample(10, 15, replace=TRUE)
expect_setequal(ContinuousScaleFitness(fit, lF), fit)
# increase pressure
lF$RDM<-parm(1.2)
lF$RDMWeight<-parm(1.2)
expect_setequal(ContinuousScaleFitness(fit, lF), fit^(1.2*1.2))
# decrease pressure
lF$RDM<-parm(0.5)
lF$RDMWeight<-parm(0.9)
expect_setequal(ContinuousScaleFitness(fit, lF), fit^(0.5*0.9))
}
)
test_that("ScalingFactory OK",
{
lF<-list()
lF$Offset<-parm(0.0001)
lF$ScalingThreshold<-parm(0.05)
lF$ScalingExp<-parm(0.5)
lF$ScalingExp2<-parm(2)
lF$RDM<-parm(1.0)
lF$RDMWeight<-parm(1.0)
fit<-sample(10, 15, replace=TRUE)
ScalingFun<-ScalingFactory()
expect_equal(ScalingFun(fit, lF), fit)
ScalingFun<-ScalingFactory("NoScaling")
expect_equal(ScalingFun(fit, lF), fit)
ScalingFun<-ScalingFactory(method="ConstantScaling")
expect_equal(ScalingFun(fit, lF), ScalingFitness(fit, lF))
ScalingFun<-ScalingFactory(method="ThresholdScaling")
expect_equal(ScalingFun(fit, lF), ThresholdScaleFitness(fit, lF))
ScalingFun<-ScalingFactory(method="ContinuousScaling")
expect_equal(ScalingFun(fit, lF), ContinuousScaleFitness(fit, lF))
expect_error(ScalingFactory(method="CntinuousScaling"))
}
)
test_that("DispersionRatio OK",
{ lF<-NewlFselectGenes()
p<-matrix(0, nrow=3, ncol=8)
p[1,]<-c(14.1, 0.283, 5.53, 14.0, 19.4, 38.1, 90.2, 6.54)
p[2,]<-c(20.7, 0.794, 14.63, 19.0, 26.5, 38.8, 71.4, 5.27)
p[3,]<-c(24.0, 6.007, 16.89, 24.1, 29.2, 38.8, 73.4, 6.50)
dm<-DispersionMeasureFactory("var")
expect_equal(DispersionRatio(p, dm, lF), 1.0280112)
lF$ScalingDelay<-parm(2)
expect_equal(DispersionRatio(p, dm, lF), 0.81374723)
lF$DRmin<-parm(0.9)
expect_equal(DispersionRatio(p, dm, lF), 0.9)
lF$DRmin<-parm(0.2)
lF$DRmax<-parm(0.7)
expect_equal(DispersionRatio(p, dm, lF), 0.7)
}
)
test_that("DispersionMeasureFactory OK",
{
fit<-sample(10, 15, replace=TRUE)
populationStats<-c(mean(fit), fivenum(fit), var(fit), mad(fit, constant=1))
DM<-DispersionMeasureFactory()
expect_equal(DM(populationStats), var(fit))
DM<-DispersionMeasureFactory(method="var")
expect_equal(DM(populationStats), var(fit))
DM<-DispersionMeasureFactory(method="std")
expect_equal(DM(populationStats), var(fit)^0.5)
DM<-DispersionMeasureFactory(method="mad")
expect_equal(DM(populationStats), mad(fit, constant=1))
DM<-DispersionMeasureFactory(method="cv")
expect_equal(DM(populationStats), (var(fit)^0.5)/mean(fit))
DM<-DispersionMeasureFactory(method="range")
expect_equal(DM(populationStats), (max(fit)-min(fit)))
DM<-DispersionMeasureFactory(method="iqr")
expect_equal(DM(populationStats), (fivenum(fit)[4]- fivenum(fit)[2]))
expect_error(DispersionMeasureFactory(method="CntinuousScaling"))
}
)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.