trackler 2.2.1.101 → 2.2.1.102
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/exercises/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))
|