Sha256: 8eecabe3ee59ec491aca3e48b6f9065a4a6422151da122c1b222a1577624a0e7

Contents?: true

Size: 1.59 KB

Versions: 140

Compression:

Stored size: 1.59 KB

Contents

source("./luhn.R")
library(testthat)

test_that("single digit strings can not be valid", {
  input <- "1"
  expect_equal(is_valid(input), FALSE)
})

test_that("A single zero is invalid", {
  input <- "0"
  expect_equal(is_valid(input), FALSE)
})

test_that("a simple valid SIN that remains valid if reversed", {
  input <- "059"
  expect_equal(is_valid(input), TRUE)
})

test_that("a simple valid SIN that becomes invalid if reversed", {
  input <- "59"
  expect_equal(is_valid(input), TRUE)
})

test_that("valid Canadian SIN", {
  input <- "046 454 286"
  expect_equal(is_valid(input), TRUE)
})

test_that("invalid Canadian SIN", {
  input <- "046 454 287"
  expect_equal(is_valid(input), FALSE)
})

test_that("invalid credit card", {
  input <- "8273 1232 7352 0569"
  expect_equal(is_valid(input), FALSE)
})

test_that("valid strings with a non-digit added become invalid", {
  input <- "055a 444 285"
  expect_equal(is_valid(input), FALSE)
})

test_that("punctuation is not allowed", {
  input <- "055-444-285"
  expect_equal(is_valid(input), FALSE)
})

test_that("symbols are not allowed", {
  input <- "055£ 444$ 285"
  expect_equal(is_valid(input), FALSE)
})

test_that("single zero with space is invalid", {
  input <- " 0"
  expect_equal(is_valid(input), FALSE)
})

test_that("more than a single zero is valid", {
  input <- "0000 0"
  expect_equal(is_valid(input), TRUE)
})

test_that("another valid sin", {
  input <- "055 444 285"
  expect_equal(is_valid(input), TRUE)
})

test_that("nine doubled is nine", {
  input <- "091"
  expect_equal(is_valid(input), TRUE)
})

message("All tests passed for exercise: luhn")

Version data entries

140 entries across 140 versions & 1 rubygems

Version Path
trackler-2.2.1.126 tracks/r/exercises/luhn/test_luhn.R
trackler-2.2.1.125 tracks/r/exercises/luhn/test_luhn.R
trackler-2.2.1.124 tracks/r/exercises/luhn/test_luhn.R
trackler-2.2.1.123 tracks/r/exercises/luhn/test_luhn.R
trackler-2.2.1.122 tracks/r/exercises/luhn/test_luhn.R
trackler-2.2.1.121 tracks/r/exercises/luhn/test_luhn.R
trackler-2.2.1.120 tracks/r/exercises/luhn/test_luhn.R
trackler-2.2.1.119 tracks/r/exercises/luhn/test_luhn.R
trackler-2.2.1.118 tracks/r/exercises/luhn/test_luhn.R
trackler-2.2.1.117 tracks/r/exercises/luhn/test_luhn.R
trackler-2.2.1.116 tracks/r/exercises/luhn/test_luhn.R
trackler-2.2.1.115 tracks/r/exercises/luhn/test_luhn.R
trackler-2.2.1.114 tracks/r/exercises/luhn/test_luhn.R
trackler-2.2.1.113 tracks/r/exercises/luhn/test_luhn.R
trackler-2.2.1.111 tracks/r/exercises/luhn/test_luhn.R
trackler-2.2.1.110 tracks/r/exercises/luhn/test_luhn.R
trackler-2.2.1.109 tracks/r/exercises/luhn/test_luhn.R
trackler-2.2.1.108 tracks/r/exercises/luhn/test_luhn.R
trackler-2.2.1.107 tracks/r/exercises/luhn/test_luhn.R
trackler-2.2.1.106 tracks/r/exercises/luhn/test_luhn.R