trackler 2.2.1.99 → 2.2.1.100
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/clock/canonical-data.json +303 -204
- data/problem-specifications/exercises/complex-numbers/canonical-data.json +104 -44
- data/problem-specifications/exercises/matrix/canonical-data.json +78 -0
- data/problem-specifications/exercises/word-count/canonical-data.json +12 -12
- data/tracks/bash/config.json +128 -110
- data/tracks/c/exercises/word-count/test/test_word_count.c +2 -2
- data/tracks/dart/CONTRIBUTING.md +2 -2
- data/tracks/dart/docs/EXERCISE_README_INSERT.md +0 -1
- data/tracks/dart/docs/INSTALLATION.md +17 -11
- data/tracks/fsharp/exercises/acronym/AcronymTest.fs +3 -7
- data/tracks/fsharp/exercises/anagram/AnagramTest.fs +1 -21
- data/tracks/fsharp/exercises/book-store/BookStoreTest.fs +1 -1
- data/tracks/fsharp/exercises/complex-numbers/ComplexNumbersTest.fs +25 -25
- data/tracks/fsharp/exercises/custom-set/CustomSetTest.fs +1 -1
- data/tracks/fsharp/exercises/food-chain/FoodChainTest.fs +1 -1
- data/tracks/fsharp/exercises/gigasecond/GigasecondTest.fs +1 -1
- data/tracks/fsharp/exercises/hamming/HammingTest.fs +1 -1
- data/tracks/fsharp/exercises/hello-world/HelloWorldTest.fs +1 -1
- data/tracks/fsharp/exercises/largest-series-product/LargestSeriesProductTest.fs +1 -1
- data/tracks/fsharp/exercises/leap/LeapTest.fs +1 -1
- data/tracks/fsharp/exercises/markdown/MarkdownTest.fs +19 -19
- data/tracks/fsharp/exercises/minesweeper/MinesweeperTest.fs +27 -27
- data/tracks/fsharp/exercises/nth-prime/NthPrimeTest.fs +1 -1
- data/tracks/fsharp/exercises/nucleotide-count/NucleotideCountTest.fs +1 -1
- data/tracks/fsharp/exercises/pangram/PangramTest.fs +1 -1
- data/tracks/fsharp/exercises/pascals-triangle/PascalsTriangleTest.fs +1 -1
- data/tracks/fsharp/exercises/perfect-numbers/PerfectNumbersTest.fs +1 -1
- data/tracks/fsharp/exercises/phone-number/PhoneNumberTest.fs +11 -3
- data/tracks/fsharp/exercises/pig-latin/PigLatinTest.fs +1 -1
- data/tracks/fsharp/exercises/protein-translation/Example.fs +2 -2
- data/tracks/fsharp/exercises/protein-translation/ProteinTranslation.fs +1 -1
- data/tracks/fsharp/exercises/protein-translation/ProteinTranslationTest.fs +94 -60
- data/tracks/fsharp/exercises/react/ReactTest.fs +1 -1
- data/tracks/fsharp/exercises/rna-transcription/RnaTranscriptionTest.fs +1 -1
- data/tracks/fsharp/exercises/roman-numerals/RomanNumeralsTest.fs +1 -1
- data/tracks/fsharp/exercises/rotational-cipher/RotationalCipherTest.fs +1 -1
- data/tracks/fsharp/exercises/say/Example.fs +1 -1
- data/tracks/fsharp/exercises/say/SayTest.fs +21 -24
- data/tracks/fsharp/exercises/scrabble-score/ScrabbleScoreTest.fs +1 -1
- data/tracks/fsharp/exercises/secret-handshake/Example.fs +2 -2
- data/tracks/fsharp/exercises/secret-handshake/SecretHandshake.fs +1 -1
- data/tracks/fsharp/exercises/secret-handshake/SecretHandshakeTest.fs +39 -22
- data/tracks/fsharp/exercises/sieve/Example.fs +1 -1
- data/tracks/fsharp/exercises/sieve/Sieve.fs +1 -1
- data/tracks/fsharp/exercises/sieve/SieveTest.fs +19 -21
- data/tracks/fsharp/exercises/spiral-matrix/SpiralMatrixTest.fs +1 -1
- data/tracks/fsharp/exercises/sum-of-multiples/Example.fs +1 -1
- data/tracks/fsharp/exercises/sum-of-multiples/SumOfMultiples.fs +1 -1
- data/tracks/fsharp/exercises/sum-of-multiples/SumOfMultiplesTest.fs +44 -14
- data/tracks/fsharp/exercises/twelve-days/TwelveDaysTest.fs +1 -1
- data/tracks/fsharp/exercises/two-fer/Example.fs +1 -1
- data/tracks/fsharp/exercises/two-fer/TwoFer.fs +1 -1
- data/tracks/fsharp/exercises/two-fer/TwoFerTest.fs +4 -4
- data/tracks/fsharp/exercises/word-count/Example.fs +2 -2
- data/tracks/fsharp/exercises/word-count/WordCount.fs +2 -2
- data/tracks/fsharp/exercises/word-count/WordCountTest.fs +80 -100
- data/tracks/fsharp/exercises/wordy/Example.fs +2 -3
- data/tracks/fsharp/exercises/wordy/Wordy.fs +1 -1
- data/tracks/fsharp/exercises/wordy/WordyTest.fs +51 -49
- data/tracks/fsharp/exercises/zebra-puzzle/Example.fs +4 -4
- data/tracks/fsharp/exercises/zebra-puzzle/ZebraPuzzleTest.fs +7 -8
- data/tracks/fsharp/generators/Common.fs +3 -1
- data/tracks/fsharp/generators/Exercise.fs +12 -1
- data/tracks/fsharp/generators/Generators.fs +89 -42
- data/tracks/fsharp/generators/Generators.fsproj +1 -0
- data/tracks/fsharp/generators/Options.fs +14 -7
- data/tracks/fsharp/generators/Program.fs +3 -0
- data/tracks/fsharp/generators/Rendering.fs +0 -1
- data/tracks/fsharp/generators/Track.fs +26 -0
- data/tracks/go/exercises/custom-set/.meta/gen.go +16 -14
- data/tracks/go/exercises/custom-set/cases_test.go +2 -2
- data/tracks/java/exercises/food-chain/.meta/version +1 -0
- data/tracks/java/exercises/sieve/.meta/version +1 -0
- data/tracks/java/exercises/sieve/src/test/java/SieveTest.java +17 -0
- data/tracks/java/exercises/twelve-days/.meta/version +1 -0
- data/tracks/java/exercises/twelve-days/src/test/java/TwelveDaysTest.java +15 -3
- data/tracks/java/exercises/two-fer/.meta/version +1 -0
- data/tracks/java/exercises/two-fer/src/test/java/TwoferTest.java +0 -9
- data/tracks/ocaml/config/exercise_readme.go.tmpl +38 -4
- data/tracks/ocaml/exercises/acronym/README.md +0 -2
- data/tracks/ocaml/exercises/all-your-base/README.md +1 -3
- data/tracks/ocaml/exercises/anagram/README.md +0 -1
- data/tracks/ocaml/exercises/atbash-cipher/README.md +2 -2
- data/tracks/ocaml/exercises/beer-song/README.md +2 -3
- data/tracks/ocaml/exercises/binary-search/README.md +0 -1
- data/tracks/ocaml/exercises/bob/README.md +2 -1
- data/tracks/ocaml/exercises/bowling/README.md +20 -7
- data/tracks/ocaml/exercises/bracket-push/README.md +0 -1
- data/tracks/ocaml/exercises/change/README.md +1 -2
- data/tracks/ocaml/exercises/connect/README.md +1 -3
- data/tracks/ocaml/exercises/custom-set/README.md +0 -2
- data/tracks/ocaml/exercises/difference-of-squares/README.md +0 -1
- data/tracks/ocaml/exercises/dominoes/README.md +3 -5
- data/tracks/ocaml/exercises/etl/README.md +3 -2
- data/tracks/ocaml/exercises/forth/README.md +0 -2
- data/tracks/ocaml/exercises/grade-school/README.md +0 -1
- data/tracks/ocaml/exercises/hamming/README.md +0 -1
- data/tracks/ocaml/exercises/hangman/README.md +0 -2
- data/tracks/ocaml/exercises/hello-world/README.md +0 -1
- data/tracks/ocaml/exercises/hexadecimal/README.md +0 -1
- data/tracks/ocaml/exercises/leap/README.md +1 -2
- data/tracks/ocaml/exercises/list-ops/README.md +0 -2
- data/tracks/ocaml/exercises/luhn/README.md +7 -8
- data/tracks/ocaml/exercises/meetup/README.md +16 -14
- data/tracks/ocaml/exercises/minesweeper/README.md +0 -2
- data/tracks/ocaml/exercises/nucleotide-count/README.md +8 -23
- data/tracks/ocaml/exercises/palindrome-products/README.md +0 -1
- data/tracks/ocaml/exercises/pangram/README.md +1 -2
- data/tracks/ocaml/exercises/phone-number/README.md +4 -4
- data/tracks/ocaml/exercises/prime-factors/README.md +0 -1
- data/tracks/ocaml/exercises/raindrops/README.md +0 -1
- data/tracks/ocaml/exercises/react/README.md +0 -2
- data/tracks/ocaml/{docs/EXERCISE_README_INSERT.md → exercises/rectangles/README.md} +67 -0
- data/tracks/ocaml/exercises/rna-transcription/README.md +1 -2
- data/tracks/ocaml/exercises/robot-name/README.md +0 -1
- data/tracks/ocaml/exercises/roman-numerals/README.md +1 -2
- data/tracks/ocaml/exercises/run-length-encoding/README.md +4 -5
- data/tracks/ocaml/exercises/say/README.md +0 -1
- data/tracks/ocaml/exercises/space-age/README.md +1 -2
- data/tracks/ocaml/exercises/triangle/README.md +8 -6
- data/tracks/ocaml/exercises/word-count/README.md +1 -3
- data/tracks/ocaml/exercises/zipper/README.md +1 -3
- data/tracks/perl6/.travis.yml +1 -1
- data/tracks/perl6/bin/README.md +1 -2
- data/tracks/perl6/bin/exercise-gen.pl6 +18 -18
- data/tracks/perl6/config.json +1 -0
- data/tracks/perl6/exercises/accumulate/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/accumulate/{Example.pm6 → .meta/solutions/Accumulate.pm6} +0 -0
- data/tracks/perl6/exercises/acronym/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/acronym/{Example.pm6 → .meta/solutions/Acronym.pm6} +0 -0
- data/tracks/perl6/exercises/all-your-base/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/all-your-base/{Example.pm6 → .meta/solutions/AllYourBase.pm6} +0 -0
- data/tracks/perl6/exercises/allergies/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/allergies/{Example.pm6 → .meta/solutions/Allergies.pm6} +0 -0
- data/tracks/perl6/exercises/anagram/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/anagram/{Example.pm6 → .meta/solutions/Anagram.pm6} +0 -0
- data/tracks/perl6/exercises/atbash-cipher/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/atbash-cipher/{Example.pm6 → .meta/solutions/AtbashCipher.pm6} +0 -0
- data/tracks/perl6/exercises/binary/{Example.pm6 → .meta/solutions/Trinary.pm6} +0 -0
- data/tracks/perl6/exercises/bob/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/bob/{Example.pm6 → .meta/solutions/Bob.pm6} +0 -0
- data/tracks/perl6/exercises/clock/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/clock/{Example.pm6 → .meta/solutions/Clock.pm6} +0 -0
- data/tracks/perl6/exercises/etl/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/etl/{Example.pm6 → .meta/solutions/ETL.pm6} +0 -0
- data/tracks/perl6/exercises/flatten-array/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/flatten-array/{Example.pm6 → .meta/solutions/FlattenArray.pm6} +0 -0
- data/tracks/perl6/exercises/grade-school/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/grade-school/{Example.pm6 → .meta/solutions/GradeSchool.pm6} +0 -0
- data/tracks/perl6/exercises/grains/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/grains/{Example.pm6 → .meta/solutions/Grains.pm6} +0 -0
- data/tracks/perl6/exercises/hamming/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/hamming/{Example.pm6 → .meta/solutions/Hamming.pm6} +0 -0
- data/tracks/perl6/exercises/hello-world/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/hello-world/{Example.pm6 → .meta/solutions/HelloWorld.pm6} +0 -0
- data/tracks/perl6/exercises/leap/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/leap/{Example.pm6 → .meta/solutions/Leap.pm6} +0 -0
- data/tracks/perl6/exercises/linked-list/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/linked-list/{Example.pm6 → .meta/solutions/LinkedList.pm6} +0 -0
- data/tracks/perl6/exercises/luhn/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/luhn/{Example.pm6 → .meta/solutions/Luhn.pm6} +0 -0
- data/tracks/perl6/exercises/meetup/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/meetup/{Example.pm6 → .meta/solutions/Meetup.pm6} +0 -0
- data/tracks/perl6/exercises/nucleotide-count/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/nucleotide-count/{Example.pm6 → .meta/solutions/NucleotideCount.pm6} +0 -0
- data/tracks/perl6/exercises/pangram/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/pangram/{Example.pm6 → .meta/solutions/Pangram.pm6} +0 -0
- data/tracks/perl6/exercises/phone-number/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/phone-number/{Example.pm6 → .meta/solutions/Phone.pm6} +0 -0
- data/tracks/perl6/exercises/raindrops/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/raindrops/{Example.pm6 → .meta/solutions/Raindrops.pm6} +0 -0
- data/tracks/perl6/exercises/rna-transcription/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/rna-transcription/{Example.pm6 → .meta/solutions/RNA.pm6} +0 -0
- data/tracks/perl6/exercises/robot-name/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/robot-name/{Example.pm6 → .meta/solutions/Robot.pm6} +0 -0
- data/tracks/perl6/exercises/roman-numerals/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/roman-numerals/{Example.pm6 → .meta/solutions/RomanNumerals.pm6} +0 -0
- data/tracks/perl6/exercises/scrabble-score/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/scrabble-score/{Example.pm6 → .meta/solutions/Scrabble.pm6} +0 -0
- data/tracks/perl6/exercises/space-age/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/space-age/{Example.pm6 → .meta/solutions/SpaceAge.pm6} +0 -0
- data/tracks/perl6/exercises/trinary/{Example.pm6 → .meta/solutions/Trinary.pm6} +0 -0
- data/tracks/perl6/exercises/two-fer/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/two-fer/{Example.pm6 → .meta/solutions/TwoFer.pm6} +0 -0
- data/tracks/perl6/exercises/word-count/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/word-count/{Example.pm6 → .meta/solutions/WordCount.pm6} +0 -0
- data/tracks/perl6/exercises/wordy/{example.yaml → .meta/exercise-data.yaml} +0 -0
- data/tracks/perl6/exercises/wordy/{Example.pm6 → .meta/solutions/Wordy.pm6} +0 -0
- data/tracks/perl6/t/generated-tests.t +2 -2
- data/tracks/python/config.json +12 -0
- data/tracks/python/exercises/bowling/.gitignore +0 -0
- data/tracks/python/exercises/bowling/bowling.py +11 -0
- data/tracks/python/exercises/bowling/bowling_test.py +193 -0
- data/tracks/python/exercises/bowling/example.py +149 -0
- data/tracks/python/exercises/say/say_test.py +1 -1
- data/tracks/ruby/README.md +121 -97
- data/tracks/ruby/config/exercise_readme.go.tmpl +23 -4
- data/tracks/ruby/exercises/accumulate/{HINTS.md → .meta/hints.md} +0 -0
- data/tracks/ruby/exercises/accumulate/README.md +3 -5
- data/tracks/ruby/exercises/acronym/README.md +3 -6
- data/tracks/ruby/exercises/all-your-base/README.md +4 -7
- data/tracks/ruby/exercises/allergies/README.md +3 -6
- data/tracks/ruby/exercises/alphametics/README.md +5 -8
- data/tracks/ruby/exercises/anagram/README.md +3 -5
- data/tracks/ruby/exercises/atbash-cipher/README.md +5 -6
- data/tracks/ruby/exercises/beer-song/README.md +5 -7
- data/tracks/ruby/exercises/binary-search-tree/README.md +3 -5
- data/tracks/ruby/exercises/binary-search/README.md +3 -5
- data/tracks/ruby/exercises/binary/README.md +5 -5
- data/tracks/ruby/exercises/bob/README.md +3 -5
- data/tracks/ruby/exercises/book-store/README.md +3 -5
- data/tracks/ruby/exercises/bowling/README.md +23 -11
- data/tracks/ruby/exercises/bracket-push/README.md +3 -5
- data/tracks/ruby/exercises/change/README.md +3 -5
- data/tracks/ruby/exercises/circular-buffer/README.md +16 -11
- data/tracks/ruby/exercises/clock/README.md +3 -5
- data/tracks/ruby/exercises/collatz-conjecture/README.md +4 -6
- data/tracks/ruby/exercises/complex-numbers/README.md +6 -8
- data/tracks/ruby/exercises/connect/README.md +4 -7
- data/tracks/ruby/exercises/crypto-square/README.md +3 -5
- data/tracks/ruby/exercises/custom-set/README.md +3 -6
- data/tracks/ruby/exercises/diamond/README.md +9 -11
- data/tracks/ruby/exercises/difference-of-squares/README.md +3 -5
- data/tracks/ruby/exercises/dominoes/README.md +6 -9
- data/tracks/ruby/exercises/etl/README.md +6 -6
- data/tracks/ruby/exercises/flatten-array/README.md +5 -8
- data/tracks/ruby/exercises/food-chain/README.md +4 -6
- data/tracks/ruby/exercises/gigasecond/README.md +3 -5
- data/tracks/ruby/exercises/grade-school/README.md +3 -6
- data/tracks/ruby/exercises/grains/README.md +3 -6
- data/tracks/ruby/exercises/hamming/README.md +3 -5
- data/tracks/ruby/exercises/hello-world/README.md +1 -3
- data/tracks/ruby/exercises/hexadecimal/README.md +3 -5
- data/tracks/ruby/exercises/house/README.md +5 -8
- data/tracks/ruby/exercises/isbn-verifier/README.md +4 -6
- data/tracks/ruby/exercises/isogram/README.md +5 -6
- data/tracks/ruby/exercises/kindergarten-garden/README.md +16 -18
- data/tracks/ruby/exercises/largest-series-product/README.md +3 -5
- data/tracks/ruby/exercises/leap/README.md +4 -6
- data/tracks/ruby/exercises/linked-list/README.md +13 -15
- data/tracks/ruby/exercises/list-ops/README.md +3 -6
- data/tracks/ruby/exercises/luhn/README.md +10 -12
- data/tracks/ruby/exercises/matrix/README.md +9 -9
- data/tracks/ruby/exercises/meetup/README.md +19 -18
- data/tracks/ruby/exercises/minesweeper/README.md +3 -6
- data/tracks/ruby/exercises/nth-prime/README.md +3 -5
- data/tracks/ruby/exercises/nucleotide-count/README.md +11 -27
- data/tracks/ruby/exercises/ocr-numbers/README.md +9 -11
- data/tracks/ruby/exercises/octal/README.md +9 -7
- data/tracks/ruby/exercises/palindrome-products/README.md +8 -17
- data/tracks/ruby/exercises/pangram/README.md +4 -6
- data/tracks/ruby/exercises/pascals-triangle/README.md +5 -7
- data/tracks/ruby/exercises/perfect-numbers/README.md +5 -7
- data/tracks/ruby/exercises/phone-number/README.md +7 -8
- data/tracks/ruby/exercises/pig-latin/README.md +3 -5
- data/tracks/ruby/exercises/point-mutations/README.md +3 -5
- data/tracks/ruby/exercises/poker/README.md +3 -5
- data/tracks/ruby/exercises/prime-factors/README.md +3 -5
- data/tracks/ruby/exercises/protein-translation/README.md +7 -10
- data/tracks/ruby/exercises/proverb/README.md +17 -14
- data/tracks/ruby/exercises/pythagorean-triplet/README.md +6 -8
- data/tracks/ruby/exercises/queen-attack/README.md +4 -6
- data/tracks/ruby/exercises/rail-fence-cipher/README.md +15 -12
- data/tracks/ruby/exercises/raindrops/README.md +3 -5
- data/tracks/ruby/exercises/rna-transcription/README.md +4 -6
- data/tracks/ruby/exercises/robot-name/{HINTS.md → .meta/hints.md} +0 -0
- data/tracks/ruby/exercises/robot-name/README.md +3 -5
- data/tracks/ruby/exercises/robot-simulator/README.md +3 -5
- data/tracks/ruby/exercises/roman-numerals/README.md +4 -6
- data/tracks/ruby/exercises/rotational-cipher/README.md +3 -5
- data/tracks/ruby/exercises/run-length-encoding/README.md +7 -9
- data/tracks/ruby/exercises/saddle-points/README.md +5 -7
- data/tracks/ruby/exercises/say/README.md +3 -5
- data/tracks/ruby/exercises/scale-generator/README.md +3 -7
- data/tracks/ruby/exercises/scrabble-score/README.md +6 -6
- data/tracks/ruby/exercises/secret-handshake/README.md +4 -6
- data/tracks/ruby/exercises/series/README.md +3 -5
- data/tracks/ruby/exercises/sieve/README.md +3 -5
- data/tracks/ruby/exercises/simple-cipher/README.md +7 -11
- data/tracks/ruby/exercises/simple-linked-list/README.md +3 -5
- data/tracks/ruby/exercises/space-age/README.md +4 -6
- data/tracks/ruby/exercises/strain/README.md +3 -5
- data/tracks/ruby/exercises/sum-of-multiples/README.md +6 -11
- data/tracks/ruby/exercises/tournament/README.md +8 -11
- data/tracks/ruby/exercises/transpose/README.md +10 -12
- data/tracks/ruby/exercises/triangle/README.md +12 -11
- data/tracks/ruby/exercises/trinary/README.md +4 -6
- data/tracks/ruby/exercises/twelve-days/README.md +4 -6
- data/tracks/ruby/exercises/two-bucket/README.md +13 -15
- data/tracks/ruby/exercises/two-fer/README.md +13 -39
- data/tracks/ruby/exercises/word-count/README.md +4 -7
- data/tracks/ruby/exercises/wordy/README.md +3 -10
- metadata +77 -68
- data/tracks/ruby/docs/EXERCISE_README_INSERT.md +0 -24
@@ -1,4 +1,4 @@
|
|
1
|
-
// This file was auto-generated based on version 1.
|
1
|
+
// This file was auto-generated based on version 1.3.0 of the canonical data.
|
2
2
|
|
3
3
|
module AcronymTest
|
4
4
|
|
@@ -20,14 +20,10 @@ let ``Punctuation`` () =
|
|
20
20
|
abbreviate "First In, First Out" |> should equal "FIFO"
|
21
21
|
|
22
22
|
[<Fact(Skip = "Remove to run test")>]
|
23
|
-
let ``All caps
|
24
|
-
abbreviate "PHP: Hypertext Preprocessor" |> should equal "PHP"
|
25
|
-
|
26
|
-
[<Fact(Skip = "Remove to run test")>]
|
27
|
-
let ``Non-acronym all caps word`` () =
|
23
|
+
let ``All caps word`` () =
|
28
24
|
abbreviate "GNU Image Manipulation Program" |> should equal "GIMP"
|
29
25
|
|
30
26
|
[<Fact(Skip = "Remove to run test")>]
|
31
|
-
let ``
|
27
|
+
let ``Punctuation without whitespace`` () =
|
32
28
|
abbreviate "Complementary metal-oxide semiconductor" |> should equal "CMOS"
|
33
29
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// This file was auto-generated based on version 1.
|
1
|
+
// This file was auto-generated based on version 1.2.0 of the canonical data.
|
2
2
|
|
3
3
|
module AnagramTest
|
4
4
|
|
@@ -12,16 +12,6 @@ let ``No matches`` () =
|
|
12
12
|
let candidates = ["hello"; "world"; "zombies"; "pants"]
|
13
13
|
anagrams candidates "diaper" |> should be Empty
|
14
14
|
|
15
|
-
[<Fact(Skip = "Remove to run test")>]
|
16
|
-
let ``Detects simple anagram`` () =
|
17
|
-
let candidates = ["tan"; "stand"; "at"]
|
18
|
-
anagrams candidates "ant" |> should equal ["tan"]
|
19
|
-
|
20
|
-
[<Fact(Skip = "Remove to run test")>]
|
21
|
-
let ``Does not detect false positives`` () =
|
22
|
-
let candidates = ["eagle"]
|
23
|
-
anagrams candidates "galea" |> should be Empty
|
24
|
-
|
25
15
|
[<Fact(Skip = "Remove to run test")>]
|
26
16
|
let ``Detects two anagrams`` () =
|
27
17
|
let candidates = ["stream"; "pigeon"; "maters"]
|
@@ -42,11 +32,6 @@ let ``Detects three anagrams`` () =
|
|
42
32
|
let candidates = ["gallery"; "ballerina"; "regally"; "clergy"; "largely"; "leading"]
|
43
33
|
anagrams candidates "allergy" |> should equal ["gallery"; "regally"; "largely"]
|
44
34
|
|
45
|
-
[<Fact(Skip = "Remove to run test")>]
|
46
|
-
let ``Does not detect identical words`` () =
|
47
|
-
let candidates = ["corn"; "dark"; "Corn"; "rank"; "CORN"; "cron"; "park"]
|
48
|
-
anagrams candidates "corn" |> should equal ["cron"]
|
49
|
-
|
50
35
|
[<Fact(Skip = "Remove to run test")>]
|
51
36
|
let ``Does not detect non-anagrams with identical checksum`` () =
|
52
37
|
let candidates = ["last"]
|
@@ -67,11 +52,6 @@ let ``Detects anagrams using case-insensitive possible matches`` () =
|
|
67
52
|
let candidates = ["cashregister"; "Carthorse"; "radishes"]
|
68
53
|
anagrams candidates "orchestra" |> should equal ["Carthorse"]
|
69
54
|
|
70
|
-
[<Fact(Skip = "Remove to run test")>]
|
71
|
-
let ``Does not detect a word as its own anagram`` () =
|
72
|
-
let candidates = ["Banana"]
|
73
|
-
anagrams candidates "banana" |> should be Empty
|
74
|
-
|
75
55
|
[<Fact(Skip = "Remove to run test")>]
|
76
56
|
let ``Does not detect a anagram if the original word is repeated`` () =
|
77
57
|
let candidates = ["go Go GO"]
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// This file was auto-generated based on version 1.
|
1
|
+
// This file was auto-generated based on version 1.2.0 of the canonical data.
|
2
2
|
|
3
3
|
module ComplexNumbersTest
|
4
4
|
|
@@ -14,6 +14,30 @@ let ``Imaginary unit`` () =
|
|
14
14
|
real sut |> should (equalWithin 0.000000001) -1.0
|
15
15
|
imaginary sut |> should (equalWithin 0.000000001) 0.0
|
16
16
|
|
17
|
+
[<Fact(Skip = "Remove to run test")>]
|
18
|
+
let ``Real part of a purely real number`` () =
|
19
|
+
real (create 1.0 0.0) |> should equal 1.0
|
20
|
+
|
21
|
+
[<Fact(Skip = "Remove to run test")>]
|
22
|
+
let ``Real part of a purely imaginary number`` () =
|
23
|
+
real (create 0.0 1.0) |> should equal 0.0
|
24
|
+
|
25
|
+
[<Fact(Skip = "Remove to run test")>]
|
26
|
+
let ``Real part of a number with real and imaginary part`` () =
|
27
|
+
real (create 1.0 2.0) |> should equal 1.0
|
28
|
+
|
29
|
+
[<Fact(Skip = "Remove to run test")>]
|
30
|
+
let ``Imaginary part of a purely real number`` () =
|
31
|
+
imaginary (create 1.0 0.0) |> should equal 0.0
|
32
|
+
|
33
|
+
[<Fact(Skip = "Remove to run test")>]
|
34
|
+
let ``Imaginary part of a purely imaginary number`` () =
|
35
|
+
imaginary (create 0.0 1.0) |> should equal 1.0
|
36
|
+
|
37
|
+
[<Fact(Skip = "Remove to run test")>]
|
38
|
+
let ``Imaginary part of a number with real and imaginary part`` () =
|
39
|
+
imaginary (create 1.0 2.0) |> should equal 2.0
|
40
|
+
|
17
41
|
[<Fact(Skip = "Remove to run test")>]
|
18
42
|
let ``Add purely real numbers`` () =
|
19
43
|
let sut = add (create 1.0 0.0) (create 2.0 0.0)
|
@@ -124,30 +148,6 @@ let ``Conjugate a number with real and imaginary part`` () =
|
|
124
148
|
real sut |> should (equalWithin 0.000000001) 1.0
|
125
149
|
imaginary sut |> should (equalWithin 0.000000001) -1.0
|
126
150
|
|
127
|
-
[<Fact(Skip = "Remove to run test")>]
|
128
|
-
let ``Real part of a purely real number`` () =
|
129
|
-
real (create 1.0 0.0) |> should equal 1.0
|
130
|
-
|
131
|
-
[<Fact(Skip = "Remove to run test")>]
|
132
|
-
let ``Real part of a purely imaginary number`` () =
|
133
|
-
real (create 0.0 1.0) |> should equal 0.0
|
134
|
-
|
135
|
-
[<Fact(Skip = "Remove to run test")>]
|
136
|
-
let ``Real part of a number with real and imaginary part`` () =
|
137
|
-
real (create 1.0 2.0) |> should equal 1.0
|
138
|
-
|
139
|
-
[<Fact(Skip = "Remove to run test")>]
|
140
|
-
let ``Imaginary part of a purely real number`` () =
|
141
|
-
imaginary (create 1.0 0.0) |> should equal 0.0
|
142
|
-
|
143
|
-
[<Fact(Skip = "Remove to run test")>]
|
144
|
-
let ``Imaginary part of a purely imaginary number`` () =
|
145
|
-
imaginary (create 0.0 1.0) |> should equal 1.0
|
146
|
-
|
147
|
-
[<Fact(Skip = "Remove to run test")>]
|
148
|
-
let ``Imaginary part of a number with real and imaginary part`` () =
|
149
|
-
imaginary (create 1.0 2.0) |> should equal 2.0
|
150
|
-
|
151
151
|
[<Fact(Skip = "Remove to run test")>]
|
152
152
|
let ``Euler's identity/formula`` () =
|
153
153
|
let sut = exp (create 0.0 Math.PI)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// This file was auto-generated based on version 1.
|
1
|
+
// This file was auto-generated based on version 1.2.0 of the canonical data.
|
2
2
|
|
3
3
|
module MarkdownTest
|
4
4
|
|
@@ -9,55 +9,55 @@ open Markdown
|
|
9
9
|
|
10
10
|
[<Fact>]
|
11
11
|
let ``Parses normal text as a paragraph`` () =
|
12
|
-
let
|
12
|
+
let markdown = "This will be a paragraph"
|
13
13
|
let expected = "<p>This will be a paragraph</p>"
|
14
|
-
parse
|
14
|
+
parse markdown |> should equal expected
|
15
15
|
|
16
16
|
[<Fact>]
|
17
17
|
let ``Parsing italics`` () =
|
18
|
-
let
|
18
|
+
let markdown = "_This will be italic_"
|
19
19
|
let expected = "<p><em>This will be italic</em></p>"
|
20
|
-
parse
|
20
|
+
parse markdown |> should equal expected
|
21
21
|
|
22
22
|
[<Fact>]
|
23
23
|
let ``Parsing bold text`` () =
|
24
|
-
let
|
24
|
+
let markdown = "__This will be bold__"
|
25
25
|
let expected = "<p><strong>This will be bold</strong></p>"
|
26
|
-
parse
|
26
|
+
parse markdown |> should equal expected
|
27
27
|
|
28
28
|
[<Fact>]
|
29
29
|
let ``Mixed normal, italics and bold text`` () =
|
30
|
-
let
|
30
|
+
let markdown = "This will _be_ __mixed__"
|
31
31
|
let expected = "<p>This will <em>be</em> <strong>mixed</strong></p>"
|
32
|
-
parse
|
32
|
+
parse markdown |> should equal expected
|
33
33
|
|
34
34
|
[<Fact>]
|
35
35
|
let ``With h1 header level`` () =
|
36
|
-
let
|
36
|
+
let markdown = "# This will be an h1"
|
37
37
|
let expected = "<h1>This will be an h1</h1>"
|
38
|
-
parse
|
38
|
+
parse markdown |> should equal expected
|
39
39
|
|
40
40
|
[<Fact>]
|
41
41
|
let ``With h2 header level`` () =
|
42
|
-
let
|
42
|
+
let markdown = "## This will be an h2"
|
43
43
|
let expected = "<h2>This will be an h2</h2>"
|
44
|
-
parse
|
44
|
+
parse markdown |> should equal expected
|
45
45
|
|
46
46
|
[<Fact>]
|
47
47
|
let ``With h6 header level`` () =
|
48
|
-
let
|
48
|
+
let markdown = "###### This will be an h6"
|
49
49
|
let expected = "<h6>This will be an h6</h6>"
|
50
|
-
parse
|
50
|
+
parse markdown |> should equal expected
|
51
51
|
|
52
52
|
[<Fact>]
|
53
53
|
let ``Unordered lists`` () =
|
54
|
-
let
|
54
|
+
let markdown = "* Item 1\n* Item 2"
|
55
55
|
let expected = "<ul><li>Item 1</li><li>Item 2</li></ul>"
|
56
|
-
parse
|
56
|
+
parse markdown |> should equal expected
|
57
57
|
|
58
58
|
[<Fact>]
|
59
59
|
let ``With a little bit of everything`` () =
|
60
|
-
let
|
60
|
+
let markdown = "# Header!\n* __Bold Item__\n* _Italic Item_"
|
61
61
|
let expected = "<h1>Header!</h1><ul><li><strong>Bold Item</strong></li><li><em>Italic Item</em></li></ul>"
|
62
|
-
parse
|
62
|
+
parse markdown |> should equal expected
|
63
63
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// This file was auto-generated based on version 1.
|
1
|
+
// This file was auto-generated based on version 1.1.0 of the canonical data.
|
2
2
|
|
3
3
|
module MinesweeperTest
|
4
4
|
|
@@ -9,19 +9,19 @@ open Minesweeper
|
|
9
9
|
|
10
10
|
[<Fact>]
|
11
11
|
let ``No rows`` () =
|
12
|
-
let
|
12
|
+
let minefield: string list = []
|
13
13
|
let expected: string list = []
|
14
|
-
annotate
|
14
|
+
annotate minefield |> should equal expected
|
15
15
|
|
16
16
|
[<Fact(Skip = "Remove to run test")>]
|
17
17
|
let ``No columns`` () =
|
18
|
-
let
|
18
|
+
let minefield = [""]
|
19
19
|
let expected = [""]
|
20
|
-
annotate
|
20
|
+
annotate minefield |> should equal expected
|
21
21
|
|
22
22
|
[<Fact(Skip = "Remove to run test")>]
|
23
23
|
let ``No mines`` () =
|
24
|
-
let
|
24
|
+
let minefield =
|
25
25
|
[ " ";
|
26
26
|
" ";
|
27
27
|
" " ]
|
@@ -29,11 +29,11 @@ let ``No mines`` () =
|
|
29
29
|
[ " ";
|
30
30
|
" ";
|
31
31
|
" " ]
|
32
|
-
annotate
|
32
|
+
annotate minefield |> should equal expected
|
33
33
|
|
34
34
|
[<Fact(Skip = "Remove to run test")>]
|
35
|
-
let ``
|
36
|
-
let
|
35
|
+
let ``Minefield with only mines`` () =
|
36
|
+
let minefield =
|
37
37
|
[ "***";
|
38
38
|
"***";
|
39
39
|
"***" ]
|
@@ -41,11 +41,11 @@ let ``Board with only mines`` () =
|
|
41
41
|
[ "***";
|
42
42
|
"***";
|
43
43
|
"***" ]
|
44
|
-
annotate
|
44
|
+
annotate minefield |> should equal expected
|
45
45
|
|
46
46
|
[<Fact(Skip = "Remove to run test")>]
|
47
47
|
let ``Mine surrounded by spaces`` () =
|
48
|
-
let
|
48
|
+
let minefield =
|
49
49
|
[ " ";
|
50
50
|
" * ";
|
51
51
|
" " ]
|
@@ -53,11 +53,11 @@ let ``Mine surrounded by spaces`` () =
|
|
53
53
|
[ "111";
|
54
54
|
"1*1";
|
55
55
|
"111" ]
|
56
|
-
annotate
|
56
|
+
annotate minefield |> should equal expected
|
57
57
|
|
58
58
|
[<Fact(Skip = "Remove to run test")>]
|
59
59
|
let ``Space surrounded by mines`` () =
|
60
|
-
let
|
60
|
+
let minefield =
|
61
61
|
[ "***";
|
62
62
|
"* *";
|
63
63
|
"***" ]
|
@@ -65,23 +65,23 @@ let ``Space surrounded by mines`` () =
|
|
65
65
|
[ "***";
|
66
66
|
"*8*";
|
67
67
|
"***" ]
|
68
|
-
annotate
|
68
|
+
annotate minefield |> should equal expected
|
69
69
|
|
70
70
|
[<Fact(Skip = "Remove to run test")>]
|
71
71
|
let ``Horizontal line`` () =
|
72
|
-
let
|
72
|
+
let minefield = [" * * "]
|
73
73
|
let expected = ["1*2*1"]
|
74
|
-
annotate
|
74
|
+
annotate minefield |> should equal expected
|
75
75
|
|
76
76
|
[<Fact(Skip = "Remove to run test")>]
|
77
77
|
let ``Horizontal line, mines at edges`` () =
|
78
|
-
let
|
78
|
+
let minefield = ["* *"]
|
79
79
|
let expected = ["*1 1*"]
|
80
|
-
annotate
|
80
|
+
annotate minefield |> should equal expected
|
81
81
|
|
82
82
|
[<Fact(Skip = "Remove to run test")>]
|
83
83
|
let ``Vertical line`` () =
|
84
|
-
let
|
84
|
+
let minefield =
|
85
85
|
[ " ";
|
86
86
|
"*";
|
87
87
|
" ";
|
@@ -93,11 +93,11 @@ let ``Vertical line`` () =
|
|
93
93
|
"2";
|
94
94
|
"*";
|
95
95
|
"1" ]
|
96
|
-
annotate
|
96
|
+
annotate minefield |> should equal expected
|
97
97
|
|
98
98
|
[<Fact(Skip = "Remove to run test")>]
|
99
99
|
let ``Vertical line, mines at edges`` () =
|
100
|
-
let
|
100
|
+
let minefield =
|
101
101
|
[ "*";
|
102
102
|
" ";
|
103
103
|
" ";
|
@@ -109,11 +109,11 @@ let ``Vertical line, mines at edges`` () =
|
|
109
109
|
" ";
|
110
110
|
"1";
|
111
111
|
"*" ]
|
112
|
-
annotate
|
112
|
+
annotate minefield |> should equal expected
|
113
113
|
|
114
114
|
[<Fact(Skip = "Remove to run test")>]
|
115
115
|
let ``Cross`` () =
|
116
|
-
let
|
116
|
+
let minefield =
|
117
117
|
[ " * ";
|
118
118
|
" * ";
|
119
119
|
"*****";
|
@@ -125,11 +125,11 @@ let ``Cross`` () =
|
|
125
125
|
"*****";
|
126
126
|
"25*52";
|
127
127
|
" 2*2 " ]
|
128
|
-
annotate
|
128
|
+
annotate minefield |> should equal expected
|
129
129
|
|
130
130
|
[<Fact(Skip = "Remove to run test")>]
|
131
|
-
let ``Large
|
132
|
-
let
|
131
|
+
let ``Large minefield`` () =
|
132
|
+
let minefield =
|
133
133
|
[ " * * ";
|
134
134
|
" * ";
|
135
135
|
" * ";
|
@@ -143,5 +143,5 @@ let ``Large board`` () =
|
|
143
143
|
"112*4*";
|
144
144
|
"1*22*2";
|
145
145
|
"111111" ]
|
146
|
-
annotate
|
146
|
+
annotate minefield |> should equal expected
|
147
147
|
|