tests/testthat/test-AHPtools.R

test_that("errors", {
  testthat::expect_error(
    CR(as.matrix(rep(1,9),byrow=TRUE,nrow=3)),
    "Input is not a square matrix"
  )

  testthat::expect_error(
    CR(matrix(rep(1.5,9),byrow=TRUE,nrow=3)),
    "Input is not a positive reciprocal matrix"
  )

  testthat::expect_equal(
    length(CR(matrix(rep(1,9),byrow=TRUE,nrow=3)))==3,
    TRUE
  )

  testthat::expect_equal(
    class(CR(matrix(rep(1,9),byrow=TRUE,nrow=3))[[1]])=="logical",
    TRUE
  )

  testthat::expect_equal(
    length(CR(matrix(rep(1,9),byrow=TRUE,nrow=3))[[3]])==3,
    TRUE
  )

  testthat::expect_equal(
    CR(matrix(rep(1,9),byrow=TRUE,nrow=3))[[2]]==0 &
      CR(matrix(rep(1,9),byrow=TRUE,nrow=3))[[1]],
    TRUE
  )

  testthat::expect_error(
    CR(c(1:16)),
    "Input is not a matrix"
  )

  testthat::expect_error(
    CR(matrix(c(1:24),nrow=4,byrow=TRUE)),
    "Input is not a square matrix"
  )

  testthat::expect_error(
    CR(matrix(c(1:36),nrow=6,byrow=TRUE)),
    "Input is not a positive reciprocal matrix"
  )

  testthat::expect_error(
    improveCR(c(1:16)),
    "Input is not a matrix"
  )

  testthat::expect_error(
    improveCR(matrix(c(1:24),nrow=4,byrow=TRUE)),
    "Input is not a square matrix"
  )

  testthat::expect_error(
    improveCR(matrix(c(1:36),nrow=6,byrow=TRUE)),
    "Input is not a positive reciprocal matrix"
  )

  testthat::expect_equal(
    improveCR(matrix(c(1,9,1,1/4,1,  1/9,1,1/9,7,1/6,   1,9,1,1,1,
                       4,1/7,1,1,1,   1,6,1,1,1), nrow=5, byrow=TRUE))[[2]],
    FALSE
  )

  testthat::expect_equal(
    improveCR(matrix(c(1,9,1,1/4,1,  1/9,1,1/9,7,1/6,   1,9,1,1,1,
                       4,1/7,1,1,1,   1,6,1,1,1), nrow=5, byrow=TRUE))[[4]],
    TRUE
  )

  testthat::expect_equal(
    nrow(improveCR(matrix(c(1,9,1,1/4,1,  1/9,1,1/9,7,1/6,   1,9,1,1,1,
                            4,1/7,1,1,1,   1,6,1,1,1),
                          nrow=5, byrow=TRUE))[[1]]),
    5
  )

  testthat::expect_error(
    sensitivity(c(1:16)),
    "Input is not a matrix"
  )

  testthat::expect_error(
    sensitivity(matrix(c(1:24),nrow=4,byrow=TRUE)),
    "Input is not a square matrix"
  )

  testthat::expect_error(
    sensitivity(matrix(c(1:36),nrow=6,byrow=TRUE)),
    "Input is not a positive reciprocal matrix"
  )

  testthat::expect_equal(
    sensitivity(matrix(c(1,9,1,1/4,1,  1/9,1,1/9,7,1/6,   1,9,1,1,1,
                         4,1/7,1,1,1,   1,6,1,1,1), nrow=5, byrow=TRUE))>0,
    TRUE
  )

  testthat::expect_lte(
    sensitivity(matrix(c(1,9,1,1/4,1,  1/9,1,1/9,7,1/6,   1,9,1,1,1,
                         4,1/7,1,1,1,   1,6,1,1,1), nrow=5, byrow=TRUE)),
    1
  )

  testthat::expect_true(
    is.matrix(createPCM(c(9,1,1/4,1,  1/9,7,1/6,  1,1,  1)))
  )

  testthat::expect_equal(
    nrow(createPCM(1:6)),
    4
  )
  
  testthat::expect_error(
    createLogicalPCM(NA, c(1,2,3)),
    "The first parameter is mandatory"
  )

  testthat::expect_error(
    createLogicalPCM(3.25),
    "The first parameter has to be an integer"
  )

  testthat::expect_error(
    createLogicalPCM(3, c(1, "a", 2.5)),
    "The second parameter has to be a numeric vector"
  )

  testthat::expect_error(
    createLogicalPCM(3, c(1,2,.75, 3)),
    "The length of the second parameter has to be the same as the first"
  )
  
  testthat::expect_in(
    revisedConsistency(matrix(
                        c(1,1/4,1/4,7,1/5, 4,1,1,9,1/4, 4,1,1,8,1/4,
                        1/7,1/9,1/8,1,1/9, 5,4,4,9,1), nrow=5, byrow=TRUE))[1],
    c(TRUE, FALSE)
    )
  
  testthat::expect_in(
    revisedConsistency(c(1/4,1/4,7,1/5, 1,9,1/4, 8,1/4, 1/9),typePCM=FALSE)[1],
    c(TRUE, FALSE)
    )

  testthat::expect_in(
    revisedConsistency(c(9,1/9,3,1,1,1/4, 1/7,1/2,1/5,1/4,1/9, 6,5,2,1/9, 
                        1/7,1/6,1/9, 1/7,1/8, 1/8),typePCM=FALSE)[1],
    c(TRUE, FALSE)
    )
  testthat::expect_gt(
    consEval(matrix(c(1,1/6,1/5,1/2,1/6,1/3,1/3,1/8,  6,1,1,3,1,1,2,1,  5,1,1,3,1/3,1,2,1/2,
                 2,1/3,1/3,1,1/5,1/2,1/2,1/4,  6,1,3,5,1,1,2,1,  3,1,1,2,1,1,1,1/3,
                 3,1/2,1/2,2,1/2,1,1,1/4,  8,1,2,4,1,3,4,1), nrow=8, byrow=T))$logitConsistency,
    0.9999
    )
  testthat::expect_gte(
    consEval(createLogicalPCM(8))$logitConsistency,
    0
    )
  testthat::expect_lte(
    consEval(createLogicalPCM(5))$logitConsistency,
    1.00
    )
  testthat::expect_gte(
    consEval(createLogicalPCM(9))$max3Rev,
    1
    )
  testthat::expect_null(
    consEval(matrix(c(1,3,1/2,1,  1/3,1,1/7,1/4,  2,7,1,1,  1,4,1,1), 
        nrow=4, byrow=T))$triadsData
    )
  testthat::expect_equal(
    consEval(matrix(c(1,3,1/2,1,  1/3,1,1/7,1/4,  2,7,1,1,  1,4,1,1), 
      nrow=4, byrow=T))$prop3Rev,
    0
    )
  
})

Try the AHPtools package in your browser

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

AHPtools documentation built on Sept. 11, 2024, 6:54 p.m.