trackler 2.2.1.14 → 2.2.1.15

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.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/c/docs/INSTALLATION.md +1 -1
  4. data/tracks/csharp/exercises/binary-search/BinarySearchTest.cs +2 -2
  5. data/tracks/csharp/exercises/poker/Example.cs +69 -20
  6. data/tracks/csharp/exercises/poker/PokerTest.cs +152 -82
  7. data/tracks/csharp/exercises/raindrops/RaindropsTest.cs +4 -4
  8. data/tracks/csharp/exercises/roman-numerals/RomanNumeralsTest.cs +4 -4
  9. data/tracks/csharp/exercises/word-count/Example.cs +2 -2
  10. data/tracks/csharp/exercises/word-count/WordCount.cs +2 -2
  11. data/tracks/csharp/exercises/word-count/WordCountTest.cs +85 -87
  12. data/tracks/csharp/generators/Exercises/Pangram.cs +0 -1
  13. data/tracks/csharp/generators/Exercises/Poker.cs +19 -0
  14. data/tracks/csharp/generators/Exercises/RomanNumerals.cs +0 -1
  15. data/tracks/csharp/generators/Exercises/WordCount.cs +27 -0
  16. data/tracks/csharp/generators/Output/NameExtensions.cs +6 -4
  17. data/tracks/delphi/{docs → exercises/hello-world}/GETTING_STARTED_GUIDE.md +0 -0
  18. data/tracks/go/config.json +629 -618
  19. data/tracks/go/config/maintainers.json +33 -33
  20. data/tracks/go/exercises/accumulate/README.md +0 -3
  21. data/tracks/go/exercises/hello-world/example.go +0 -2
  22. data/tracks/go/exercises/hello-world/hello_test.go +0 -20
  23. data/tracks/go/exercises/hello-world/hello_world.go +1 -36
  24. data/tracks/go/exercises/leap/leap.go +0 -1
  25. data/tracks/go/exercises/leap/leap_test.go +7 -3
  26. data/tracks/go/exercises/two-fer/README.md +66 -0
  27. data/tracks/go/exercises/two-fer/example.go +9 -0
  28. data/tracks/go/exercises/{hello-world/example_helloworld_test.go → two-fer/example_two_fer_test.go} +9 -9
  29. data/tracks/go/exercises/two-fer/two_fer.go +15 -0
  30. data/tracks/go/exercises/two-fer/two_fer_test.go +20 -0
  31. data/tracks/go/gen/gen.go +11 -10
  32. data/tracks/python/exercises/change/change_test.py +7 -2
  33. data/tracks/rust/config.json +1 -0
  34. data/tracks/rust/docs/ABOUT.md +1 -1
  35. data/tracks/scala/exercises/nth-prime/example.scala +2 -2
  36. data/tracks/scala/exercises/nth-prime/src/test/scala/NthPrimeTest.scala +29 -0
  37. data/tracks/scala/testgen/src/main/scala/NthPrimeTestGenerator.scala +34 -0
  38. metadata +12 -7
  39. data/tracks/fsharp/appveyor.yml +0 -4
  40. data/tracks/fsharp/circle.yml +0 -16
  41. data/tracks/scala/exercises/nth-prime/src/test/scala/PrimeTest.scala +0 -37
@@ -19,13 +19,18 @@ class ChangeTest(unittest.TestCase):
19
19
  [21, 21, 21])
20
20
 
21
21
  def test_large_target_values(self):
22
- self.assertEqual(find_minimum_coins(21, [2, 5, 10, 20, 50]),
23
- [2, 2, 2, 5, 10])
22
+ self.assertEqual(find_minimum_coins(999, [1, 2, 5, 10, 20, 50, 100]),
23
+ [2, 2, 5, 20, 20, 50, 100, 100, 100,
24
+ 100, 100, 100, 100, 100, 100])
24
25
 
25
26
  def test_possible_change_without_unit_coins_available(self):
26
27
  self.assertEqual(find_minimum_coins(21, [2, 5, 10, 20, 50]),
27
28
  [2, 2, 2, 5, 10])
28
29
 
30
+ def test_another_possible_change_without_unit_coins_available(self):
31
+ self.assertEqual(find_minimum_coins(27, [4, 5]),
32
+ [4, 4, 4, 5, 5, 5])
33
+
29
34
  def test_no_coins_make_0_change(self):
30
35
  self.assertEqual(find_minimum_coins(0, [1, 5, 10, 21, 25]), [])
31
36
 
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "language": "Rust",
3
+ "blurb": "Rust is a compiled programming language designed for speed, concurrency, and memory safety. Rust programs can run almost anywhere, from low-power embedded devices to web servers.",
3
4
  "active": true,
4
5
  "exercises": [
5
6
  {
@@ -1,4 +1,4 @@
1
- Rust is a systems programming language focused on three goals: safety, speed, and concurrency. Rust does not use a garbage collector, but instead ensures safety and optimizes code at compile time. The concept of [ownership](https://doc.rust-lang.org/book/ownership.html) is how Rust achieves its largest goal, memory safety.
1
+ Rust aims to bring modern language design and an advanced type system to systems programming. Rust does not use a garbage collector, but instead ensures safety and optimizes code at compile time. The concept of [ownership](https://doc.rust-lang.org/book/ownership.html) is how Rust achieves its largest goal, memory safety.
2
2
 
3
3
  Rust core and the standard library contain a minimal set of functionality. Rustaceans are encouraged to add features, in the form of libraries called _crates_, to the language and then share them on [crates.io](https://crates.io/).
4
4
 
@@ -1,10 +1,10 @@
1
- object Prime {
1
+ object NthPrime {
2
2
  // The stream will cache calculated primes. This is nice for performance,
3
3
  // but not so nice for memory utilization.
4
4
  private lazy val primes: Stream[BigInt] =
5
5
  Stream.cons(BigInt(2), primes.map(b => new BigInt(b.bigInteger.nextProbablePrime)))
6
6
 
7
- def nth(n: Int): Option[Int] =
7
+ def prime(n: Int): Option[Int] =
8
8
  if (n < 1) None
9
9
  else Some(primes.drop(n - 1).head.toInt)
10
10
  }
@@ -0,0 +1,29 @@
1
+ import org.scalatest.{Matchers, FunSuite}
2
+
3
+ /** @version 1.0.0 */
4
+ class NthPrimeTest extends FunSuite with Matchers {
5
+
6
+ test("first prime") {
7
+ NthPrime.prime(1) should be (Some(2))
8
+ }
9
+
10
+ test("second prime") {
11
+ pending
12
+ NthPrime.prime(2) should be (Some(3))
13
+ }
14
+
15
+ test("sixth prime") {
16
+ pending
17
+ NthPrime.prime(6) should be (Some(13))
18
+ }
19
+
20
+ test("big prime") {
21
+ pending
22
+ NthPrime.prime(10001) should be (Some(104743))
23
+ }
24
+
25
+ test("there is no zeroth prime") {
26
+ pending
27
+ NthPrime.prime(0) should be (None)
28
+ }
29
+ }
@@ -0,0 +1,34 @@
1
+ import java.io.File
2
+
3
+ import testgen.TestSuiteBuilder._
4
+ import testgen._
5
+
6
+ object NthPrimerTestGenerator {
7
+ def main(args: Array[String]): Unit = {
8
+ val file = new File("src/main/resources/nth-prime.json")
9
+
10
+ def toString(expected: CanonicalDataParser.Expected): String = {
11
+ expected match {
12
+ case Left(_) => "None"
13
+ case Right(false) => "None"
14
+ case Right(n) => s"Some($n)"
15
+ }
16
+ }
17
+
18
+ def fromLabeledTest(argNames: String*): ToTestCaseData =
19
+ withLabeledTest { sut =>
20
+ labeledTest =>
21
+ val args = sutArgs(labeledTest.result, argNames: _*)
22
+ val property = labeledTest.property
23
+ val sutCall =
24
+ s"""$sut.$property($args)"""
25
+ val expected = toString(labeledTest.expected)
26
+ TestCaseData(labeledTest.description, sutCall, expected)
27
+ }
28
+
29
+ val code = TestSuiteBuilder.build(file, fromLabeledTest("input"))
30
+ println(s"-------------")
31
+ println(code)
32
+ println(s"-------------")
33
+ }
34
+ }
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.2.1.14
4
+ version: 2.2.1.15
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-08-21 00:00:00.000000000 Z
11
+ date: 2017-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -2364,6 +2364,7 @@ files:
2364
2364
  - tracks/csharp/generators/Exercises/PerfectNumbers.cs
2365
2365
  - tracks/csharp/generators/Exercises/PhoneNumber.cs
2366
2366
  - tracks/csharp/generators/Exercises/PigLatin.cs
2367
+ - tracks/csharp/generators/Exercises/Poker.cs
2367
2368
  - tracks/csharp/generators/Exercises/PrimeFactors.cs
2368
2369
  - tracks/csharp/generators/Exercises/RailFenceCipher.cs
2369
2370
  - tracks/csharp/generators/Exercises/Raindrops.cs
@@ -2379,6 +2380,7 @@ files:
2379
2380
  - tracks/csharp/generators/Exercises/SumOfMultiples.cs
2380
2381
  - tracks/csharp/generators/Exercises/Transpose.cs
2381
2382
  - tracks/csharp/generators/Exercises/TwoFer.cs
2383
+ - tracks/csharp/generators/Exercises/WordCount.cs
2382
2384
  - tracks/csharp/generators/Exercises/Wordy.cs
2383
2385
  - tracks/csharp/generators/Generators.csproj
2384
2386
  - tracks/csharp/generators/Generators.csproj.user
@@ -2588,7 +2590,6 @@ files:
2588
2590
  - tracks/delphi/config/maintainers.json
2589
2591
  - tracks/delphi/docs/ABOUT.md
2590
2592
  - tracks/delphi/docs/EXERCISE_README_INSERT.md
2591
- - tracks/delphi/docs/GETTING_STARTED_GUIDE.md
2592
2593
  - tracks/delphi/docs/INSTALLATION.md
2593
2594
  - tracks/delphi/docs/LEARNING.md
2594
2595
  - tracks/delphi/docs/RESOURCES.md
@@ -2662,6 +2663,7 @@ files:
2662
2663
  - tracks/delphi/exercises/hamming/README.md
2663
2664
  - tracks/delphi/exercises/hamming/uHammingExample.pas
2664
2665
  - tracks/delphi/exercises/hamming/uHammingTests.pas
2666
+ - tracks/delphi/exercises/hello-world/GETTING_STARTED_GUIDE.md
2665
2667
  - tracks/delphi/exercises/hello-world/HelloWorld.dpr
2666
2668
  - tracks/delphi/exercises/hello-world/README.md
2667
2669
  - tracks/delphi/exercises/hello-world/uHelloWorldExample.pas
@@ -4132,12 +4134,10 @@ files:
4132
4134
  - tracks/fsharp/.travis.yml
4133
4135
  - tracks/fsharp/LICENSE
4134
4136
  - tracks/fsharp/README.md
4135
- - tracks/fsharp/appveyor.yml
4136
4137
  - tracks/fsharp/bin/fetch-configlet
4137
4138
  - tracks/fsharp/build.cmd
4138
4139
  - tracks/fsharp/build.fsx
4139
4140
  - tracks/fsharp/build.sh
4140
- - tracks/fsharp/circle.yml
4141
4141
  - tracks/fsharp/config.json
4142
4142
  - tracks/fsharp/config/exercise_readme.go.tmpl
4143
4143
  - tracks/fsharp/config/maintainers.json
@@ -4671,7 +4671,6 @@ files:
4671
4671
  - tracks/go/exercises/hamming/hamming_test.go
4672
4672
  - tracks/go/exercises/hello-world/README.md
4673
4673
  - tracks/go/exercises/hello-world/example.go
4674
- - tracks/go/exercises/hello-world/example_helloworld_test.go
4675
4674
  - tracks/go/exercises/hello-world/hello_test.go
4676
4675
  - tracks/go/exercises/hello-world/hello_world.go
4677
4676
  - tracks/go/exercises/hexadecimal/README.md
@@ -4871,6 +4870,11 @@ files:
4871
4870
  - tracks/go/exercises/twelve-days/README.md
4872
4871
  - tracks/go/exercises/twelve-days/example.go
4873
4872
  - tracks/go/exercises/twelve-days/twelve_days_test.go
4873
+ - tracks/go/exercises/two-fer/README.md
4874
+ - tracks/go/exercises/two-fer/example.go
4875
+ - tracks/go/exercises/two-fer/example_two_fer_test.go
4876
+ - tracks/go/exercises/two-fer/two_fer.go
4877
+ - tracks/go/exercises/two-fer/two_fer_test.go
4874
4878
  - tracks/go/exercises/variable-length-quantity/.meta/gen.go
4875
4879
  - tracks/go/exercises/variable-length-quantity/README.md
4876
4880
  - tracks/go/exercises/variable-length-quantity/cases_test.go
@@ -10909,7 +10913,7 @@ files:
10909
10913
  - tracks/scala/exercises/nth-prime/build.sbt
10910
10914
  - tracks/scala/exercises/nth-prime/example.scala
10911
10915
  - tracks/scala/exercises/nth-prime/src/main/scala/.keep
10912
- - tracks/scala/exercises/nth-prime/src/test/scala/PrimeTest.scala
10916
+ - tracks/scala/exercises/nth-prime/src/test/scala/NthPrimeTest.scala
10913
10917
  - tracks/scala/exercises/nucleotide-count/HINTS.md
10914
10918
  - tracks/scala/exercises/nucleotide-count/README.md
10915
10919
  - tracks/scala/exercises/nucleotide-count/build.sbt
@@ -11161,6 +11165,7 @@ files:
11161
11165
  - tracks/scala/testgen/src/main/scala/LeapTestGenerator.scala
11162
11166
  - tracks/scala/testgen/src/main/scala/LuhnTestGenerator.scala
11163
11167
  - tracks/scala/testgen/src/main/scala/MinesweeperTestGenerator.scala
11168
+ - tracks/scala/testgen/src/main/scala/NthPrimeTestGenerator.scala
11164
11169
  - tracks/scala/testgen/src/main/scala/NucleotideCountTestGenerator.scala
11165
11170
  - tracks/scala/testgen/src/main/scala/PangramsTestGenerator.scala
11166
11171
  - tracks/scala/testgen/src/main/scala/PascalsTriangleTestGenerator.scala
@@ -1,4 +0,0 @@
1
- build_script:
2
- - ps: .\build.cmd
3
-
4
- test: off
@@ -1,16 +0,0 @@
1
- machine:
2
- environment:
3
- TERM: xterm-256color
4
- dependencies:
5
- pre:
6
- - sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
7
- - echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
8
- - sudo apt-get update
9
- - sudo apt-get install mono-complete fsharp
10
- test:
11
- override:
12
- - ./build.sh
13
- post:
14
- - mkdir -p $CIRCLE_TEST_REPORTS/junit/
15
- - sed -i '1 s/^\xef\xbb\xbf//' .*/junit-results.xml
16
- - find . -type f -regex ".*/junit-results.xml" -exec cp {} $CIRCLE_TEST_REPORTS/junit/ \;
@@ -1,37 +0,0 @@
1
- import org.scalatest.{Matchers, FlatSpec}
2
-
3
- class PrimeTest extends FlatSpec with Matchers {
4
- it should "calculate 1st prime" in {
5
- Prime.nth(1) should be (Some(2))
6
- }
7
-
8
- it should "calculate 2nd prime" in {
9
- pending
10
- Prime.nth(2) should be (Some(3))
11
- }
12
-
13
- it should "calculate 6th prime" in {
14
- pending
15
- Prime.nth(6) should be (Some(13))
16
- }
17
-
18
- it should "calculate 1000th prime" in {
19
- pending
20
- Prime.nth(1000) should be (Some(7919))
21
- }
22
-
23
- it should "calculate 10000th prime" in {
24
- pending
25
- Prime.nth(10000) should be (Some(104729))
26
- }
27
-
28
- it should "calculate 10001th prime" in {
29
- pending
30
- Prime.nth(10001) should be (Some(104743))
31
- }
32
-
33
- it should "not find zeroth prime" in {
34
- pending
35
- Prime.nth(0) should be (None)
36
- }
37
- }