From 0133554853b588aa70eaeb0eaba16d5fdc24b8d3 Mon Sep 17 00:00:00 2001 From: elioat Date: Thu, 13 Jul 2023 09:34:30 -0400 Subject: * --- janet/tmplt/.gitignore | 2 ++ janet/tmplt/README.md | 5 +++++ janet/tmplt/project.janet | 13 +++++++++++++ janet/tmplt/src/app.janet | 18 ++++++++++++++++++ janet/tmplt/test/sum.janet | 4 ++++ 5 files changed, 42 insertions(+) create mode 100644 janet/tmplt/.gitignore create mode 100644 janet/tmplt/README.md create mode 100644 janet/tmplt/project.janet create mode 100644 janet/tmplt/src/app.janet create mode 100644 janet/tmplt/test/sum.janet diff --git a/janet/tmplt/.gitignore b/janet/tmplt/.gitignore new file mode 100644 index 0000000..4bbe471 --- /dev/null +++ b/janet/tmplt/.gitignore @@ -0,0 +1,2 @@ +jpm_tree +jpm_tree/* \ No newline at end of file diff --git a/janet/tmplt/README.md b/janet/tmplt/README.md new file mode 100644 index 0000000..cb39b33 --- /dev/null +++ b/janet/tmplt/README.md @@ -0,0 +1,5 @@ +# starting place + +start with a `jpm -l deps` to install local deppendencies + +then try a `jpm -l test` to run the local tests with `judge`. \ No newline at end of file diff --git a/janet/tmplt/project.janet b/janet/tmplt/project.janet new file mode 100644 index 0000000..65f7b78 --- /dev/null +++ b/janet/tmplt/project.janet @@ -0,0 +1,13 @@ +# project file +(declare-project + :name "template" + :description "a starting place for new projects" + :dependencies [ + {:url "https://github.com/ianthehenry/judge.git" + :tag "v2.6.1"} # a fun testing framework + ]) + +(declare-source + :source ["/src/app.janet"]) + +(task "test" [] (shell "jpm_tree/bin/judge")) # use the judge test runner instead of the one baked into jpm diff --git a/janet/tmplt/src/app.janet b/janet/tmplt/src/app.janet new file mode 100644 index 0000000..f67e8e3 --- /dev/null +++ b/janet/tmplt/src/app.janet @@ -0,0 +1,18 @@ +(defn sum3 + "Solve the 3SUM problem in O(n^2) time." + [s] + (def tab @{}) + (def solutions @{}) + (def len (length s)) + (for k 0 len + (put tab (s k) k)) + (for i 0 len + (for j 0 len + (def k (get tab (- 0 (s i) (s j)))) + (when (and k (not= k i) (not= k j) (not= i j)) + (put solutions {i true j true k true} true)))) + (map keys (keys solutions))) + +(let [arr @[2 4 1 3 8 7 -3 -1 12 -5 -8]] + (printf "3sum of %j: " arr) + (printf "%j" (sum3 arr))) \ No newline at end of file diff --git a/janet/tmplt/test/sum.janet b/janet/tmplt/test/sum.janet new file mode 100644 index 0000000..be82870 --- /dev/null +++ b/janet/tmplt/test/sum.janet @@ -0,0 +1,4 @@ +(use /src/app) +(use judge) + +(test (sum3 arr)) \ No newline at end of file -- cgit 1.4.1-2-gfad0