Skip to content

Commit 0a8a760

Browse files
Add tests.toml file for all exercises with canonical data (#95)
Bring in line with exercism/problem-specifications#1674
1 parent 5d0ca83 commit 0a8a760

File tree

8 files changed

+275
-0
lines changed

8 files changed

+275
-0
lines changed

exercises/anagram/.meta/tests.toml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
[canonical-tests]
2+
3+
# no matches
4+
"dd40c4d2-3c8b-44e5-992a-f42b393ec373" = true
5+
6+
# detects two anagrams
7+
"b3cca662-f50a-489e-ae10-ab8290a09bdc" = true
8+
9+
# does not detect anagram subsets
10+
"a27558ee-9ba0-4552-96b1-ecf665b06556" = true
11+
12+
# detects anagram
13+
"64cd4584-fc15-4781-b633-3d814c4941a4" = true
14+
15+
# detects three anagrams
16+
"99c91beb-838f-4ccd-b123-935139917283" = true
17+
18+
# detects multiple anagrams with different case
19+
"78487770-e258-4e1f-a646-8ece10950d90" = true
20+
21+
# does not detect non-anagrams with identical checksum
22+
"1d0ab8aa-362f-49b7-9902-3d0c668d557b" = true
23+
24+
# detects anagrams case-insensitively
25+
"9e632c0b-c0b1-4804-8cc1-e295dea6d8a8" = true
26+
27+
# detects anagrams using case-insensitive subject
28+
"b248e49f-0905-48d2-9c8d-bd02d8c3e392" = true
29+
30+
# detects anagrams using case-insensitive possible matches
31+
"f367325c-78ec-411c-be76-e79047f4bd54" = true
32+
33+
# does not detect an anagram if the original word is repeated
34+
"7cc195ad-e3c7-44ee-9fd2-d3c344806a2c" = true
35+
36+
# anagrams must use all letters exactly once
37+
"9878a1c9-d6ea-4235-ae51-3ea2befd6842" = true
38+
39+
# words are not anagrams of themselves (case-insensitive)
40+
"85757361-4535-45fd-ac0e-3810d40debc1" = true
41+
42+
# words other than themselves can be anagrams
43+
"a0705568-628c-4b55-9798-82e4acde51ca" = true

exercises/hamming/.meta/tests.toml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
[canonical-tests]
2+
3+
# empty strands
4+
"f6dcb64f-03b0-4b60-81b1-3c9dbf47e887" = true
5+
6+
# single letter identical strands
7+
"54681314-eee2-439a-9db0-b0636c656156" = true
8+
9+
# single letter different strands
10+
"294479a3-a4c8-478f-8d63-6209815a827b" = true
11+
12+
# long identical strands
13+
"9aed5f34-5693-4344-9b31-40c692fb5592" = true
14+
15+
# long different strands
16+
"cd2273a5-c576-46c8-a52b-dee251c3e6e5" = true
17+
18+
# disallow first strand longer
19+
"919f8ef0-b767-4d1b-8516-6379d07fcb28" = true
20+
21+
# disallow second strand longer
22+
"8a2d4ed0-ead5-4fdd-924d-27c4cf56e60e" = true
23+
24+
# disallow left empty strand
25+
"5dce058b-28d4-4ca7-aa64-adfe4e17784c" = true
26+
27+
# disallow right empty strand
28+
"38826d4b-16fb-4639-ac3e-ba027dec8b5f" = true
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
[canonical-tests]
2+
3+
# finds the largest product if span equals length
4+
"7c82f8b7-e347-48ee-8a22-f672323324d4" = true
5+
6+
# can find the largest product of 2 with numbers in order
7+
"88523f65-21ba-4458-a76a-b4aaf6e4cb5e" = true
8+
9+
# can find the largest product of 2
10+
"f1376b48-1157-419d-92c2-1d7e36a70b8a" = true
11+
12+
# can find the largest product of 3 with numbers in order
13+
"46356a67-7e02-489e-8fea-321c2fa7b4a4" = true
14+
15+
# can find the largest product of 3
16+
"a2dcb54b-2b8f-4993-92dd-5ce56dece64a" = true
17+
18+
# can find the largest product of 5 with numbers in order
19+
"673210a3-33cd-4708-940b-c482d7a88f9d" = true
20+
21+
# can get the largest product of a big number
22+
"02acd5a6-3bbf-46df-8282-8b313a80a7c9" = true
23+
24+
# reports zero if the only digits are zero
25+
"76dcc407-21e9-424c-a98e-609f269622b5" = true
26+
27+
# reports zero if all spans include zero
28+
"6ef0df9f-52d4-4a5d-b210-f6fae5f20e19" = true
29+
30+
# rejects span longer than string length
31+
"5d81aaf7-4f67-4125-bf33-11493cc7eab7" = true
32+
33+
# reports 1 for empty string and empty product (0 span)
34+
"06bc8b90-0c51-4c54-ac22-3ec3893a079e" = true
35+
36+
# reports 1 for nonempty string and empty product (0 span)
37+
"3ec0d92e-f2e2-4090-a380-70afee02f4c0" = true
38+
39+
# rejects empty string and nonzero span
40+
"6d96c691-4374-4404-80ee-2ea8f3613dd4" = true
41+
42+
# rejects invalid character in digits
43+
"7a38f2d6-3c35-45f6-8d6f-12e6e32d4d74" = true
44+
45+
# rejects negative span
46+
"5fe3c0e5-a945-49f2-b584-f0814b4dd1ef" = true

exercises/leap/.meta/tests.toml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
[canonical-tests]
2+
3+
# year not divisible by 4 in common year
4+
"6466b30d-519c-438e-935d-388224ab5223" = true
5+
6+
# year divisible by 2, not divisible by 4 in common year
7+
"ac227e82-ee82-4a09-9eb6-4f84331ffdb0" = true
8+
9+
# year divisible by 4, not divisible by 100 in leap year
10+
"4fe9b84c-8e65-489e-970b-856d60b8b78e" = true
11+
12+
# year divisible by 4 and 5 is still a leap year
13+
"7fc6aed7-e63c-48f5-ae05-5fe182f60a5d" = false
14+
15+
# year divisible by 100, not divisible by 400 in common year
16+
"78a7848f-9667-4192-ae53-87b30c9a02dd" = true
17+
18+
# year divisible by 100 but not by 3 is still not a leap year
19+
"9d70f938-537c-40a6-ba19-f50739ce8bac" = false
20+
21+
# year divisible by 400 in leap year
22+
"42ee56ad-d3e6-48f1-8e3f-c84078d916fc" = true
23+
24+
# year divisible by 400 but not by 125 is still a leap year
25+
"57902c77-6fe9-40de-8302-587b5c27121e" = false
26+
27+
# year divisible by 200, not divisible by 400 in common year
28+
"c30331f6-f9f6-4881-ad38-8ca8c12520c1" = true
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
[canonical-tests]
2+
3+
# paired square brackets
4+
"81ec11da-38dd-442a-bcf9-3de7754609a5" = true
5+
6+
# empty string
7+
"287f0167-ac60-4b64-8452-a0aa8f4e5238" = true
8+
9+
# unpaired brackets
10+
"6c3615a3-df01-4130-a731-8ef5f5d78dac" = true
11+
12+
# wrong ordered brackets
13+
"9d414171-9b98-4cac-a4e5-941039a97a77" = true
14+
15+
# wrong closing bracket
16+
"f0f97c94-a149-4736-bc61-f2c5148ffb85" = true
17+
18+
# paired with whitespace
19+
"754468e0-4696-4582-a30e-534d47d69756" = true
20+
21+
# partially paired brackets
22+
"ba84f6ee-8164-434a-9c3e-b02c7f8e8545" = true
23+
24+
# simple nested brackets
25+
"3c86c897-5ff3-4a2b-ad9b-47ac3a30651d" = true
26+
27+
# several paired brackets
28+
"2d137f2c-a19e-4993-9830-83967a2d4726" = true
29+
30+
# paired and nested brackets
31+
"2e1f7b56-c137-4c92-9781-958638885a44" = true
32+
33+
# unopened closing brackets
34+
"84f6233b-e0f7-4077-8966-8085d295c19b" = true
35+
36+
# unpaired and nested brackets
37+
"9b18c67d-7595-4982-b2c5-4cb949745d49" = true
38+
39+
# paired and wrong nested brackets
40+
"a0205e34-c2ac-49e6-a88a-899508d7d68e" = true
41+
42+
# paired and incomplete brackets
43+
"ef47c21b-bcfd-4998-844c-7ad5daad90a8" = true
44+
45+
# too many closing brackets
46+
"a4675a40-a8be-4fc2-bc47-2a282ce6edbe" = true
47+
48+
# math expression
49+
"99255f93-261b-4435-a352-02bdecc9bdf2" = true
50+
51+
# complex latex expression
52+
"8e357d79-f302-469a-8515-2561877256a1" = true

exercises/react/.meta/tests.toml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
[canonical-tests]
2+
3+
# input cells have a value
4+
"c51ee736-d001-4f30-88d1-0c8e8b43cd07" = true
5+
6+
# an input cell's value can be set
7+
"dedf0fe0-da0c-4d5d-a582-ffaf5f4d0851" = true
8+
9+
# compute cells calculate initial value
10+
"5854b975-f545-4f93-8968-cc324cde746e" = true
11+
12+
# compute cells take inputs in the right order
13+
"25795a3d-b86c-4e91-abe7-1c340e71560c" = true
14+
15+
# compute cells update value when dependencies are changed
16+
"c62689bf-7be5-41bb-b9f8-65178ef3e8ba" = true
17+
18+
# compute cells can depend on other compute cells
19+
"5ff36b09-0a88-48d4-b7f8-69dcf3feea40" = true
20+
21+
# compute cells fire callbacks
22+
"abe33eaf-68ad-42a5-b728-05519ca88d2d" = true
23+
24+
# callback cells only fire on change
25+
"9e5cb3a4-78e5-4290-80f8-a78612c52db2" = true
26+
27+
# callbacks do not report already reported values
28+
"ada17cb6-7332-448a-b934-e3d7495c13d3" = true
29+
30+
# callbacks can fire from multiple cells
31+
"ac271900-ea5c-461c-9add-eeebcb8c03e5" = true
32+
33+
# callbacks can be added and removed
34+
"95a82dcc-8280-4de3-a4cd-4f19a84e3d6f" = true
35+
36+
# removing a callback multiple times doesn't interfere with other callbacks
37+
"f2a7b445-f783-4e0e-8393-469ab4915f2a" = true
38+
39+
# callbacks should only be called once even if multiple dependencies change
40+
"daf6feca-09e0-4ce5-801d-770ddfe1c268" = true
41+
42+
# callbacks should not be called if dependencies change but output value doesn't change
43+
"9a5b159f-b7aa-4729-807e-f1c38a46d377" = true
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
[canonical-tests]
2+
3+
# Empty RNA sequence
4+
"b4631f82-c98c-4a2f-90b3-c5c2b6c6f661" = true
5+
6+
# RNA complement of cytosine is guanine
7+
"a9558a3c-318c-4240-9256-5d5ed47005a6" = true
8+
9+
# RNA complement of guanine is cytosine
10+
"6eedbb5c-12cb-4c8b-9f51-f8320b4dc2e7" = true
11+
12+
# RNA complement of thymine is adenine
13+
"870bd3ec-8487-471d-8d9a-a25046488d3e" = true
14+
15+
# RNA complement of adenine is uracil
16+
"aade8964-02e1-4073-872f-42d3ffd74c5f" = true
17+
18+
# RNA complement
19+
"79ed2757-f018-4f47-a1d7-34a559392dbf" = true

exercises/sieve/.meta/tests.toml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
[canonical-tests]
2+
3+
# no primes under two
4+
"88529125-c4ce-43cc-bb36-1eb4ddd7b44f" = true
5+
6+
# find first prime
7+
"4afe9474-c705-4477-9923-840e1024cc2b" = true
8+
9+
# find primes up to 10
10+
"974945d8-8cd9-4f00-9463-7d813c7f17b7" = true
11+
12+
# limit is prime
13+
"2e2417b7-3f3a-452a-8594-b9af08af6d82" = true
14+
15+
# find primes up to 1000
16+
"92102a05-4c7c-47de-9ed0-b7d5fcd00f21" = true

0 commit comments

Comments
 (0)