trackler 2.0.1.0 → 2.0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. checksums.yaml +4 -4
  2. data/common/exercises/isogram/canonical-data.json +42 -31
  3. data/common/exercises/leap/canonical-data.json +7 -7
  4. data/common/exercises/matrix/description.md +3 -3
  5. data/common/exercises/minesweeper/canonical-data.json +54 -2
  6. data/common/exercises/pangram/canonical-data.json +5 -0
  7. data/lib/trackler/version.rb +1 -1
  8. data/tracks/clojure/config.json +5 -0
  9. data/tracks/clojure/exercises/acronym/project.clj +4 -0
  10. data/tracks/clojure/exercises/acronym/src/example.clj +8 -0
  11. data/tracks/clojure/exercises/acronym/test/acronym_test.clj +12 -0
  12. data/tracks/crystal/config.json +6 -0
  13. data/tracks/crystal/exercises/binary/spec/binary_spec.cr +76 -0
  14. data/tracks/crystal/exercises/binary/src/example.cr +18 -0
  15. data/tracks/crystal/src/generator/exercises/binary.cr +42 -0
  16. data/tracks/csharp/docs/TESTS.md +6 -2
  17. data/tracks/go/config.json +5 -0
  18. data/tracks/go/exercises/perfect-numbers/example.go +41 -0
  19. data/tracks/go/exercises/perfect-numbers/perfect_numbers_test.go +41 -0
  20. data/tracks/groovy/.gitignore +1 -0
  21. data/tracks/groovy/SETUP.md +6 -54
  22. data/tracks/groovy/exercises/difference-of-squares/Example.groovy +17 -15
  23. data/tracks/groovy/exercises/difference-of-squares/SquaresSpec.groovy +42 -0
  24. data/tracks/groovy/exercises/gigasecond/Example.groovy +9 -7
  25. data/tracks/groovy/exercises/gigasecond/Gigasecond.groovy +5 -2
  26. data/tracks/groovy/exercises/gigasecond/GigasecondSpec.groovy +38 -0
  27. data/tracks/groovy/exercises/hamming/Example.groovy +7 -5
  28. data/tracks/groovy/exercises/hamming/HammingSpec.groovy +50 -0
  29. data/tracks/groovy/exercises/hello-world/Example.groovy +5 -3
  30. data/tracks/groovy/exercises/hello-world/HelloWorld.groovy +5 -3
  31. data/tracks/groovy/exercises/hello-world/HelloWorldSpec.groovy +23 -0
  32. data/tracks/groovy/exercises/raindrops/Example.groovy +8 -8
  33. data/tracks/groovy/exercises/raindrops/RaindropsSpec.groovy +98 -0
  34. data/tracks/groovy/exercises/rna-transcription/ComplementSpec.groovy +51 -0
  35. data/tracks/groovy/exercises/rna-transcription/Example.groovy +19 -14
  36. data/tracks/haskell/.travis.yml +1 -1
  37. data/tracks/haskell/common/stack.yaml +1 -0
  38. data/tracks/haskell/config.json +1 -0
  39. data/tracks/haskell/exercises/pov/stack.yaml +1 -0
  40. data/tracks/haskell/exercises/robot-name/examples/success-standard/src/Robot.hs +1 -1
  41. data/tracks/java/bin/journey-test.sh +9 -4
  42. data/tracks/objective-c/Dangerfile +0 -2
  43. data/tracks/ocaml/exercises/hello-world/test.ml +6 -9
  44. data/tracks/ocaml/tools/test-generator/.merlin +1 -0
  45. data/tracks/ocaml/tools/test-generator/Makefile +4 -4
  46. data/tracks/ocaml/tools/test-generator/{src → interfaces}/codegen.mli +5 -1
  47. data/tracks/ocaml/tools/test-generator/{src → interfaces}/parser.mli +0 -0
  48. data/tracks/ocaml/tools/test-generator/interfaces/special_cases.mli +7 -0
  49. data/tracks/ocaml/tools/test-generator/interfaces/template.mli +11 -0
  50. data/tracks/ocaml/tools/test-generator/interfaces/test_generator.mli +3 -0
  51. data/tracks/ocaml/tools/test-generator/{src → interfaces}/utils.mli +0 -0
  52. data/tracks/ocaml/tools/test-generator/src/codegen.ml +6 -6
  53. data/tracks/ocaml/tools/test-generator/src/template.ml +24 -0
  54. data/tracks/ocaml/tools/test-generator/src/test_generator.ml +10 -26
  55. data/tracks/ocaml/tools/test-generator/test/all_tests.ml +2 -2
  56. data/tracks/ocaml/tools/test-generator/test/codegen_test.ml +1 -1
  57. data/tracks/ocaml/tools/test-generator/test/sample_template.txt +14 -0
  58. data/tracks/ocaml/tools/test-generator/test/template_test.ml +26 -0
  59. data/tracks/perl6/exercises/binary/binary.t +1 -1
  60. data/tracks/perl6/exercises/raindrops/Example.pm +2 -2
  61. data/tracks/perl6/exercises/raindrops/raindrops.t +19 -24
  62. data/tracks/php/.travis.yml +1 -0
  63. data/tracks/php/Makefile +26 -15
  64. data/tracks/php/README.md +19 -0
  65. data/tracks/ruby/README.md +10 -0
  66. data/tracks/rust/config.json +1 -0
  67. data/tracks/rust/exercises/alphametics/Cargo-example.toml +7 -0
  68. data/tracks/rust/exercises/alphametics/Cargo.lock +4 -0
  69. data/tracks/rust/exercises/alphametics/Cargo.toml +3 -0
  70. data/tracks/rust/exercises/alphametics/example.rs +76 -0
  71. data/tracks/rust/exercises/alphametics/src/lib.rs +5 -0
  72. data/tracks/rust/exercises/alphametics/tests/alphametics.rs +62 -0
  73. data/tracks/rust/problems.md +1 -0
  74. data/tracks/scala/exercises/dominoes/src/test/scala/DominoesSuite.scala +1 -1
  75. data/tracks/swift/Dangerfile +0 -2
  76. metadata +32 -39
  77. data/tracks/groovy/exercises/difference-of-squares/SquaresTest.groovy +0 -49
  78. data/tracks/groovy/exercises/gigasecond/GigasecondTest.groovy +0 -29
  79. data/tracks/groovy/exercises/hamming/HammingTest.groovy +0 -56
  80. data/tracks/groovy/exercises/hello-world/HelloWorldTest.groovy +0 -19
  81. data/tracks/groovy/exercises/raindrops/RaindropsTest.groovy +0 -21
  82. data/tracks/groovy/exercises/rna-transcription/ComplementTest.groovy +0 -55
  83. data/tracks/haskell/exercises/pov/stack.yaml +0 -1
  84. data/tracks/java/exercises/anagram/src/main/java/.keep +0 -0
  85. data/tracks/java/exercises/beer-song/src/example/java/.keep +0 -0
  86. data/tracks/java/exercises/beer-song/src/main/java/.keep +0 -0
  87. data/tracks/java/exercises/beer-song/src/test/java/.keep +0 -0
  88. data/tracks/java/exercises/difference-of-squares/src/example/java/.keep +0 -0
  89. data/tracks/java/exercises/difference-of-squares/src/main/java/.keep +0 -0
  90. data/tracks/java/exercises/etl/src/main/java/.keep +0 -0
  91. data/tracks/java/exercises/etl/src/test/java/.keep +0 -0
  92. data/tracks/java/exercises/grade-school/src/test/java/.keep +0 -0
  93. data/tracks/java/exercises/hamming/src/main/java/.keep +0 -0
  94. data/tracks/java/exercises/hello-world/src/main/java/.keep +0 -0
  95. data/tracks/java/exercises/hexadecimal/src/test/java/.keep +0 -0
  96. data/tracks/java/exercises/linked-list/src/example/java/.keep +0 -0
  97. data/tracks/java/exercises/linked-list/src/test/java/.keep +0 -0
  98. data/tracks/java/exercises/meetup/src/main/java/.keep +0 -0
  99. data/tracks/java/exercises/meetup/src/test/java/.keep +0 -0
  100. data/tracks/java/exercises/nth-prime/src/example/java/.keep +0 -0
  101. data/tracks/java/exercises/nth-prime/src/test/java/.keep +0 -0
  102. data/tracks/java/exercises/nucleotide-count/src/main/java/.keep +0 -0
  103. data/tracks/java/exercises/nucleotide-count/src/test/java/.keep +0 -0
  104. data/tracks/java/exercises/pangram/src/test/java/.keep +0 -0
  105. data/tracks/java/exercises/pascals-triangle/src/test/java/.keep +0 -0
  106. data/tracks/java/exercises/series/src/main/java/.keep +0 -0
  107. data/tracks/java/exercises/series/src/test/java/.keep +0 -0
  108. data/tracks/java/exercises/triangle/src/main/java/.keep +0 -0
  109. data/tracks/ocaml/tools/test-generator/src/special_cases.mli +0 -13
  110. data/tracks/ocaml/tools/test-generator/src/test_generator.mli +0 -6
  111. data/tracks/ocaml/tools/test-generator/test/test_generator_test.ml +0 -11
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.0.1.0
4
+ version: 2.0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katrina Owen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-25 00:00:00.000000000 Z
11
+ date: 2016-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -711,6 +711,9 @@ files:
711
711
  - tracks/clojure/exercises/accumulate/project.clj
712
712
  - tracks/clojure/exercises/accumulate/src/example.clj
713
713
  - tracks/clojure/exercises/accumulate/test/accumulate_test.clj
714
+ - tracks/clojure/exercises/acronym/project.clj
715
+ - tracks/clojure/exercises/acronym/src/example.clj
716
+ - tracks/clojure/exercises/acronym/test/acronym_test.clj
714
717
  - tracks/clojure/exercises/all-your-base/project.clj
715
718
  - tracks/clojure/exercises/all-your-base/src/example.clj
716
719
  - tracks/clojure/exercises/all-your-base/test/all_your_base_test.clj
@@ -1125,6 +1128,8 @@ files:
1125
1128
  - tracks/crystal/exercises/anagram/src/example.cr
1126
1129
  - tracks/crystal/exercises/atbash-cipher/spec/atbash_cipher_spec.cr
1127
1130
  - tracks/crystal/exercises/atbash-cipher/src/example.cr
1131
+ - tracks/crystal/exercises/binary/spec/binary_spec.cr
1132
+ - tracks/crystal/exercises/binary/src/example.cr
1128
1133
  - tracks/crystal/exercises/bob/spec/bob_spec.cr
1129
1134
  - tracks/crystal/exercises/bob/src/example.cr
1130
1135
  - tracks/crystal/exercises/bracket-push/spec/bracket_push_spec.cr
@@ -1156,6 +1161,7 @@ files:
1156
1161
  - tracks/crystal/exercises/sieve/src/example.cr
1157
1162
  - tracks/crystal/img/icon.png
1158
1163
  - tracks/crystal/src/generator/exercises/acronym.cr
1164
+ - tracks/crystal/src/generator/exercises/binary.cr
1159
1165
  - tracks/crystal/src/generator/exercises/exercise_generator.cr
1160
1166
  - tracks/crystal/src/generator/exercises/exercise_test_case.cr
1161
1167
  - tracks/crystal/src/generator/exercises/forth.cr
@@ -2690,6 +2696,8 @@ files:
2690
2696
  - tracks/go/exercises/parallel-letter-frequency/parallel_letter_frequency_test.go
2691
2697
  - tracks/go/exercises/pascals-triangle/example.go
2692
2698
  - tracks/go/exercises/pascals-triangle/pascals_triangle_test.go
2699
+ - tracks/go/exercises/perfect-numbers/example.go
2700
+ - tracks/go/exercises/perfect-numbers/perfect_numbers_test.go
2693
2701
  - tracks/go/exercises/phone-number/example.go
2694
2702
  - tracks/go/exercises/phone-number/phone_number_test.go
2695
2703
  - tracks/go/exercises/pig-latin/example.go
@@ -2795,24 +2803,24 @@ files:
2795
2803
  - tracks/groovy/docs/RESOURCES.md
2796
2804
  - tracks/groovy/docs/TESTS.md
2797
2805
  - tracks/groovy/exercises/difference-of-squares/Example.groovy
2798
- - tracks/groovy/exercises/difference-of-squares/SquaresTest.groovy
2806
+ - tracks/groovy/exercises/difference-of-squares/SquaresSpec.groovy
2799
2807
  - tracks/groovy/exercises/gigasecond/Example.groovy
2800
2808
  - tracks/groovy/exercises/gigasecond/Gigasecond.groovy
2801
- - tracks/groovy/exercises/gigasecond/GigasecondTest.groovy
2809
+ - tracks/groovy/exercises/gigasecond/GigasecondSpec.groovy
2802
2810
  - tracks/groovy/exercises/grains/Example.groovy
2803
2811
  - tracks/groovy/exercises/grains/GrainsTest.groovy
2804
2812
  - tracks/groovy/exercises/hamming/Example.groovy
2805
- - tracks/groovy/exercises/hamming/HammingTest.groovy
2813
+ - tracks/groovy/exercises/hamming/HammingSpec.groovy
2806
2814
  - tracks/groovy/exercises/hello-world/Example.groovy
2807
2815
  - tracks/groovy/exercises/hello-world/HelloWorld.groovy
2808
- - tracks/groovy/exercises/hello-world/HelloWorldTest.groovy
2816
+ - tracks/groovy/exercises/hello-world/HelloWorldSpec.groovy
2809
2817
  - tracks/groovy/exercises/leap/Example.groovy
2810
2818
  - tracks/groovy/exercises/leap/LeapTest.groovy
2811
2819
  - tracks/groovy/exercises/nth-prime/Example.groovy
2812
2820
  - tracks/groovy/exercises/nth-prime/NthPrimeTest.groovy
2813
2821
  - tracks/groovy/exercises/raindrops/Example.groovy
2814
- - tracks/groovy/exercises/raindrops/RaindropsTest.groovy
2815
- - tracks/groovy/exercises/rna-transcription/ComplementTest.groovy
2822
+ - tracks/groovy/exercises/raindrops/RaindropsSpec.groovy
2823
+ - tracks/groovy/exercises/rna-transcription/ComplementSpec.groovy
2816
2824
  - tracks/groovy/exercises/rna-transcription/Example.groovy
2817
2825
  - tracks/groovy/exercises/robot-name/Example.groovy
2818
2826
  - tracks/groovy/exercises/robot-name/RobotTest.groovy
@@ -2828,6 +2836,7 @@ files:
2828
2836
  - tracks/haskell/README.md
2829
2837
  - tracks/haskell/SETUP.md
2830
2838
  - tracks/haskell/bin/fetch-configlet
2839
+ - tracks/haskell/common/stack.yaml
2831
2840
  - tracks/haskell/config.json
2832
2841
  - tracks/haskell/docs/ABOUT.md
2833
2842
  - tracks/haskell/docs/INSTALLATION.md
@@ -3412,7 +3421,6 @@ files:
3412
3421
  - tracks/java/exercises/allergies/src/test/java/AllergiesTest.java
3413
3422
  - tracks/java/exercises/anagram/build.gradle
3414
3423
  - tracks/java/exercises/anagram/src/example/java/Anagram.java
3415
- - tracks/java/exercises/anagram/src/main/java/.keep
3416
3424
  - tracks/java/exercises/anagram/src/main/java/Anagram.java
3417
3425
  - tracks/java/exercises/anagram/src/test/java/AnagramTest.java
3418
3426
  - tracks/java/exercises/atbash-cipher/build.gradle
@@ -3420,11 +3428,8 @@ files:
3420
3428
  - tracks/java/exercises/atbash-cipher/src/main/java/.keep
3421
3429
  - tracks/java/exercises/atbash-cipher/src/test/java/AtbashTest.java
3422
3430
  - tracks/java/exercises/beer-song/build.gradle
3423
- - tracks/java/exercises/beer-song/src/example/java/.keep
3424
3431
  - tracks/java/exercises/beer-song/src/example/java/BeerSong.java
3425
- - tracks/java/exercises/beer-song/src/main/java/.keep
3426
3432
  - tracks/java/exercises/beer-song/src/main/java/BeerSong.java
3427
- - tracks/java/exercises/beer-song/src/test/java/.keep
3428
3433
  - tracks/java/exercises/beer-song/src/test/java/BeerSongTest.java
3429
3434
  - tracks/java/exercises/binary/build.gradle
3430
3435
  - tracks/java/exercises/binary/src/example/java/Binary.java
@@ -3440,16 +3445,12 @@ files:
3440
3445
  - tracks/java/exercises/crypto-square/src/main/java/.keep
3441
3446
  - tracks/java/exercises/crypto-square/src/test/java/CryptoSquareTest.java
3442
3447
  - tracks/java/exercises/difference-of-squares/build.gradle
3443
- - tracks/java/exercises/difference-of-squares/src/example/java/.keep
3444
3448
  - tracks/java/exercises/difference-of-squares/src/example/java/Difference.java
3445
- - tracks/java/exercises/difference-of-squares/src/main/java/.keep
3446
3449
  - tracks/java/exercises/difference-of-squares/src/main/java/Difference.java
3447
3450
  - tracks/java/exercises/difference-of-squares/src/test/java/DifferenceTest.java
3448
3451
  - tracks/java/exercises/etl/build.gradle
3449
3452
  - tracks/java/exercises/etl/src/example/java/Etl.java
3450
- - tracks/java/exercises/etl/src/main/java/.keep
3451
3453
  - tracks/java/exercises/etl/src/main/java/Etl.java
3452
- - tracks/java/exercises/etl/src/test/java/.keep
3453
3454
  - tracks/java/exercises/etl/src/test/java/EtlTest.java
3454
3455
  - tracks/java/exercises/gigasecond/build.gradle
3455
3456
  - tracks/java/exercises/gigasecond/src/example/java/Gigasecond.java
@@ -3458,34 +3459,28 @@ files:
3458
3459
  - tracks/java/exercises/grade-school/build.gradle
3459
3460
  - tracks/java/exercises/grade-school/src/example/java/School.java
3460
3461
  - tracks/java/exercises/grade-school/src/main/java/.keep
3461
- - tracks/java/exercises/grade-school/src/test/java/.keep
3462
3462
  - tracks/java/exercises/grade-school/src/test/java/SchoolTest.java
3463
3463
  - tracks/java/exercises/hamming/build.gradle
3464
3464
  - tracks/java/exercises/hamming/src/example/java/Hamming.java
3465
- - tracks/java/exercises/hamming/src/main/java/.keep
3466
3465
  - tracks/java/exercises/hamming/src/main/java/Hamming.java
3467
3466
  - tracks/java/exercises/hamming/src/test/java/HammingTest.java
3468
3467
  - tracks/java/exercises/hello-world/GETTING_STARTED.md
3469
3468
  - tracks/java/exercises/hello-world/TUTORIAL.md
3470
3469
  - tracks/java/exercises/hello-world/build.gradle
3471
3470
  - tracks/java/exercises/hello-world/src/example/java/HelloWorld.java
3472
- - tracks/java/exercises/hello-world/src/main/java/.keep
3473
3471
  - tracks/java/exercises/hello-world/src/main/java/HelloWorld.java
3474
3472
  - tracks/java/exercises/hello-world/src/test/java/HelloWorldTest.java
3475
3473
  - tracks/java/exercises/hexadecimal/build.gradle
3476
3474
  - tracks/java/exercises/hexadecimal/src/example/java/Hexadecimal.java
3477
3475
  - tracks/java/exercises/hexadecimal/src/main/java/.keep
3478
- - tracks/java/exercises/hexadecimal/src/test/java/.keep
3479
3476
  - tracks/java/exercises/hexadecimal/src/test/java/HexadecimalTest.java
3480
3477
  - tracks/java/exercises/largest-series-product/build.gradle
3481
3478
  - tracks/java/exercises/largest-series-product/src/example/java/LargestSeriesProductCalculator.java
3482
3479
  - tracks/java/exercises/largest-series-product/src/main/java/LargestSeriesProductCalculator.java
3483
3480
  - tracks/java/exercises/largest-series-product/src/test/java/LargestSeriesProductCalculatorTest.java
3484
3481
  - tracks/java/exercises/linked-list/build.gradle
3485
- - tracks/java/exercises/linked-list/src/example/java/.keep
3486
3482
  - tracks/java/exercises/linked-list/src/example/java/Deque.java
3487
3483
  - tracks/java/exercises/linked-list/src/main/java/.keep
3488
- - tracks/java/exercises/linked-list/src/test/java/.keep
3489
3484
  - tracks/java/exercises/linked-list/src/test/java/DequeTest.java
3490
3485
  - tracks/java/exercises/luhn/build.gradle
3491
3486
  - tracks/java/exercises/luhn/src/example/java/Luhn.java
@@ -3494,25 +3489,19 @@ files:
3494
3489
  - tracks/java/exercises/meetup/build.gradle
3495
3490
  - tracks/java/exercises/meetup/src/example/java/Meetup.java
3496
3491
  - tracks/java/exercises/meetup/src/example/java/MeetupSchedule.java
3497
- - tracks/java/exercises/meetup/src/main/java/.keep
3498
3492
  - tracks/java/exercises/meetup/src/main/java/MeetupSchedule.java
3499
- - tracks/java/exercises/meetup/src/test/java/.keep
3500
3493
  - tracks/java/exercises/meetup/src/test/java/MeetupTest.java
3501
3494
  - tracks/java/exercises/minesweeper/build.gradle
3502
3495
  - tracks/java/exercises/minesweeper/src/example/java/MinesweeperBoard.java
3503
3496
  - tracks/java/exercises/minesweeper/src/main/java/MinesweeperBoard.java
3504
3497
  - tracks/java/exercises/minesweeper/src/test/java/MinesweeperBoardTest.java
3505
3498
  - tracks/java/exercises/nth-prime/build.gradle
3506
- - tracks/java/exercises/nth-prime/src/example/java/.keep
3507
3499
  - tracks/java/exercises/nth-prime/src/example/java/Prime.java
3508
3500
  - tracks/java/exercises/nth-prime/src/main/java/.keep
3509
- - tracks/java/exercises/nth-prime/src/test/java/.keep
3510
3501
  - tracks/java/exercises/nth-prime/src/test/java/PrimeTest.java
3511
3502
  - tracks/java/exercises/nucleotide-count/build.gradle
3512
3503
  - tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
3513
- - tracks/java/exercises/nucleotide-count/src/main/java/.keep
3514
3504
  - tracks/java/exercises/nucleotide-count/src/main/java/DNA.java
3515
- - tracks/java/exercises/nucleotide-count/src/test/java/.keep
3516
3505
  - tracks/java/exercises/nucleotide-count/src/test/java/NucleotideTest.java
3517
3506
  - tracks/java/exercises/octal/build.gradle
3518
3507
  - tracks/java/exercises/octal/src/example/java/Octal.java
@@ -3521,12 +3510,10 @@ files:
3521
3510
  - tracks/java/exercises/pangram/build.gradle
3522
3511
  - tracks/java/exercises/pangram/src/example/java/Pangrams.java
3523
3512
  - tracks/java/exercises/pangram/src/main/java/.keep
3524
- - tracks/java/exercises/pangram/src/test/java/.keep
3525
3513
  - tracks/java/exercises/pangram/src/test/java/PangramTest.java
3526
3514
  - tracks/java/exercises/pascals-triangle/build.gradle
3527
3515
  - tracks/java/exercises/pascals-triangle/src/example/java/PascalsTriangle.java
3528
3516
  - tracks/java/exercises/pascals-triangle/src/main/java/.keep
3529
- - tracks/java/exercises/pascals-triangle/src/test/java/.keep
3530
3517
  - tracks/java/exercises/pascals-triangle/src/test/java/PascalsTriangleTest.java
3531
3518
  - tracks/java/exercises/phone-number/build.gradle
3532
3519
  - tracks/java/exercises/phone-number/src/example/java/PhoneNumber.java
@@ -3568,9 +3555,7 @@ files:
3568
3555
  - tracks/java/exercises/scrabble-score/src/test/java/ScrabbleScoreTest.java
3569
3556
  - tracks/java/exercises/series/build.gradle
3570
3557
  - tracks/java/exercises/series/src/example/java/Series.java
3571
- - tracks/java/exercises/series/src/main/java/.keep
3572
3558
  - tracks/java/exercises/series/src/main/java/Series.java
3573
- - tracks/java/exercises/series/src/test/java/.keep
3574
3559
  - tracks/java/exercises/series/src/test/java/SeriesTest.java
3575
3560
  - tracks/java/exercises/settings.gradle
3576
3561
  - tracks/java/exercises/sieve/build.gradle
@@ -3604,7 +3589,6 @@ files:
3604
3589
  - tracks/java/exercises/triangle/src/example/java/Triangle.java
3605
3590
  - tracks/java/exercises/triangle/src/example/java/TriangleException.java
3606
3591
  - tracks/java/exercises/triangle/src/example/java/TriangleKind.java
3607
- - tracks/java/exercises/triangle/src/main/java/.keep
3608
3592
  - tracks/java/exercises/triangle/src/main/java/TriangleException.java
3609
3593
  - tracks/java/exercises/triangle/src/main/java/TriangleKind.java
3610
3594
  - tracks/java/exercises/triangle/src/test/java/TriangleTest.java
@@ -4848,18 +4832,20 @@ files:
4848
4832
  - tracks/ocaml/tools/test-generator/.merlin
4849
4833
  - tracks/ocaml/tools/test-generator/Makefile
4850
4834
  - tracks/ocaml/tools/test-generator/_tags
4835
+ - tracks/ocaml/tools/test-generator/interfaces/codegen.mli
4836
+ - tracks/ocaml/tools/test-generator/interfaces/parser.mli
4837
+ - tracks/ocaml/tools/test-generator/interfaces/special_cases.mli
4838
+ - tracks/ocaml/tools/test-generator/interfaces/template.mli
4839
+ - tracks/ocaml/tools/test-generator/interfaces/test_generator.mli
4840
+ - tracks/ocaml/tools/test-generator/interfaces/utils.mli
4851
4841
  - tracks/ocaml/tools/test-generator/src/codegen.ml
4852
- - tracks/ocaml/tools/test-generator/src/codegen.mli
4853
4842
  - tracks/ocaml/tools/test-generator/src/model.ml
4854
4843
  - tracks/ocaml/tools/test-generator/src/parser.ml
4855
- - tracks/ocaml/tools/test-generator/src/parser.mli
4856
4844
  - tracks/ocaml/tools/test-generator/src/special_cases.ml
4857
- - tracks/ocaml/tools/test-generator/src/special_cases.mli
4845
+ - tracks/ocaml/tools/test-generator/src/template.ml
4858
4846
  - tracks/ocaml/tools/test-generator/src/test_gen.ml
4859
4847
  - tracks/ocaml/tools/test-generator/src/test_generator.ml
4860
- - tracks/ocaml/tools/test-generator/src/test_generator.mli
4861
4848
  - tracks/ocaml/tools/test-generator/src/utils.ml
4862
- - tracks/ocaml/tools/test-generator/src/utils.mli
4863
4849
  - tracks/ocaml/tools/test-generator/templates/anagram/template.ml
4864
4850
  - tracks/ocaml/tools/test-generator/templates/bob/template.ml
4865
4851
  - tracks/ocaml/tools/test-generator/templates/hamming/template.ml
@@ -4872,8 +4858,9 @@ files:
4872
4858
  - tracks/ocaml/tools/test-generator/test/leap.json
4873
4859
  - tracks/ocaml/tools/test-generator/test/model_test.ml
4874
4860
  - tracks/ocaml/tools/test-generator/test/parser_test.ml
4861
+ - tracks/ocaml/tools/test-generator/test/sample_template.txt
4875
4862
  - tracks/ocaml/tools/test-generator/test/special_cases_test.ml
4876
- - tracks/ocaml/tools/test-generator/test/test_generator_test.ml
4863
+ - tracks/ocaml/tools/test-generator/test/template_test.ml
4877
4864
  - tracks/ocaml/tools/test-generator/test/utils_test.ml
4878
4865
  - tracks/pascal/.git
4879
4866
  - tracks/pascal/.gitignore
@@ -5917,6 +5904,12 @@ files:
5917
5904
  - tracks/rust/exercises/allergies/Cargo.toml
5918
5905
  - tracks/rust/exercises/allergies/example.rs
5919
5906
  - tracks/rust/exercises/allergies/tests/allergies.rs
5907
+ - tracks/rust/exercises/alphametics/Cargo-example.toml
5908
+ - tracks/rust/exercises/alphametics/Cargo.lock
5909
+ - tracks/rust/exercises/alphametics/Cargo.toml
5910
+ - tracks/rust/exercises/alphametics/example.rs
5911
+ - tracks/rust/exercises/alphametics/src/lib.rs
5912
+ - tracks/rust/exercises/alphametics/tests/alphametics.rs
5920
5913
  - tracks/rust/exercises/anagram/Cargo.lock
5921
5914
  - tracks/rust/exercises/anagram/Cargo.toml
5922
5915
  - tracks/rust/exercises/anagram/example.rs
@@ -1,49 +0,0 @@
1
- import org.junit.Test
2
- import static org.junit.Assert.assertEquals
3
-
4
- class SquaresTest {
5
- @Test
6
- void squareOfSumsTo5() {
7
- assertEquals 225, new Squares(5).squareOfSums()
8
- }
9
-
10
- @Test
11
- void sumOfSquaresTo5() {
12
- assertEquals 55, new Squares(5).sumOfSquares()
13
- }
14
-
15
- @Test
16
- void diffOfSumsTo5() {
17
- assertEquals 170, new Squares(5).difference()
18
- }
19
-
20
- @Test
21
- void squareOfSumsTo10() {
22
- assertEquals 3025, new Squares(10).squareOfSums()
23
- }
24
-
25
- @Test
26
- void sumOfSquaresTo10() {
27
- assertEquals 385, new Squares(10).sumOfSquares()
28
- }
29
-
30
- @Test
31
- void diffOfSumsTo10() {
32
- assertEquals 2640, new Squares(10).difference()
33
- }
34
-
35
- @Test
36
- void squareOfSumsTo100() {
37
- assertEquals 25502500, new Squares(100).squareOfSums()
38
- }
39
-
40
- @Test
41
- void sumOfSquaresTo100() {
42
- assertEquals 338350, new Squares(100).sumOfSquares()
43
- }
44
-
45
- @Test
46
- void diffOfSumsTo100() {
47
- assertEquals 25164150, new Squares(100).difference()
48
- }
49
- }
@@ -1,29 +0,0 @@
1
- import org.junit.Test
2
- import static org.junit.Assert.assertEquals
3
- import static java.util.Calendar.*
4
-
5
- /**
6
- * Test suite for the Gigasecond exercise.
7
- * To ignore a test case while you work the problem, simply comment out the method or add the @Ignore annotation.
8
- */
9
- class GigasecondTest {
10
-
11
- @Test
12
- void gigasecondFromDate() {
13
- def gs = new Gigasecond().from(new GregorianCalendar(2011, APRIL, 25).time)
14
- assertEquals new GregorianCalendar(2043, JANUARY, 1, 0, 46, 40).time, gs
15
- }
16
-
17
- @Test
18
- void gigasecondFromDateWithHoursAndMinutes() {
19
- def gs = new Gigasecond().from(new GregorianCalendar(1959, JULY, 19, 12, 31).time)
20
- assertEquals new GregorianCalendar(1991, MARCH, 27, 13, 17, 40).time, gs
21
- }
22
-
23
- @Test
24
- void gigasecondFromDateWithHoursAndMinutesAndSeconds() {
25
- def gs = new Gigasecond().from(new GregorianCalendar(1977, JUNE, 13, 2, 15, 45).time)
26
- assertEquals new GregorianCalendar(2009, FEBRUARY, 19, 3, 2, 25).time, gs
27
- }
28
-
29
- }
@@ -1,56 +0,0 @@
1
- import org.junit.Test
2
- import static org.junit.Assert.assertEquals
3
-
4
- class HammingTest {
5
- @Test
6
- void testIdenticalStrands() {
7
- assertEquals 0, new Hamming().compute('A','A')
8
- }
9
-
10
- @Test
11
- void testCompleteDistanceForSingleNucleotideStrand() {
12
- assertEquals 1, new Hamming().compute('A','G')
13
- }
14
-
15
-
16
- @Test
17
- void testCompleteDistanceForSmallStrand() {
18
- assertEquals 2, new Hamming().compute('AG','CT')
19
- }
20
-
21
-
22
- @Test
23
- void testSmallHammingDistance() {
24
- assertEquals 1, new Hamming().compute('AT','CT')
25
- }
26
-
27
-
28
- @Test
29
- void testSmallHammingDistanceInLongerStrand() {
30
- assertEquals 1, new Hamming().compute('GGACG','GGTCG')
31
- }
32
-
33
-
34
- @Test
35
- void testIgnoreLengthOnFirstStrandWhenLonger() {
36
- assertEquals 1, new Hamming().compute('AGAGACTTA','AAA')
37
- }
38
-
39
-
40
- @Test
41
- void testIgnoreLengthOnOtherStrandWhenLonger() {
42
- assertEquals 2, new Hamming().compute('AGG','AAAACTGACCCACCCCAGG')
43
- }
44
-
45
-
46
- @Test
47
- void testLargeHammingDistance() {
48
- assertEquals 4, new Hamming().compute('GATACA','GCATAA')
49
- }
50
-
51
-
52
- @Test
53
- void testVeryLongHammingDistance() {
54
- assertEquals 9, new Hamming().compute('GGACGGATTCTG','AGGACGGATTCT')
55
- }
56
- }
@@ -1,19 +0,0 @@
1
- import org.junit.Test
2
- import static org.junit.Assert.assertTrue
3
-
4
- class HelloWorldTest {
5
- @Test
6
- void testNoName() {
7
- assertTrue new HelloWorld().hello() == 'Hello, World!'
8
- }
9
-
10
- @Test
11
- void testSampleName() {
12
- assertTrue new HelloWorld().hello('Alice') == 'Hello, Alice!'
13
- }
14
-
15
- @Test
16
- void testAnotherSampleName() {
17
- assertTrue new HelloWorld().hello('Bob') == 'Hello, Bob!'
18
- }
19
- }
@@ -1,21 +0,0 @@
1
- def raindrops = new Raindrops()
2
- try {
3
- assert raindrops.convert(1) == '1'
4
- assert raindrops.convert(3) == 'Pling'
5
- assert raindrops.convert(5) == 'Plang'
6
- assert raindrops.convert(6) == 'Pling'
7
- assert raindrops.convert(7) == 'Plong'
8
- assert raindrops.convert(9) == 'Pling'
9
- assert raindrops.convert(10) == 'Plang'
10
- assert raindrops.convert(14) == 'Plong'
11
- assert raindrops.convert(15) == 'PlingPlang'
12
- assert raindrops.convert(21) == 'PlingPlong'
13
- assert raindrops.convert(25) == 'Plang'
14
- assert raindrops.convert(35) == 'PlangPlong'
15
- assert raindrops.convert(49) == 'Plong'
16
- assert raindrops.convert(52) == '52'
17
- assert raindrops.convert(105) == 'PlingPlangPlong'
18
- assert raindrops.convert(12121) == '12121'
19
- } catch(AssertionError error) {
20
- println error.message
21
- }
@@ -1,55 +0,0 @@
1
- import org.junit.Test
2
- import static org.junit.Assert.assertEquals
3
-
4
- class ComplementTest {
5
- @Test
6
- void testCytosineRNAComplement() {
7
- assertEquals 'G', new Complement().ofDNA('C')
8
- }
9
-
10
- @Test
11
- void testGuanineRNAComplement() {
12
- assertEquals 'C', new Complement().ofDNA('G')
13
- }
14
-
15
- @Test
16
- void testThymineRNAComplement() {
17
- assertEquals 'A', new Complement().ofDNA('T')
18
- }
19
-
20
- @Test
21
- void testAdenineRNAComplement() {
22
- assertEquals 'U', new Complement().ofDNA('A')
23
- }
24
-
25
- @Test
26
- void testRNAComplement() {
27
- assertEquals 'UGCACCAGAAUU', new Complement().ofDNA('ACGTGGTCTTAA')
28
- }
29
-
30
- @Test
31
- void testCytosineDNAComplement() {
32
- assertEquals 'G', new Complement().ofRNA('C')
33
- }
34
-
35
- @Test
36
- void testGuanineDNAComplement() {
37
- assertEquals 'C', new Complement().ofRNA('G')
38
- }
39
-
40
- @Test
41
- void testUracilDNAComplement() {
42
- assertEquals 'A', new Complement().ofRNA('U')
43
- }
44
-
45
- @Test
46
- void testAdenineDNAComplement() {
47
- assertEquals 'T', new Complement().ofRNA('A')
48
- }
49
-
50
- @Test
51
- void testDNAComplement() {
52
- assertEquals 'ACTTGGGCTGTAC', new Complement().ofRNA('UGAACCCGACAUG')
53
- }
54
-
55
- }
@@ -1 +0,0 @@
1
- resolver: lts-7.9
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,13 +0,0 @@
1
- open Core.Std
2
-
3
- open Model
4
-
5
- val default_value : key: string -> value: string -> (string * string) list -> (string * string) list
6
-
7
- val optional_int : none: int -> parameter -> string
8
-
9
- val optional_string : f: (string -> bool) -> (string * string) list -> (string * string) list
10
-
11
- val fixup : stringify:(parameter -> string) -> slug:string -> key:string -> value:parameter -> string
12
-
13
- val edit : slug: string -> (string * string) list -> (string * string) list
@@ -1,6 +0,0 @@
1
- open Core.Std
2
-
3
- (* finds a template within a file, returning the line numbers of the comment starting and ending the template, and the body of the template *)
4
- val find_template : template_text: string -> (int * int * string) option
5
-
6
- val run : templates_folder: string -> canonical_data_folder: string -> output_folder: string -> unit
@@ -1,11 +0,0 @@
1
- open Core.Std
2
- open OUnit2
3
- open Codegen
4
- open Test_generator
5
-
6
- let test_generator_tests = [
7
- "finds a template" >::(fun ctxt ->
8
- let template_text = "open Core.Std\nopen OUnit2\nopen Leap\n\nlet ae exp got _test_ctxt = assert_equal exp got\n\nlet tests = [\n(* GENERATED-CODE\n \"$name\" >::\n ae $expected (leap_year $input)\nEND GENERATED-CODE *)\n]\n\nlet () =\n run_test_tt_main (\"leap tests\" >::: tests)\n" in
9
- assert_equal (Some (7, 10, " \"$name\" >::\n ae $expected (leap_year $input)")) (find_template ~template_text)
10
- );
11
- ]