trackler 2.2.1.24 → 2.2.1.25

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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/TOPICS.txt +73 -73
  4. data/tracks/bash/config.json +82 -73
  5. data/tracks/bash/config/maintainers.json +9 -9
  6. data/tracks/bash/exercises/nucleotide-count/README.md +38 -0
  7. data/tracks/bash/exercises/nucleotide-count/example.sh +38 -0
  8. data/tracks/bash/exercises/nucleotide-count/nucleotide_count_test.sh +29 -0
  9. data/tracks/csharp/.travis.yml +9 -2
  10. data/tracks/csharp/build.cake +7 -34
  11. data/tracks/csharp/build.ps1 +2 -2
  12. data/tracks/csharp/build.sh +2 -2
  13. data/tracks/csharp/docs/GENERATORS.md +102 -0
  14. data/tracks/csharp/exercises/Exercises.sln +669 -0
  15. data/tracks/csharp/exercises/queen-attack/Example.cs +14 -1
  16. data/tracks/csharp/exercises/queen-attack/QueenAttack.cs +6 -1
  17. data/tracks/csharp/exercises/queen-attack/QueenAttackTest.cs +57 -19
  18. data/tracks/csharp/generators/Exercises/QueenAttack.cs +85 -0
  19. data/tracks/d/README.md +3 -2
  20. data/tracks/d/docs/SNIPPET.txt +7 -0
  21. data/tracks/d/exercises/crypto-square/.dub/dub.json +6 -0
  22. data/tracks/d/exercises/crypto-square/example/crypto_square.d +4 -2
  23. data/tracks/dart/exercises/bob/pubspec.lock +28 -16
  24. data/tracks/dart/exercises/bob/pubspec.yaml +1 -1
  25. data/tracks/dart/exercises/bob/test/bob_test.dart +2 -0
  26. data/tracks/dart/exercises/difference-of-squares/pubspec.lock +28 -16
  27. data/tracks/dart/exercises/difference-of-squares/pubspec.yaml +1 -1
  28. data/tracks/dart/exercises/gigasecond/pubspec.lock +28 -16
  29. data/tracks/dart/exercises/gigasecond/pubspec.yaml +1 -1
  30. data/tracks/dart/exercises/hamming/pubspec.lock +28 -16
  31. data/tracks/dart/exercises/hamming/pubspec.yaml +1 -1
  32. data/tracks/dart/exercises/hello-world/pubspec.lock +28 -16
  33. data/tracks/dart/exercises/hello-world/pubspec.yaml +1 -1
  34. data/tracks/dart/exercises/hello-world/test/hello_world_test.dart +13 -15
  35. data/tracks/dart/exercises/leap/pubspec.lock +28 -16
  36. data/tracks/dart/exercises/leap/pubspec.yaml +1 -1
  37. data/tracks/dart/exercises/rna-transcription/pubspec.lock +28 -16
  38. data/tracks/dart/exercises/rna-transcription/pubspec.yaml +1 -1
  39. data/tracks/elixir/exercises/pig-latin/example.exs +17 -18
  40. data/tracks/elixir/exercises/pig-latin/pig_latin_test.exs +16 -1
  41. data/tracks/fsharp/build.cake +0 -2
  42. data/tracks/go/exercises/error-handling/.meta/description.md +39 -0
  43. data/tracks/go/exercises/error-handling/.meta/hints.md +5 -0
  44. data/tracks/go/exercises/error-handling/.meta/metadata.yml +2 -0
  45. data/tracks/go/exercises/error-handling/README.md +43 -5
  46. data/tracks/go/exercises/error-handling/common.go +4 -3
  47. data/tracks/go/exercises/error-handling/error_handling_test.go +1 -38
  48. data/tracks/go/exercises/secret-handshake/secret_handshake_test.go +3 -1
  49. data/tracks/haxe/docs/LEARNING.md +8 -0
  50. data/tracks/java/.gitignore +2 -1
  51. data/tracks/java/config.json +337 -491
  52. data/tracks/java/config/maintainers.json +26 -26
  53. data/tracks/java/exercises/bob/src/test/java/BobTest.java +7 -1
  54. data/tracks/java/exercises/rna-transcription/src/example/java/RnaTranscription.java +4 -2
  55. data/tracks/java/exercises/rna-transcription/src/main/java/RnaTranscription.java +5 -3
  56. data/tracks/java/exercises/rna-transcription/src/test/java/RnaTranscriptionTest.java +21 -26
  57. data/tracks/javascript/config.json +662 -664
  58. data/tracks/javascript/config/maintainers.json +35 -35
  59. data/tracks/javascript/exercises/simple-cipher/simple-cipher.spec.js +7 -3
  60. data/tracks/plsql/config.json +52 -66
  61. data/tracks/plsql/docs/SNIPPET.txt +6 -0
  62. data/tracks/plsql/exercises/hello-world/example.plsql +20 -0
  63. data/tracks/plsql/exercises/hello-world/hello_world#.plsql +20 -0
  64. data/tracks/plsql/exercises/hello-world/ut_hello_world#.plsql +60 -0
  65. data/tracks/sml/Makefile +5 -0
  66. data/tracks/sml/bin/generate +3 -4
  67. data/tracks/sml/config.json +55 -5
  68. data/tracks/sml/exercises/collatz-conjecture/README.md +63 -0
  69. data/tracks/sml/exercises/collatz-conjecture/collatz-conjecture.sml +4 -0
  70. data/tracks/sml/exercises/collatz-conjecture/example.sml +17 -0
  71. data/tracks/sml/exercises/collatz-conjecture/test.sml +30 -0
  72. data/tracks/sml/exercises/collatz-conjecture/testlib.sml +159 -0
  73. data/tracks/sml/exercises/leap/README.md +63 -0
  74. data/tracks/sml/exercises/leap/example.sml +2 -0
  75. data/tracks/sml/exercises/leap/leap.sml +2 -0
  76. data/tracks/sml/exercises/leap/test.sml +24 -0
  77. data/tracks/sml/exercises/leap/testlib.sml +159 -0
  78. data/tracks/sml/exercises/rna-transcription/README.md +55 -0
  79. data/tracks/sml/exercises/rna-transcription/example.sml +20 -0
  80. data/tracks/sml/exercises/rna-transcription/rna-transcription.sml +2 -0
  81. data/tracks/sml/exercises/rna-transcription/test.sml +36 -0
  82. data/tracks/sml/exercises/rna-transcription/testlib.sml +159 -0
  83. data/tracks/sml/exercises/sum-of-multiples/README.md +48 -0
  84. data/tracks/sml/exercises/sum-of-multiples/example.sml +8 -0
  85. data/tracks/sml/exercises/sum-of-multiples/sum-of-multiples.sml +2 -0
  86. data/tracks/sml/exercises/sum-of-multiples/test.sml +48 -0
  87. data/tracks/sml/exercises/sum-of-multiples/testlib.sml +159 -0
  88. data/tracks/sml/exercises/two-fer/README.md +78 -0
  89. data/tracks/sml/exercises/two-fer/example.sml +1 -0
  90. data/tracks/sml/exercises/two-fer/test.sml +21 -0
  91. data/tracks/sml/exercises/two-fer/testlib.sml +159 -0
  92. data/tracks/sml/exercises/two-fer/two-fer.sml +2 -0
  93. metadata +43 -5
  94. data/tracks/csharp/exercises/Exercises.All.sln +0 -1545
  95. data/tracks/csharp/exercises/Exercises.Default.sln +0 -1503
  96. data/tracks/csharp/exercises/Exercises.Refactoring.sln +0 -61
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e2e283263dcb2b1b96c11ff97fa2844e01c19df1
4
- data.tar.gz: a2ebd562fbf6a39ada3dcea45990ab8fedbec803
3
+ metadata.gz: 65af944fc2a478b941d75e8dd8779406a7ebf6d8
4
+ data.tar.gz: 7555503bdd092d6119f5855265a7e64e6bd1eb1f
5
5
  SHA512:
6
- metadata.gz: 18426e7ef2149223d71a08d059a09d6210218ed2ec2d267cc734dd0a1938228b8109d040c9cd66d6110bcd1fbfd92c7d8e6e16227a4194f3823bae9b8fd87195
7
- data.tar.gz: b3165e421be7d3de9cab754e295f539d8a1e7c86941e7cddfd6735847391922dadd6d0aa59d541b650c32479eb117deff4a8083eda304c21227fa45d237965da
6
+ metadata.gz: 9077722f8714411a645faa58c3f81f40c6a066b54b3ba31023f7dde2861f5279dfc4e91013e581e021550e47defb807752037f354ddcf3c20925b16f91adf8f0
7
+ data.tar.gz: 0b7f265cf2eeb5a9c3ed14bf28138681f01cc0e90552f319eefec8de1bcfaf3d8c35e89933b0cf115b21f18bbd8091213be747df6a1ad49e12207f2575189cb4
@@ -1,3 +1,3 @@
1
1
  module Trackler
2
- VERSION = "2.2.1.24"
2
+ VERSION = "2.2.1.25"
3
3
  end
@@ -1,80 +1,80 @@
1
- Basic concepts
1
+ Basic Concepts
2
2
  --------------
3
- Abstract classes
4
- Callbacks
5
- Conditionals
6
- Events
7
- Equality
8
- Exception handling
9
- Generics
10
- Inheritance
11
- Interfaces
12
- Loops
13
- Pattern matching
14
- Polymorphism
15
- Recursion
16
- Threading
17
- Type conversion
18
- Variables
3
+ abstract_classes
4
+ callbacks
5
+ conditionals
6
+ events
7
+ equality
8
+ exception_handling
9
+ generics
10
+ inheritance
11
+ interfaces
12
+ loops
13
+ pattern_matching
14
+ polymorphism
15
+ recursion
16
+ threading
17
+ type_conversion
18
+ variables
19
19
 
20
- Data types
20
+ Data Types
21
21
  ----------
22
- Arrays
23
- Booleans
24
- Classes
25
- Dates
26
- Discriminated unions
27
- Enumerations
28
- Floating-point numbers
29
- Graphs
30
- Integers
31
- Lists
32
- Maps
33
- Matrices
34
- Optional values
35
- Queues
36
- Records
37
- Sequences
38
- Sets
39
- Stacks
40
- Strings
41
- Structs
42
- Time
43
- Trees
44
- Tuples
22
+ arrays
23
+ booleans
24
+ classes
25
+ dates
26
+ discriminated_unions
27
+ enumerations
28
+ floating_point_numbers
29
+ graphs
30
+ integers
31
+ lists
32
+ maps
33
+ matrices
34
+ optional_values
35
+ queues
36
+ records
37
+ sequences
38
+ sets
39
+ stacks
40
+ strings
41
+ structs
42
+ time
43
+ trees
44
+ tuples
45
45
 
46
- Problem areas
46
+ Problem Areas
47
47
  -------------
48
- Algorithms
49
- Bitwise operations
50
- Concurrency
51
- Cryptography
52
- Domain-specific languages
53
- Files
54
- Filtering
55
- Games
56
- Globalization
57
- Logic
58
- Mathematics
59
- Memory Management
60
- Networking
61
- Parallellism
62
- Parsing
63
- Pattern recognition
64
- Performance
65
- Randomness
66
- Refactoring
67
- Regular Expressions
68
- Searching
69
- Security
70
- Sorting
71
- Text formatting
72
- Transforming
48
+ algorithms
49
+ bitwise_operations
50
+ concurrency
51
+ cryptography
52
+ domain_specific_languages
53
+ files
54
+ filtering
55
+ games
56
+ globalization
57
+ logic
58
+ mathematics
59
+ memory_management
60
+ networking
61
+ parallellism
62
+ parsing
63
+ pattern_recognition
64
+ performance
65
+ randomness
66
+ refactoring
67
+ regular_expressions
68
+ searching
69
+ security
70
+ sorting
71
+ text_formatting
72
+ transforming
73
73
 
74
74
  Programming Style
75
- ---
76
- Behavior-driven development
77
- Functional programming
78
- Object-oriented programming
79
- Reactive programming
80
- Test-driven development
75
+ -----------------
76
+ behavior_driven_development
77
+ functional_programming
78
+ object_oriented_programming
79
+ reactive_programming
80
+ test_driven_development
@@ -1,159 +1,168 @@
1
1
  {
2
- "language": "Bash",
3
- "checklist_issue": 4,
4
2
  "active": false,
3
+ "checklist_issue": 4,
5
4
  "exercises": [
6
5
  {
7
- "uuid": "4e2533dd-3af5-400b-869d-78140764d533",
8
- "slug": "hello-world",
9
6
  "core": true,
10
7
  "difficulty": 1,
8
+ "slug": "hello-world",
11
9
  "topics": [
12
10
  "stdout"
13
- ]
11
+ ],
12
+ "uuid": "4e2533dd-3af5-400b-869d-78140764d533"
14
13
  },
15
14
  {
16
- "uuid": "176c1a86-28b1-4848-9f87-bd6ae10db6ba",
17
- "slug": "gigasecond",
18
15
  "core": false,
19
- "unlocked_by": null,
20
16
  "difficulty": 1,
17
+ "slug": "gigasecond",
21
18
  "topics": [
22
19
  "dates"
23
- ]
20
+ ],
21
+ "unlocked_by": null,
22
+ "uuid": "176c1a86-28b1-4848-9f87-bd6ae10db6ba"
24
23
  },
25
24
  {
26
- "uuid": "9ac0b041-a7aa-4b0c-952a-d38d35e2cd65",
27
- "slug": "bob",
28
25
  "core": false,
29
- "unlocked_by": null,
30
26
  "difficulty": 1,
27
+ "slug": "bob",
31
28
  "topics": [
32
29
  "control_flow_conditionals"
33
- ]
30
+ ],
31
+ "unlocked_by": null,
32
+ "uuid": "9ac0b041-a7aa-4b0c-952a-d38d35e2cd65"
34
33
  },
35
34
  {
36
- "uuid": "e24451fd-761d-4d20-81d9-e470486ec44a",
37
- "slug": "leap",
38
35
  "core": true,
39
36
  "difficulty": 1,
37
+ "slug": "leap",
40
38
  "topics": [
39
+ "boolean_logic",
41
40
  "control_flow_conditionals",
42
- "input_validation",
43
- "boolean_logic"
44
- ]
41
+ "input_validation"
42
+ ],
43
+ "uuid": "e24451fd-761d-4d20-81d9-e470486ec44a"
45
44
  },
46
45
  {
47
- "uuid": "1a9c8d65-43ee-435e-8c55-9a45c14a71fb",
48
- "slug": "raindrops",
49
46
  "core": false,
50
- "unlocked_by": "leap",
51
47
  "difficulty": 1,
48
+ "slug": "raindrops",
52
49
  "topics": [
53
- "input_validation",
54
- "control_flow_conditionals"
55
- ]
50
+ "control_flow_conditionals",
51
+ "input_validation"
52
+ ],
53
+ "unlocked_by": "leap",
54
+ "uuid": "1a9c8d65-43ee-435e-8c55-9a45c14a71fb"
56
55
  },
57
56
  {
58
- "uuid": "ca5139b4-8b2f-44ea-8d83-0b8ca7674436",
59
- "slug": "difference-of-squares",
60
57
  "core": false,
61
- "unlocked_by": "leap",
62
58
  "difficulty": 1,
59
+ "slug": "difference-of-squares",
63
60
  "topics": [
64
61
  "control_flow_conditionals",
65
62
  "control_flow_loops",
66
- "string_transformation",
67
- "string_comparison"
68
- ]
63
+ "string_comparison",
64
+ "string_transformation"
65
+ ],
66
+ "unlocked_by": "leap",
67
+ "uuid": "ca5139b4-8b2f-44ea-8d83-0b8ca7674436"
69
68
  },
70
69
  {
71
- "uuid": "a7e2018a-c454-4fe0-ad35-229304306648",
72
- "slug": "pangram",
73
70
  "core": true,
74
71
  "difficulty": 2,
72
+ "slug": "pangram",
75
73
  "topics": [
76
74
  "string_transformation"
77
- ]
75
+ ],
76
+ "uuid": "a7e2018a-c454-4fe0-ad35-229304306648"
78
77
  },
79
78
  {
80
- "uuid": "33d9eb48-5958-4e98-afc0-8cff89577c86",
81
- "slug": "anagram",
82
79
  "core": false,
83
- "unlocked_by": "pangram",
84
80
  "difficulty": 2,
81
+ "slug": "anagram",
85
82
  "topics": [
86
83
  "control_flow_loops",
87
84
  "string_transformation"
88
- ]
85
+ ],
86
+ "unlocked_by": "pangram",
87
+ "uuid": "33d9eb48-5958-4e98-afc0-8cff89577c86"
89
88
  },
90
89
  {
91
- "uuid": "68103f44-b442-48e6-b2b5-09001f73e926",
92
- "slug": "hamming",
93
90
  "core": false,
94
- "unlocked_by": "pangram",
95
91
  "difficulty": 2,
92
+ "slug": "hamming",
96
93
  "topics": [
97
94
  "control_flow_loops",
98
95
  "string_comparison"
99
- ]
96
+ ],
97
+ "unlocked_by": "pangram",
98
+ "uuid": "68103f44-b442-48e6-b2b5-09001f73e926"
100
99
  },
101
100
  {
102
- "uuid": "8a62e53e-59c2-42d5-96e5-a0f8f9b5d177",
101
+ "core": false,
102
+ "difficulty": 2,
103
103
  "slug": "rna-transcription",
104
+ "topics": [
105
+ "associative_arrays",
106
+ "control_flow_loops"
107
+ ],
108
+ "unlocked_by": "pangram",
109
+ "uuid": "8a62e53e-59c2-42d5-96e5-a0f8f9b5d177"
110
+ },
111
+ {
104
112
  "core": false,
113
+ "difficulty": 2,
114
+ "slug": "two-fer",
115
+ "topics": [
116
+ "control_flow_conditionals",
117
+ "text_formatting"
118
+ ],
105
119
  "unlocked_by": "pangram",
120
+ "uuid": "0cfac255-6871-4588-a16b-98f7692bfdbe"
121
+ },
122
+ {
123
+ "core": false,
106
124
  "difficulty": 2,
125
+ "slug": "nucleotide-count",
107
126
  "topics": [
108
127
  "control_flow_loops",
109
- "associative_arrays"
110
- ]
128
+ "string_comparison"
129
+ ],
130
+ "unlocked-by": "panagram",
131
+ "uuid": "28f848c8-56ef-4147-a401-f1617c147b4b"
111
132
  },
112
133
  {
113
- "uuid": "0cfac255-6871-4588-a16b-98f7692bfdbe",
114
- "slug": "two-fer",
115
134
  "core": false,
116
- "unlocked_by": "pangram",
117
135
  "difficulty": 2,
136
+ "slug": "word-count",
118
137
  "topics": [
119
- "text_formatting",
120
- "control_flow_conditionals"
121
- ]
138
+ "control_flow_loops",
139
+ "string_comparison"
140
+ ],
141
+ "unlocked_by": "pangram",
142
+ "uuid": "51bd6542-408b-4a73-8343-1c4d50db5315"
122
143
  },
123
144
  {
124
- "uuid": "51bd6542-408b-4a73-8343-1c4d50db5315",
125
- "slug": "word-count",
126
- "core": false,
127
- "unlocked_by": "pangram",
128
- "difficulty": 2,
129
- "topics": [
130
- "control_flow_loops",
131
- "string_comparison"
132
- ]
133
- },
134
- {
135
- "uuid": "9f9a1a49-472f-4a39-aa28-6aa17eeebdc7",
136
- "slug": "phone-number",
137
145
  "core": false,
138
- "unlocked_by": "pangram",
139
146
  "difficulty": 2,
147
+ "slug": "phone-number",
140
148
  "topics": [
141
- "string_comparison",
142
- "control_flow_conditionals"
143
- ]
149
+ "control_flow_conditionals",
150
+ "string_comparison"
151
+ ],
152
+ "unlocked_by": "pangram",
153
+ "uuid": "9f9a1a49-472f-4a39-aa28-6aa17eeebdc7"
144
154
  },
145
155
  {
146
- "uudi": "b2b4ee35-108f-45ce-b294-c10d332e5579",
147
- "slug": "error-handling",
148
156
  "core": true,
149
157
  "difficulty": 1,
158
+ "slug": "error-handling",
150
159
  "topics": [
151
160
  "error_handling",
152
161
  "input_validation"
153
- ]
162
+ ],
163
+ "uuid": "b2b4ee35-108f-45ce-b294-c10d332e5579"
154
164
  }
155
165
  ],
156
- "foregone": [
157
-
158
- ]
166
+ "foregone": [],
167
+ "language": "Bash"
159
168
  }
@@ -1,24 +1,24 @@
1
1
  {
2
2
  "maintainers": [
3
3
  {
4
- "github_username": "adelcambre",
5
- "show_on_website": false,
6
4
  "alumnus": false,
7
- "name": null,
5
+ "avatar_url": null,
8
6
  "bio": null,
7
+ "github_username": "adelcambre",
9
8
  "link_text": null,
10
9
  "link_url": null,
11
- "avatar_url": null
10
+ "name": null,
11
+ "show_on_website": false
12
12
  },
13
13
  {
14
- "github_username": "kotp",
15
- "show_on_website": false,
16
14
  "alumnus": false,
17
- "name": null,
15
+ "avatar_url": null,
18
16
  "bio": null,
17
+ "github_username": "kotp",
19
18
  "link_text": null,
20
19
  "link_url": null,
21
- "avatar_url": null
20
+ "name": null,
21
+ "show_on_website": false
22
22
  }
23
23
  ]
24
- }
24
+ }
@@ -0,0 +1,38 @@
1
+ # Nucleotide Count
2
+
3
+ Given a DNA string, compute how many times each nucleotide occurs in the string.
4
+
5
+ DNA is represented by an alphabet of the following symbols: 'A', 'C',
6
+ 'G', and 'T'.
7
+
8
+ Each symbol represents a nucleotide, which is a fancy name for the
9
+ particular molecules that happen to make up a large part of DNA.
10
+
11
+ Shortest intro to biochemistry EVAR:
12
+
13
+ - twigs are to birds nests as
14
+ - nucleotides are to DNA and RNA as
15
+ - amino acids are to proteins as
16
+ - sugar is to starch as
17
+ - oh crap lipids
18
+
19
+ I'm not going to talk about lipids because they're crazy complex.
20
+
21
+ So back to nucleotides.
22
+
23
+ DNA contains four types of them: adenine (`A`), cytosine (`C`), guanine
24
+ (`G`), and thymine (`T`).
25
+
26
+ RNA contains a slightly different set of nucleotides, but we don't care
27
+ about that for now.
28
+
29
+ Run the tests with:
30
+
31
+ bats whatever_test.sh
32
+
33
+ ## Source
34
+
35
+ The Calculating DNA Nucleotides_problem at Rosalind [http://rosalind.info/problems/dna/](http://rosalind.info/problems/dna/)
36
+
37
+ ## Submitting Incomplete Solutions
38
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.