File: test_missing.R

package info (click to toggle)
r-cran-argparser 0.7.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 252 kB
  • sloc: sh: 13; makefile: 2
file content (39 lines) | stat: -rw-r--r-- 1,211 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
p <- arg_parser("Test")
p <- add_argument(p, "--arg1", help = "arg1", type = "numeric")
p <- add_argument(p, "--arg2", help = "arg2", type = "integer")

test_that("numerics are parsed correctly", {
	argv <- parse_args(p)
	expect_true(is.na(argv$arg1))
	expect_true(is.na(argv$arg2))

	expect_equal(parse_args(p, c("--arg1", "1e-9"))$arg1, 1e-9)
	expect_equal(parse_args(p, c("--arg1", "1.5e9"))$arg1, 1.5e9)
	expect_equal(parse_args(p, c("--arg1", "-1234.5"))$arg1, -1234.5)

	expect_error(parse_args(p, c("--arg1", "A")))
})

test_that("integers are parsed correctly", {
	expect_equal(parse_args(p, c("--arg2", "100"))$arg2, 100)
	expect_equal(parse_args(p, c("--arg2", "-99"))$arg2, -99)

	expect_error(parse_args(p, c("--arg2", "A")))
	expect_error(parse_args(p, c("--arg2", "4.3")))
	expect_error(parse_args(p, c("--arg2", "1.0e-9")))
})

test_that("missing arguments are accepted", {
	argv <- parse_args(p, c("--arg1", "1.5", "--arg2", "2"))
	expect_equal(argv$arg1, 1.5)
	expect_equal(argv$arg2, 2)

	argv <- parse_args(p, c("--arg1", "3"))
	expect_equal(argv$arg1, 3)
	expect_true(is.na(argv$arg2))

	argv <- parse_args(p, c("--arg2", "4"))
	expect_equal(argv$arg2, 4)
	expect_true(is.na(argv$arg1))
})