trackler 2.1.0.12 → 2.1.0.13
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/common/exercises/difference-of-squares/canonical-data.json +15 -21
 - data/lib/trackler/version.rb +1 -1
 - data/tracks/c/config.json +9 -0
 - data/tracks/c/exercises/scrabble-score/makefile +16 -0
 - data/tracks/c/exercises/scrabble-score/src/example.c +43 -0
 - data/tracks/c/exercises/scrabble-score/src/example.h +6 -0
 - data/tracks/c/exercises/scrabble-score/test/test_scrabble_score.c +77 -0
 - data/tracks/c/exercises/scrabble-score/test/vendor/unity.c +1300 -0
 - data/tracks/c/exercises/scrabble-score/test/vendor/unity.h +274 -0
 - data/tracks/c/exercises/scrabble-score/test/vendor/unity_internals.h +701 -0
 - data/tracks/csharp/exercises/grade-school/Example.cs +1 -1
 - data/tracks/csharp/exercises/grade-school/GradeSchoolTest.cs +8 -8
 - data/tracks/elixir/README.md +29 -12
 - data/tracks/elixir/SETUP.md +0 -1
 - data/tracks/elixir/docs/ABOUT.md +21 -7
 - data/tracks/elixir/docs/LEARNING.md +4 -2
 - data/tracks/elixir/docs/RESOURCES.md +2 -2
 - data/tracks/elixir/docs/TESTS.md +0 -2
 - data/tracks/go/exercises/atbash-cipher/.meta/gen.go +61 -0
 - data/tracks/go/exercises/atbash-cipher/atbash_cipher_test.go +1 -16
 - data/tracks/go/exercises/atbash-cipher/cases_test.go +61 -0
 - data/tracks/go/exercises/atbash-cipher/example.go +1 -1
 - data/tracks/java/exercises/hamming/src/main/java/Hamming.java +9 -0
 - data/tracks/java/exercises/simple-linked-list/src/test/java/SimpleLinkedListTest.java +4 -4
 - data/tracks/javascript/docs/TESTS.md +1 -1
 - data/tracks/ocaml/config.json +5 -0
 - data/tracks/ocaml/exercises/acronym/test.ml +2 -0
 - data/tracks/ocaml/exercises/all-your-base/test.ml +2 -0
 - data/tracks/ocaml/exercises/anagram/test.ml +2 -0
 - data/tracks/ocaml/exercises/atbash-cipher/test.ml +3 -0
 - data/tracks/ocaml/exercises/beer-song/test.ml +2 -0
 - data/tracks/ocaml/exercises/binary-search/.merlin +5 -0
 - data/tracks/ocaml/exercises/binary-search/Makefile +11 -0
 - data/tracks/ocaml/exercises/binary-search/binary_search.mli +2 -0
 - data/tracks/ocaml/exercises/binary-search/example.ml +19 -0
 - data/tracks/ocaml/exercises/binary-search/test.ml +38 -0
 - data/tracks/ocaml/exercises/bob/test.ml +2 -0
 - data/tracks/ocaml/exercises/bowling/test.ml +2 -0
 - data/tracks/ocaml/exercises/bracket-push/test.ml +2 -0
 - data/tracks/ocaml/exercises/change/test.ml +2 -0
 - data/tracks/ocaml/exercises/connect/test.ml +2 -0
 - data/tracks/ocaml/exercises/difference-of-squares/test.ml +10 -8
 - data/tracks/ocaml/exercises/dominoes/test.ml +2 -0
 - data/tracks/ocaml/exercises/etl/test.ml +2 -0
 - data/tracks/ocaml/exercises/hamming/test.ml +2 -0
 - data/tracks/ocaml/exercises/hello-world/test.ml +2 -0
 - data/tracks/ocaml/exercises/leap/test.ml +2 -0
 - data/tracks/ocaml/exercises/luhn/test.ml +2 -0
 - data/tracks/ocaml/exercises/minesweeper/test.ml +2 -0
 - data/tracks/ocaml/exercises/pangram/test.ml +2 -0
 - data/tracks/ocaml/exercises/phone-number/test.ml +2 -0
 - data/tracks/ocaml/exercises/prime-factors/test.ml +2 -0
 - data/tracks/ocaml/exercises/raindrops/test.ml +2 -0
 - data/tracks/ocaml/exercises/roman-numerals/test.ml +2 -0
 - data/tracks/ocaml/exercises/run-length-encoding/test.ml +2 -0
 - data/tracks/ocaml/exercises/say/test.ml +2 -0
 - data/tracks/ocaml/exercises/space-age/test.ml +2 -0
 - data/tracks/ocaml/exercises/triangle/test.ml +2 -0
 - data/tracks/ocaml/exercises/word-count/test.ml +2 -0
 - data/tracks/ocaml/tools/test-generator/src/controller.ml +15 -5
 - data/tracks/ocaml/tools/test-generator/src/model.ml +5 -0
 - data/tracks/ocaml/tools/test-generator/src/parser.ml +5 -4
 - data/tracks/ocaml/tools/test-generator/src/special_cases.ml +12 -0
 - data/tracks/ocaml/tools/test-generator/templates/binary-search/template.ml +20 -0
 - data/tracks/ocaml/tools/test-generator/templates/change/template.ml +2 -2
 - data/tracks/ocaml/tools/test-generator/templates/say/template.ml +1 -1
 - data/tracks/ocaml/tools/test-generator/test/parser_test.ml +1 -1
 - data/tracks/r/docs/TESTS.md +24 -4
 - data/tracks/ruby/exercises/trinary/trinary_test.rb +1 -0
 - data/tracks/scala/config.json +9 -0
 - data/tracks/scala/exercises/accumulate/src/main/scala/Accumulate.scala +3 -0
 - data/tracks/scala/exercises/bob/src/main/scala/Bob.scala +3 -0
 - data/tracks/scala/exercises/difference-of-squares/src/main/scala/Squares.scala +8 -0
 - data/tracks/scala/exercises/gigasecond/src/main/scala/Gigasecond.scala +8 -0
 - data/tracks/scala/exercises/grade-school/src/main/scala/School.scala +11 -0
 - data/tracks/scala/exercises/pangram/src/main/scala/Pangrams.scala +4 -0
 - data/tracks/scala/exercises/protein-translation/build.sbt +3 -0
 - data/tracks/scala/exercises/protein-translation/example.scala +41 -0
 - data/tracks/scala/exercises/protein-translation/src/main/scala/.keep +0 -0
 - data/tracks/scala/exercises/protein-translation/src/test/scala/ProteinTranslationTest.scala +59 -0
 - data/tracks/scala/exercises/space-age/src/main/scala/SpaceAge.scala +10 -0
 - metadata +28 -2
 
| 
         @@ -0,0 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            open Core.Std
         
     | 
| 
      
 2 
     | 
    
         
            +
            open OUnit2
         
     | 
| 
      
 3 
     | 
    
         
            +
            open Binary_search
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            let option_to_string f = function
         
     | 
| 
      
 6 
     | 
    
         
            +
              | None   -> "None"
         
     | 
| 
      
 7 
     | 
    
         
            +
              | Some x -> "Some " ^ f x
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            let ae exp got _test_ctxt =
         
     | 
| 
      
 10 
     | 
    
         
            +
              assert_equal ~printer:(option_to_string Int.to_string) exp got
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            let tests = [
         
     | 
| 
      
 13 
     | 
    
         
            +
            (* TEST
         
     | 
| 
      
 14 
     | 
    
         
            +
              "$description" >::
         
     | 
| 
      
 15 
     | 
    
         
            +
                ae $expected (find $array $value);
         
     | 
| 
      
 16 
     | 
    
         
            +
            END TEST *)
         
     | 
| 
      
 17 
     | 
    
         
            +
            ]
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            let () =
         
     | 
| 
      
 20 
     | 
    
         
            +
              run_test_tt_main ("binary-search tests" >::: tests)
         
     | 
| 
         @@ -7,7 +7,7 @@ let ae exp got _test_ctxt = assert_equal exp got 
     | 
|
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
            let single x = Ok (Single x)
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
     | 
    
         
            -
            let call_parser json = parse_json_text json "expected" "cases"
         
     | 
| 
      
 10 
     | 
    
         
            +
            let call_parser json = parse_json_text json "expected" "cases" |> Result.map ~f:(fun c -> c.tests)
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
            let parser_tests = [
         
     | 
| 
       13 
13 
     | 
    
         
             
              "gives an error with a json map that does not have the key cases in" >::
         
     | 
    
        data/tracks/r/docs/TESTS.md
    CHANGED
    
    | 
         @@ -1,7 +1,27 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            #  
     | 
| 
      
 1 
     | 
    
         
            +
            # Install `testthat`
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
      
 3 
     | 
    
         
            +
            Tests for this track make use of the `testthat` package.
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
      
 5 
     | 
    
         
            +
            To install the package, simply open up R and run:
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
      
 7 
     | 
    
         
            +
            `install.packages("testthat")`
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            You can check that the package is installed successfully by running:
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            `library(testthat)`
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            # Running Tests
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            Each problem will have a script named `test_<exercise-name>.R` (e.g. `test_hello-world.R`). 
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            To run the tests for an exercise, simply execute this R script.
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            In RStudio, this is as simple as opening the test script, and clicking "Source" at the top right of the source pane. This will load your solution code through the `source` command on the first line of the test script, and then execute the suite of `testthat` tests that follow.
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            Note however, that the `source()` command on the first line of the test script will only work if your solution script (`<exercise-name>.R`) is located in your working directory. If this is not the case, you'll need to either: 
         
     | 
| 
      
 22 
     | 
    
         
            +
            - change your working directory eg. `setwd('exercism/R/hello-world/')`, or 
         
     | 
| 
      
 23 
     | 
    
         
            +
            - update the first line of the test script e.g. `source('exercism/R/hello-world/test_hello-world.R')`
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            If you prefer, you can also run the tests from the command line with `Rscript path_to_exercise_directory/test_<exercise-name>.R` (e.g. `Rscript hello-world/test_hello-world.R`)
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            Another convenient way to run these tests is to make use of [testthat's `auto_test` function](https://www.rdocumentation.org/packages/testthat/topics/auto_test). Since exercism code and tests are located in the same folder, use this same path for both the `code_path` and `test_path` parameters. After running `auto_test()`, the tests for the exercise will be executed automatically each time you update/save your R code for the exercise. This can help facilitate rapid iteration while working on your solution.
         
     | 
    
        data/tracks/scala/config.json
    CHANGED
    
    
| 
         @@ -0,0 +1,41 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import scala.annotation.tailrec
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            object ProteinTranslation {
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              private val translations = Map(
         
     | 
| 
      
 6 
     | 
    
         
            +
                "AUG" -> "Methionine",
         
     | 
| 
      
 7 
     | 
    
         
            +
                "UUU" -> "Phenylalanine",
         
     | 
| 
      
 8 
     | 
    
         
            +
                "UUC" -> "Phenylalanine",
         
     | 
| 
      
 9 
     | 
    
         
            +
                "UUA" -> "Leucine",
         
     | 
| 
      
 10 
     | 
    
         
            +
                "UUG" -> "Leucine",
         
     | 
| 
      
 11 
     | 
    
         
            +
                "UCU" -> "Serine",
         
     | 
| 
      
 12 
     | 
    
         
            +
                "UCC" -> "Serine",
         
     | 
| 
      
 13 
     | 
    
         
            +
                "UCA" -> "Serine",
         
     | 
| 
      
 14 
     | 
    
         
            +
                "UCG" -> "Serine",
         
     | 
| 
      
 15 
     | 
    
         
            +
                "UAU" -> "Tyrosine",
         
     | 
| 
      
 16 
     | 
    
         
            +
                "UAC" -> "Tyrosine",
         
     | 
| 
      
 17 
     | 
    
         
            +
                "UGU" -> "Cysteine",
         
     | 
| 
      
 18 
     | 
    
         
            +
                "UGC" -> "Cysteine",
         
     | 
| 
      
 19 
     | 
    
         
            +
                "UGG" -> "Tryptophan",
         
     | 
| 
      
 20 
     | 
    
         
            +
                "UAA" -> "STOP",
         
     | 
| 
      
 21 
     | 
    
         
            +
                "UAG" -> "STOP",
         
     | 
| 
      
 22 
     | 
    
         
            +
                "UGA" -> "STOP")
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              /**
         
     | 
| 
      
 25 
     | 
    
         
            +
                * Note that this solution ignores invalid Codons.
         
     | 
| 
      
 26 
     | 
    
         
            +
                */
         
     | 
| 
      
 27 
     | 
    
         
            +
              def translate(input: String): Seq[String] = {
         
     | 
| 
      
 28 
     | 
    
         
            +
                @tailrec
         
     | 
| 
      
 29 
     | 
    
         
            +
                def translate_internal(acc: Seq[String], strs: Seq[String]): Seq[String] = {
         
     | 
| 
      
 30 
     | 
    
         
            +
                  strs match {
         
     | 
| 
      
 31 
     | 
    
         
            +
                    case x::xs => translations get x match {
         
     | 
| 
      
 32 
     | 
    
         
            +
                      case Some(codon) => if ("STOP".equals(codon)) acc.reverse else translate_internal(codon +: acc, xs)
         
     | 
| 
      
 33 
     | 
    
         
            +
                      case _ => translate_internal(acc, xs)
         
     | 
| 
      
 34 
     | 
    
         
            +
                    }
         
     | 
| 
      
 35 
     | 
    
         
            +
                    case _ => acc.reverse
         
     | 
| 
      
 36 
     | 
    
         
            +
                  }
         
     | 
| 
      
 37 
     | 
    
         
            +
                }
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                translate_internal(Seq(), input.grouped(3).toList)
         
     | 
| 
      
 40 
     | 
    
         
            +
              }
         
     | 
| 
      
 41 
     | 
    
         
            +
            }
         
     | 
| 
         
            File without changes
         
     | 
| 
         @@ -0,0 +1,59 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import org.scalatest.{FunSuite, Matchers}
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            class ProteinTranslationTest extends FunSuite with Matchers {
         
     | 
| 
      
 4 
     | 
    
         
            +
              test("Identifies methionine codon") {
         
     | 
| 
      
 5 
     | 
    
         
            +
                ProteinTranslation.translate("AUG") should be(Seq("Methionine"))
         
     | 
| 
      
 6 
     | 
    
         
            +
              }
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
              test("Identifies phenylalanine codons") {
         
     | 
| 
      
 9 
     | 
    
         
            +
                pending
         
     | 
| 
      
 10 
     | 
    
         
            +
                ProteinTranslation.translate("UUU") should be(Seq("Phenylalanine"))
         
     | 
| 
      
 11 
     | 
    
         
            +
                ProteinTranslation.translate("UUC") should be(Seq("Phenylalanine"))
         
     | 
| 
      
 12 
     | 
    
         
            +
              }
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
              test("Identifies leucine codons") {
         
     | 
| 
      
 15 
     | 
    
         
            +
                pending
         
     | 
| 
      
 16 
     | 
    
         
            +
                ProteinTranslation.translate("UUA") should be(Seq("Leucine"))
         
     | 
| 
      
 17 
     | 
    
         
            +
                ProteinTranslation.translate("UUG") should be(Seq("Leucine"))
         
     | 
| 
      
 18 
     | 
    
         
            +
              }
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              test("Identifies serine codons") {
         
     | 
| 
      
 21 
     | 
    
         
            +
                pending
         
     | 
| 
      
 22 
     | 
    
         
            +
                ProteinTranslation.translate("UCU") should be(Seq("Serine"))
         
     | 
| 
      
 23 
     | 
    
         
            +
                ProteinTranslation.translate("UCC") should be(Seq("Serine"))
         
     | 
| 
      
 24 
     | 
    
         
            +
                ProteinTranslation.translate("UCA") should be(Seq("Serine"))
         
     | 
| 
      
 25 
     | 
    
         
            +
                ProteinTranslation.translate("UCG") should be(Seq("Serine"))
         
     | 
| 
      
 26 
     | 
    
         
            +
              }
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
              test("Identifies tyrosine codons") {
         
     | 
| 
      
 29 
     | 
    
         
            +
                pending
         
     | 
| 
      
 30 
     | 
    
         
            +
                ProteinTranslation.translate("UAU") should be(Seq("Tyrosine"))
         
     | 
| 
      
 31 
     | 
    
         
            +
                ProteinTranslation.translate("UAC") should be(Seq("Tyrosine"))
         
     | 
| 
      
 32 
     | 
    
         
            +
              }
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
              test("Identifies cysteine codons") {
         
     | 
| 
      
 35 
     | 
    
         
            +
                pending
         
     | 
| 
      
 36 
     | 
    
         
            +
                ProteinTranslation.translate("UGU") should be(Seq("Cysteine"))
         
     | 
| 
      
 37 
     | 
    
         
            +
                ProteinTranslation.translate("UGC") should be(Seq("Cysteine"))
         
     | 
| 
      
 38 
     | 
    
         
            +
              }
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
              test("Identifies tryptophan codons") {
         
     | 
| 
      
 41 
     | 
    
         
            +
                pending
         
     | 
| 
      
 42 
     | 
    
         
            +
                ProteinTranslation.translate("UGG") should be(Seq("Tryptophan"))
         
     | 
| 
      
 43 
     | 
    
         
            +
              }
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
              test("Translate RNA strand into correct protein") {
         
     | 
| 
      
 46 
     | 
    
         
            +
                pending
         
     | 
| 
      
 47 
     | 
    
         
            +
                ProteinTranslation.translate("AUGUUUUGG") should be(Seq("Methionine", "Phenylalanine", "Tryptophan"))
         
     | 
| 
      
 48 
     | 
    
         
            +
              }
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
              test("Stops translation if stop codon is present") {
         
     | 
| 
      
 51 
     | 
    
         
            +
                pending
         
     | 
| 
      
 52 
     | 
    
         
            +
                ProteinTranslation.translate("AUGUUUUAA") should be(Seq("Methionine", "Phenylalanine"))
         
     | 
| 
      
 53 
     | 
    
         
            +
              }
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
              test("Stops translation of longest strand") {
         
     | 
| 
      
 56 
     | 
    
         
            +
                pending
         
     | 
| 
      
 57 
     | 
    
         
            +
                ProteinTranslation.translate("UGGUGUUAUUAAUGGUUU") should be(Seq("Tryptophan", "Cysteine", "Tyrosine"))
         
     | 
| 
      
 58 
     | 
    
         
            +
              }
         
     | 
| 
      
 59 
     | 
    
         
            +
            }
         
     | 
| 
         @@ -0,0 +1,10 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            case class SpaceAge(val seconds: Long) {
         
     | 
| 
      
 2 
     | 
    
         
            +
              val onEarth: Double = ???
         
     | 
| 
      
 3 
     | 
    
         
            +
              val onMercury: Double = ???
         
     | 
| 
      
 4 
     | 
    
         
            +
              val onVenus: Double = ???
         
     | 
| 
      
 5 
     | 
    
         
            +
              val onMars: Double = ???
         
     | 
| 
      
 6 
     | 
    
         
            +
              val onJupiter: Double = ???
         
     | 
| 
      
 7 
     | 
    
         
            +
              val onSaturn: Double = ???
         
     | 
| 
      
 8 
     | 
    
         
            +
              val onUranus: Double = ???
         
     | 
| 
      
 9 
     | 
    
         
            +
              val onNeptune: Double = ???
         
     | 
| 
      
 10 
     | 
    
         
            +
            }
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: trackler
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2.1.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.1.0.13
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Katrina Owen
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2017-05- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2017-05-16 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: rubyzip
         
     | 
| 
         @@ -774,6 +774,13 @@ files: 
     | 
|
| 
       774 
774 
     | 
    
         
             
            - tracks/c/exercises/roman-numerals/test/vendor/unity.c
         
     | 
| 
       775 
775 
     | 
    
         
             
            - tracks/c/exercises/roman-numerals/test/vendor/unity.h
         
     | 
| 
       776 
776 
     | 
    
         
             
            - tracks/c/exercises/roman-numerals/test/vendor/unity_internals.h
         
     | 
| 
      
 777 
     | 
    
         
            +
            - tracks/c/exercises/scrabble-score/makefile
         
     | 
| 
      
 778 
     | 
    
         
            +
            - tracks/c/exercises/scrabble-score/src/example.c
         
     | 
| 
      
 779 
     | 
    
         
            +
            - tracks/c/exercises/scrabble-score/src/example.h
         
     | 
| 
      
 780 
     | 
    
         
            +
            - tracks/c/exercises/scrabble-score/test/test_scrabble_score.c
         
     | 
| 
      
 781 
     | 
    
         
            +
            - tracks/c/exercises/scrabble-score/test/vendor/unity.c
         
     | 
| 
      
 782 
     | 
    
         
            +
            - tracks/c/exercises/scrabble-score/test/vendor/unity.h
         
     | 
| 
      
 783 
     | 
    
         
            +
            - tracks/c/exercises/scrabble-score/test/vendor/unity_internals.h
         
     | 
| 
       777 
784 
     | 
    
         
             
            - tracks/c/exercises/series/makefile
         
     | 
| 
       778 
785 
     | 
    
         
             
            - tracks/c/exercises/series/src/example.c
         
     | 
| 
       779 
786 
     | 
    
         
             
            - tracks/c/exercises/series/src/series.h
         
     | 
| 
         @@ -3354,7 +3361,9 @@ files: 
     | 
|
| 
       3354 
3361 
     | 
    
         
             
            - tracks/go/exercises/allergies/example.go
         
     | 
| 
       3355 
3362 
     | 
    
         
             
            - tracks/go/exercises/anagram/anagram_test.go
         
     | 
| 
       3356 
3363 
     | 
    
         
             
            - tracks/go/exercises/anagram/example.go
         
     | 
| 
      
 3364 
     | 
    
         
            +
            - tracks/go/exercises/atbash-cipher/.meta/gen.go
         
     | 
| 
       3357 
3365 
     | 
    
         
             
            - tracks/go/exercises/atbash-cipher/atbash_cipher_test.go
         
     | 
| 
      
 3366 
     | 
    
         
            +
            - tracks/go/exercises/atbash-cipher/cases_test.go
         
     | 
| 
       3358 
3367 
     | 
    
         
             
            - tracks/go/exercises/atbash-cipher/example.go
         
     | 
| 
       3359 
3368 
     | 
    
         
             
            - tracks/go/exercises/bank-account/bank_account_test.go
         
     | 
| 
       3360 
3369 
     | 
    
         
             
            - tracks/go/exercises/bank-account/example.go
         
     | 
| 
         @@ -5854,6 +5863,11 @@ files: 
     | 
|
| 
       5854 
5863 
     | 
    
         
             
            - tracks/ocaml/exercises/beer-song/beer_song.mli
         
     | 
| 
       5855 
5864 
     | 
    
         
             
            - tracks/ocaml/exercises/beer-song/example.ml
         
     | 
| 
       5856 
5865 
     | 
    
         
             
            - tracks/ocaml/exercises/beer-song/test.ml
         
     | 
| 
      
 5866 
     | 
    
         
            +
            - tracks/ocaml/exercises/binary-search/.merlin
         
     | 
| 
      
 5867 
     | 
    
         
            +
            - tracks/ocaml/exercises/binary-search/Makefile
         
     | 
| 
      
 5868 
     | 
    
         
            +
            - tracks/ocaml/exercises/binary-search/binary_search.mli
         
     | 
| 
      
 5869 
     | 
    
         
            +
            - tracks/ocaml/exercises/binary-search/example.ml
         
     | 
| 
      
 5870 
     | 
    
         
            +
            - tracks/ocaml/exercises/binary-search/test.ml
         
     | 
| 
       5857 
5871 
     | 
    
         
             
            - tracks/ocaml/exercises/bob/.merlin
         
     | 
| 
       5858 
5872 
     | 
    
         
             
            - tracks/ocaml/exercises/bob/HINTS.md
         
     | 
| 
       5859 
5873 
     | 
    
         
             
            - tracks/ocaml/exercises/bob/Makefile
         
     | 
| 
         @@ -6048,6 +6062,7 @@ files: 
     | 
|
| 
       6048 
6062 
     | 
    
         
             
            - tracks/ocaml/tools/test-generator/templates/anagram/template.ml
         
     | 
| 
       6049 
6063 
     | 
    
         
             
            - tracks/ocaml/tools/test-generator/templates/atbash-cipher/template.ml
         
     | 
| 
       6050 
6064 
     | 
    
         
             
            - tracks/ocaml/tools/test-generator/templates/beer-song/template.ml
         
     | 
| 
      
 6065 
     | 
    
         
            +
            - tracks/ocaml/tools/test-generator/templates/binary-search/template.ml
         
     | 
| 
       6051 
6066 
     | 
    
         
             
            - tracks/ocaml/tools/test-generator/templates/bob/template.ml
         
     | 
| 
       6052 
6067 
     | 
    
         
             
            - tracks/ocaml/tools/test-generator/templates/bowling/template.ml
         
     | 
| 
       6053 
6068 
     | 
    
         
             
            - tracks/ocaml/tools/test-generator/templates/bracket-push/template.ml
         
     | 
| 
         @@ -7869,6 +7884,7 @@ files: 
     | 
|
| 
       7869 
7884 
     | 
    
         
             
            - tracks/scala/exercises/accumulate/build.sbt
         
     | 
| 
       7870 
7885 
     | 
    
         
             
            - tracks/scala/exercises/accumulate/example.scala
         
     | 
| 
       7871 
7886 
     | 
    
         
             
            - tracks/scala/exercises/accumulate/src/main/scala/.keep
         
     | 
| 
      
 7887 
     | 
    
         
            +
            - tracks/scala/exercises/accumulate/src/main/scala/Accumulate.scala
         
     | 
| 
       7872 
7888 
     | 
    
         
             
            - tracks/scala/exercises/accumulate/src/test/scala/AccumulateTest.scala
         
     | 
| 
       7873 
7889 
     | 
    
         
             
            - tracks/scala/exercises/acronym/build.sbt
         
     | 
| 
       7874 
7890 
     | 
    
         
             
            - tracks/scala/exercises/acronym/example.scala
         
     | 
| 
         @@ -7917,6 +7933,7 @@ files: 
     | 
|
| 
       7917 
7933 
     | 
    
         
             
            - tracks/scala/exercises/bob/build.sbt
         
     | 
| 
       7918 
7934 
     | 
    
         
             
            - tracks/scala/exercises/bob/example.scala
         
     | 
| 
       7919 
7935 
     | 
    
         
             
            - tracks/scala/exercises/bob/src/main/scala/.keep
         
     | 
| 
      
 7936 
     | 
    
         
            +
            - tracks/scala/exercises/bob/src/main/scala/Bob.scala
         
     | 
| 
       7920 
7937 
     | 
    
         
             
            - tracks/scala/exercises/bob/src/test/scala/BobTest.scala
         
     | 
| 
       7921 
7938 
     | 
    
         
             
            - tracks/scala/exercises/bowling/Example.scala
         
     | 
| 
       7922 
7939 
     | 
    
         
             
            - tracks/scala/exercises/bowling/build.sbt
         
     | 
| 
         @@ -7951,6 +7968,7 @@ files: 
     | 
|
| 
       7951 
7968 
     | 
    
         
             
            - tracks/scala/exercises/difference-of-squares/build.sbt
         
     | 
| 
       7952 
7969 
     | 
    
         
             
            - tracks/scala/exercises/difference-of-squares/example.scala
         
     | 
| 
       7953 
7970 
     | 
    
         
             
            - tracks/scala/exercises/difference-of-squares/src/main/scala/.keep
         
     | 
| 
      
 7971 
     | 
    
         
            +
            - tracks/scala/exercises/difference-of-squares/src/main/scala/Squares.scala
         
     | 
| 
       7954 
7972 
     | 
    
         
             
            - tracks/scala/exercises/difference-of-squares/src/test/scala/SquaresTest.scala
         
     | 
| 
       7955 
7973 
     | 
    
         
             
            - tracks/scala/exercises/dominoes/Example.scala
         
     | 
| 
       7956 
7974 
     | 
    
         
             
            - tracks/scala/exercises/dominoes/build.sbt
         
     | 
| 
         @@ -7974,10 +7992,12 @@ files: 
     | 
|
| 
       7974 
7992 
     | 
    
         
             
            - tracks/scala/exercises/gigasecond/build.sbt
         
     | 
| 
       7975 
7993 
     | 
    
         
             
            - tracks/scala/exercises/gigasecond/example.scala
         
     | 
| 
       7976 
7994 
     | 
    
         
             
            - tracks/scala/exercises/gigasecond/src/main/scala/.keep
         
     | 
| 
      
 7995 
     | 
    
         
            +
            - tracks/scala/exercises/gigasecond/src/main/scala/Gigasecond.scala
         
     | 
| 
       7977 
7996 
     | 
    
         
             
            - tracks/scala/exercises/gigasecond/src/test/scala/GigasecondTest.scala
         
     | 
| 
       7978 
7997 
     | 
    
         
             
            - tracks/scala/exercises/grade-school/build.sbt
         
     | 
| 
       7979 
7998 
     | 
    
         
             
            - tracks/scala/exercises/grade-school/example.scala
         
     | 
| 
       7980 
7999 
     | 
    
         
             
            - tracks/scala/exercises/grade-school/src/main/scala/.keep
         
     | 
| 
      
 8000 
     | 
    
         
            +
            - tracks/scala/exercises/grade-school/src/main/scala/School.scala
         
     | 
| 
       7981 
8001 
     | 
    
         
             
            - tracks/scala/exercises/grade-school/src/test/scala/GradeSchoolTest.scala
         
     | 
| 
       7982 
8002 
     | 
    
         
             
            - tracks/scala/exercises/grains/build.sbt
         
     | 
| 
       7983 
8003 
     | 
    
         
             
            - tracks/scala/exercises/grains/example.scala
         
     | 
| 
         @@ -8068,6 +8088,7 @@ files: 
     | 
|
| 
       8068 
8088 
     | 
    
         
             
            - tracks/scala/exercises/pangram/build.sbt
         
     | 
| 
       8069 
8089 
     | 
    
         
             
            - tracks/scala/exercises/pangram/example.scala
         
     | 
| 
       8070 
8090 
     | 
    
         
             
            - tracks/scala/exercises/pangram/src/main/scala/.keep
         
     | 
| 
      
 8091 
     | 
    
         
            +
            - tracks/scala/exercises/pangram/src/main/scala/Pangrams.scala
         
     | 
| 
       8071 
8092 
     | 
    
         
             
            - tracks/scala/exercises/pangram/src/test/scala/PangramTest.scala
         
     | 
| 
       8072 
8093 
     | 
    
         
             
            - tracks/scala/exercises/parallel-letter-frequency/HINTS.md
         
     | 
| 
       8073 
8094 
     | 
    
         
             
            - tracks/scala/exercises/parallel-letter-frequency/build.sbt
         
     | 
| 
         @@ -8095,6 +8116,10 @@ files: 
     | 
|
| 
       8095 
8116 
     | 
    
         
             
            - tracks/scala/exercises/prime-factors/example.scala
         
     | 
| 
       8096 
8117 
     | 
    
         
             
            - tracks/scala/exercises/prime-factors/src/main/scala/.keep
         
     | 
| 
       8097 
8118 
     | 
    
         
             
            - tracks/scala/exercises/prime-factors/src/test/scala/PrimefactorsTest.scala
         
     | 
| 
      
 8119 
     | 
    
         
            +
            - tracks/scala/exercises/protein-translation/build.sbt
         
     | 
| 
      
 8120 
     | 
    
         
            +
            - tracks/scala/exercises/protein-translation/example.scala
         
     | 
| 
      
 8121 
     | 
    
         
            +
            - tracks/scala/exercises/protein-translation/src/main/scala/.keep
         
     | 
| 
      
 8122 
     | 
    
         
            +
            - tracks/scala/exercises/protein-translation/src/test/scala/ProteinTranslationTest.scala
         
     | 
| 
       8098 
8123 
     | 
    
         
             
            - tracks/scala/exercises/pythagorean-triplet/build.sbt
         
     | 
| 
       8099 
8124 
     | 
    
         
             
            - tracks/scala/exercises/pythagorean-triplet/example.scala
         
     | 
| 
       8100 
8125 
     | 
    
         
             
            - tracks/scala/exercises/pythagorean-triplet/src/main/scala/.keep
         
     | 
| 
         @@ -8175,6 +8200,7 @@ files: 
     | 
|
| 
       8175 
8200 
     | 
    
         
             
            - tracks/scala/exercises/space-age/build.sbt
         
     | 
| 
       8176 
8201 
     | 
    
         
             
            - tracks/scala/exercises/space-age/example.scala
         
     | 
| 
       8177 
8202 
     | 
    
         
             
            - tracks/scala/exercises/space-age/src/main/scala/.keep
         
     | 
| 
      
 8203 
     | 
    
         
            +
            - tracks/scala/exercises/space-age/src/main/scala/SpaceAge.scala
         
     | 
| 
       8178 
8204 
     | 
    
         
             
            - tracks/scala/exercises/space-age/src/test/scala/SpaceAgeTest.scala
         
     | 
| 
       8179 
8205 
     | 
    
         
             
            - tracks/scala/exercises/strain/build.sbt
         
     | 
| 
       8180 
8206 
     | 
    
         
             
            - tracks/scala/exercises/strain/example.scala
         
     |