aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Wardhaugh <tyler.wardhaugh@gmail.com>2020-09-16 12:23:42 -0700
committerTyler Wardhaugh <tyler.wardhaugh@gmail.com>2020-09-17 14:56:28 -0700
commit3002d90e698025326fe8cc609da084b9ea5bead1 (patch)
tree39e75e65e10ffa42353c18f185e27a5743b58114
parentc69ec0cae500287819547ae96f271fb30fbba368 (diff)
downloadperlweeklychallenge-club-3002d90e698025326fe8cc609da084b9ea5bead1.tar.gz
perlweeklychallenge-club-3002d90e698025326fe8cc609da084b9ea5bead1.tar.bz2
perlweeklychallenge-club-3002d90e698025326fe8cc609da084b9ea5bead1.zip
implement Task 1 in Lua
-rw-r--r--challenge-078/tyler-wardhaugh/lua/README.md4
-rwxr-xr-xchallenge-078/tyler-wardhaugh/lua/ch-1.lua21
-rwxr-xr-xchallenge-078/tyler-wardhaugh/lua/test.lua11
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)