Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/torch/argcheck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonan Collobert <ronan@collobert.com>2015-03-07 04:36:32 +0300
committerRonan Collobert <ronan@collobert.com>2015-03-07 04:37:31 +0300
commit2084481d9bedc48e8ac91825a3ccf2bf0bbf4806 (patch)
tree045295c54e423b6ab8feb580acc9780b5c1b7ccd
parent2ad2b6cb121f791f6aca84cd3037991c4689f1be (diff)
variable with default can be nil (and returns the default) + test case added
-rw-r--r--graph.lua3
-rw-r--r--init.lua4
-rw-r--r--test/test.lua2
3 files changed, 7 insertions, 2 deletions
diff --git a/graph.lua b/graph.lua
index 757d5fa..3d6cc55 100644
--- a/graph.lua
+++ b/graph.lua
@@ -60,6 +60,9 @@ local function rules2defaultrules(rules, rulesmask, rulestype)
elseif rulemask == '2' then
table.insert(defaultrules, rule)
elseif rulemask == '3' then
+ if rule.default or rule.defaulta or rule.defaultf then
+ table.insert(defaultrules, rule)
+ end
end
end
return defaultrules
diff --git a/init.lua b/init.lua
index 334b188..aafa5c5 100644
--- a/init.lua
+++ b/init.lua
@@ -23,7 +23,7 @@ local function generaterules(rules)
local optperrule = {}
for ridx, rule in ipairs(rules) do
if rule.default ~= nil or rule.defaulta or rule.defaultf then
- optperrule[ridx] = 2 -- here or not here
+ optperrule[ridx] = 3 -- here, nil or not here
elseif rule.opt then
optperrule[ridx] = 3 -- here, nil or not here
else
@@ -42,7 +42,7 @@ local function generaterules(rules)
-- hence, the mask.
for variant=nvariant,1,-1 do
local r = variant
- local rulemask = {} -- 1/2/3 means present/not present/opt
+ local rulemask = {} -- 1/2/3 means present [ordered]/not present [ordered]/ nil [named or ordered]
for ridx=1,#rules do
table.insert(rulemask, math.floor((r-1)/optperrulestride[ridx]) + 1)
r = (r-1) % optperrulestride[ridx] + 1
diff --git a/test/test.lua b/test/test.lua
index 385b374..17478be 100644
--- a/test/test.lua
+++ b/test/test.lua
@@ -272,8 +272,10 @@ foobar.addfive = argcheck{
assert(foobar:addfive() == '5.000000 + 5 = 10.000000 [msg = wassup] [self.checksum=1234567]')
assert(foobar:addfive('paf') == '5.000000 + 5 = 10.000000 [msg = paf] [self.checksum=1234567]')
+assert(foobar:addfive(nil, 'paf') == '5.000000 + 5 = 10.000000 [msg = paf] [self.checksum=1234567]')
assert(foobar:addfive(6, 'paf') == '6.000000 + 5 = 11.000000 [msg = paf] [self.checksum=1234567]')
assert(foobar:addfive(6) == '6.000000 + 5 = 11.000000 [msg = wassup] [self.checksum=1234567]')
+assert(foobar:addfive(6, nil) == '6.000000 + 5 = 11.000000 [msg = wassup] [self.checksum=1234567]')
assert(foobar:addfive{} == '5.000000 + 5 = 10.000000 [msg = wassup] [self.checksum=1234567]')
assert(foobar:addfive{msg='paf'} == '5.000000 + 5 = 10.000000 [msg = paf] [self.checksum=1234567]')