###################################################
# Created by Astrid Deschenes
# 2014-08-08
###################################################
## Test the similarity function
###################################################
### {{{ --- Test setup ---
if(FALSE) {
library( "RUnit" )
library( "similaRpeak" )
}
### }}}
########################################################################
# Test arguments that should generate an exception
########################################################################
## Test the result of non-numeric profile1
test.similarity_profile1_non_numeric <- function() {
exp <- "The 'profile1' argument must be a numeric vector."
obs <- tryCatch(similarity(profile1 = c(1,59,6,24,2,"a",15,4,53,22),
profile2 = c(15,9,46,44,9,39,22,34,34,4)),
error = conditionMessage)
message <- paste0("test.similarity_profile1_non_numeric() ",
"- A non numeric profile1 did not generated ",
"expected error.")
checkEquals(obs, exp, msg = message)
}
## Test the result of non-vector profile1
test.similarity_profile1_non_vector <- function() {
exp <- "The 'profile1' argument must be a numeric vector."
obs <- tryCatch(similarity(profile1 = matrix(c(15,9,46,44,9,39,27,34,34,4),
ncol=2),
profile2 = c(15,9,46,44,9,39,27,34,34,4)),
error = conditionMessage)
message <- paste0("test.similarity_profile1_non_vector() ",
"- A non-vector profile1 did not generated ",
"expected error.")
checkEquals(obs, exp, msg = message)
}
## Test the result of negatives values profile1
test.similarity_profile1_negatives_values <- function() {
exp <- "The 'profile1' argument contains at least one negative number."
obs <- tryCatch(similarity(profile1 = c(0,0,0,-8,0,0,0,0,0,0),
profile2 = c(15,9,46,44,9,39,27,34,34,4)),
error = conditionMessage)
message <- paste0("test.similarity_profile1_negatives_values() ",
"- A profile1 with negative value did not generated ",
"expected error.")
checkEquals(obs, exp, msg = message)
}
## Test the result of non-numeric profile2
test.similarity_profile2_non_numeric <- function() {
exp <- "The 'profile2' argument must be a numeric vector."
obs <- tryCatch(similarity(profile1 = c(1,59,6,24,2,34,15,4,53,22),
profile2 = c(15,9,46,44,9,39,"e",34,34,4)),
error = conditionMessage)
message <- paste0("test.similarity_profile2_non_numeric() ",
"- A non numeric profile2 did not generated ",
"expected error.")
checkEquals(obs, exp, msg = message)
}
## Test the result of non-vector profile2
test.similarity_profile2_non_vector <- function() {
exp <- "The 'profile2' argument must be a numeric vector."
obs <- tryCatch(similarity(profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = matrix(c(15,9,46,44,9,39,27,34,34,4),
ncol=2)),
error = conditionMessage)
message <- paste0("test.similarity_profile2_non_vector() ",
"- A non-vector profile2 did not generated ",
"expected error.")
checkEquals(obs, exp, msg = message)
}
## Test the result of negatives values profile2
test.similarity_profil2_negatives_values <- function() {
exp <- "The 'profile2' argument contains at least one negative number."
obs <- tryCatch(similarity(profile1 = c(0,0,0,8,0,0,0,0,0,0),
profile2 = c(15,9,46,-1,9,39,27,34,34,4)),
error = conditionMessage)
message <- paste0("test.similarity_profil2_negatives_values() ",
"- A profile2 with negative value did not generated ",
"expected error.")
checkEquals(obs, exp, msg = message)
}
## Test the result of different profiles lengths
test.similarity_different_profiles_lengths <- function() {
exp <- "Lengths of 'profile1' and 'profile2' vectors aren't equals."
obs <- tryCatch(similarity(profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = c(39,27,34,34,4)),
error = conditionMessage)
message <- paste0("test.similarity_different_profiles_lengths() ",
"- A profile1 and profile2 with different lenghts ",
"did not generated expected error.")
checkEquals(obs, exp, msg = message)
}
## Test the result of negative ratioAreaThreshold
test.similarity_negative_ratioAreaThreshold <- function() {
exp <- "The 'ratioAreaThreshold' must be a positive numeric value."
obs <- tryCatch(similarity(profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = c(15,9,46,44,9,39,27,34,34,4),
ratioAreaThreshold= -4),
error = conditionMessage)
message <- paste0("test.similarity_negative_ratioAreaThreshold() ",
"- A ratioAreaThreshold with negative value did not generated ",
"expected error.")
checkEquals(obs, exp, msg = message)
}
## Test the result of non numeric ratioAreaThreshold
test.similarity_non_numeric_ratioAreaThreshold <- function() {
exp <- "The 'ratioAreaThreshold' must be a positive numeric value."
obs <- tryCatch(similarity(profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = c(15,9,46,44,9,39,27,34,34,4),
ratioAreaThreshold= "g"),
error = conditionMessage)
message <- paste0("test.similarity_non_numeric_ratioAreaThreshold() ",
"- A non numeric ratioAreaThreshold ",
"did not generated expected error.")
checkEquals(obs, exp, msg = message)
}
## Test the result of zero numeric ratioMaxMaxThreshold
test.similarity_zero_ratioMaxMaxThreshold <- function() {
exp <- "The 'ratioMaxMaxThreshold' must be a positive numeric value."
obs <- tryCatch(similarity(profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = c(15,9,46,44,9,39,27,34,34,4),
ratioMaxMaxThreshold= 0),
error = conditionMessage)
message <- paste0("test.similarity_null_ratioMaxMaxThreshold() ",
"- A ratioMaxMaxThreshold with zero value ",
"did not generated expected error.")
checkEquals(obs, exp, msg = message)
}
## Test the result of negative ratioMaxMaxThreshold
test.similarity_negative_ratioMaxMaxThreshold <- function() {
exp <- "The 'ratioMaxMaxThreshold' must be a positive numeric value."
obs <- tryCatch(similarity(profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = c(15,9,46,44,9,39,27,34,34,4),
ratioMaxMaxThreshold= -5),
error = conditionMessage)
message <- paste0("test.similarity_negative_ratioMaxMaxThreshold() ",
"- A ratioMaxMaxThreshold with negative value ",
"did not generated expected error.")
checkEquals(obs, exp, msg = message)
}
## Test the result of non numeric ratioMaxMaxThreshold
test.similarity_non_numeric_ratioMaxMaxThreshold <- function() {
exp <- "The 'ratioMaxMaxThreshold' must be a positive numeric value."
obs <- tryCatch(similarity(profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = c(15,9,46,44,9,39,27,34,34,4),
ratioMaxMaxThreshold= "g"),
error = conditionMessage)
message <- paste0("test.similarity_non_numeric_ratioMaxMaxThreshold() ",
"- A ratioMaxMaxThreshold with non numeric value ",
"did not generated expected error.")
checkEquals(obs, exp, msg = message)
}
## Test the result of zero numeric ratioIntersectThreshold
test.similarity_zero_ratioIntersectThreshold <- function() {
exp <- "The 'ratioIntersectThreshold' must be a positive numeric value."
obs <- tryCatch(similarity(profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = c(15,9,46,44,9,39,27,34,34,4),
ratioIntersectThreshold= 0),
error = conditionMessage)
message <- paste0("test.similarity_zero_ratioIntersectThreshold() ",
"- A ratioIntersectThreshold with zero value ",
"did not generated expected error.")
checkEquals(obs, exp, msg = message)
}
## Test the result of negative ratioIntersectThreshold
test.similarity_negative_ratioIntersectThreshold <- function() {
exp <- "The 'ratioIntersectThreshold' must be a positive numeric value."
obs <- tryCatch(similarity(profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = c(15,9,46,44,9,39,27,34,34,4),
ratioIntersectThreshold= -3),
error = conditionMessage)
message <- paste0("test.similarity_negative_ratioIntersectThreshold() ",
"- A ratioIntersectThreshold with negative value ",
"did not generated expected error.")
checkEquals(obs, exp, msg = message)
}
## Test the result of non numeric ratioIntersectThreshold
test.similarity_non_numeric_ratioIntersectThreshold <- function() {
exp <- "The 'ratioIntersectThreshold' must be a positive numeric value."
obs <- tryCatch(similarity(profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = c(15,9,46,44,9,39,27,34,34,4),
ratioIntersectThreshold= "g"),
error = conditionMessage)
message <- paste0("test.similarity_negative_ratioIntersectThreshold() ",
"- A ratioIntersectThreshold with non numeric value ",
"did not generated expected error.")
checkEquals(obs, exp, msg = message)
}
## Test the result of zero numeric diffPosMaxThresholdMinValue
test.similarity_zero_diffPosMaxThresholdMinValue <- function() {
exp <- "The 'diffPosMaxThresholdMinValue' must be a positive numeric value."
obs <- tryCatch(similarity(profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = c(15,9,46,44,9,39,27,34,34,4),
diffPosMaxThresholdMinValue= 0),
error = conditionMessage)
message <- paste0("test.similarity_zero_diffPosMaxThresholdMinValue() ",
"- A diffPosMaxThresholdMinValue with zero value ",
"did not generated expected error.")
checkEquals(obs, exp, msg = message)
}
## Test the result of negative diffPosMaxThresholdMinValue
test.similarity_negative_diffPosMaxThresholdMinValue <- function() {
exp <- "The 'diffPosMaxThresholdMinValue' must be a positive numeric value."
obs <- tryCatch(similarity(profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = c(15,9,46,44,9,39,27,34,34,4),
diffPosMaxThresholdMinValue= -5),
error = conditionMessage)
message <- paste0("test.similarity_negative_diffPosMaxThresholdMinValue() ",
"- A diffPosMaxThresholdMinValue with negative value ",
"did not generated expected error.")
checkEquals(obs, exp, msg = message)
}
## Test the result of non numeric diffPosMaxThresholdMinValue
test.similarity_non_numeric_diffPosMaxThresholdMinValue <- function() {
exp <- "The 'diffPosMaxThresholdMinValue' must be a positive numeric value."
obs <- tryCatch(similarity(profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = c(15,9,46,44,9,39,27,34,34,4),
diffPosMaxThresholdMinValue= "t"),
error = conditionMessage)
message <- paste0("test.similarity_non_numeric_diffPosMaxThresholdMinValue ",
"- A diffPosMaxThresholdMinValue with non numeric value ",
"did not generated expected error.")
checkEquals(obs, exp, msg = message)
}
## Test the result of negative diffPosMaxThresholdMaxDiff
test.similarity_negative_diffPosMaxThresholdMaxDiff <- function() {
exp <- "The 'diffPosMaxThresholdMaxDiff' must be a positive numeric value."
obs <- tryCatch(similarity(profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = c(15,9,46,44,9,39,27,34,34,4),
diffPosMaxThresholdMaxDiff= -4),
error = conditionMessage)
message <- paste0("test.similarity_negative_diffPosMaxThresholdMaxDiff() ",
"- A diffPosMaxThresholdMaxDiff with negative value ",
"did not generated expected error.")
checkEquals(obs, exp, msg = message)
}
## Test the result of non numeric diffPosMaxThresholdMaxDiff
test.similarity_non_numeric_diffPosMaxThresholdMaxDiff <- function() {
obs <- tryCatch(similarity(
profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = c(15,9,46,44,9,39,27,34,34,4),
diffPosMaxThresholdMaxDiff="g"), error = conditionMessage)
exp <- "The 'diffPosMaxThresholdMaxDiff' must be a positive numeric value."
checkIdentical(obs, exp,
msg=paste("similarity_non_numeric_diffPosMaxThresholdMaxDiff() ",
"- A non numeric diffPosMaxThresholdMaxDiff did not ",
"generate an exception with expected message.", sep = ""))
}
## Test the result of negative diffPosMaxThresholdMaxDiff
test.similarity_negative_diffPosMaxThresholdMaxDiff <- function() {
obs <- tryCatch(similarity(
profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = c(15,9,46,44,9,39,27,34,34,4),
diffPosMaxThresholdMaxDiff = -0.2),
error = conditionMessage)
exp <- "The 'diffPosMaxThresholdMaxDiff' must be a positive numeric value."
checkIdentical(obs,
exp,
msg=paste0("similarity_negative_diffPosMaxThresholdMax",
"Diff() - A negative diffPosMaxThresholdMaxDiff ",
"did not generate an exception with expected ",
"message."))
}
## Test the result of non numeric diffPosMaxTolerance
test.similarity_non_numeric_diffPosMaxThresholdMaxDiff <- function() {
obs <- tryCatch(similarity(
profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = c(15,9,46,44,9,39,27,34,34,4),
diffPosMaxTolerance = "g"), error = conditionMessage)
exp <- paste("The 'diffPosMaxTolerance' must be a positive numeric ",
"value between 0 and 1 included.", sep = "")
checkIdentical(obs, exp,
msg=paste("similarity_non_numeric_",
"diffPosMaxThresholdMaxDiff() - A non numerical ",
"diffPosMaxThresholdMaxDiff did not generate an ",
"exception with expected message.", sep = ""))
}
## Test the result of negative diffPosMaxTolerance
test.similarity_negative_diffPosMaxTolerance <- function() {
obs <- tryCatch(similarity(
profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = c(15,9,46,44,9,39,27,34,34,4),
diffPosMaxTolerance = -0.5), error = conditionMessage)
exp <- paste("The 'diffPosMaxTolerance' must be a positive numeric ",
"value between 0 and 1 included.", sep = "")
checkIdentical(obs, exp,
msg = paste("similarity_negative_diffPosMaxTolerance() - ",
"A negative diffPosMaxTolerance did not generate ",
"an exception with expected message.", sep = ""))
}
## Test the result of non numeric diffPosMaxTolerance
test.similarity_non_numeric_diffPosMaxTolerance <- function() {
obs <- tryCatch(similarity(
profile1=c(1,59,6,24,65,34,15,4,53,22),
profile2=c(15,9,46,44,9,39,27,34,34,4),
diffPosMaxTolerance="g"),
error=conditionMessage)
exp <- paste("The 'diffPosMaxTolerance' must be a positive numeric ",
"value between 0 and 1 included.", sep = "")
checkIdentical(obs, exp,
msg=paste("similarity_non_numeric_diffPosMaxTolerance() - ",
"A non numeric diffPosMaxTolerance did not generate ",
"an,exception with expected message.", sep = ""))
}
## Test the result of value superior to 1 for diffPosMaxTolerance
test.similarity_superior_1_diffPosMaxTolerance <- function() {
obs <- tryCatch(similarity(
profile1=c(1,59,6,24,65,34,15,4,53,22),
profile2=c(15,9,46,44,9,39,27,34,34,4),
diffPosMaxTolerance=1.01), error = conditionMessage)
exp <- paste("The 'diffPosMaxTolerance' must be a positive numeric value ",
"between 0 and 1 included.", sep = "")
checkIdentical(obs,
exp,
msg = paste("similarity_superior_1_diffPosMaxTolerance() - ",
"A diffPosMaxTolerance superior to 1 did not ",
"generate an exception with expected message.",
sep = ""))
}
## Test the result of zero numeric diffPosMaxThresholdMaxDiff
test.similarity_zero_diffPosMaxThresholdMaxDiff <- function() {
obs <- tryCatch(similarity(
profile1=c(1,59,6,24,65,34,15,4,53,22),
profile2=c(15,9,46,44,9,39,27,34,34,4),
diffPosMaxThresholdMaxDiff=0), error=conditionMessage)
exp <- "The 'diffPosMaxThresholdMaxDiff' must be a positive numeric value."
checkEquals(obs,
exp,
msg=paste("similarity_zero_diffPosMaxThresholdMaxDiff() - ",
"A zero value diffPosMaxThresholdMaxDiff dit not ",
"generate the expected exception.", sep = ""))
}
## Test the result of zero numeric ratioAreaThreshold
test.similarity_zero_ratioAreaThreshold <- function() {
obs <- tryCatch(similarity(
profile1=c(1,59,6,24,65,34,53,4,53,22),
profile2=c(15,9,46,44,9,39,27,34,34,4),
ratioAreaThreshold = 0), error=conditionMessage)
exp <- "The 'ratioAreaThreshold' must be a positive numeric value."
checkEquals(obs,
exp,
msg=paste("similarity_zero_ratioAreaThreshold() - A zero ",
"value ratioAreaThreshold dit not generate the ",
"expected exception.", sep = ""))
}
## Test the result of zero numeric ratioNormalizedIntersectThreshold
test.similarity_zero_ratioNormalizedIntersectThreshold <- function() {
obs <- tryCatch(similarity(
profile1=c(1,59,6,24,65,34,53,4,53,22),
profile2=c(15,9,46,44,9,39,27,34,34,4),
ratioNormalizedIntersectThreshold = 0),
error=conditionMessage)
exp <- paste0("The 'ratioNormalizedIntersectThreshold' must be ",
"a positive numeric value.")
checkEquals(obs,
exp,
msg=paste("similarity_zero_ratioNormalizedIntersectThreshold()",
" - A zero value ratioAreaThreshold dit not generate the ",
"expected exception.", sep = ""))
}
## Test the result of non numeric ratioNormalizedIntersectThreshold
test.similarity_non_numeric_ratioNormalizedIntersectThreshold <- function() {
obs <- tryCatch(similarity(
profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = c(15,9,46,44,9,39,27,34,34,4),
ratioNormalizedIntersectThreshold = "g"), error = conditionMessage)
exp <- paste0("The 'ratioNormalizedIntersectThreshold' must be ",
"a positive numeric value.")
checkIdentical(obs, exp,
msg=paste("similarity_non_numeric_",
"ratioNormalizedIntersectThreshold() - A non numerical ",
"ratioNormalizedIntersectThreshold did not generate an ",
"exception with expected message.", sep = ""))
}
## Test the result of zero numeric spearmanCorrSDThreashold
test.similarity_zero_spearmanCorrSDThreashold <- function() {
obs <- tryCatch(similarity(
profile1=c(1,59,6,24,65,34,53,4,53,22),
profile2=c(15,9,46,44,9,39,27,34,34,4),
spearmanCorrSDThreashold = 0),
error=conditionMessage)
exp <- paste0("The 'spearmanCorrSDThreashold' must be ",
"a positive numeric value.")
checkEquals(obs,
exp,
msg=paste("similarity_zero_spearmanCorrSDThreashold()",
" - A zero value ratioAreaThreshold dit not generate the ",
"expected exception.", sep = ""))
}
## Test the result of non numeric spearmanCorrSDThreashold
test.similarity_non_numeric_spearmanCorrSDThreashold <- function() {
obs <- tryCatch(similarity(
profile1 = c(1,59,6,24,65,34,15,4,53,22),
profile2 = c(15,9,46,44,9,39,27,34,34,4),
spearmanCorrSDThreashold = "g"), error = conditionMessage)
exp <- paste0("The 'spearmanCorrSDThreashold' must be ",
"a positive numeric value.")
checkIdentical(obs, exp,
msg=paste("similarity_non_numeric_",
"spearmanCorrSDThreashold() - A non numerical ",
"spearmanCorrSDThreashold did not generate an ",
"exception with expected message.", sep = ""))
}
########################################################################
# Test results for specifics metrics
########################################################################
## Test the result of zeros vector profile1 for the RATIO_MAX_MAX value
test.similarity_profile1_zeros_RATIO_MAX_MAX <- function() {
obs <- similarity(
profile1 = c(0,0,0,0,0,0,0,0,0,0),
profile2 = c(15,9,46,44,9,39,27,34,34,4))
exp <- as.numeric(NA)
checkEquals(obs$metrics$RATIO_MAX_MAX, exp ,
msg = paste("A profile with only zero values did not generate",
" NA for the RATIO_MAX_MAX", sep = ""))
}
## Test the result of zeros vector profile1 for the RATIO_AREA value
test.similarity_profile1_zeros_RATIO_AREA <- function() {
obs <- similarity(
profile1 = c(0,0,0,0,0,0,0,0,0,0),
profile2 = c(15,9,46,44,9,39,27,34,34,4))
exp <- as.numeric(NA)
checkEquals(obs$metrics$RATIO_AREA, exp,
msg = paste0("A profile with only zero values did not generate ",
"NA for the RATIO_MAX_MAX"))
}
## Test the result of zeros vector profile1 for the RATIO_INTERSECT value
test.similarity_profile1_zeros_RATIO_INTERSECT <- function() {
obs <- similarity(
profile1 = c(0,0,0,0,0,0,0,0,0,0),
profile2 = c(15,9,46,44,9,39,27,34,34,4))
exp <- 0
checkEquals(obs$metrics$RATIO_INTERSECT, exp,
msg = paste0("A profile with only zero values did not generate ",
"0 for the RATIO_MAX_MAX"))
}
## Test the result of zeros vector profile1 and profile2 for
## the DIFF_POS_MAX value
test.similarity_profile1_zeros_DIFF_POS_MAX <- function() {
obs <- similarity(
profile1 = c(0,0,0,0,0,0,0,0,0,0),
profile2 = c(0,0,0,0,0,0,0,0,0,0))
exp <- as.numeric(NA)
checkEquals(obs$metrics$DIFF_POS_MAX, exp,
msg = paste0("A profile with only zero values did not ",
"generate 0 for the RATIO_MAX_MAX"))
}
## Test the result of zeros vector profile1 and profile2
## for the RATIO_INTERSECT value
test.similarity_profile1_and_profile2_zeros_RATIO_INTERSECT <- function() {
obs <- similarity(
profile1 = c(0,0,0,0,0,0,0,0,0,0), profile2 = c(0,0,0,0,0,0,0,0,0,0))
exp <- as.numeric(NA)
checkEquals(obs$metrics$RATIO_INTERSECT, exp,
msg = paste0("Two profiles with only zero values did not ",
"generate NA for the RATIO_MAX_MAX"))
}
## Test the result of zero numeric diffPosMaxTolerance
test.similarity_zero_diffPosMaxTolerance <- function() {
obs <- similarity(
c(1,59,6,24,65,34,15,4,53,22),
c(15,99,46,44,5,39,27,34,34,4),
diffPosMaxTolerance = 0)$metrics$DIFF_POS_MAX
exp <- 3
checkEquals(obs, exp,
tolerance = .Machine$double.eps^0.5,
msg = paste0("similarity_zero_diffPosMaxTolerance() - A zero ",
"value diffPosMaxTolerance dit not generate the ",
"expected DIFF_POS_MAX value"))
}
########################################################################
# Test expected results for specifics metrics
########################################################################
## Test the metadata results
test.similarity_metadata <- function() {
exp <- list("nbrPosition" = 10, "areaProfile1" = 283, "areaProfile2" = 261,
"maxProfile1" = 65, "maxProfile2" = 46,
"maxPositionProfile1" = 5, "maxPositionProfile2" = 3)
obs <- similarity(c(1,59,6,24,65,34,15,4,53,22),
c(15,9,46,44,9,39,27,34,34,4))[seq_len(7)]
message <- paste0("test.similarity_metadata() - ",
"profiles with only positives values did not ",
"generated all expected values")
checkEquals(obs, exp, tolerance = .Machine$double.eps^0.5, msg = message)
}
## Test the metadata results with some NA in profiles
test.similarity_na_profile_metadata <- function() {
exp <- list("nbrPosition" = 10,"areaProfile1" = 223,"areaProfile2" = 212,
"maxProfile1" = 65,"maxProfile2" = 46,"maxPositionProfile1" = 5,
"maxPositionProfile2" = 3)
obs <- similarity(c(NA,NA,6,24,65,34,15,4,53,22),
c(NA,9,46,44,9,39,27,NA,34,4))[seq_len(7)]
message <- paste0("test.similarity_na_profile_metadata() - ",
"profiles with some NA did not generated all ",
"expected values")
checkEquals(obs, exp, tolerance = .Machine$double.eps^0.5, msg = message)
}
## Test the result of metric RATIO_AREA
test.similarity_ratio_area <- function() {
exp <- 1.08429118773946
obs <- similarity(c(1,59,6,24,65,34,15,4,53,22),
c(15,9,46,44,9,39,27,34,34,4))$metrics$RATIO_AREA
message <- paste0("test.similarity_ratio_area() -",
" metric RATIO_AREA did not ",
"generated the expected value")
checkEquals(obs, exp, tolerance = .Machine$double.eps^0.5)
}
## Test the result of metric DIFF_POS_MAX
test.similarity_diff_pos_max <- function() {
exp <- 2
obs <- similarity(c(1,59,6,24,65,34,15,4,53,22),
c(15,9,46,44,9,39,27,34,34,4))$metrics$DIFF_POS_MAX
message <- paste0("test.similarity_diff_pos_max() -",
" metric DIFF_POS_MAX did not ",
"generated the expected value")
checkEquals(obs, exp, tolerance = .Machine$double.eps^0.5, msg = message)
}
## Test the result of metric DIFF_POS_MAX with more than 1 position as maximum
test.similarity_diff_pos_max_with_more_than_one_maxium_position <- function() {
obs <- 2
exp <- similarity(c(1,59,59,65,65,65,15,4,53,53,53,22),
c(15,9,46,44,9,39,27,34,34,3,3,4))$metrics$DIFF_POS_MAX
message <- paste0("test.similarity_diff_pos_max_with_more_than_one_maxium_position() -",
" metric DIFF_POS_MAX with profile with more than 1 maximum",
" position did not generated the expected value")
checkEquals(obs, exp, tolerance = .Machine$double.eps^0.5, msg = message)
}
## Test the result of metric DIFF_POS_MAX with more than 1 position as maximum and small diffPosMaxThresholdMaxDiff
test.similarity_diff_pos_max_with_more_than_one_maxium_position_and_small_diffPosMaxThresholdMaxDiff <- function() {
obs <- similarity(c(1,59,6,24,65,34,15,4,53,51,65,22),
c(15,9,46,44,9,39,27,34,34,3,3,4), diffPosMaxThresholdMaxDiff=3)$metrics$DIFF_POS_MAX
message <- paste0("test.similarity_diff_pos_max_with_more_than_one_maxium_position() -",
" metric DIFF_POS_MAX with profile with more than 1 maximum",
" position and small diffPosMaxThresholdMaxDiff value did not ",
"generated the expected value")
checkTrue(is.na(obs), msg = message)
}
## Test the result of metric RATIO_MAX_MAX
test.similarity_ratio_max_max <- function() {
exp <- 1.41304347826
obs <- similarity(c(1,59,6,24,65,34,15,4,53,22),
c(15,9,46,44,9,39,27,34,34,4))$metrics$RATIO_MAX_MAX
message <- paste0("test.similarity_ratio_max_max() -",
" metric RATIO_MAX_MAX did not ",
"generated the expected value")
checkEquals(obs, exp, tolerance = .Machine$double.eps^0.5, msg = message)
}
## Test the result of metric RATIO_INTERSECT
test.similarity_ratio_intersect <- function() {
exp <- 0.346534653465
obs <- similarity(c(1,59,6,24,65,34,15,4,53,22),
c(15,9,46,44,9,39,27,34,34,4))$metrics$RATIO_INTERSECT
message <- paste0("test.similarity_ratio_intersect() -",
" metric RATIO_INTERSECT did not ",
"generated the expected value")
checkEquals(obs, exp, tolerance = .Machine$double.eps^0.5, msg = message)
}
## Test the result of metric RATIO_NORMALIZED_INTERSECT
test.similarity_ratio_intersect <- function() {
exp <- 0.343525474289
obs <- similarity(c(1,59,6,24,65,34,15,4,53,22),
c(15,9,46,44,9,39,27,34,34,4))$metrics$RATIO_NORMALIZED_INTERSECT
message <- paste0("test.similarity_ratio_intersect() -",
" metric RATIO_NORMALIZED_INTERSECT did not ",
"generated the expected value")
checkEquals(obs, exp, tolerance = .Machine$double.eps^0.5, msg = message)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.