trackler 2.2.1.24 → 2.2.1.25
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/TOPICS.txt +73 -73
- data/tracks/bash/config.json +82 -73
- data/tracks/bash/config/maintainers.json +9 -9
- data/tracks/bash/exercises/nucleotide-count/README.md +38 -0
- data/tracks/bash/exercises/nucleotide-count/example.sh +38 -0
- data/tracks/bash/exercises/nucleotide-count/nucleotide_count_test.sh +29 -0
- data/tracks/csharp/.travis.yml +9 -2
- data/tracks/csharp/build.cake +7 -34
- data/tracks/csharp/build.ps1 +2 -2
- data/tracks/csharp/build.sh +2 -2
- data/tracks/csharp/docs/GENERATORS.md +102 -0
- data/tracks/csharp/exercises/Exercises.sln +669 -0
- data/tracks/csharp/exercises/queen-attack/Example.cs +14 -1
- data/tracks/csharp/exercises/queen-attack/QueenAttack.cs +6 -1
- data/tracks/csharp/exercises/queen-attack/QueenAttackTest.cs +57 -19
- data/tracks/csharp/generators/Exercises/QueenAttack.cs +85 -0
- data/tracks/d/README.md +3 -2
- data/tracks/d/docs/SNIPPET.txt +7 -0
- data/tracks/d/exercises/crypto-square/.dub/dub.json +6 -0
- data/tracks/d/exercises/crypto-square/example/crypto_square.d +4 -2
- data/tracks/dart/exercises/bob/pubspec.lock +28 -16
- data/tracks/dart/exercises/bob/pubspec.yaml +1 -1
- data/tracks/dart/exercises/bob/test/bob_test.dart +2 -0
- data/tracks/dart/exercises/difference-of-squares/pubspec.lock +28 -16
- data/tracks/dart/exercises/difference-of-squares/pubspec.yaml +1 -1
- data/tracks/dart/exercises/gigasecond/pubspec.lock +28 -16
- data/tracks/dart/exercises/gigasecond/pubspec.yaml +1 -1
- data/tracks/dart/exercises/hamming/pubspec.lock +28 -16
- data/tracks/dart/exercises/hamming/pubspec.yaml +1 -1
- data/tracks/dart/exercises/hello-world/pubspec.lock +28 -16
- data/tracks/dart/exercises/hello-world/pubspec.yaml +1 -1
- data/tracks/dart/exercises/hello-world/test/hello_world_test.dart +13 -15
- data/tracks/dart/exercises/leap/pubspec.lock +28 -16
- data/tracks/dart/exercises/leap/pubspec.yaml +1 -1
- data/tracks/dart/exercises/rna-transcription/pubspec.lock +28 -16
- data/tracks/dart/exercises/rna-transcription/pubspec.yaml +1 -1
- data/tracks/elixir/exercises/pig-latin/example.exs +17 -18
- data/tracks/elixir/exercises/pig-latin/pig_latin_test.exs +16 -1
- data/tracks/fsharp/build.cake +0 -2
- data/tracks/go/exercises/error-handling/.meta/description.md +39 -0
- data/tracks/go/exercises/error-handling/.meta/hints.md +5 -0
- data/tracks/go/exercises/error-handling/.meta/metadata.yml +2 -0
- data/tracks/go/exercises/error-handling/README.md +43 -5
- data/tracks/go/exercises/error-handling/common.go +4 -3
- data/tracks/go/exercises/error-handling/error_handling_test.go +1 -38
- data/tracks/go/exercises/secret-handshake/secret_handshake_test.go +3 -1
- data/tracks/haxe/docs/LEARNING.md +8 -0
- data/tracks/java/.gitignore +2 -1
- data/tracks/java/config.json +337 -491
- data/tracks/java/config/maintainers.json +26 -26
- data/tracks/java/exercises/bob/src/test/java/BobTest.java +7 -1
- data/tracks/java/exercises/rna-transcription/src/example/java/RnaTranscription.java +4 -2
- data/tracks/java/exercises/rna-transcription/src/main/java/RnaTranscription.java +5 -3
- data/tracks/java/exercises/rna-transcription/src/test/java/RnaTranscriptionTest.java +21 -26
- data/tracks/javascript/config.json +662 -664
- data/tracks/javascript/config/maintainers.json +35 -35
- data/tracks/javascript/exercises/simple-cipher/simple-cipher.spec.js +7 -3
- data/tracks/plsql/config.json +52 -66
- data/tracks/plsql/docs/SNIPPET.txt +6 -0
- data/tracks/plsql/exercises/hello-world/example.plsql +20 -0
- data/tracks/plsql/exercises/hello-world/hello_world#.plsql +20 -0
- data/tracks/plsql/exercises/hello-world/ut_hello_world#.plsql +60 -0
- data/tracks/sml/Makefile +5 -0
- data/tracks/sml/bin/generate +3 -4
- data/tracks/sml/config.json +55 -5
- data/tracks/sml/exercises/collatz-conjecture/README.md +63 -0
- data/tracks/sml/exercises/collatz-conjecture/collatz-conjecture.sml +4 -0
- data/tracks/sml/exercises/collatz-conjecture/example.sml +17 -0
- data/tracks/sml/exercises/collatz-conjecture/test.sml +30 -0
- data/tracks/sml/exercises/collatz-conjecture/testlib.sml +159 -0
- data/tracks/sml/exercises/leap/README.md +63 -0
- data/tracks/sml/exercises/leap/example.sml +2 -0
- data/tracks/sml/exercises/leap/leap.sml +2 -0
- data/tracks/sml/exercises/leap/test.sml +24 -0
- data/tracks/sml/exercises/leap/testlib.sml +159 -0
- data/tracks/sml/exercises/rna-transcription/README.md +55 -0
- data/tracks/sml/exercises/rna-transcription/example.sml +20 -0
- data/tracks/sml/exercises/rna-transcription/rna-transcription.sml +2 -0
- data/tracks/sml/exercises/rna-transcription/test.sml +36 -0
- data/tracks/sml/exercises/rna-transcription/testlib.sml +159 -0
- data/tracks/sml/exercises/sum-of-multiples/README.md +48 -0
- data/tracks/sml/exercises/sum-of-multiples/example.sml +8 -0
- data/tracks/sml/exercises/sum-of-multiples/sum-of-multiples.sml +2 -0
- data/tracks/sml/exercises/sum-of-multiples/test.sml +48 -0
- data/tracks/sml/exercises/sum-of-multiples/testlib.sml +159 -0
- data/tracks/sml/exercises/two-fer/README.md +78 -0
- data/tracks/sml/exercises/two-fer/example.sml +1 -0
- data/tracks/sml/exercises/two-fer/test.sml +21 -0
- data/tracks/sml/exercises/two-fer/testlib.sml +159 -0
- data/tracks/sml/exercises/two-fer/two-fer.sml +2 -0
- metadata +43 -5
- data/tracks/csharp/exercises/Exercises.All.sln +0 -1545
- data/tracks/csharp/exercises/Exercises.Default.sln +0 -1503
- data/tracks/csharp/exercises/Exercises.Refactoring.sln +0 -61
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65af944fc2a478b941d75e8dd8779406a7ebf6d8
|
4
|
+
data.tar.gz: 7555503bdd092d6119f5855265a7e64e6bd1eb1f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9077722f8714411a645faa58c3f81f40c6a066b54b3ba31023f7dde2861f5279dfc4e91013e581e021550e47defb807752037f354ddcf3c20925b16f91adf8f0
|
7
|
+
data.tar.gz: 0b7f265cf2eeb5a9c3ed14bf28138681f01cc0e90552f319eefec8de1bcfaf3d8c35e89933b0cf115b21f18bbd8091213be747df6a1ad49e12207f2575189cb4
|
data/lib/trackler/version.rb
CHANGED
@@ -1,80 +1,80 @@
|
|
1
|
-
Basic
|
1
|
+
Basic Concepts
|
2
2
|
--------------
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
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
|
20
|
+
Data Types
|
21
21
|
----------
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
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
|
46
|
+
Problem Areas
|
47
47
|
-------------
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
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
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
75
|
+
-----------------
|
76
|
+
behavior_driven_development
|
77
|
+
functional_programming
|
78
|
+
object_oriented_programming
|
79
|
+
reactive_programming
|
80
|
+
test_driven_development
|
data/tracks/bash/config.json
CHANGED
@@ -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
|
-
|
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
|
-
"
|
54
|
-
"
|
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
|
-
"
|
67
|
-
"
|
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
|
-
"
|
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
|
-
"
|
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
|
-
"
|
120
|
-
"
|
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
|
-
"
|
142
|
-
"
|
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
|
-
"
|
5
|
+
"avatar_url": null,
|
8
6
|
"bio": null,
|
7
|
+
"github_username": "adelcambre",
|
9
8
|
"link_text": null,
|
10
9
|
"link_url": null,
|
11
|
-
"
|
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
|
-
"
|
15
|
+
"avatar_url": null,
|
18
16
|
"bio": null,
|
17
|
+
"github_username": "kotp",
|
19
18
|
"link_text": null,
|
20
19
|
"link_url": null,
|
21
|
-
"
|
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.
|