tests/testthat/test-ltr.r

context("ltr")

ltr_tests <-  list(
  list('~1.2.2', '1.2.1'),
  list('~0.6.1-1', '0.6.1-0'),
  list('1.0.0 - 2.0.0', '0.0.1'),
  list('1.0.0-beta.2', '1.0.0-beta.1'),
  list('1.0.0', '0.0.0'),
  list('>=2.0.0', '1.1.1'),
  list('>=2.0.0', '1.2.9'),
  list('>2.0.0', '2.0.0'),
  list('0.1.20 || 1.2.4', '0.1.5'),
  list('2.x.x', '1.0.0'),
  list('1.2.x', '1.1.0'),
  list('1.2.x || 2.x', '1.0.0'),
  list('2.*.*', '1.0.1'),
  list('1.2.*', '1.1.3'),
  list('1.2.* || 2.*', '1.1.9999'),
  list('2', '1.0.0'),
  list('2.3', '2.2.2'),
  list('~2.4', '2.3.0'), ## >=2.4.0 <2.5.0
  list('~2.4', '2.3.5'),
  list('~>3.2.1', '3.2.0'), ## >=3.2.1 <3.3.0
  list('~1', '0.2.3'), ## >=1.0.0 <2.0.0
  list('~>1', '0.2.4'),
  list('~> 1', '0.2.3'),
  list('~1.0', '0.1.2'), ## >=1.0.0 <1.1.0
  list('~ 1.0', '0.1.0'),
  list('>1.2', '1.2.0'),
  list('> 1.2', '1.2.1'),
  list('1', '0.0.0beta', TRUE),
  list('~v0.5.4-pre', '0.5.4-alpha'),
  list('~v0.5.4-pre', '0.5.4-alpha'),
  list('=0.7.x', '0.6.0'),
  list('=0.7.x', '0.6.0-asdf'),
  list('>=0.7.x', '0.6.0'),
  list('~1.2.2', '1.2.1'),
  list('1.0.0 - 2.0.0', '0.2.3'),
  list('1.0.0', '0.0.1'),
  list('>=2.0.0', '1.0.0'),
  list('>=2.0.0', '1.9999.9999'),
  list('>=2.0.0', '1.2.9'),
  list('>2.0.0', '2.0.0'),
  list('>2.0.0', '1.2.9'),
  list('2.x.x', '1.1.3'),
  list('1.2.x', '1.1.3'),
  list('1.2.x || 2.x', '1.1.3'),
  list('2.*.*', '1.1.3'),
  list('1.2.*', '1.1.3'),
  list('1.2.* || 2.*', '1.1.3'),
  list('2', '1.9999.9999'),
  list('2.3', '2.2.1'),
  list('~2.4', '2.3.0'), ## >=2.4.0 <2.5.0
  list('~>3.2.1', '2.3.2'), ## >=3.2.1 <3.3.0
  list('~1', '0.2.3'), ## >=1.0.0 <2.0.0
  list('~>1', '0.2.3'),
  list('~1.0', '0.0.0'), ## >=1.0.0 <1.1.0
  list('>1', '1.0.0'),
  list('2', '1.0.0beta', TRUE),
  list('>1', '1.0.0beta', TRUE),
  list('> 1', '1.0.0beta', TRUE),
  list('=0.7.x', '0.6.2'),
  list('>=0.7.x', '0.6.2')
)

test_that("ltr", {

  sapply(ltr_tests, function(args) {
    range <- args[[1]]
    version <- args[[2]]
    loose <- if (length(args) == 3) args[[3]] else FALSE
    expect_true(ltr(version, range, loose),
                info = paste(args, collapse = ","))
  })

})

ltr2_tests <-   list(
  list('~ 1.0', '1.1.0'),
  list('~0.6.1-1', '0.6.1-1'),
  list('1.0.0 - 2.0.0', '1.2.3'),
  list('1.0.0 - 2.0.0', '2.9.9'),
  list('1.0.0', '1.0.0'),
  list('>=*', '0.2.4'),
  list('', '1.0.0', TRUE),
  list('*', '1.2.3'),
  list('*', 'v1.2.3-foo'),
  list('>=1.0.0', '1.0.0'),
  list('>=1.0.0', '1.0.1'),
  list('>=1.0.0', '1.1.0'),
  list('>1.0.0', '1.0.1'),
  list('>1.0.0', '1.1.0'),
  list('<=2.0.0', '2.0.0'),
  list('<=2.0.0', '1.9999.9999'),
  list('<=2.0.0', '0.2.9'),
  list('<2.0.0', '1.9999.9999'),
  list('<2.0.0', '0.2.9'),
  list('>= 1.0.0', '1.0.0'),
  list('>=  1.0.0', '1.0.1'),
  list('>=   1.0.0', '1.1.0'),
  list('> 1.0.0', '1.0.1'),
  list('>  1.0.0', '1.1.0'),
  list('<=   2.0.0', '2.0.0'),
  list('<= 2.0.0', '1.9999.9999'),
  list('<=  2.0.0', '0.2.9'),
  list('<    2.0.0', '1.9999.9999'),
  list('<\t2.0.0', '0.2.9'),
  list('>=0.1.97', 'v0.1.97'),
  list('>=0.1.97', '0.1.97'),
  list('0.1.20 || 1.2.4', '1.2.4'),
  list('0.1.20 || >1.2.4', '1.2.4'),
  list('0.1.20 || 1.2.4', '1.2.3'),
  list('0.1.20 || 1.2.4', '0.1.20'),
  list('>=0.2.3 || <0.0.1', '0.0.0'),
  list('>=0.2.3 || <0.0.1', '0.2.3'),
  list('>=0.2.3 || <0.0.1', '0.2.4'),
  list('||', '1.3.4'),
  list('2.x.x', '2.1.3'),
  list('1.2.x', '1.2.3'),
  list('1.2.x || 2.x', '2.1.3'),
  list('1.2.x || 2.x', '1.2.3'),
  list('x', '1.2.3'),
  list('2.*.*', '2.1.3'),
  list('1.2.*', '1.2.3'),
  list('1.2.* || 2.*', '2.1.3'),
  list('1.2.* || 2.*', '1.2.3'),
  list('1.2.* || 2.*', '1.2.3'),
  list('*', '1.2.3'),
  list('2', '2.1.2'),
  list('2.3', '2.3.1'),
  list('~2.4', '2.4.0'), ## >=2.4.0 <2.5.0
  list('~2.4', '2.4.5'),
  list('~>3.2.1', '3.2.2'), ## >=3.2.1 <3.3.0
  list('~1', '1.2.3'), ## >=1.0.0 <2.0.0
  list('~>1', '1.2.3'),
  list('~> 1', '1.2.3'),
  list('~1.0', '1.0.2'), ## >=1.0.0 <1.1.0
  list('~ 1.0', '1.0.2'),
  list('>=1', '1.0.0'),
  list('>= 1', '1.0.0'),
  list('<1.2', '1.1.1'),
  list('< 1.2', '1.1.1'),
  list('1', '1.0.0beta', TRUE),
  list('~v0.5.4-pre', '0.5.5'),
  list('~v0.5.4-pre', '0.5.4'),
  list('=0.7.x', '0.7.2'),
  list('>=0.7.x', '0.7.2'),
  list('=0.7.x', '0.7.0-asdf'),
  list('>=0.7.x', '0.7.0-asdf'),
  list('<=0.7.x', '0.6.2'),
  list('>0.2.3 >0.2.4 <=0.2.5', '0.2.5'),
  list('>=0.2.3 <=0.2.4', '0.2.4'),
  list('1.0.0 - 2.0.0', '2.0.0'),
  list('^1', '1.0.0-0'),
  list('^3.0.0', '4.0.0'),
  list('^1.0.0 || ~2.0.1', '2.0.0'),
  list('^0.1.0 || ~3.0.1 || 5.0.0', '3.2.0'),
  list('^0.1.0 || ~3.0.1 || 5.0.0', '1.0.0beta', TRUE),
  list('^0.1.0 || ~3.0.1 || 5.0.0', '5.0.0-0', TRUE),
  list('^0.1.0 || ~3.0.1 || >4 <=5.0.0', '3.5.0'),
  list('=0.1.0', '1.0.0')
)

context("ltr negatitve")

test_that("ltr negative", {

  sapply(ltr2_tests, function(args) {
    range <- args[[1]]
    version <- args[[2]]
    loose <- if (length(args) == 3) args[[3]] else FALSE
    expect_false(ltr(version, range, loose),
                 info = paste(args, collapse = ","))
  })

})
metacran/semver documentation built on May 22, 2019, 7:48 p.m.