trackler 2.2.1.101 → 2.2.1.102
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/exercises/protein-translation/description.md +2 -2
- data/problem-specifications/exercises/robot-simulator/canonical-data.json +27 -27
- data/problem-specifications/exercises/run-length-encoding/canonical-data.json +40 -14
- data/problem-specifications/exercises/tournament/canonical-data.json +71 -49
- data/tracks/bash/CONTRIBUTING.md +5 -10
- data/tracks/bash/POLICIES.md +57 -0
- data/tracks/bash/_template/example.sh +20 -1
- data/tracks/bash/exercises/hello-world/hello_world.sh +22 -0
- data/tracks/ceylon/exercises/anagram/source/anagram/AnagramTest.ceylon +1 -9
- data/tracks/ceylon/exercises/rna-transcription/README.md +1 -1
- data/tracks/fsharp/exercises/matrix/Example.fs +16 -13
- data/tracks/fsharp/exercises/matrix/Matrix.fs +2 -4
- data/tracks/fsharp/exercises/matrix/MatrixTest.fs +26 -67
- data/tracks/fsharp/exercises/saddle-points/Example.fs +19 -15
- data/tracks/fsharp/exercises/saddle-points/SaddlePointsTest.fs +31 -31
- data/tracks/fsharp/exercises/sublist/SublistTest.fs +71 -41
- data/tracks/fsharp/exercises/tournament/TournamentTest.fs +115 -48
- data/tracks/fsharp/exercises/transpose/Example.fs +10 -13
- data/tracks/fsharp/exercises/transpose/TransposeTest.fs +150 -219
- data/tracks/fsharp/generators/Generators.fs +55 -0
- data/tracks/go/exercises/clock/clock_test.go +1 -1
- data/tracks/go/exercises/poker/.meta/gen.go +5 -3
- data/tracks/go/exercises/poker/cases_test.go +2 -2
- data/tracks/go/exercises/prime-factors/.meta/gen.go +5 -3
- data/tracks/go/exercises/prime-factors/cases_test.go +2 -2
- data/tracks/go/exercises/rail-fence-cipher/.meta/gen.go +9 -7
- data/tracks/go/exercises/rail-fence-cipher/cases_test.go +2 -2
- data/tracks/go/exercises/raindrops/.meta/gen.go +4 -2
- data/tracks/go/exercises/raindrops/cases_test.go +2 -2
- data/tracks/go/exercises/reverse-string/.meta/gen.go +5 -3
- data/tracks/go/exercises/reverse-string/cases_test.go +2 -2
- data/tracks/go/exercises/rna-transcription/.meta/gen.go +11 -19
- data/tracks/go/exercises/rna-transcription/cases_test.go +20 -18
- data/tracks/go/exercises/rna-transcription/rna_transcription_test.go +3 -2
- data/tracks/go/exercises/run-length-encoding/.meta/gen.go +15 -9
- data/tracks/go/exercises/run-length-encoding/cases_test.go +2 -2
- data/tracks/go/exercises/sieve/.meta/gen.go +5 -3
- data/tracks/go/exercises/sieve/cases_test.go +2 -2
- data/tracks/go/exercises/space-age/.meta/gen.go +7 -5
- data/tracks/go/exercises/space-age/cases_test.go +2 -2
- data/tracks/go/exercises/sublist/.meta/gen.go +7 -5
- data/tracks/go/exercises/sublist/cases_test.go +2 -2
- data/tracks/go/exercises/variable-length-quantity/.meta/gen.go +7 -5
- data/tracks/go/exercises/variable-length-quantity/cases_test.go +2 -2
- data/tracks/haskell/exercises/rna-transcription/README.md +1 -1
- data/tracks/haskell/exercises/rna-transcription/package.yaml +1 -1
- data/tracks/haskell/exercises/rna-transcription/test/Tests.hs +12 -0
- data/tracks/javascript/.travis.yml +1 -1
- data/tracks/ruby/exercises/accumulate/.meta/hints.md +6 -3
- data/tracks/ruby/exercises/accumulate/README.md +6 -3
- metadata +4 -3
- data/tracks/fsharp/exercises/transpose/TrinaryTest.fs +0 -26
@@ -22,8 +22,10 @@ func main() {
|
|
22
22
|
type js struct {
|
23
23
|
Cases []struct {
|
24
24
|
Description string
|
25
|
-
|
26
|
-
|
25
|
+
Input struct {
|
26
|
+
Limit int
|
27
|
+
}
|
28
|
+
Expected []int
|
27
29
|
}
|
28
30
|
}
|
29
31
|
|
@@ -39,7 +41,7 @@ var testCases = []struct {
|
|
39
41
|
}{
|
40
42
|
{{range .J.Cases}}{
|
41
43
|
"{{.Description}}",
|
42
|
-
{{.Limit}},
|
44
|
+
{{.Input.Limit}},
|
43
45
|
{{printf "%#v" .Expected}},
|
44
46
|
},
|
45
47
|
{{end}}}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
package sieve
|
2
2
|
|
3
3
|
// Source: exercism/problem-specifications
|
4
|
-
// Commit:
|
5
|
-
// Problem Specifications Version: 1.
|
4
|
+
// Commit: 8bbb634 sieve: Apply new "input" policy
|
5
|
+
// Problem Specifications Version: 1.1.0
|
6
6
|
|
7
7
|
var testCases = []struct {
|
8
8
|
description string
|
@@ -30,9 +30,11 @@ type js struct {
|
|
30
30
|
type oneCase struct {
|
31
31
|
Description string
|
32
32
|
Property string
|
33
|
-
|
34
|
-
|
35
|
-
|
33
|
+
Input struct {
|
34
|
+
Planet space.Planet
|
35
|
+
Seconds float64
|
36
|
+
}
|
37
|
+
Expected float64
|
36
38
|
}
|
37
39
|
|
38
40
|
// Template to generate test cases.
|
@@ -48,8 +50,8 @@ var testCases = []struct {
|
|
48
50
|
}{ {{range .J.Cases}}
|
49
51
|
{
|
50
52
|
description: {{printf "%q" .Description}},
|
51
|
-
planet: {{printf "%#v" .Planet}},
|
52
|
-
seconds: {{printf "%.0f" .Seconds}},
|
53
|
+
planet: {{printf "%#v" .Input.Planet}},
|
54
|
+
seconds: {{printf "%.0f" .Input.Seconds}},
|
53
55
|
expected: {{printf "%.2f" .Expected}},
|
54
56
|
},{{end}}
|
55
57
|
}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
package space
|
2
2
|
|
3
3
|
// Source: exercism/problem-specifications
|
4
|
-
// Commit:
|
5
|
-
// Problem Specifications Version: 1.
|
4
|
+
// Commit: 8d4df79 space-age: Apply new "input" policy
|
5
|
+
// Problem Specifications Version: 1.1.0
|
6
6
|
|
7
7
|
var testCases = []struct {
|
8
8
|
description string
|
@@ -30,9 +30,11 @@ type js struct {
|
|
30
30
|
type oneCase struct {
|
31
31
|
Description string
|
32
32
|
Property string
|
33
|
-
|
34
|
-
|
35
|
-
|
33
|
+
Input struct {
|
34
|
+
ListOne []int `json:"listOne"`
|
35
|
+
ListTwo []int `json:"listTwo"`
|
36
|
+
}
|
37
|
+
Expected sublist.Relation
|
36
38
|
}
|
37
39
|
|
38
40
|
// Template to generate test cases.
|
@@ -48,8 +50,8 @@ var testCases = []struct {
|
|
48
50
|
}{ {{range .J.Cases}}
|
49
51
|
{
|
50
52
|
description: {{printf "%q" .Description}},
|
51
|
-
listOne: {{printf "%#v" .ListOne}},
|
52
|
-
listTwo: {{printf "%#v" .ListTwo}},
|
53
|
+
listOne: {{printf "%#v" .Input.ListOne}},
|
54
|
+
listTwo: {{printf "%#v" .Input.ListTwo}},
|
53
55
|
expected: {{printf "%#v" .Expected}},
|
54
56
|
},{{end}}
|
55
57
|
}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
package sublist
|
2
2
|
|
3
3
|
// Source: exercism/problem-specifications
|
4
|
-
// Commit:
|
5
|
-
// Problem Specifications Version: 1.
|
4
|
+
// Commit: 1854cd4 sublist: Apply new "input" policy
|
5
|
+
// Problem Specifications Version: 1.1.0
|
6
6
|
|
7
7
|
var testCases = []struct {
|
8
8
|
description string
|
@@ -43,9 +43,11 @@ type TestGroup struct {
|
|
43
43
|
|
44
44
|
type OneCase struct {
|
45
45
|
Description string
|
46
|
-
Property string
|
47
|
-
Input
|
48
|
-
|
46
|
+
Property string // "encode" or "decode"
|
47
|
+
Input struct {
|
48
|
+
Integers []uint32 // supports both []byte and []uint32 in JSON.
|
49
|
+
}
|
50
|
+
Expected []uint32 // supports []byte, []uint32, or null in JSON.
|
49
51
|
}
|
50
52
|
|
51
53
|
// PropertyMatch returns true when given test case c has .Property field matching property;
|
@@ -85,7 +87,7 @@ var encodeTestCases = []struct {
|
|
85
87
|
}{ {{range .J.Groups}} {{range .Cases}}
|
86
88
|
{{if .PropertyMatch "encode"}} {
|
87
89
|
{{printf "%q" .Description}},
|
88
|
-
{{printf "%#v" .Input }},
|
90
|
+
{{printf "%#v" .Input.Integers }},
|
89
91
|
{{byteSlice .Expected | printf "%#v" }},
|
90
92
|
},{{- end}}{{end}}{{end}}
|
91
93
|
}
|
@@ -98,7 +100,7 @@ var decodeTestCases = []struct {
|
|
98
100
|
}{ {{range .J.Groups}} {{range .Cases}}
|
99
101
|
{{if .PropertyMatch "decode"}} {
|
100
102
|
{{printf "%q" .Description}},
|
101
|
-
{{byteSlice .Input | printf "%#v" }},
|
103
|
+
{{byteSlice .Input.Integers | printf "%#v" }},
|
102
104
|
{{printf "%#v" .Expected }},
|
103
105
|
},{{- end}}{{end}}{{end}}
|
104
106
|
}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
package variablelengthquantity
|
2
2
|
|
3
3
|
// Source: exercism/problem-specifications
|
4
|
-
// Commit:
|
5
|
-
// Problem Specifications Version: 1.
|
4
|
+
// Commit: 48dc5e6 variable-length-quantity: Apply new "input" policy
|
5
|
+
// Problem Specifications Version: 1.1.0
|
6
6
|
|
7
7
|
// Encode a series of integers, producing a series of bytes.
|
8
8
|
var encodeTestCases = []struct {
|
@@ -73,7 +73,7 @@ one, head over there and create an issue. We'll do our best to help you!
|
|
73
73
|
|
74
74
|
## Source
|
75
75
|
|
76
|
-
|
76
|
+
Hyperphysics [http://hyperphysics.phy-astr.gsu.edu/hbase/Organic/transcription.html](http://hyperphysics.phy-astr.gsu.edu/hbase/Organic/transcription.html)
|
77
77
|
|
78
78
|
## Submitting Incomplete Solutions
|
79
79
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -40,4 +40,16 @@ cases = [ Case { description = "RNA complement of cytosine is guanine"
|
|
40
40
|
, dna = "ACGTGGTCTTAA"
|
41
41
|
, expected = Just "UGCACCAGAAUU"
|
42
42
|
}
|
43
|
+
, Case { description = "correctly handles invalid input (RNA instead of DNA)"
|
44
|
+
, dna = "U"
|
45
|
+
, expected = Nothing
|
46
|
+
}
|
47
|
+
, Case { description = "correctly handles completely invalid DNA input"
|
48
|
+
, dna = "XXX"
|
49
|
+
, expected = Nothing
|
50
|
+
}
|
51
|
+
, Case { description = "correctly handles partially invalid DNA input"
|
52
|
+
, dna = "ACGTXXXCTTAA"
|
53
|
+
, expected = Nothing
|
54
|
+
}
|
43
55
|
]
|
@@ -5,9 +5,12 @@ It is typical to call [#to_enum](http://ruby-doc.org/core-2.3.1/Object.html#meth
|
|
5
5
|
Here is an additional test you could add:
|
6
6
|
|
7
7
|
```ruby
|
8
|
-
def
|
8
|
+
def test_accumulate_when_block_is_deferred
|
9
9
|
skip
|
10
|
-
|
11
|
-
|
10
|
+
accumulate_enumerator = [1, 2, 3].accumulate
|
11
|
+
accumulated_result = accumulate_enumerator.each do |number|
|
12
|
+
number * number
|
13
|
+
end
|
14
|
+
assert_equal [1, 4, 9], accumulated_result
|
12
15
|
end
|
13
16
|
```
|
@@ -32,10 +32,13 @@ It is typical to call [#to_enum](http://ruby-doc.org/core-2.3.1/Object.html#meth
|
|
32
32
|
Here is an additional test you could add:
|
33
33
|
|
34
34
|
```ruby
|
35
|
-
def
|
35
|
+
def test_accumulate_when_block_is_deferred
|
36
36
|
skip
|
37
|
-
|
38
|
-
|
37
|
+
accumulate_enumerator = [1, 2, 3].accumulate
|
38
|
+
accumulated_result = accumulate_enumerator.each do |number|
|
39
|
+
number * number
|
40
|
+
end
|
41
|
+
assert_equal [1, 4, 9], accumulated_result
|
39
42
|
end
|
40
43
|
```
|
41
44
|
|
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.
|
4
|
+
version: 2.2.1.102
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Katrina Owen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -594,6 +594,7 @@ files:
|
|
594
594
|
- tracks/bash/.travis.yml
|
595
595
|
- tracks/bash/CONTRIBUTING.md
|
596
596
|
- tracks/bash/LICENSE
|
597
|
+
- tracks/bash/POLICIES.md
|
597
598
|
- tracks/bash/README.md
|
598
599
|
- tracks/bash/_template/.meta/.keep
|
599
600
|
- tracks/bash/_template/README.md
|
@@ -648,6 +649,7 @@ files:
|
|
648
649
|
- tracks/bash/exercises/hello-world/.meta/hints.md
|
649
650
|
- tracks/bash/exercises/hello-world/README.md
|
650
651
|
- tracks/bash/exercises/hello-world/example.sh
|
652
|
+
- tracks/bash/exercises/hello-world/hello_world.sh
|
651
653
|
- tracks/bash/exercises/hello-world/hello_world_test.sh
|
652
654
|
- tracks/bash/exercises/leap/.meta/version
|
653
655
|
- tracks/bash/exercises/leap/README.md
|
@@ -5706,7 +5708,6 @@ files:
|
|
5706
5708
|
- tracks/fsharp/exercises/transpose/Transpose.fs
|
5707
5709
|
- tracks/fsharp/exercises/transpose/Transpose.fsproj
|
5708
5710
|
- tracks/fsharp/exercises/transpose/TransposeTest.fs
|
5709
|
-
- tracks/fsharp/exercises/transpose/TrinaryTest.fs
|
5710
5711
|
- tracks/fsharp/exercises/tree-building/Example.fs
|
5711
5712
|
- tracks/fsharp/exercises/tree-building/Program.fs
|
5712
5713
|
- tracks/fsharp/exercises/tree-building/README.md
|
@@ -1,26 +0,0 @@
|
|
1
|
-
// This file was created manually and its version is 1.0.0.
|
2
|
-
|
3
|
-
module TrinaryTest
|
4
|
-
|
5
|
-
open NUnit.Framework
|
6
|
-
open Trinary
|
7
|
-
|
8
|
-
[<TestCase("1", ExpectedResult = 1)>]
|
9
|
-
[<TestCase("2", ExpectedResult = 2, Ignore = "Remove to run test case")>]
|
10
|
-
[<TestCase("10", ExpectedResult = 3, Ignore = "Remove to run test case")>]
|
11
|
-
[<TestCase("11", ExpectedResult = 4, Ignore = "Remove to run test case")>]
|
12
|
-
[<TestCase("100", ExpectedResult = 9, Ignore = "Remove to run test case")>]
|
13
|
-
[<TestCase("112", ExpectedResult = 14, Ignore = "Remove to run test case")>]
|
14
|
-
[<TestCase("222", ExpectedResult = 26, Ignore = "Remove to run test case")>]
|
15
|
-
[<TestCase("1122000120", ExpectedResult = 32091, Ignore = "Remove to run test case")>]
|
16
|
-
let ``Binary converts to decimal`` input =
|
17
|
-
toDecimal input
|
18
|
-
|
19
|
-
[<TestCase("carrot", Ignore = "Remove to run test case")>]
|
20
|
-
[<TestCase("3", Ignore = "Remove to run test case")>]
|
21
|
-
[<TestCase("6", Ignore = "Remove to run test case")>]
|
22
|
-
[<TestCase("9", Ignore = "Remove to run test case")>]
|
23
|
-
[<TestCase("124578", Ignore = "Remove to run test case")>]
|
24
|
-
[<TestCase("abc1z", Ignore = "Remove to run test case")>]
|
25
|
-
let ``Invalid binary is decimal 0`` input =
|
26
|
-
Assert.That(toDecimal input, Is.EqualTo(0))
|