tests/testthat/test-cooling.R

library(testthat)
library(xegaSelectGene)
library(xegaGaGene)
library(xegaPopulation)

test_that("ExponentialMultiplicativeCooling OK",
          {
          parm<-function(x){function() {return(x)}}
          lF<-list(Temp0=parm(100),
                   Alpha=parm(0.99))
          expect_identical(ExponentialMultiplicativeCooling(0, lF), 100)
          expect_equal(ExponentialMultiplicativeCooling(1, lF), 99)
          expect_equal(ExponentialMultiplicativeCooling(5, lF), (100*0.99^5))
          }
)

test_that("ExponentialMultiplicativeCooling OK",
          {
          parm<-function(x){function() {return(x)}}
          lF<-list(Temp0=parm(100),
                   Alpha=parm(0.99))
          expect_identical(LogarithmicMultiplicativeCooling(0, lF), 100)
          expect_equal(LogarithmicMultiplicativeCooling(1, lF), 59.30439,
	  tolerance=0.0001)
          expect_equal(LogarithmicMultiplicativeCooling(5, lF), 36.05108,
	  tolerance=0.0001)
          }
)

test_that("PowerMultiplicativeCooling OK",
          {
          parm<-function(x){function() {return(x)}}
          lF<-list(Temp0=parm(100),
                   Alpha=parm(0.99),
	           CoolingPower=parm(2))
          expect_identical(PowerMultiplicativeCooling(0, lF), 100)
          expect_equal(PowerMultiplicativeCooling(1, lF), 50.25126,
	  tolerance=0.0001)
          expect_equal(PowerMultiplicativeCooling(5, lF), 3.883495,
	  tolerance=0.0001)
          }
)

test_that("PowerAdditiveCooling OK",
          {
          parm<-function(x){function() {return(x)}}
          lF<-list(Temp0=parm(100),
		   TempN=parm(10),
                   Generations=parm(50),
	           CoolingPower=parm(2))
          expect_identical(PowerAdditiveCooling(0, lF), 100)
          expect_equal(PowerAdditiveCooling(1, lF), 96.436,
	  tolerance=0.0001)
          expect_equal(PowerAdditiveCooling(2, lF), 92.94,
	  tolerance=0.0001)
          expect_equal(PowerAdditiveCooling(50, lF), 10,
	  tolerance=0.0001)
          }
)

test_that("ExponenentialAdditiveCooling OK",
          {
          parm<-function(x){function() {return(x)}}
          lF<-list(Temp0=parm(100),
		   TempN=parm(10),
                   Generations=parm(50))
          expect_equal(ExponentialAdditiveCooling(0, lF), 99.01099,
	  tolerance=0.0001)
          expect_equal(ExponentialAdditiveCooling(1, lF), 98.81851,
	  tolerance=0.0001)
          expect_equal(ExponentialAdditiveCooling(2, lF), 98.58916,
	  tolerance=0.0001)
          expect_equal(ExponentialAdditiveCooling(50, lF), 10.98901,
	  tolerance=0.0001)
          }
)

test_that("TrigonometricAdditiveCooling OK",
          {
          parm<-function(x){function() {return(x)}}
          lF<-list(Temp0=parm(100),
		   TempN=parm(10),
                   Generations=parm(50))
          expect_equal(TrigonometricAdditiveCooling(0, lF), 100,
	  tolerance=0.0001)
          expect_equal(TrigonometricAdditiveCooling(1, lF), 99.9112,
	  tolerance=0.0001)
          expect_equal(TrigonometricAdditiveCooling(2, lF), 99.64516,
	  tolerance=0.0001)
          expect_equal(TrigonometricAdditiveCooling(50, lF), 10,
	  tolerance=0.0001)
          }
)

test_that("CoolingFactory OK",
          {
          Fun<-CoolingFactory()
          expect_identical(body(Fun), body(ExponentialMultiplicativeCooling))
          Fun<-CoolingFactory("ExponentialMultiplicative")
          expect_identical(body(Fun), body(ExponentialMultiplicativeCooling))
          Fun<-CoolingFactory("LogarithmicMultiplicative")
          expect_identical(body(Fun), body(LogarithmicMultiplicativeCooling))
          Fun<-CoolingFactory("PowerMultiplicative")
          expect_identical(body(Fun), body(PowerMultiplicativeCooling))
          Fun<-CoolingFactory("PowerAdditive")
          expect_identical(body(Fun), body(PowerAdditiveCooling))
          Fun<-CoolingFactory("ExponentialAdditive")
          expect_identical(body(Fun), body(ExponentialAdditiveCooling))
          Fun<-CoolingFactory("TrigonometricAdditive")
          expect_identical(body(Fun), body(TrigonometricAdditiveCooling))
          expect_error(CoolingFactory("Stchastic"))
          }
)

Try the xegaPopulation package in your browser

Any scripts or data that you put into this service are public.

xegaPopulation documentation built on Aug. 22, 2025, 5:14 p.m.