trackler 2.2.1.100 → 2.2.1.101
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/problem-specifications/exercises/kindergarten-garden/canonical-data.json +37 -19
- data/problem-specifications/exercises/ocr-numbers/canonical-data.json +144 -110
- data/problem-specifications/exercises/palindrome-products/canonical-data.json +49 -25
- data/problem-specifications/exercises/poker/canonical-data.json +171 -115
- data/problem-specifications/exercises/prime-factors/canonical-data.json +22 -8
- data/problem-specifications/exercises/protein-translation/canonical-data.json +70 -24
- data/problem-specifications/exercises/proverb/canonical-data.json +24 -12
- data/problem-specifications/exercises/queen-attack/canonical-data.json +115 -91
- data/problem-specifications/exercises/rail-fence-cipher/canonical-data.json +25 -13
- data/problem-specifications/exercises/raindrops/canonical-data.json +55 -19
- data/problem-specifications/exercises/rational-numbers/canonical-data.json +374 -0
- data/problem-specifications/exercises/rational-numbers/description.md +27 -0
- data/problem-specifications/exercises/rational-numbers/metadata.yml +4 -0
- data/problem-specifications/exercises/rectangles/canonical-data.json +93 -67
- data/problem-specifications/exercises/reverse-string/canonical-data.json +16 -6
- data/problem-specifications/exercises/rna-transcription/metadata.yml +3 -3
- data/problem-specifications/exercises/roman-numerals/canonical-data.json +10 -2
- data/tracks/bash/config.json +11 -11
- data/tracks/c/exercises/roman-numerals/test/test_roman_numerals.c +7 -0
- data/tracks/clojure/exercises/armstrong-numbers/README.md +1 -1
- data/tracks/delphi/config.json +11 -0
- data/tracks/delphi/exercises/clock/uClockExample.pas +6 -1
- data/tracks/delphi/exercises/clock/uClockTest.pas +22 -19
- data/tracks/delphi/exercises/isbn-verifier/README.md +1 -1
- data/tracks/delphi/exercises/reverse-string/README.md +1 -1
- data/tracks/delphi/exercises/rna-transcription/README.md +1 -1
- data/tracks/delphi/exercises/roman-numerals/uRomanNumeralsTest.pas +14 -0
- data/tracks/delphi/exercises/space-age/README.md +45 -0
- data/tracks/delphi/exercises/space-age/SpaceAge.dpr +60 -0
- data/tracks/delphi/exercises/space-age/uSpaceAgeExample.pas +120 -0
- data/tracks/delphi/exercises/space-age/uSpaceAgeTests.pas +135 -0
- data/tracks/delphi/exercises/two-fer/README.md +1 -1
- data/tracks/elixir/exercises/nth-prime/nth_prime.exs +0 -1
- data/tracks/fsharp/exercises/pov/PovTest.fs +66 -53
- data/tracks/fsharp/exercises/space-age/Example.fs +11 -11
- data/tracks/fsharp/exercises/space-age/SpaceAge.fs +1 -1
- data/tracks/fsharp/exercises/space-age/SpaceAgeTest.fs +21 -34
- data/tracks/fsharp/exercises/triangle/Example.fs +11 -16
- data/tracks/fsharp/exercises/triangle/Triangle.fs +4 -5
- data/tracks/fsharp/exercises/triangle/TriangleTest.fs +44 -31
- data/tracks/fsharp/generators/Generators.fs +121 -0
- data/tracks/go/config.json +12 -0
- data/tracks/go/exercises/clock/.meta/gen.go +37 -13
- data/tracks/go/exercises/clock/cases_test.go +10 -10
- data/tracks/go/exercises/clock/clock_test.go +16 -2
- data/tracks/go/exercises/clock/example.go +4 -0
- data/tracks/go/exercises/clock/example_clock_test.go +3 -3
- data/tracks/go/exercises/parallel-letter-frequency/.meta/hints.md +33 -0
- data/tracks/go/exercises/parallel-letter-frequency/README.md +35 -0
- data/tracks/go/exercises/raindrops/.meta/hints.md +7 -4
- data/tracks/go/exercises/raindrops/README.md +12 -0
- data/tracks/go/exercises/roman-numerals/.meta/gen.go +4 -2
- data/tracks/go/exercises/roman-numerals/cases_test.go +3 -2
- data/tracks/go/exercises/space-age/.meta/hints.md +10 -0
- data/tracks/go/exercises/space-age/README.md +14 -1
- data/tracks/go/exercises/twelve-days/README.md +2 -5
- data/tracks/go/exercises/two-bucket/.meta/gen.go +62 -0
- data/tracks/go/exercises/two-bucket/.meta/hints.md +16 -0
- data/tracks/go/exercises/two-bucket/README.md +72 -0
- data/tracks/go/exercises/two-bucket/cases_test.go +44 -0
- data/tracks/go/exercises/two-bucket/example.go +198 -0
- data/tracks/go/exercises/two-bucket/two_bucket_test.go +61 -0
- data/tracks/idris/.travis.yml +3 -2
- data/tracks/idris/bin/fetch-idris-testing.sh +11 -0
- data/tracks/idris/bin/solve_exercises.sh +2 -2
- data/tracks/idris/config.json +11 -0
- data/tracks/idris/config/exercise_readme.go.tmpl +0 -3
- data/tracks/idris/docs/INSTALLATION.md +22 -0
- data/tracks/idris/docs/TESTS.md +12 -4
- data/tracks/idris/exercises/accumulate/src/Accumulate.idr +5 -0
- data/tracks/idris/exercises/hamming/Hamming.ipkg +2 -0
- data/tracks/idris/exercises/hamming/src/{example.idr → Example.idr} +5 -1
- data/tracks/idris/exercises/hamming/src/Hamming.idr +13 -5
- data/tracks/idris/exercises/hamming/src/Test/Hamming.idr +31 -58
- data/tracks/idris/exercises/hello-world/HelloWorld.ipkg +2 -0
- data/tracks/idris/exercises/hello-world/src/Example.idr +9 -0
- data/tracks/idris/exercises/hello-world/src/HelloWorld.idr +6 -1
- data/tracks/idris/exercises/hello-world/src/Test/HelloWorld.idr +18 -18
- data/tracks/idris/exercises/leap/Leap.ipkg +2 -0
- data/tracks/idris/exercises/leap/src/{example.idr → Example.idr} +4 -0
- data/tracks/idris/exercises/leap/src/Leap.idr +5 -1
- data/tracks/idris/exercises/leap/src/Test/Leap.idr +21 -30
- data/tracks/idris/exercises/rna-transcription/Makefile +23 -0
- data/tracks/idris/exercises/rna-transcription/README.md +27 -0
- data/tracks/idris/exercises/rna-transcription/RnaTranscription.ipkg +5 -0
- data/tracks/idris/exercises/rna-transcription/src/RnaTranscription.idr +17 -0
- data/tracks/idris/exercises/rna-transcription/src/Test/RnaTranscription.idr +27 -0
- data/tracks/idris/exercises/rna-transcription/src/example.idr +35 -0
- data/tracks/java/exercises/etl/.meta/version +1 -0
- data/tracks/java/exercises/gigasecond/.meta/version +1 -0
- data/tracks/java/exercises/isbn-verifier/README.md +1 -1
- data/tracks/java/exercises/nucleotide-count/.meta/src/reference/java/NucleotideCounter.java +7 -1
- data/tracks/java/exercises/nucleotide-count/.meta/version +1 -0
- data/tracks/java/exercises/nucleotide-count/src/test/java/NucleotideCounterTest.java +19 -54
- data/tracks/java/exercises/proverb/.meta/version +1 -0
- data/tracks/java/exercises/reverse-string/README.md +1 -1
- data/tracks/java/exercises/rna-transcription/README.md +1 -1
- data/tracks/java/exercises/sum-of-multiples/.meta/version +1 -0
- data/tracks/java/exercises/sum-of-multiples/src/test/java/SumOfMultiplesTest.java +13 -1
- data/tracks/kotlin/config/exercise_readme.go.tmpl +0 -3
- data/tracks/kotlin/docs/TESTS.md +1 -1
- data/tracks/objective-c/config.json +11 -0
- data/tracks/objective-c/exercises/collatz-conjecture/CollatzConjectureExample.h +7 -0
- data/tracks/objective-c/exercises/collatz-conjecture/CollatzConjectureExample.m +26 -0
- data/tracks/objective-c/exercises/collatz-conjecture/CollatzConjectureTest.m +39 -0
- data/tracks/objective-c/xcodeProject/ObjectiveC.xcodeproj/project.pbxproj +31 -1
- data/tracks/objective-c/xcodeProject/ObjectiveC.xcodeproj/xcshareddata/xcschemes/OCLint.xcscheme +3 -1
- data/tracks/objective-c/xcodeProject/ObjectiveC.xcodeproj/xcshareddata/xcschemes/xobjectivecTest.xcscheme +3 -1
- data/tracks/ocaml/exercises/forth/example.ml +9 -9
- data/tracks/ocaml/tools/test-generator/Makefile +3 -9
- data/tracks/ocaml/tools/test-generator/src/test_gen.ml +18 -16
- data/tracks/perl6/exercises/acronym/.meta/exercise-data.yaml +1 -1
- data/tracks/perl6/exercises/acronym/acronym.t +4 -14
- data/tracks/perl6/exercises/all-your-base/all-your-base.t +0 -2
- data/tracks/perl6/exercises/allergies/allergies.t +0 -2
- data/tracks/perl6/exercises/anagram/.meta/exercise-data.yaml +1 -1
- data/tracks/perl6/exercises/anagram/anagram.t +2 -40
- data/tracks/perl6/exercises/atbash-cipher/atbash-cipher.t +0 -1
- data/tracks/perl6/exercises/bob/bob.t +0 -2
- data/tracks/perl6/exercises/clock/.meta/exercise-data.yaml +15 -11
- data/tracks/perl6/exercises/clock/.meta/solutions/Clock.pm6 +5 -1
- data/tracks/perl6/exercises/clock/Clock.pm6 +1 -1
- data/tracks/perl6/exercises/clock/clock.t +314 -217
- data/tracks/perl6/exercises/etl/etl.t +0 -2
- data/tracks/perl6/exercises/flatten-array/flatten-array.t +0 -2
- data/tracks/perl6/exercises/grains/grains.t +0 -2
- data/tracks/perl6/exercises/hamming/.meta/exercise-data.yaml +2 -2
- data/tracks/perl6/exercises/hamming/hamming.t +63 -35
- data/tracks/perl6/exercises/hello-world/hello-world.t +2 -3
- data/tracks/perl6/exercises/leap/.meta/exercise-data.yaml +1 -1
- data/tracks/perl6/exercises/leap/leap.t +14 -8
- data/tracks/perl6/exercises/luhn/luhn.t +0 -2
- data/tracks/perl6/exercises/nucleotide-count/.meta/exercise-data.yaml +2 -2
- data/tracks/perl6/exercises/nucleotide-count/nucleotide-count.t +18 -10
- data/tracks/perl6/exercises/pangram/.meta/exercise-data.yaml +1 -1
- data/tracks/perl6/exercises/pangram/pangram.t +32 -14
- data/tracks/perl6/exercises/phone-number/.meta/exercise-data.yaml +4 -4
- data/tracks/perl6/exercises/phone-number/.meta/solutions/Phone.pm6 +1 -1
- data/tracks/perl6/exercises/phone-number/Phone.pm6 +1 -1
- data/tracks/perl6/exercises/phone-number/phone-number.t +59 -21
- data/tracks/perl6/exercises/raindrops/raindrops.t +0 -2
- data/tracks/perl6/exercises/rna-transcription/.meta/exercise-data.yaml +1 -1
- data/tracks/perl6/exercises/rna-transcription/README.md +1 -1
- data/tracks/perl6/exercises/rna-transcription/rna-transcription.t +17 -9
- data/tracks/perl6/exercises/roman-numerals/.meta/exercise-data.yaml +3 -3
- data/tracks/perl6/exercises/roman-numerals/.meta/solutions/RomanNumerals.pm6 +1 -1
- data/tracks/perl6/exercises/roman-numerals/RomanNumerals.pm6 +1 -1
- data/tracks/perl6/exercises/roman-numerals/roman-numerals.t +66 -24
- data/tracks/perl6/exercises/scrabble-score/.meta/exercise-data.yaml +1 -1
- data/tracks/perl6/exercises/scrabble-score/scrabble-score.t +35 -15
- data/tracks/perl6/exercises/space-age/.meta/exercise-data.yaml +1 -1
- data/tracks/perl6/exercises/space-age/space-age.t +34 -20
- data/tracks/perl6/exercises/two-fer/.meta/exercise-data.yaml +2 -2
- data/tracks/perl6/exercises/two-fer/two-fer.t +15 -11
- data/tracks/perl6/exercises/word-count/.meta/exercise-data.yaml +1 -1
- data/tracks/perl6/exercises/word-count/word-count.t +46 -26
- data/tracks/perl6/exercises/wordy/.meta/exercise-data.yaml +2 -2
- data/tracks/perl6/exercises/wordy/wordy.t +51 -21
- data/tracks/perl6/lib/Exercism/Generator.pm6 +1 -1
- data/tracks/perl6/t/generated-tests.t +1 -1
- data/tracks/perl6/templates/test.mustache +0 -1
- data/tracks/python/config.json +12 -0
- data/tracks/python/exercises/forth/example.py +1 -1
- data/tracks/python/exercises/forth/forth_test.py +43 -38
- data/tracks/python/exercises/spiral-matrix/README.md +42 -0
- data/tracks/python/exercises/spiral-matrix/example.py +11 -0
- data/tracks/python/exercises/spiral-matrix/spiral_matrix.py +2 -0
- data/tracks/python/exercises/spiral-matrix/spiral_matrix_test.py +40 -0
- data/tracks/racket/config/exercise_readme.go.tmpl +24 -4
- data/tracks/racket/exercises/accumulate/README.md +3 -6
- data/tracks/racket/exercises/acronym/README.md +3 -4
- data/tracks/racket/exercises/allergies/README.md +3 -4
- data/tracks/racket/exercises/anagram/README.md +3 -3
- data/tracks/racket/exercises/bob/README.md +5 -3
- data/tracks/racket/exercises/collatz-conjecture/README.md +3 -3
- data/tracks/racket/exercises/difference-of-squares/README.md +3 -3
- data/tracks/racket/exercises/etl/README.md +6 -4
- data/tracks/racket/exercises/gigasecond/README.md +3 -3
- data/tracks/racket/exercises/grains/README.md +3 -4
- data/tracks/racket/exercises/grep/README.md +15 -15
- data/tracks/racket/exercises/hamming/README.md +3 -3
- data/tracks/racket/exercises/hello-world/README.md +1 -1
- data/tracks/racket/exercises/leap/README.md +4 -4
- data/tracks/racket/exercises/list-ops/README.md +3 -4
- data/tracks/racket/exercises/meetup/README.md +19 -15
- data/tracks/racket/exercises/nucleotide-count/README.md +11 -25
- data/tracks/racket/exercises/perfect-numbers/README.md +5 -5
- data/tracks/racket/exercises/phone-number/README.md +7 -6
- data/tracks/racket/exercises/raindrops/README.md +3 -3
- data/tracks/racket/exercises/rna-transcription/README.md +4 -4
- data/tracks/racket/exercises/roman-numerals/README.md +4 -4
- data/tracks/racket/exercises/say/README.md +3 -3
- data/tracks/racket/exercises/scrabble-score/README.md +6 -4
- data/tracks/racket/exercises/word-count/README.md +4 -5
- data/tracks/scheme/config/exercise_readme.go.tmpl +0 -3
- data/tracks/scheme/docs/INSTALLATION.md +23 -14
- metadata +40 -9
- data/tracks/idris/docs/EXERCISE_README_INSERT.md +0 -0
- data/tracks/idris/exercises/hello-world/src/example.idr +0 -5
- data/tracks/kotlin/config/exercise-readme-insert.md +0 -1
- data/tracks/racket/docs/EXERCISE_README_INSERT.md +0 -23
- data/tracks/scheme/docs/EXERCISE_README_INSERT.md +0 -0
@@ -21,16 +21,16 @@ You can run the provided tests through DrRacket, or via the command line.
|
|
21
21
|
|
22
22
|
To run the test through DrRacket, simply open the test file and click the 'Run' button in the upper right.
|
23
23
|
|
24
|
-
To run the test from the command line,
|
24
|
+
To run the test from the command line, run the test from the exercise directory with the following command:
|
25
25
|
|
26
26
|
```
|
27
|
-
raco test
|
27
|
+
raco test difference-of-squares-test.rkt
|
28
28
|
```
|
29
29
|
|
30
30
|
which will display the following:
|
31
31
|
|
32
32
|
```
|
33
|
-
raco test: (submod "
|
33
|
+
raco test: (submod "difference-of-squares-test.rkt" test)
|
34
34
|
2 success(es) 0 failure(s) 0 error(s) 2 test(s) run
|
35
35
|
0
|
36
36
|
2 tests passed
|
@@ -1,8 +1,9 @@
|
|
1
|
-
#
|
1
|
+
# ETL
|
2
2
|
|
3
3
|
We are going to do the `Transform` step of an Extract-Transform-Load.
|
4
4
|
|
5
5
|
### ETL
|
6
|
+
|
6
7
|
Extract-Transform-Load (ETL) is a fancy way of saying, "We have some crufty, legacy data over in this system, and now we need it in this shiny new system over here, so
|
7
8
|
we're going to migrate this."
|
8
9
|
|
@@ -11,6 +12,7 @@ once." That's then typically followed by much forehead slapping and
|
|
11
12
|
moaning about how stupid we could possibly be.)
|
12
13
|
|
13
14
|
### The goal
|
15
|
+
|
14
16
|
We're going to extract some scrabble scores from a legacy system.
|
15
17
|
|
16
18
|
The old system stored a list of letters per score:
|
@@ -53,16 +55,16 @@ You can run the provided tests through DrRacket, or via the command line.
|
|
53
55
|
|
54
56
|
To run the test through DrRacket, simply open the test file and click the 'Run' button in the upper right.
|
55
57
|
|
56
|
-
To run the test from the command line,
|
58
|
+
To run the test from the command line, run the test from the exercise directory with the following command:
|
57
59
|
|
58
60
|
```
|
59
|
-
raco test
|
61
|
+
raco test etl-test.rkt
|
60
62
|
```
|
61
63
|
|
62
64
|
which will display the following:
|
63
65
|
|
64
66
|
```
|
65
|
-
raco test: (submod "
|
67
|
+
raco test: (submod "etl-test.rkt" test)
|
66
68
|
2 success(es) 0 failure(s) 0 error(s) 2 test(s) run
|
67
69
|
0
|
68
70
|
2 tests passed
|
@@ -13,16 +13,16 @@ You can run the provided tests through DrRacket, or via the command line.
|
|
13
13
|
|
14
14
|
To run the test through DrRacket, simply open the test file and click the 'Run' button in the upper right.
|
15
15
|
|
16
|
-
To run the test from the command line,
|
16
|
+
To run the test from the command line, run the test from the exercise directory with the following command:
|
17
17
|
|
18
18
|
```
|
19
|
-
raco test
|
19
|
+
raco test gigasecond-test.rkt
|
20
20
|
```
|
21
21
|
|
22
22
|
which will display the following:
|
23
23
|
|
24
24
|
```
|
25
|
-
raco test: (submod "
|
25
|
+
raco test: (submod "gigasecond-test.rkt" test)
|
26
26
|
2 success(es) 0 failure(s) 0 error(s) 2 test(s) run
|
27
27
|
0
|
28
28
|
2 tests passed
|
@@ -15,7 +15,6 @@ Write code that shows:
|
|
15
15
|
- how many grains were on each square, and
|
16
16
|
- the total number of grains
|
17
17
|
|
18
|
-
|
19
18
|
## For bonus points
|
20
19
|
|
21
20
|
Did you get the tests passing and the code clean? If you want to, these
|
@@ -36,16 +35,16 @@ You can run the provided tests through DrRacket, or via the command line.
|
|
36
35
|
|
37
36
|
To run the test through DrRacket, simply open the test file and click the 'Run' button in the upper right.
|
38
37
|
|
39
|
-
To run the test from the command line,
|
38
|
+
To run the test from the command line, run the test from the exercise directory with the following command:
|
40
39
|
|
41
40
|
```
|
42
|
-
raco test
|
41
|
+
raco test grains-test.rkt
|
43
42
|
```
|
44
43
|
|
45
44
|
which will display the following:
|
46
45
|
|
47
46
|
```
|
48
|
-
raco test: (submod "
|
47
|
+
raco test: (submod "grains-test.rkt" test)
|
49
48
|
2 success(es) 0 failure(s) 0 error(s) 2 test(s) run
|
50
49
|
0
|
51
50
|
2 tests passed
|
@@ -3,14 +3,14 @@
|
|
3
3
|
Search a file for lines matching a regular expression pattern. Return the line
|
4
4
|
number and contents of each matching line.
|
5
5
|
|
6
|
-
The Unix [`grep`](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html) command can be used to search for lines in one or more files
|
6
|
+
The Unix [`grep`](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html) command can be used to search for lines in one or more files
|
7
7
|
that match a user-provided search query (known as the *pattern*).
|
8
8
|
|
9
9
|
The `grep` command takes three arguments:
|
10
10
|
|
11
|
-
1. The pattern used to match lines in a file.
|
11
|
+
1. The pattern used to match lines in a file.
|
12
12
|
2. Zero or more flags to customize the matching behavior.
|
13
|
-
3. One or more files in which to search for matching lines.
|
13
|
+
3. One or more files in which to search for matching lines.
|
14
14
|
|
15
15
|
Your task is to implement the `grep` function, which should read the contents
|
16
16
|
of the specified files, find the lines that match the specified pattern
|
@@ -20,18 +20,18 @@ in the first file being output first.
|
|
20
20
|
|
21
21
|
As an example, suppose there is a file named "input.txt" with the following contents:
|
22
22
|
|
23
|
-
|
23
|
+
```text
|
24
24
|
hello
|
25
25
|
world
|
26
26
|
hello again
|
27
|
-
|
27
|
+
```
|
28
28
|
|
29
29
|
If we were to call `grep "hello" input.txt`, the returned string should be:
|
30
30
|
|
31
|
-
|
31
|
+
```text
|
32
32
|
hello
|
33
33
|
hello again
|
34
|
-
|
34
|
+
```
|
35
35
|
|
36
36
|
### Flags
|
37
37
|
|
@@ -46,18 +46,18 @@ As said earlier, the `grep` command should also support the following flags:
|
|
46
46
|
If we run `grep -n "hello" input.txt`, the `-n` flag will require the matching
|
47
47
|
lines to be prefixed with its line number:
|
48
48
|
|
49
|
-
|
49
|
+
```text
|
50
50
|
1:hello
|
51
51
|
3:hello again
|
52
|
-
|
52
|
+
```
|
53
53
|
|
54
|
-
And if we run `grep -i "HELLO" input.txt`, we'll do a case-insensitive match,
|
54
|
+
And if we run `grep -i "HELLO" input.txt`, we'll do a case-insensitive match,
|
55
55
|
and the output will be:
|
56
56
|
|
57
|
-
|
57
|
+
```text
|
58
58
|
hello
|
59
59
|
hello again
|
60
|
-
|
60
|
+
```
|
61
61
|
|
62
62
|
The `grep` command should support multiple flags at once.
|
63
63
|
|
@@ -73,16 +73,16 @@ You can run the provided tests through DrRacket, or via the command line.
|
|
73
73
|
|
74
74
|
To run the test through DrRacket, simply open the test file and click the 'Run' button in the upper right.
|
75
75
|
|
76
|
-
To run the test from the command line,
|
76
|
+
To run the test from the command line, run the test from the exercise directory with the following command:
|
77
77
|
|
78
78
|
```
|
79
|
-
raco test
|
79
|
+
raco test grep-test.rkt
|
80
80
|
```
|
81
81
|
|
82
82
|
which will display the following:
|
83
83
|
|
84
84
|
```
|
85
|
-
raco test: (submod "
|
85
|
+
raco test: (submod "grep-test.rkt" test)
|
86
86
|
2 success(es) 0 failure(s) 0 error(s) 2 test(s) run
|
87
87
|
0
|
88
88
|
2 tests passed
|
@@ -44,16 +44,16 @@ You can run the provided tests through DrRacket, or via the command line.
|
|
44
44
|
|
45
45
|
To run the test through DrRacket, simply open the test file and click the 'Run' button in the upper right.
|
46
46
|
|
47
|
-
To run the test from the command line,
|
47
|
+
To run the test from the command line, run the test from the exercise directory with the following command:
|
48
48
|
|
49
49
|
```
|
50
|
-
raco test
|
50
|
+
raco test hamming-test.rkt
|
51
51
|
```
|
52
52
|
|
53
53
|
which will display the following:
|
54
54
|
|
55
55
|
```
|
56
|
-
raco test: (submod "
|
56
|
+
raco test: (submod "hamming-test.rkt" test)
|
57
57
|
2 success(es) 0 failure(s) 0 error(s) 2 test(s) run
|
58
58
|
0
|
59
59
|
2 tests passed
|
@@ -23,7 +23,7 @@ You can run the provided tests through DrRacket, or via the command line.
|
|
23
23
|
|
24
24
|
To run the test through DrRacket, simply open the test file and click the 'Run' button in the upper right.
|
25
25
|
|
26
|
-
To run the test from the command line,
|
26
|
+
To run the test from the command line, run the test from the exercise directory with the following command:
|
27
27
|
|
28
28
|
```
|
29
29
|
raco test hello-world-test.rkt
|
@@ -4,7 +4,7 @@ Given a year, report if it is a leap year.
|
|
4
4
|
|
5
5
|
The tricky thing here is that a leap year in the Gregorian calendar occurs:
|
6
6
|
|
7
|
-
```
|
7
|
+
```text
|
8
8
|
on every year that is evenly divisible by 4
|
9
9
|
except every year that is evenly divisible by 100
|
10
10
|
unless the year is also evenly divisible by 400
|
@@ -35,16 +35,16 @@ You can run the provided tests through DrRacket, or via the command line.
|
|
35
35
|
|
36
36
|
To run the test through DrRacket, simply open the test file and click the 'Run' button in the upper right.
|
37
37
|
|
38
|
-
To run the test from the command line,
|
38
|
+
To run the test from the command line, run the test from the exercise directory with the following command:
|
39
39
|
|
40
40
|
```
|
41
|
-
raco test
|
41
|
+
raco test leap-test.rkt
|
42
42
|
```
|
43
43
|
|
44
44
|
which will display the following:
|
45
45
|
|
46
46
|
```
|
47
|
-
raco test: (submod "
|
47
|
+
raco test: (submod "leap-test.rkt" test)
|
48
48
|
2 success(es) 0 failure(s) 0 error(s) 2 test(s) run
|
49
49
|
0
|
50
50
|
2 tests passed
|
@@ -15,21 +15,20 @@ You can run the provided tests through DrRacket, or via the command line.
|
|
15
15
|
|
16
16
|
To run the test through DrRacket, simply open the test file and click the 'Run' button in the upper right.
|
17
17
|
|
18
|
-
To run the test from the command line,
|
18
|
+
To run the test from the command line, run the test from the exercise directory with the following command:
|
19
19
|
|
20
20
|
```
|
21
|
-
raco test
|
21
|
+
raco test list-ops-test.rkt
|
22
22
|
```
|
23
23
|
|
24
24
|
which will display the following:
|
25
25
|
|
26
26
|
```
|
27
|
-
raco test: (submod "
|
27
|
+
raco test: (submod "list-ops-test.rkt" test)
|
28
28
|
2 success(es) 0 failure(s) 0 error(s) 2 test(s) run
|
29
29
|
0
|
30
30
|
2 tests passed
|
31
31
|
```
|
32
32
|
|
33
|
-
|
34
33
|
## Submitting Incomplete Solutions
|
35
34
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -2,25 +2,29 @@
|
|
2
2
|
|
3
3
|
Calculate the date of meetups.
|
4
4
|
|
5
|
-
Typically meetups happen on the same day of the week. In this exercise, you
|
6
|
-
a description of a meetup date, and return the actual meetup date.
|
5
|
+
Typically meetups happen on the same day of the week. In this exercise, you
|
6
|
+
will take a description of a meetup date, and return the actual meetup date.
|
7
7
|
|
8
8
|
Examples of general descriptions are:
|
9
9
|
|
10
|
-
-
|
11
|
-
-
|
12
|
-
-
|
13
|
-
-
|
10
|
+
- The first Monday of January 2017
|
11
|
+
- The third Tuesday of January 2017
|
12
|
+
- The wednesteenth of January 2017
|
13
|
+
- The last Thursday of January 2017
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
The descriptors you are expected to parse are:
|
16
|
+
first, second, third, fourth, fifth, last, monteenth, tuesteenth, wednesteenth,
|
17
|
+
thursteenth, friteenth, saturteenth, sunteenth
|
18
|
+
|
19
|
+
Note that "monteenth", "tuesteenth", etc are all made up words. There was a
|
20
|
+
meetup whose members realized that there are exactly 7 numbered days in a month
|
21
|
+
that end in '-teenth'. Therefore, one is guaranteed that each day of the week
|
18
22
|
(Monday, Tuesday, ...) will have exactly one date that is named with '-teenth'
|
19
23
|
in every month.
|
20
24
|
|
21
|
-
Given examples of a meetup dates, each containing a month, day, year, and
|
22
|
-
|
23
|
-
|
25
|
+
Given examples of a meetup dates, each containing a month, day, year, and
|
26
|
+
descriptor calculate the date of the actual meetup. For example, if given
|
27
|
+
"The first Monday of January 2017", the correct meetup date is 2017/1/2.
|
24
28
|
|
25
29
|
* * * *
|
26
30
|
|
@@ -31,16 +35,16 @@ You can run the provided tests through DrRacket, or via the command line.
|
|
31
35
|
|
32
36
|
To run the test through DrRacket, simply open the test file and click the 'Run' button in the upper right.
|
33
37
|
|
34
|
-
To run the test from the command line,
|
38
|
+
To run the test from the command line, run the test from the exercise directory with the following command:
|
35
39
|
|
36
40
|
```
|
37
|
-
raco test
|
41
|
+
raco test meetup-test.rkt
|
38
42
|
```
|
39
43
|
|
40
44
|
which will display the following:
|
41
45
|
|
42
46
|
```
|
43
|
-
raco test: (submod "
|
47
|
+
raco test: (submod "meetup-test.rkt" test)
|
44
48
|
2 success(es) 0 failure(s) 0 error(s) 2 test(s) run
|
45
49
|
0
|
46
50
|
2 tests passed
|
@@ -1,30 +1,16 @@
|
|
1
1
|
# Nucleotide Count
|
2
2
|
|
3
|
-
Given a DNA string, compute how many times each nucleotide occurs in the string.
|
3
|
+
Given a single stranded DNA string, compute how many times each nucleotide occurs in the string.
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
Each symbol represents a nucleotide, which is a fancy name for the
|
9
|
-
particular molecules that happen to make up a large part of DNA.
|
10
|
-
|
11
|
-
Shortest intro to biochemistry EVAR:
|
5
|
+
The genetic language of every living thing on the planet is DNA.
|
6
|
+
DNA is a large molecule that is built from an extremely long sequence of individual elements called nucleotides.
|
7
|
+
4 types exist in DNA and these differ only slightly and can be represented as the following symbols: 'A' for adenine, 'C' for cytosine, 'G' for guanine, and 'T' thymine.
|
12
8
|
|
9
|
+
Here is an analogy:
|
13
10
|
- twigs are to birds nests as
|
14
|
-
- nucleotides are to DNA
|
15
|
-
-
|
16
|
-
-
|
17
|
-
- oh crap lipids
|
18
|
-
|
19
|
-
I'm not going to talk about lipids because they're crazy complex.
|
20
|
-
|
21
|
-
So back to nucleotides.
|
22
|
-
|
23
|
-
DNA contains four types of them: adenine (`A`), cytosine (`C`), guanine
|
24
|
-
(`G`), and thymine (`T`).
|
25
|
-
|
26
|
-
RNA contains a slightly different set of nucleotides, but we don't care
|
27
|
-
about that for now.
|
11
|
+
- nucleotides are to DNA as
|
12
|
+
- legos are to lego houses as
|
13
|
+
- words are to sentences as...
|
28
14
|
|
29
15
|
* * * *
|
30
16
|
|
@@ -35,16 +21,16 @@ You can run the provided tests through DrRacket, or via the command line.
|
|
35
21
|
|
36
22
|
To run the test through DrRacket, simply open the test file and click the 'Run' button in the upper right.
|
37
23
|
|
38
|
-
To run the test from the command line,
|
24
|
+
To run the test from the command line, run the test from the exercise directory with the following command:
|
39
25
|
|
40
26
|
```
|
41
|
-
raco test
|
27
|
+
raco test nucleotide-count-test.rkt
|
42
28
|
```
|
43
29
|
|
44
30
|
which will display the following:
|
45
31
|
|
46
32
|
```
|
47
|
-
raco test: (submod "
|
33
|
+
raco test: (submod "nucleotide-count-test.rkt" test)
|
48
34
|
2 success(es) 0 failure(s) 0 error(s) 2 test(s) run
|
49
35
|
0
|
50
36
|
2 tests passed
|
@@ -5,7 +5,7 @@ Nicomachus' (60 - 120 CE) classification scheme for natural numbers.
|
|
5
5
|
|
6
6
|
The Greek mathematician [Nicomachus](https://en.wikipedia.org/wiki/Nicomachus) devised a classification scheme for natural numbers, identifying each as belonging uniquely to the categories of **perfect**, **abundant**, or **deficient** based on their [aliquot sum](https://en.wikipedia.org/wiki/Aliquot_sum). The aliquot sum is defined as the sum of the factors of a number not including the number itself. For example, the aliquot sum of 15 is (1 + 3 + 5) = 9
|
7
7
|
|
8
|
-
- **Perfect**: aliquot sum = number
|
8
|
+
- **Perfect**: aliquot sum = number
|
9
9
|
- 6 is a perfect number because (1 + 2 + 3) = 6
|
10
10
|
- 28 is a perfect number because (1 + 2 + 4 + 7 + 14) = 28
|
11
11
|
- **Abundant**: aliquot sum > number
|
@@ -14,7 +14,7 @@ The Greek mathematician [Nicomachus](https://en.wikipedia.org/wiki/Nicomachus) d
|
|
14
14
|
- **Deficient**: aliquot sum < number
|
15
15
|
- 8 is a deficient number because (1 + 2 + 4) = 7
|
16
16
|
- Prime numbers are deficient
|
17
|
-
|
17
|
+
|
18
18
|
Implement a way to determine whether a given number is **perfect**. Depending on your language track, you may also need to implement a way to determine whether a given number is **abundant** or **deficient**.
|
19
19
|
|
20
20
|
* * * *
|
@@ -26,16 +26,16 @@ You can run the provided tests through DrRacket, or via the command line.
|
|
26
26
|
|
27
27
|
To run the test through DrRacket, simply open the test file and click the 'Run' button in the upper right.
|
28
28
|
|
29
|
-
To run the test from the command line,
|
29
|
+
To run the test from the command line, run the test from the exercise directory with the following command:
|
30
30
|
|
31
31
|
```
|
32
|
-
raco test
|
32
|
+
raco test perfect-numbers-test.rkt
|
33
33
|
```
|
34
34
|
|
35
35
|
which will display the following:
|
36
36
|
|
37
37
|
```
|
38
|
-
raco test: (submod "
|
38
|
+
raco test: (submod "perfect-numbers-test.rkt" test)
|
39
39
|
2 success(es) 0 failure(s) 0 error(s) 2 test(s) run
|
40
40
|
0
|
41
41
|
2 tests passed
|
@@ -6,14 +6,15 @@ The **North American Numbering Plan (NANP)** is a telephone numbering system use
|
|
6
6
|
|
7
7
|
NANP numbers are ten-digit numbers consisting of a three-digit Numbering Plan Area code, commonly known as *area code*, followed by a seven-digit local number. The first three digits of the local number represent the *exchange code*, followed by the unique four-digit number which is the *subscriber number*.
|
8
8
|
|
9
|
-
|
10
9
|
The format is usually represented as
|
11
|
-
|
10
|
+
|
11
|
+
```text
|
12
12
|
(NXX)-NXX-XXXX
|
13
13
|
```
|
14
|
+
|
14
15
|
where `N` is any digit from 2 through 9 and `X` is any digit from 0 through 9.
|
15
16
|
|
16
|
-
Your task is to clean up differently
|
17
|
+
Your task is to clean up differently formatted telephone numbers by removing punctuation and the country code (1) if present.
|
17
18
|
|
18
19
|
For example, the inputs
|
19
20
|
- `+1 (613)-995-0253`
|
@@ -36,16 +37,16 @@ You can run the provided tests through DrRacket, or via the command line.
|
|
36
37
|
|
37
38
|
To run the test through DrRacket, simply open the test file and click the 'Run' button in the upper right.
|
38
39
|
|
39
|
-
To run the test from the command line,
|
40
|
+
To run the test from the command line, run the test from the exercise directory with the following command:
|
40
41
|
|
41
42
|
```
|
42
|
-
raco test
|
43
|
+
raco test phone-number-test.rkt
|
43
44
|
```
|
44
45
|
|
45
46
|
which will display the following:
|
46
47
|
|
47
48
|
```
|
48
|
-
raco test: (submod "
|
49
|
+
raco test: (submod "phone-number-test.rkt" test)
|
49
50
|
2 success(es) 0 failure(s) 0 error(s) 2 test(s) run
|
50
51
|
0
|
51
52
|
2 tests passed
|