trackler 2.2.1.179 → 2.2.1.180
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/exercises/yacht/description.md +14 -13
- data/tracks/ballerina/config.json +1 -0
- data/tracks/coffeescript/config.json +138 -41
- data/tracks/coffeescript/docs/ABOUT.md +3 -7
- data/tracks/coq/config.json +1 -0
- data/tracks/d/config.json +1 -0
- data/tracks/dart/config.json +1 -0
- data/tracks/elixir/config.json +17 -16
- data/tracks/elixir/docs/ABOUT.md +10 -2
- data/tracks/fortran/config.json +1 -0
- data/tracks/gnu-apl/config.json +1 -0
- data/tracks/go/config.json +13 -0
- data/tracks/go/exercises/list-ops/README.md +27 -0
- data/tracks/go/exercises/list-ops/example.go +99 -0
- data/tracks/go/exercises/list-ops/listops_test.go +291 -0
- data/tracks/groovy/config.json +1 -0
- data/tracks/haxe/config.json +1 -0
- data/tracks/perl5/exercises/leap/.meta/exercise-data.yaml +3 -5
- data/tracks/perl5/exercises/leap/.meta/solutions/Leap.pm +2 -4
- data/tracks/perl5/exercises/leap/Leap.pm +1 -1
- data/tracks/perl5/exercises/leap/leap.t +2 -2
- data/tracks/php/config.json +1 -0
- data/tracks/plsql/config.json +1 -0
- data/tracks/pony/config.json +1 -0
- data/tracks/purescript/config.json +1 -0
- data/tracks/reasonml/config/exercise_readme.go.tmpl +18 -2
- data/tracks/reasonml/exercises/anagram/README.md +15 -4
- data/tracks/reasonml/exercises/armstrong-numbers/README.md +3 -4
- data/tracks/reasonml/exercises/binary-search/README.md +14 -7
- data/tracks/reasonml/exercises/bob/README.md +14 -6
- data/tracks/reasonml/exercises/change/README.md +2 -4
- data/tracks/reasonml/exercises/hello-world/README.md +2 -3
- data/tracks/reasonml/exercises/isogram/README.md +4 -6
- data/tracks/reasonml/exercises/leap/README.md +14 -4
- data/tracks/reasonml/exercises/pangram/README.md +13 -3
- data/tracks/reasonml/exercises/phone-number/README.md +15 -7
- data/tracks/reasonml/exercises/raindrops/README.md +14 -7
- data/tracks/reasonml/exercises/rna-transcription/README.md +13 -3
- data/tracks/reasonml/exercises/roman-numerals/README.md +4 -8
- data/tracks/reasonml/exercises/run-length-encoding/README.md +14 -7
- data/tracks/reasonml/exercises/space-age/README.md +13 -3
- data/tracks/reasonml/exercises/word-count/README.md +18 -8
- data/tracks/rust/.travis.yml +1 -0
- data/tracks/rust/_test/check-exercises-for-authors.sh +10 -0
- data/tracks/rust/bin/format_exercises +2 -0
- data/tracks/rust/exercises/accumulate/Cargo.toml +0 -1
- data/tracks/rust/exercises/accumulate/example.rs +4 -1
- data/tracks/rust/exercises/acronym/example.rs +6 -5
- data/tracks/rust/exercises/acronym/tests/acronym.rs +1 -1
- data/tracks/rust/exercises/all-your-base/example.rs +8 -2
- data/tracks/rust/exercises/allergies/example.rs +28 -6
- data/tracks/rust/exercises/alphametics/example.rs +18 -10
- data/tracks/rust/exercises/anagram/example.rs +8 -4
- data/tracks/rust/exercises/atbash-cipher/example.rs +15 -15
- data/tracks/rust/exercises/beer-song/example.rs +18 -12
- data/tracks/rust/exercises/binary-search/Cargo.toml +0 -1
- data/tracks/rust/exercises/binary-search/example.rs +3 -4
- data/tracks/rust/exercises/bob/example.rs +11 -5
- data/tracks/rust/exercises/book-store/Cargo-example.toml +0 -1
- data/tracks/rust/exercises/book-store/Cargo.toml +0 -1
- data/tracks/rust/exercises/book-store/example.rs +15 -19
- data/tracks/rust/exercises/bowling/example.rs +3 -1
- data/tracks/rust/exercises/bracket-push/example.rs +7 -2
- data/tracks/rust/exercises/circular-buffer/example.rs +1 -1
- data/tracks/rust/exercises/clock/.meta/ALLOWED_TO_NOT_COMPILE +3 -0
- data/tracks/rust/exercises/clock/Cargo.toml +0 -1
- data/tracks/rust/exercises/clock/example.rs +5 -3
- data/tracks/rust/exercises/clock/src/lib.rs +14 -0
- data/tracks/rust/exercises/collatz-conjecture/example.rs +2 -2
- data/tracks/rust/exercises/crypto-square/Cargo-example.toml +0 -1
- data/tracks/rust/exercises/crypto-square/Cargo.toml +0 -1
- data/tracks/rust/exercises/custom-set/example.rs +17 -15
- data/tracks/rust/exercises/decimal/Cargo-example.toml +0 -1
- data/tracks/rust/exercises/decimal/Cargo.toml +0 -1
- data/tracks/rust/exercises/decimal/example.rs +5 -5
- data/tracks/rust/exercises/diamond/Cargo.toml +0 -1
- data/tracks/rust/exercises/difference-of-squares/example.rs +1 -1
- data/tracks/rust/exercises/dominoes/example.rs +20 -19
- data/tracks/rust/exercises/etl/example.rs +4 -3
- data/tracks/rust/exercises/forth/example.rs +29 -45
- data/tracks/rust/exercises/grade-school/example.rs +4 -2
- data/tracks/rust/exercises/hexadecimal/example.rs +2 -4
- data/tracks/rust/exercises/isbn-verifier/example.rs +5 -6
- data/tracks/rust/exercises/isbn-verifier/tests/isbn-verifier.rs +12 -0
- data/tracks/rust/exercises/isogram/example.rs +9 -3
- data/tracks/rust/exercises/largest-series-product/example.rs +2 -1
- data/tracks/rust/exercises/luhn-from/example.rs +3 -1
- data/tracks/rust/exercises/luhn/example.rs +5 -3
- data/tracks/rust/exercises/macros/Cargo.toml +0 -1
- data/tracks/rust/exercises/nth-prime/Cargo.toml +0 -1
- data/tracks/rust/exercises/nth-prime/example.rs +6 -6
- data/tracks/rust/exercises/nucleotide-codons/Cargo.toml +0 -1
- data/tracks/rust/exercises/nucleotide-codons/example.rs +23 -17
- data/tracks/rust/exercises/nucleotide-count/example.rs +15 -5
- data/tracks/rust/exercises/nucleotide-count/src/lib.rs +15 -0
- data/tracks/rust/exercises/nucleotide-count/tests/nucleotide-count.rs +3 -3
- data/tracks/rust/exercises/palindrome-products/Cargo.toml +0 -1
- data/tracks/rust/exercises/pangram/example.rs +6 -6
- data/tracks/rust/exercises/parallel-letter-frequency/example.rs +7 -4
- data/tracks/rust/exercises/pascals-triangle/example.rs +6 -2
- data/tracks/rust/exercises/perfect-numbers/example.rs +2 -2
- data/tracks/rust/exercises/phone-number/example.rs +11 -15
- data/tracks/rust/exercises/pig-latin/Cargo-example.toml +0 -1
- data/tracks/rust/exercises/pig-latin/Cargo.toml +0 -1
- data/tracks/rust/exercises/pig-latin/example.rs +6 -2
- data/tracks/rust/exercises/poker/Cargo-example.toml +0 -1
- data/tracks/rust/exercises/poker/Cargo.toml +0 -1
- data/tracks/rust/exercises/poker/example.rs +9 -8
- data/tracks/rust/exercises/prime-factors/Cargo.toml +0 -1
- data/tracks/rust/exercises/prime-factors/example.rs +1 -1
- data/tracks/rust/exercises/protein-translation/Cargo.toml +0 -1
- data/tracks/rust/exercises/protein-translation/example.rs +6 -5
- data/tracks/rust/exercises/proverb/Cargo.toml +0 -1
- data/tracks/rust/exercises/proverb/example.rs +0 -1
- data/tracks/rust/exercises/pythagorean-triplet/Cargo.toml +0 -1
- data/tracks/rust/exercises/pythagorean-triplet/example.rs +3 -3
- data/tracks/rust/exercises/queen-attack/example.rs +3 -3
- data/tracks/rust/exercises/react/example.rs +61 -29
- data/tracks/rust/exercises/reverse-string/Cargo.toml +0 -1
- data/tracks/rust/exercises/rna-transcription/example.rs +17 -9
- data/tracks/rust/exercises/robot-name/example.rs +4 -3
- data/tracks/rust/exercises/robot-simulator/example.rs +5 -2
- data/tracks/rust/exercises/roman-numerals/example.rs +15 -14
- data/tracks/rust/exercises/rotational-cipher/Cargo.toml +0 -1
- data/tracks/rust/exercises/rotational-cipher/example.rs +10 -14
- data/tracks/rust/exercises/rotational-cipher/src/lib.rs +7 -1
- data/tracks/rust/exercises/run-length-encoding/Cargo.toml +0 -1
- data/tracks/rust/exercises/run-length-encoding/example.rs +34 -29
- data/tracks/rust/exercises/saddle-points/example.rs +0 -1
- data/tracks/rust/exercises/say/Cargo.toml +0 -1
- data/tracks/rust/exercises/say/example.rs +34 -8
- data/tracks/rust/exercises/series/example.rs +6 -8
- data/tracks/rust/exercises/simple-linked-list/example.rs +0 -2
- data/tracks/rust/exercises/spiral-matrix/example.rs +0 -1
- data/tracks/rust/exercises/tournament/example.rs +33 -20
- data/tracks/rust/exercises/triangle/example.rs +1 -1
- data/tracks/rust/exercises/two-bucket/example.rs +2 -6
- data/tracks/rust/exercises/two-fer/example.rs +3 -3
- data/tracks/rust/exercises/variable-length-quantity/example.rs +2 -3
- data/tracks/rust/exercises/word-count/example.rs +4 -1
- data/tracks/rust/exercises/wordy/example.rs +10 -4
- metadata +7 -2
data/tracks/groovy/config.json
CHANGED
data/tracks/haxe/config.json
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
exercise: Leap
|
2
|
-
version:
|
2
|
+
version: 4
|
3
3
|
plan: 5
|
4
4
|
subs: is_leap
|
5
5
|
tests: |-
|
6
|
-
|
6
|
+
ok !(is_leap($_->{input}{year}) xor $_->{expected}), $_->{description} foreach @{$C_DATA->{cases}};
|
7
7
|
|
8
8
|
exercise_comment: '# The name of this exercise.'
|
9
9
|
version_comment: '# The version we will be matching against the exercise.'
|
@@ -17,9 +17,7 @@ version_test_comment: |-
|
|
17
17
|
example: |-
|
18
18
|
sub is_leap {
|
19
19
|
my $year = shift;
|
20
|
-
divisible_by($year, 400)
|
21
|
-
or divisible_by($year, 4) and !divisible_by($year, 100)
|
22
|
-
? 1 : 0;
|
20
|
+
divisible_by($year, 400) or divisible_by($year, 4) and !divisible_by($year, 100);
|
23
21
|
}
|
24
22
|
|
25
23
|
sub divisible_by {
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Declare package 'Leap' with version
|
2
|
-
package Leap
|
2
|
+
package Leap 4;
|
3
3
|
use strict;
|
4
4
|
use warnings;
|
5
5
|
use Exporter 'import';
|
@@ -7,9 +7,7 @@ our @EXPORT_OK = qw(is_leap);
|
|
7
7
|
|
8
8
|
sub is_leap {
|
9
9
|
my $year = shift;
|
10
|
-
divisible_by($year, 400)
|
11
|
-
or divisible_by($year, 4) and !divisible_by($year, 100)
|
12
|
-
? 1 : 0;
|
10
|
+
divisible_by($year, 400) or divisible_by($year, 4) and !divisible_by($year, 100);
|
13
11
|
}
|
14
12
|
|
15
13
|
sub divisible_by {
|
@@ -7,7 +7,7 @@ use lib $FindBin::Bin; # Look for the module inside the same directory as this t
|
|
7
7
|
use Leap qw(is_leap);
|
8
8
|
|
9
9
|
my $exercise = 'Leap'; # The name of this exercise.
|
10
|
-
my $test_version =
|
10
|
+
my $test_version = 4; # The version we will be matching against the exercise.
|
11
11
|
use Test::More tests => 5; # This is how many tests we expect to run.
|
12
12
|
|
13
13
|
# If the exercise is updated, we want to make sure other people testing
|
@@ -23,7 +23,7 @@ if ($exercise_version != $test_version) {
|
|
23
23
|
can_ok $exercise, 'import' or BAIL_OUT 'Cannot import subroutines from module';
|
24
24
|
|
25
25
|
my $C_DATA = do { local $/; decode_json(<DATA>); };
|
26
|
-
|
26
|
+
ok !(is_leap($_->{input}{year}) xor $_->{expected}), $_->{description} foreach @{$C_DATA->{cases}};
|
27
27
|
|
28
28
|
__DATA__
|
29
29
|
{
|
data/tracks/php/config.json
CHANGED
data/tracks/plsql/config.json
CHANGED
data/tracks/pony/config.json
CHANGED
@@ -12,5 +12,21 @@
|
|
12
12
|
|
13
13
|
{{ . }}
|
14
14
|
{{ end }}
|
15
|
-
##
|
16
|
-
|
15
|
+
## Building and testing
|
16
|
+
You will need the node package manager (npm) installed - download from [here](https://www.npmjs.com/get-npm)
|
17
|
+
There is one time setup for each exercise, which may take a few minutes:
|
18
|
+
```
|
19
|
+
npm install
|
20
|
+
```
|
21
|
+
|
22
|
+
Open two shells, and in the first, start the build process.
|
23
|
+
```
|
24
|
+
npm start
|
25
|
+
```
|
26
|
+
|
27
|
+
In the second, start the tests running.
|
28
|
+
```
|
29
|
+
npm test
|
30
|
+
```
|
31
|
+
|
32
|
+
As you edit the code, the two processes will continually rebuild and rerun the tests.
|
@@ -5,14 +5,25 @@ Given a word and a list of possible anagrams, select the correct sublist.
|
|
5
5
|
Given `"listen"` and a list of candidates like `"enlists" "google"
|
6
6
|
"inlets" "banana"` the program should return a list containing
|
7
7
|
`"inlets"`.
|
8
|
+
## Source
|
8
9
|
|
9
|
-
|
10
|
+
Inspired by the Extreme Startup game [https://github.com/rchatley/extreme_startup](https://github.com/rchatley/extreme_startup)
|
11
|
+
|
12
|
+
## Building and testing
|
13
|
+
You will need the node package manager (npm) installed - download from [here](https://www.npmjs.com/get-npm)
|
14
|
+
There is one time setup for each exercise, which may take a few minutes:
|
10
15
|
```
|
11
|
-
npm
|
16
|
+
npm install
|
12
17
|
```
|
13
18
|
|
14
|
-
|
19
|
+
Open two shells, and in the first, start the build process.
|
20
|
+
```
|
21
|
+
npm start
|
22
|
+
```
|
15
23
|
|
24
|
+
In the second, start the tests running.
|
16
25
|
```
|
17
|
-
npm
|
26
|
+
npm test
|
18
27
|
```
|
28
|
+
|
29
|
+
As you edit the code, the two processes will continually rebuild and rerun the tests.
|
@@ -10,10 +10,9 @@ For example:
|
|
10
10
|
- 154 is *not* an Armstrong number, because: `154 != 1^3 + 5^3 + 4^3 = 1 + 125 + 64 = 190`
|
11
11
|
|
12
12
|
Write some code to determine whether a number is an Armstrong number.
|
13
|
+
## Source
|
13
14
|
|
14
|
-
|
15
|
-
For installation and learning resources, refer to the
|
16
|
-
[exercism help page](http://exercism.io/languages/reasonml).
|
15
|
+
Wikipedia [https://en.wikipedia.org/wiki/Narcissistic_number](https://en.wikipedia.org/wiki/Narcissistic_number)
|
17
16
|
|
18
17
|
## Building and testing
|
19
18
|
You will need the node package manager (npm) installed - download from [here](https://www.npmjs.com/get-npm)
|
@@ -32,4 +31,4 @@ In the second, start the tests running.
|
|
32
31
|
npm test
|
33
32
|
```
|
34
33
|
|
35
|
-
As you edit the code, the two processes will continually rebuild and rerun the tests.
|
34
|
+
As you edit the code, the two processes will continually rebuild and rerun the tests.
|
@@ -33,18 +33,25 @@ found in the array and a special "not found" indication is returned.
|
|
33
33
|
A binary search halves the number of items to check with each iteration,
|
34
34
|
so locating an item (or determining its absence) takes logarithmic time.
|
35
35
|
A binary search is a dichotomic divide and conquer search algorithm.
|
36
|
+
## Source
|
36
37
|
|
37
|
-
|
38
|
+
Wikipedia [http://en.wikipedia.org/wiki/Binary_search_algorithm](http://en.wikipedia.org/wiki/Binary_search_algorithm)
|
39
|
+
|
40
|
+
## Building and testing
|
41
|
+
You will need the node package manager (npm) installed - download from [here](https://www.npmjs.com/get-npm)
|
42
|
+
There is one time setup for each exercise, which may take a few minutes:
|
38
43
|
```
|
39
|
-
npm
|
44
|
+
npm install
|
40
45
|
```
|
41
46
|
|
42
|
-
|
43
|
-
|
47
|
+
Open two shells, and in the first, start the build process.
|
44
48
|
```
|
45
|
-
npm
|
49
|
+
npm start
|
46
50
|
```
|
47
51
|
|
52
|
+
In the second, start the tests running.
|
53
|
+
```
|
54
|
+
npm test
|
55
|
+
```
|
48
56
|
|
49
|
-
|
50
|
-
If you use `vscode`, Press `Windows + Shift + B` it will build automatically
|
57
|
+
As you edit the code, the two processes will continually rebuild and rerun the tests.
|
@@ -12,17 +12,25 @@ He says 'Fine. Be that way!' if you address him without actually saying
|
|
12
12
|
anything.
|
13
13
|
|
14
14
|
He answers 'Whatever.' to anything else.
|
15
|
+
## Source
|
15
16
|
|
16
|
-
|
17
|
+
Inspired by the 'Deaf Grandma' exercise in Chris Pine's Learn to Program tutorial. [http://pine.fm/LearnToProgram/?Chapter=06](http://pine.fm/LearnToProgram/?Chapter=06)
|
18
|
+
|
19
|
+
## Building and testing
|
20
|
+
You will need the node package manager (npm) installed - download from [here](https://www.npmjs.com/get-npm)
|
21
|
+
There is one time setup for each exercise, which may take a few minutes:
|
17
22
|
```
|
18
|
-
npm
|
23
|
+
npm install
|
19
24
|
```
|
20
25
|
|
21
|
-
|
26
|
+
Open two shells, and in the first, start the build process.
|
27
|
+
```
|
28
|
+
npm start
|
29
|
+
```
|
22
30
|
|
31
|
+
In the second, start the tests running.
|
23
32
|
```
|
24
|
-
npm
|
33
|
+
npm test
|
25
34
|
```
|
26
35
|
|
27
|
-
|
28
|
-
If you use `vscode`, Press `Windows + Shift + B` it will build automatically
|
36
|
+
As you edit the code, the two processes will continually rebuild and rerun the tests.
|
@@ -15,11 +15,9 @@ that the sum of the coins' value would equal the correct amount of change.
|
|
15
15
|
- Does your algorithm work for any given set of coins?
|
16
16
|
- Can you ask for negative change?
|
17
17
|
- Can you ask for a change value smaller than the smallest coin value?
|
18
|
+
## Source
|
18
19
|
|
19
|
-
|
20
|
-
## Getting Started
|
21
|
-
For installation and learning resources, refer to the
|
22
|
-
[exercism help page](http://exercism.io/languages/reasonml).
|
20
|
+
Software Craftsmanship - Coin Change Kata [https://web.archive.org/web/20130115115225/http://craftsmanship.sv.cmu.edu:80/exercises/coin-change-kata](https://web.archive.org/web/20130115115225/http://craftsmanship.sv.cmu.edu:80/exercises/coin-change-kata)
|
23
21
|
|
24
22
|
## Building and testing
|
25
23
|
You will need the node package manager (npm) installed - download from [here](https://www.npmjs.com/get-npm)
|
@@ -13,10 +13,9 @@ The objectives are simple:
|
|
13
13
|
- Submit your solution and check it at the website.
|
14
14
|
|
15
15
|
If everything goes well, you will be ready to fetch your first real exercise.
|
16
|
+
## Source
|
16
17
|
|
17
|
-
|
18
|
-
For installation and learning resources, refer to the
|
19
|
-
[exercism help page](http://exercism.io/languages/reasonml).
|
18
|
+
This is an exercise to introduce users to using Exercism [http://en.wikipedia.org/wiki/%22Hello,_world!%22_program](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program)
|
20
19
|
|
21
20
|
## Building and testing
|
22
21
|
You will need the node package manager (npm) installed - download from [here](https://www.npmjs.com/get-npm)
|
@@ -2,8 +2,7 @@
|
|
2
2
|
|
3
3
|
Determine if a word or phrase is an isogram.
|
4
4
|
|
5
|
-
An isogram (also known as a "nonpattern word") is a word or phrase without a repeating letter,
|
6
|
-
however spaces and hyphens are allowed to appear multiple times.
|
5
|
+
An isogram (also known as a "nonpattern word") is a word or phrase without a repeating letter, however spaces and hyphens are allowed to appear multiple times.
|
7
6
|
|
8
7
|
Examples of isograms:
|
9
8
|
|
@@ -13,10 +12,9 @@ Examples of isograms:
|
|
13
12
|
- six-year-old
|
14
13
|
|
15
14
|
The word *isograms*, however, is not an isogram, because the s repeats.
|
15
|
+
## Source
|
16
16
|
|
17
|
-
|
18
|
-
For installation and learning resources, refer to the
|
19
|
-
[exercism help page](http://exercism.io/languages/reasonml).
|
17
|
+
Wikipedia [https://en.wikipedia.org/wiki/Isogram](https://en.wikipedia.org/wiki/Isogram)
|
20
18
|
|
21
19
|
## Building and testing
|
22
20
|
You will need the node package manager (npm) installed - download from [here](https://www.npmjs.com/get-npm)
|
@@ -35,4 +33,4 @@ In the second, start the tests running.
|
|
35
33
|
npm test
|
36
34
|
```
|
37
35
|
|
38
|
-
As you edit the code, the two processes will continually rebuild and rerun the tests.
|
36
|
+
As you edit the code, the two processes will continually rebuild and rerun the tests.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Leap
|
1
|
+
# Leap
|
2
2
|
|
3
3
|
Given a year, report if it is a leap year.
|
4
4
|
|
@@ -25,15 +25,25 @@ For a delightful, four minute explanation of the whole leap year
|
|
25
25
|
phenomenon, go watch [this youtube video][video].
|
26
26
|
|
27
27
|
[video]: http://www.youtube.com/watch?v=xX96xng7sAE
|
28
|
+
## Source
|
28
29
|
|
29
|
-
|
30
|
+
JavaRanch Cattle Drive, exercise 3 [http://www.javaranch.com/leap.jsp](http://www.javaranch.com/leap.jsp)
|
30
31
|
|
32
|
+
## Building and testing
|
33
|
+
You will need the node package manager (npm) installed - download from [here](https://www.npmjs.com/get-npm)
|
34
|
+
There is one time setup for each exercise, which may take a few minutes:
|
31
35
|
```
|
32
|
-
npm
|
36
|
+
npm install
|
33
37
|
```
|
34
38
|
|
35
|
-
|
39
|
+
Open two shells, and in the first, start the build process.
|
40
|
+
```
|
41
|
+
npm start
|
42
|
+
```
|
36
43
|
|
44
|
+
In the second, start the tests running.
|
37
45
|
```
|
38
46
|
npm test
|
39
47
|
```
|
48
|
+
|
49
|
+
As you edit the code, the two processes will continually rebuild and rerun the tests.
|
@@ -7,15 +7,25 @@ The best known English pangram is:
|
|
7
7
|
|
8
8
|
The alphabet used consists of ASCII letters `a` to `z`, inclusive, and is case
|
9
9
|
insensitive. Input will not contain non-ASCII symbols.
|
10
|
+
## Source
|
10
11
|
|
11
|
-
|
12
|
+
Wikipedia [https://en.wikipedia.org/wiki/Pangram](https://en.wikipedia.org/wiki/Pangram)
|
12
13
|
|
14
|
+
## Building and testing
|
15
|
+
You will need the node package manager (npm) installed - download from [here](https://www.npmjs.com/get-npm)
|
16
|
+
There is one time setup for each exercise, which may take a few minutes:
|
13
17
|
```
|
14
|
-
npm
|
18
|
+
npm install
|
15
19
|
```
|
16
20
|
|
17
|
-
|
21
|
+
Open two shells, and in the first, start the build process.
|
22
|
+
```
|
23
|
+
npm start
|
24
|
+
```
|
18
25
|
|
26
|
+
In the second, start the tests running.
|
19
27
|
```
|
20
28
|
npm test
|
21
29
|
```
|
30
|
+
|
31
|
+
As you edit the code, the two processes will continually rebuild and rerun the tests.
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# Phone Number
|
2
|
+
|
2
3
|
Clean up user-entered phone numbers so that they can be sent SMS messages.
|
3
4
|
|
4
5
|
The **North American Numbering Plan (NANP)** is a telephone numbering system used by many countries in North America like the United States, Canada or Bermuda. All NANP-countries share the same international country code: `1`.
|
@@ -26,18 +27,25 @@ should all produce the output
|
|
26
27
|
`6139950253`
|
27
28
|
|
28
29
|
**Note:** As this exercise only deals with telephone numbers used in NANP-countries, only 1 is considered a valid country code.
|
30
|
+
## Source
|
31
|
+
|
32
|
+
Event Manager by JumpstartLab [http://tutorials.jumpstartlab.com/projects/eventmanager.html](http://tutorials.jumpstartlab.com/projects/eventmanager.html)
|
29
33
|
|
30
|
-
|
34
|
+
## Building and testing
|
35
|
+
You will need the node package manager (npm) installed - download from [here](https://www.npmjs.com/get-npm)
|
36
|
+
There is one time setup for each exercise, which may take a few minutes:
|
31
37
|
```
|
32
|
-
npm
|
38
|
+
npm install
|
33
39
|
```
|
34
40
|
|
35
|
-
|
36
|
-
|
41
|
+
Open two shells, and in the first, start the build process.
|
37
42
|
```
|
38
|
-
npm
|
43
|
+
npm start
|
39
44
|
```
|
40
45
|
|
46
|
+
In the second, start the tests running.
|
47
|
+
```
|
48
|
+
npm test
|
49
|
+
```
|
41
50
|
|
42
|
-
|
43
|
-
If you use `vscode`, Press `Windows + Shift + B` it will build automatically
|
51
|
+
As you edit the code, the two processes will continually rebuild and rerun the tests.
|
@@ -16,18 +16,25 @@ Convert a number to a string, the contents of which depend on the number's facto
|
|
16
16
|
- In raindrop-speak, this would be a "PlingPlang".
|
17
17
|
- 34 has four factors: 1, 2, 17, and 34.
|
18
18
|
- In raindrop-speak, this would be "34".
|
19
|
+
## Source
|
19
20
|
|
20
|
-
|
21
|
+
A variation on a famous interview question intended to weed out potential candidates. [http://jumpstartlab.com](http://jumpstartlab.com)
|
22
|
+
|
23
|
+
## Building and testing
|
24
|
+
You will need the node package manager (npm) installed - download from [here](https://www.npmjs.com/get-npm)
|
25
|
+
There is one time setup for each exercise, which may take a few minutes:
|
21
26
|
```
|
22
|
-
npm
|
27
|
+
npm install
|
23
28
|
```
|
24
29
|
|
25
|
-
|
26
|
-
|
30
|
+
Open two shells, and in the first, start the build process.
|
27
31
|
```
|
28
|
-
npm
|
32
|
+
npm start
|
29
33
|
```
|
30
34
|
|
35
|
+
In the second, start the tests running.
|
36
|
+
```
|
37
|
+
npm test
|
38
|
+
```
|
31
39
|
|
32
|
-
|
33
|
-
If you use `vscode`, Press `Windows + Shift + B` it will build automatically
|
40
|
+
As you edit the code, the two processes will continually rebuild and rerun the tests.
|