diff options
| -rw-r--r-- | challenge-078/tyler-wardhaugh/lua/README.md | 4 | ||||
| -rwxr-xr-x | challenge-078/tyler-wardhaugh/lua/ch-1.lua | 21 | ||||
| -rwxr-xr-x | challenge-078/tyler-wardhaugh/lua/test.lua | 11 |
3 files changed, 36 insertions, 0 deletions
diff --git a/challenge-078/tyler-wardhaugh/lua/README.md b/challenge-078/tyler-wardhaugh/lua/README.md index c84850394d..741ee6bff1 100644 --- a/challenge-078/tyler-wardhaugh/lua/README.md +++ b/challenge-078/tyler-wardhaugh/lua/README.md @@ -5,6 +5,10 @@ The Weekly Challenge - #078 - Tyler Wardhaugh ## Usage +Run Task 1: + + $ lua -e 'require"ch-1".run({9, 10, 7, 5, 6, 1})' + Run the project's tests (which are samples from the task descriptions): $ lua test.lua diff --git a/challenge-078/tyler-wardhaugh/lua/ch-1.lua b/challenge-078/tyler-wardhaugh/lua/ch-1.lua new file mode 100755 index 0000000000..39c408e62c --- /dev/null +++ b/challenge-078/tyler-wardhaugh/lua/ch-1.lua @@ -0,0 +1,21 @@ +#!/usr/bin/env lua + +local t1 = {} + +function t1.leaders(a) + local ldrs = {-1} + for i=#a, 1, -1 do + if a[i] > ldrs[1] then + table.insert(ldrs, 1, a[i]) + end + end + table.remove(ldrs, #ldrs) + return ldrs +end + +function t1.run(a) + local res = table.concat(t1.leaders(a), ', ') + print('(' .. res .. ')') +end + +return t1 diff --git a/challenge-078/tyler-wardhaugh/lua/test.lua b/challenge-078/tyler-wardhaugh/lua/test.lua new file mode 100755 index 0000000000..d47309f705 --- /dev/null +++ b/challenge-078/tyler-wardhaugh/lua/test.lua @@ -0,0 +1,11 @@ +#!/usr/bin/env lua + +require 'busted.runner'() + +describe("Task 1, Leader Elements", function() + local t1 = require'ch-1' + it("produces correct results for the examples", function() + assert.are.same({10, 7, 6, 1}, t1.leaders({9, 10, 7, 5, 6, 1})) + assert.are.same({5}, t1.leaders({3, 4, 5})) + end) +end) |
