trackler 2.2.1.175 → 2.2.1.176
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/tracks/clojure/config.json +1 -0
- data/tracks/clojure/docs/ABOUT.md +13 -0
- data/tracks/clojure/docs/INSTALLATION.md +21 -0
- data/tracks/clojure/docs/LEARNING.md +29 -0
- data/tracks/clojure/docs/RESOURCES.md +9 -0
- data/tracks/clojure/docs/{TESTS.org → TESTS.md} +22 -27
- data/tracks/clojure/exercises/anagram/src/anagram.clj +1 -1
- data/tracks/clojure/exercises/armstrong-numbers/src/armstrong_numbers.clj +1 -1
- data/tracks/clojure/exercises/beer-song/src/beer_song.clj +1 -1
- data/tracks/clojure/exercises/bob/src/bob.clj +1 -1
- data/tracks/clojure/exercises/clock/src/clock.clj +3 -3
- data/tracks/clojure/exercises/collatz-conjecture/src/collatz_conjecture.clj +1 -1
- data/tracks/clojure/exercises/etl/src/etl.clj +1 -1
- data/tracks/clojure/exercises/flatten-array/src/flatten_array.clj +1 -1
- data/tracks/clojure/exercises/grade-school/src/grade_school.clj +3 -3
- data/tracks/clojure/exercises/hamming/src/hamming.clj +2 -2
- data/tracks/clojure/exercises/leap/src/leap.clj +1 -1
- data/tracks/clojure/exercises/nucleotide-count/src/nucleotide_count.clj +2 -2
- data/tracks/clojure/exercises/phone-number/src/phone_number.clj +3 -3
- data/tracks/clojure/exercises/reverse-string/src/reverse_string.clj +1 -1
- data/tracks/clojure/exercises/rna-transcription/src/rna_transcription.clj +1 -1
- data/tracks/clojure/exercises/robot-name/src/robot_name.clj +2 -2
- data/tracks/clojure/exercises/run-length-encoding/src/run_length_encoding.clj +3 -3
- data/tracks/clojure/exercises/say/src/say.clj +1 -1
- data/tracks/clojure/exercises/series/src/series.clj +1 -1
- data/tracks/clojure/exercises/sublist/src/sublist.clj +1 -1
- data/tracks/clojure/exercises/two-fer/src/two_fer.clj +1 -1
- data/tracks/clojure/exercises/word-count/src/word_count.clj +1 -1
- data/tracks/ecmascript/config.json +12 -0
- data/tracks/ecmascript/exercises/reverse-string/README.md +42 -0
- data/tracks/ecmascript/exercises/reverse-string/example.js +9 -0
- data/tracks/ecmascript/exercises/reverse-string/package.json +70 -0
- data/tracks/ecmascript/exercises/reverse-string/reverse-string.spec.js +33 -0
- data/tracks/erlang/config.json +11 -0
- data/tracks/erlang/exercises/armstrong-numbers/README.md +53 -0
- data/tracks/erlang/exercises/armstrong-numbers/rebar.config +30 -0
- data/tracks/erlang/exercises/armstrong-numbers/src/armstrong_numbers.app.src +9 -0
- data/tracks/erlang/exercises/armstrong-numbers/src/armstrong_numbers.erl +8 -0
- data/tracks/erlang/exercises/armstrong-numbers/src/example.erl +29 -0
- data/tracks/erlang/exercises/armstrong-numbers/test/armstrong_numbers_tests.erl +33 -0
- data/tracks/erlang/exercises/bracket-push/src/example.erl +1 -1
- data/tracks/erlang/exercises/isbn-verifier/src/example.erl +1 -1
- data/tracks/julia/config.json +12 -0
- data/tracks/julia/docs/ABOUT.md +3 -3
- data/tracks/julia/exercises/spiral-matrix/README.md +31 -0
- data/tracks/julia/exercises/spiral-matrix/example.jl +9 -0
- data/tracks/julia/exercises/spiral-matrix/runtests.jl +25 -0
- data/tracks/julia/exercises/spiral-matrix/spiral-matrix.jl +3 -0
- data/tracks/perl5/config.json +1 -0
- data/tracks/perl5/docs/ABOUT.md +4 -3
- data/tracks/perl6/config.json +1 -0
- data/tracks/powershell/config.json +1 -1
- data/tracks/python/exercises/hello-world/example.py +2 -5
- data/tracks/python/exercises/hello-world/hello_world.py +1 -1
- data/tracks/reasonml/.gitignore +1 -0
- data/tracks/reasonml/Makefile +6 -3
- data/tracks/reasonml/config.json +21 -0
- data/tracks/reasonml/exercises/anagram/src/Anagram.rei +1 -0
- data/tracks/reasonml/exercises/anagram/src/Example.re +10 -12
- data/tracks/reasonml/exercises/binary-search/src/BinarySearch.rei +1 -0
- data/tracks/reasonml/exercises/bob/src/Bob.rei +1 -0
- data/tracks/reasonml/exercises/change/src/Change.rei +2 -0
- data/tracks/reasonml/exercises/change/src/Example.re +16 -15
- data/tracks/reasonml/exercises/hello-world/src/HelloWorld.rei +1 -0
- data/tracks/reasonml/exercises/leap/src/Leap.rei +1 -0
- data/tracks/reasonml/exercises/pangram/README.md +21 -0
- data/tracks/reasonml/exercises/pangram/__tests__/Pangram_test.re +36 -0
- data/tracks/reasonml/exercises/pangram/bsconfig.json +30 -0
- data/tracks/reasonml/exercises/pangram/package.json +20 -0
- data/tracks/reasonml/exercises/pangram/src/Example.re +36 -0
- data/tracks/reasonml/exercises/pangram/src/Pangram.rei +1 -0
- data/tracks/reasonml/exercises/phone-number/.gitignore +6 -0
- data/tracks/reasonml/exercises/phone-number/README.md +43 -0
- data/tracks/reasonml/exercises/phone-number/__tests__/PhoneNumber_test.re +48 -0
- data/tracks/reasonml/exercises/phone-number/bsconfig.json +27 -0
- data/tracks/reasonml/exercises/phone-number/package-lock.json +5853 -0
- data/tracks/reasonml/exercises/phone-number/package.json +20 -0
- data/tracks/reasonml/exercises/phone-number/src/Example.re +13 -0
- data/tracks/reasonml/exercises/phone-number/src/PhoneNumber.rei +1 -0
- data/tracks/reasonml/exercises/raindrops/src/Raindrops.rei +1 -0
- data/tracks/reasonml/exercises/rna-transcription/src/Example.re +13 -6
- data/tracks/reasonml/exercises/rna-transcription/src/RnaTranscription.rei +13 -0
- data/tracks/reasonml/exercises/run-length-encoding/src/RunLengthEncoding.rei +2 -0
- data/tracks/reasonml/exercises/space-age/__tests__/SpaceAge_test.re +8 -8
- data/tracks/reasonml/exercises/space-age/src/Example.re +3 -5
- data/tracks/reasonml/exercises/space-age/src/SpaceAge.rei +11 -0
- data/tracks/reasonml/exercises/word-count/src/WordCount.rei +1 -0
- data/tracks/sml/config.json +1 -0
- data/tracks/swift/.gitignore +5 -3
- data/tracks/swift/.travis.yml +8 -1
- data/tracks/swift/Package.swift +70 -11
- data/tracks/swift/exercises/atbash-cipher/Package.swift +1 -1
- data/tracks/swift/exercises/atbash-cipher/Sources/{Atbash.swift → AtbashCipher.swift} +0 -0
- data/tracks/swift/exercises/atbash-cipher/Sources/{AtbashExample.swift → AtbashCipherExample.swift} +1 -1
- data/tracks/swift/exercises/atbash-cipher/Tests/{AtbashTests/AtbashTests.swift → AtbashCipherTests/AtbashCipherTests.swift} +11 -11
- data/tracks/swift/exercises/atbash-cipher/Tests/LinuxMain.swift +2 -2
- data/tracks/swift/exercises/custom-set/Sources/CustomSetExample.swift +6 -2
- data/tracks/swift/exercises/poker/Sources/PokerExample.swift +2 -2
- metadata +49 -14
- data/tracks/clojure/docs/ABOUT.org +0 -24
- data/tracks/clojure/docs/INSTALLATION.org +0 -26
- data/tracks/clojure/docs/LEARNING.org +0 -35
- data/tracks/clojure/docs/RESOURCES.org +0 -9
- data/tracks/swift/.swift-version +0 -1
- data/tracks/swift/allProjects.xcworkspace.source/contents.xcworkspacedata +0 -4
- data/tracks/swift/allProjects.xcworkspace.source/xcshareddata/xcschemes/AllTest.xcscheme +0 -46
- data/tracks/swift/allProjectsPopulateWorkspace.sh +0 -35
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 706da02c4c4f09afe346807e4ff36e9a50753bb2
|
|
4
|
+
data.tar.gz: d77088f03e5550c99f07516b0c170876af7148df
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 12eb93cab8231e066f465388d5311a7ad0cc2deb1eced143d05fb77fb4e37c458faf60c43baca9871fa96162319d003463d08e37290e2124be5a82016b0fc952
|
|
7
|
+
data.tar.gz: 2c0df862a40b1648781cc844f1c94445426c2b997e0d064ca4d643f8c3915cbf5f41323697b399bdb68f88fd561981efce0d96e562489cfa03459016533624e4
|
data/lib/trackler/version.rb
CHANGED
data/tracks/clojure/config.json
CHANGED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
[Clojure](http://clojure.org) is a dynamic programming language that targets the Java Virtual Machine (JVM).
|
|
2
|
+
Designed as a general purpose language, Clojure combines the approachability of a scripting language with a robust infrastructure for multithreaded programming.
|
|
3
|
+
|
|
4
|
+
Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent [data structures](http://clojure.org/data_structures).
|
|
5
|
+
|
|
6
|
+
Clojure is open source, and information about contributing to the language [can be found here](http://clojure.org/contributing).
|
|
7
|
+
|
|
8
|
+
Rich Hickey, the creator of Clojure, wanted a modern Lisp for functional programming, symbiotic with the established Java platform, and designed for concurrency; thus, Clojure was born.
|
|
9
|
+
|
|
10
|
+
Here are a couple quotes that exemplify the goals of Clojure:
|
|
11
|
+
|
|
12
|
+
* _Good design is not about making grand plans, but about taking things apart._
|
|
13
|
+
* _Programming is not about typing...it's about thinking._
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Installation
|
|
2
|
+
|
|
3
|
+
## Installing Leiningen
|
|
4
|
+
The simplest approach to setting up a Clojure environment is to install the build tool [Leiningen](https://github.com/technomancy/leiningen) which will provide access to a REPL (Read Eval Print Loop) for interactive development and allow you to run Clojure code.
|
|
5
|
+
|
|
6
|
+
### Linux and Windows
|
|
7
|
+
For installation instructions on most platforms see: [Leiningen installation](https://github.com/technomancy/leiningen#installation).
|
|
8
|
+
|
|
9
|
+
### Homebrew for Mac OS X
|
|
10
|
+
Update your Homebrew:
|
|
11
|
+
``` bash
|
|
12
|
+
$ brew update
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Install Leiningen:
|
|
16
|
+
``` bash
|
|
17
|
+
$ brew install leiningen
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Installing the standalone JAR
|
|
21
|
+
Alternatively you can download the latest stable release jar file from [clojure.org/downloads](http://clojure.org/community/downloads) which contains everything required to run Clojure code and provides a basic REPL.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Learning
|
|
2
|
+
|
|
3
|
+
Exercism provides exercises and feedback but can be difficult to jump into for those learning Clojure for the first time.
|
|
4
|
+
|
|
5
|
+
These resources can help you get started:
|
|
6
|
+
|
|
7
|
+
## References
|
|
8
|
+
- [Clojure.org](http://clojure.org) The official language website.
|
|
9
|
+
- [ClojureDocs](https://clojuredocs.org) A repository of language references and examples by function or keyword.
|
|
10
|
+
- [Grimoire](http://conj.io) Community combined cheatsheet and examples.
|
|
11
|
+
|
|
12
|
+
## Exercises and Tutorials
|
|
13
|
+
- [4Clojure](http://www.4clojure.com) A resource to help fledgling clojurians learn the language through interactive problems.
|
|
14
|
+
- [Clojure Katas](http://clojurekatas.org) A set of problems to help you get your hands dirty with Clojure.
|
|
15
|
+
- [Wonderland Clojure Katas](https://github.com/gigasquid/wonderland-clojure-katas) Clojure Katas inspired by Alice in Wonderland.
|
|
16
|
+
- [Parens of the Dead](http://www.parens-of-the-dead.com) A screencast series of zombie-themed games written with Clojure and ClojureScript.
|
|
17
|
+
- [Clojure Koans](http://clojurekoans.com) ([online](http://clojurescriptkoans.com)) Exercises meant to initiate you to the mysteries of the Clojure language.
|
|
18
|
+
|
|
19
|
+
## Community
|
|
20
|
+
- [ClojureBridge](http://www.clojurebridge.org) Aims to increase diversity within the Clojure community by offering free, beginner-friendly Clojure programming workshops for women.
|
|
21
|
+
- [Planet Clojure](http://planet.clojure.in) Clojure blog aggregator.
|
|
22
|
+
- [Clojure Gazette](http://www.clojuregazette.com) A free, weekly email to inspire Clojure programmers.
|
|
23
|
+
- [Clojure Weekly](http://reborg.tumblr.com) A weekly collection of Clojure topics.
|
|
24
|
+
|
|
25
|
+
## Books
|
|
26
|
+
- [Living Clojure](http://shop.oreilly.com/product/0636920034292.do) by Carin Meier
|
|
27
|
+
- [Clojure for the Brave and True](http://www.braveclojure.com) by Daniel Higginbotham
|
|
28
|
+
- [The Joy of Clojure](https://www.manning.com/books/the-joy-of-clojure-second-edition) by Michael Fogus and Chris Houser
|
|
29
|
+
- [Clojure Applied](https://pragprog.com/book/vmclojeco/clojure-applied) by Ben Vandgrift and Alex Miller
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Resources
|
|
2
|
+
|
|
3
|
+
## Recommended Learning Resources
|
|
4
|
+
There are some great resources available to help you get started
|
|
5
|
+
learning Clojure; here is a short list.
|
|
6
|
+
- [Learn Clojure](http://learn-clojure.com/)
|
|
7
|
+
- [Clojure Docs](https://clojuredocs.org/)
|
|
8
|
+
- [Brave Clojure](http://www.braveclojure.com/)
|
|
9
|
+
- [4Clojure](https://www.4clojure.com/)
|
|
@@ -1,27 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
# Tests
|
|
2
2
|
|
|
3
|
-
A Clojure REPL allows you to easily run code and get immediate feedback and can
|
|
4
|
-
also be used to run tests.
|
|
3
|
+
A Clojure REPL allows you to easily run code and get immediate feedback and can also be used to run tests.
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
To open a REPL using Leiningen change to the directory containing the
|
|
8
|
-
|
|
9
|
-
#+BEGIN_SRC bash
|
|
5
|
+
## Leiningen
|
|
6
|
+
To open a REPL using Leiningen change to the directory containing the exercise and run:
|
|
7
|
+
``` bash
|
|
10
8
|
$ lein repl
|
|
11
|
-
|
|
9
|
+
```
|
|
12
10
|
|
|
13
|
-
Once you are ready to work on an exercise and have created a file to hold your
|
|
14
|
-
solution (such as =bob.clj=) you can run the tests using
|
|
15
|
-
~#'clojure.test/run-tests~ [[http://clojure.github.io/clojure/clojure.test-api.html#clojure.test/run-tests][as described here]].
|
|
11
|
+
Once you are ready to work on an exercise and have created a file to hold your solution (such as `bob.clj`) you can run the tests using `clojure.test/run-tests` [as described here](http://clojure.github.io/clojure/clojure.test-api.html#clojure.test/run-tests).
|
|
16
12
|
|
|
17
|
-
First,
|
|
18
|
-
|
|
13
|
+
First, `require` the test namespace:
|
|
14
|
+
``` clojure
|
|
19
15
|
=> (require 'bob-test)
|
|
20
16
|
nil
|
|
21
|
-
|
|
17
|
+
```
|
|
22
18
|
|
|
23
|
-
Then call
|
|
24
|
-
|
|
19
|
+
Then call `run-tests` on `bob-test`:
|
|
20
|
+
``` clojure
|
|
25
21
|
=> (clojure.test/run-tests 'bob-test)
|
|
26
22
|
|
|
27
23
|
Testing bob-test
|
|
@@ -29,26 +25,25 @@ Testing bob-test
|
|
|
29
25
|
Ran 14 tests containing 14 assertions.
|
|
30
26
|
0 failures, 0 errors.
|
|
31
27
|
{:test 14, :pass 14, :fail 0, :error 0, :type :summary}
|
|
32
|
-
|
|
28
|
+
```
|
|
33
29
|
|
|
34
|
-
To run
|
|
35
|
-
|
|
30
|
+
To run an exercise's tests with Leiningen, simply call:
|
|
31
|
+
``` bash
|
|
36
32
|
$ lein test
|
|
37
|
-
|
|
38
|
-
#+BEGIN_EXAMPLE
|
|
33
|
+
|
|
39
34
|
lein test bob-test
|
|
40
35
|
|
|
41
36
|
Ran 14 tests containing 14 assertions.
|
|
42
37
|
0 failures, 0 errors.
|
|
43
|
-
|
|
38
|
+
```
|
|
44
39
|
|
|
45
|
-
|
|
40
|
+
## Standalone JAR
|
|
46
41
|
To open a REPL using the standalone JAR file (assuming Clojure 1.8.0) run:
|
|
47
|
-
|
|
42
|
+
``` bash
|
|
48
43
|
$ java -cp clojure-1.8.0.jar clojure.main
|
|
49
|
-
|
|
44
|
+
```
|
|
50
45
|
|
|
51
46
|
To execute a file use:
|
|
52
|
-
|
|
47
|
+
``` bash
|
|
53
48
|
$ java -cp clojure-1.8.0.jar clojure.main bob_test.clj
|
|
54
|
-
|
|
49
|
+
```
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
(ns clock)
|
|
2
2
|
|
|
3
|
-
(defn clock->string [] ;; <- arglist goes here
|
|
3
|
+
(defn clock->string [clock] ;; <- arglist goes here
|
|
4
4
|
;; your code goes here
|
|
5
5
|
)
|
|
6
6
|
|
|
7
|
-
(defn clock [] ;; <- arglist goes here
|
|
7
|
+
(defn clock [hours minutes] ;; <- arglist goes here
|
|
8
8
|
;; your code goes here
|
|
9
9
|
)
|
|
10
10
|
|
|
11
|
-
(defn add-time [] ;; <- arglist goes here
|
|
11
|
+
(defn add-time [clock time] ;; <- arglist goes here
|
|
12
12
|
;; your code goes here
|
|
13
13
|
)
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
(ns grade-school)
|
|
2
2
|
|
|
3
|
-
(defn grade [] ;; <- arglist goes here
|
|
3
|
+
(defn grade [school grade] ;; <- arglist goes here
|
|
4
4
|
;; your code goes here
|
|
5
5
|
)
|
|
6
6
|
|
|
7
|
-
(defn add [] ;; <- arglist goes here
|
|
7
|
+
(defn add [school name grade] ;; <- arglist goes here
|
|
8
8
|
;; your code goes here
|
|
9
9
|
)
|
|
10
10
|
|
|
11
|
-
(defn sorted [] ;; <- arglist goes here
|
|
11
|
+
(defn sorted [school] ;; <- arglist goes here
|
|
12
12
|
;; your code goes here
|
|
13
13
|
)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
(ns nucleotide-count)
|
|
2
2
|
|
|
3
|
-
(defn count [] ;; <- Arglist goes here
|
|
3
|
+
(defn count [nucleotide strand] ;; <- Arglist goes here
|
|
4
4
|
;; your code goes here
|
|
5
5
|
)
|
|
6
6
|
|
|
7
|
-
(defn nucleotide-counts [] ;; <- Arglist goes here
|
|
7
|
+
(defn nucleotide-counts [strand] ;; <- Arglist goes here
|
|
8
8
|
;; your code goes here
|
|
9
9
|
)
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
(ns phone-number)
|
|
2
2
|
|
|
3
|
-
(defn number [] ;; <- arglist goes here
|
|
3
|
+
(defn number [num-string] ;; <- arglist goes here
|
|
4
4
|
;; your code goes here
|
|
5
5
|
)
|
|
6
6
|
|
|
7
|
-
(defn area-code [] ;; <- arglist goes here
|
|
7
|
+
(defn area-code [num-string] ;; <- arglist goes here
|
|
8
8
|
;; your code goes here
|
|
9
9
|
)
|
|
10
10
|
|
|
11
|
-
(defn pretty-print [] ;; <- arglist goes here
|
|
11
|
+
(defn pretty-print [num-string] ;; <- arglist goes here
|
|
12
12
|
;; your code goes here
|
|
13
13
|
)
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
;; your code goes here
|
|
5
5
|
)
|
|
6
6
|
|
|
7
|
-
(defn robot-name [] ;; <- arglist goes here
|
|
7
|
+
(defn robot-name [robot] ;; <- arglist goes here
|
|
8
8
|
;; your code goes here
|
|
9
9
|
)
|
|
10
10
|
|
|
11
|
-
(defn reset-name [] ;; <- arglist goes here
|
|
11
|
+
(defn reset-name [robot] ;; <- arglist goes here
|
|
12
12
|
;; your code goes here
|
|
13
13
|
)
|
|
@@ -30,6 +30,18 @@
|
|
|
30
30
|
"logic"
|
|
31
31
|
]
|
|
32
32
|
},
|
|
33
|
+
{
|
|
34
|
+
"slug": "reverse-string",
|
|
35
|
+
"uuid": "e84c97eb-dbec-487c-b99f-ae9924e16293",
|
|
36
|
+
"core": false,
|
|
37
|
+
"unlocked_by": "leap",
|
|
38
|
+
"difficulty": 2,
|
|
39
|
+
"topics": [
|
|
40
|
+
"for",
|
|
41
|
+
"loops",
|
|
42
|
+
"strings"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
33
45
|
{
|
|
34
46
|
"slug": "rna-transcription",
|
|
35
47
|
"uuid": "342974d6-9083-4754-a6c5-ed1e19e40ec5",
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Reverse String
|
|
2
|
+
|
|
3
|
+
Reverse a string
|
|
4
|
+
|
|
5
|
+
For example:
|
|
6
|
+
input: "cool"
|
|
7
|
+
output: "looc"
|
|
8
|
+
|
|
9
|
+
## Setup
|
|
10
|
+
|
|
11
|
+
Go through the setup instructions for ECMAScript to
|
|
12
|
+
install the necessary dependencies:
|
|
13
|
+
|
|
14
|
+
http://exercism.io/languages/ecmascript
|
|
15
|
+
|
|
16
|
+
## Requirements
|
|
17
|
+
|
|
18
|
+
Install assignment dependencies:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
$ npm install
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Making the test suite pass
|
|
25
|
+
|
|
26
|
+
Execute the tests with:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
$ npm test
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
In the test suites all tests but the first have been skipped.
|
|
33
|
+
|
|
34
|
+
Once you get a test passing, you can enable the next one by
|
|
35
|
+
changing `xtest` to `test`.
|
|
36
|
+
|
|
37
|
+
## Source
|
|
38
|
+
|
|
39
|
+
Introductory challenge to reverse an input string [https://medium.freecodecamp.org/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb](https://medium.freecodecamp.org/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb)
|
|
40
|
+
|
|
41
|
+
## Submitting Incomplete Solutions
|
|
42
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|