Skip to content

Instantly share code, notes, and snippets.

@abicky
Created October 19, 2011 21:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save abicky/1299769 to your computer and use it in GitHub Desktop.
Save abicky/1299769 to your computer and use it in GitHub Desktop.
test.parseSpec <- function() {
checkEquals(c(hoge = "l"), parseSpec("hoge"))
checkEquals(c(hoge = "!"), parseSpec("hoge!"))
checkEquals(c(hoge = "+"), parseSpec("hoge+"))
checkEquals(c(hoge = "i"), parseSpec("hoge=i"))
checkException(parseSpec("hoge|fuga=s+"))
checkEquals(c(hoge = "s@", fuga = "s@"), parseSpec("hoge|fuga=s@"))
}
test.checkType <- function() {
checkEquals(20, checkType("20", "i")) # integer
checkEquals(16, checkType("020", "o")) # octal
checkEquals(32, checkType("0x20", "o")) # hex
checkEquals("0", checkType("0", "s")) # string
checkException(checkType("0.20", "i"))
checkException(checkType("0x20", "i"))
}
test.GetOptions <- function() {
opts <- c("--hoge=1", "--fuga")
GetOptions('hoge=i'= hogehoge, 'fuga' = fugafuga, opts = opts)
checkEquals(list(1, TRUE), list(hogehoge, fugafuga))
opts <- c("--hoge", "1", "--fuga", "--hoge=2")
GetOptions('hoge=i'= hogehoge, 'fuga' = fugafuga, opts = opts)
checkEquals(list(2, TRUE), list(hogehoge, fugafuga))
opts <- c("--hoge=1", "--fuga", "--hoge=2")
GetOptions('hoge=i@'= hogehoge, 'fuga' = fugafuga, opts = opts)
checkEquals(list(c(1, 2), TRUE), list(hogehoge, fugafuga))
opts <- c("--piyo=1", "--fuga")
GetOptions('hoge|piyo=i@'= hogehoge, 'fuga' = fugafuga, opts = opts)
checkEquals(list(1, TRUE), list(hogehoge, fugafuga))
opts <- c("--piyo=1", "--nofuga")
GetOptions('hoge|piyo=i@'= hogehoge, 'fuga!' = fugafuga, opts = opts)
checkEquals(list(1, FALSE), list(hogehoge, fugafuga))
opts <- c("--piyo=1", "--nofuga")
GetOptions('hoge|piyo=i@'= hogehoge, 'fuga!' = fugafuga, 'nofuga' = piyo, opts = opts)
checkEquals(list(1, TRUE), list(hogehoge, piyo))
checkException(ls(fugafuga))
opts <- c("--piyo=1", "--nofuga")
GetOptions('hoge|piyo=i@'= hogehoge, 'nofuga' = piyo, 'fuga!' = fugafuga, opts = opts)
checkEquals(list(1, FALSE), list(hogehoge, fugafuga))
checkException(ls(piyo))
opts <- c("--piyo", "a=1", "--nofuga", "--hoge", "b=2")
GetOptions('hoge|piyo=i%'= hogehoge, 'fuga!' = fugafuga, opts = opts)
checkEquals(list(c(a = 1, b = 2), FALSE), list(hogehoge, fugafuga))
}
# Getopt::Longメモ
# Getoptions('verbose!' => \$verbose, noverbose => \$noverbose); --noverbose は$noverbose=1
# Getoptions(noverbose => \$noverbose, 'verbose!' => \$verbose); --noverbose は$verbose=0
# GetOptions('fuga' => \$fuga, 'hoge|fuga' =>\$hoge); --fuga は$hoge=1
# GetOptions('hoge|fuga' =>\$hoge, 'fuga' => \$fuga); --fuga は$fuga=1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment