trackler 2.2.1.160 → 2.2.1.161

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/ballerina/.gitignore +4 -0
  4. data/tracks/ballerina/.travis.yml +5 -0
  5. data/tracks/ballerina/LICENSE +21 -0
  6. data/tracks/ballerina/README.md +67 -0
  7. data/tracks/ballerina/bin/fetch-configlet +32 -0
  8. data/tracks/ballerina/config.json +11 -0
  9. data/tracks/ballerina/config/exercise-readme-insert.md +0 -0
  10. data/tracks/ballerina/config/exercise_readme.go.tmpl +16 -0
  11. data/tracks/ballerina/config/maintainers.json +4 -0
  12. data/tracks/ballerina/docs/ABOUT.md +0 -0
  13. data/tracks/ballerina/docs/INSTALLATION.md +0 -0
  14. data/tracks/ballerina/docs/LEARNING.md +0 -0
  15. data/tracks/ballerina/docs/RESOURCES.md +0 -0
  16. data/tracks/ballerina/docs/TESTS.md +0 -0
  17. data/tracks/ballerina/img/.keep +0 -0
  18. data/tracks/c/config.json +1 -1
  19. data/tracks/kotlin/config.json +400 -86
  20. data/tracks/kotlin/config/maintainers.json +10 -0
  21. data/tracks/objective-c/config.json +208 -208
  22. data/tracks/objective-c/config/maintainers.json +16 -16
  23. data/tracks/objective-c/docs/ABOUT.md +5 -1
  24. data/tracks/powershell/config.json +1 -1
  25. data/tracks/powershell/exercises/reverse-string/ReverseString.example.ps1 +13 -0
  26. data/tracks/powershell/exercises/reverse-string/ReverseString.ps1 +13 -1
  27. data/tracks/powershell/exercises/sum-of-multiples/SumOfMultiples.example.ps1 +18 -0
  28. data/tracks/powershell/exercises/sum-of-multiples/SumOfMultiples.ps1 +18 -0
  29. data/tracks/prolog/config.json +31 -63
  30. data/tracks/prolog/config/maintainers.json +8 -8
  31. data/tracks/prolog/docs/SNIPPET.txt +10 -5
  32. data/tracks/python/config.json +1 -0
  33. data/tracks/python/docs/ABOUT.md +8 -8
  34. data/tracks/python/exercises/all-your-base/all_your_base_test.py +1 -1
  35. data/tracks/python/exercises/allergies/allergies_test.py +1 -1
  36. data/tracks/python/exercises/alphametics/alphametics_test.py +1 -1
  37. data/tracks/python/exercises/anagram/anagram_test.py +1 -1
  38. data/tracks/python/exercises/armstrong-numbers/armstrong_numbers_test.py +1 -1
  39. data/tracks/python/exercises/bank-account/bank_account_test.py +1 -1
  40. data/tracks/python/exercises/beer-song/beer_song_test.py +1 -1
  41. data/tracks/python/exercises/binary-search-tree/binary_search_tree_test.py +1 -1
  42. data/tracks/python/exercises/binary-search/binary_search_test.py +1 -1
  43. data/tracks/python/exercises/binary/binary_test.py +1 -1
  44. data/tracks/python/exercises/bob/bob_test.py +1 -1
  45. data/tracks/python/exercises/book-store/book_store_test.py +1 -1
  46. data/tracks/python/exercises/bowling/bowling_test.py +1 -1
  47. data/tracks/python/exercises/bracket-push/bracket_push_test.py +1 -1
  48. data/tracks/python/exercises/collatz-conjecture/collatz_conjecture_test.py +1 -1
  49. data/tracks/python/exercises/diamond/diamond_test.py +1 -1
  50. data/tracks/python/exercises/etl/etl_test.py +1 -1
  51. data/tracks/python/exercises/flatten-array/flatten_array_test.py +1 -1
  52. data/tracks/python/exercises/grade-school/grade_school_test.py +1 -1
  53. data/tracks/python/exercises/hello-world/hello_world_test.py +1 -1
  54. data/tracks/python/exercises/house/house_test.py +1 -1
  55. data/tracks/python/exercises/isbn-verifier/isbn_verifier_test.py +1 -1
  56. data/tracks/python/exercises/isogram/isogram_test.py +1 -1
  57. data/tracks/python/exercises/kindergarten-garden/kindergarten_garden_test.py +1 -1
  58. data/tracks/python/exercises/largest-series-product/largest_series_product_test.py +1 -1
  59. data/tracks/python/exercises/leap/leap_test.py +1 -1
  60. data/tracks/python/exercises/linked-list/linked_list_test.py +1 -1
  61. data/tracks/python/exercises/luhn/luhn_test.py +1 -1
  62. data/tracks/python/exercises/markdown/markdown_test.py +1 -1
  63. data/tracks/python/exercises/nth-prime/nth_prime_test.py +1 -1
  64. data/tracks/python/exercises/nucleotide-count/nucleotide_count_test.py +1 -1
  65. data/tracks/python/exercises/ocr-numbers/ocr_numbers_test.py +1 -1
  66. data/tracks/python/exercises/palindrome-products/palindrome_products_test.py +1 -1
  67. data/tracks/python/exercises/pangram/pangram_test.py +1 -1
  68. data/tracks/python/exercises/phone-number/phone_number_test.py +1 -1
  69. data/tracks/python/exercises/pig-latin/pig_latin_test.py +1 -1
  70. data/tracks/python/exercises/point-mutations/point_mutations_test.py +1 -1
  71. data/tracks/python/exercises/protein-translation/protein_translation_test.py +1 -1
  72. data/tracks/python/exercises/rail-fence-cipher/rail_fence_cipher_test.py +1 -1
  73. data/tracks/python/exercises/rational-numbers/rational_numbers_test.py +1 -1
  74. data/tracks/python/exercises/react/react_test.py +1 -1
  75. data/tracks/python/exercises/rectangles/rectangles_test.py +1 -1
  76. data/tracks/python/exercises/reverse-string/reverse_string_test.py +1 -1
  77. data/tracks/python/exercises/rna-transcription/rna_transcription_test.py +1 -1
  78. data/tracks/python/exercises/robot-name/robot_name_test.py +1 -1
  79. data/tracks/python/exercises/robot-simulator/robot_simulator_test.py +1 -1
  80. data/tracks/python/exercises/roman-numerals/roman_numerals_test.py +1 -1
  81. data/tracks/python/exercises/rotational-cipher/rotational_cipher_test.py +1 -1
  82. data/tracks/python/exercises/run-length-encoding/run_length_encoding_test.py +1 -1
  83. data/tracks/python/exercises/saddle-points/saddle_points_test.py +1 -1
  84. data/tracks/python/exercises/scrabble-score/scrabble_score_test.py +1 -1
  85. data/tracks/python/exercises/secret-handshake/secret_handshake_test.py +1 -1
  86. data/tracks/python/exercises/simple-cipher/simple_cipher_test.py +1 -1
  87. data/tracks/python/exercises/simple-linked-list/simple_linked_list_test.py +1 -1
  88. data/tracks/python/exercises/tournament/tournament_test.py +1 -1
  89. data/tracks/python/exercises/transpose/transpose_test.py +1 -1
  90. data/tracks/python/exercises/tree-building/tree_building_test.py +1 -1
  91. data/tracks/python/exercises/twelve-days/twelve_days_test.py +1 -3
  92. data/tracks/python/exercises/two-fer/two_fer_test.py +1 -1
  93. data/tracks/python/exercises/variable-length-quantity/variable_length_quantity_test.py +1 -1
  94. data/tracks/python/exercises/word-count/word_count_test.py +1 -1
  95. data/tracks/python/exercises/word-search/word_search_test.py +1 -1
  96. data/tracks/python/exercises/yacht/yacht_test.py +1 -1
  97. data/tracks/swift/config.json +369 -353
  98. data/tracks/swift/config/maintainers.json +16 -16
  99. data/tracks/vimscript/docs/ABOUT.md +23 -34
  100. metadata +18 -2
@@ -2,34 +2,34 @@
2
2
  "docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md",
3
3
  "maintainers": [
4
4
  {
5
- "alumnus": false,
6
- "avatar_url": null,
7
- "bio": null,
8
5
  "github_username": "burtlo",
6
+ "alumnus": false,
7
+ "show_on_website": false,
8
+ "name": null,
9
9
  "link_text": null,
10
10
  "link_url": null,
11
- "name": null,
12
- "show_on_website": false
11
+ "avatar_url": null,
12
+ "bio": null
13
13
  },
14
14
  {
15
- "alumnus": false,
16
- "avatar_url": null,
17
- "bio": null,
18
15
  "github_username": "masters3d",
16
+ "alumnus": false,
17
+ "show_on_website": false,
18
+ "name": null,
19
19
  "link_text": null,
20
20
  "link_url": null,
21
- "name": null,
22
- "show_on_website": false
21
+ "avatar_url": null,
22
+ "bio": null
23
23
  },
24
24
  {
25
- "alumnus": false,
26
- "avatar_url": null,
27
- "bio": null,
28
25
  "github_username": "robtimp",
26
+ "alumnus": false,
27
+ "show_on_website": false,
28
+ "name": null,
29
29
  "link_text": null,
30
30
  "link_url": null,
31
- "name": null,
32
- "show_on_website": false
31
+ "avatar_url": null,
32
+ "bio": null
33
33
  }
34
34
  ]
35
- }
35
+ }
@@ -1 +1,5 @@
1
- Objective-C is a thin layer on top of C, and is a "strict superset" of C, meaning that it is possible to compile any C program with an Objective-C compiler, and to freely include C language code within an Objective-C class. Objective-C derives its object syntax from Smalltalk. All of the syntax for non-object-oriented operations (including primitive variables, pre-processing, expressions, function declarations, and function calls) is identical to that of C, while the syntax for object-oriented features is an implementation of Smalltalk-style messaging. - https://en.wikipedia.org/wiki/Objective-C
1
+ Objective-C is a thin layer on top of C, and is a "strict superset" of C, meaning that it is possible to compile any C program with an Objective-C compiler, and to freely include C language code within an Objective-C class.
2
+ Objective-C derives its object syntax from Smalltalk.
3
+ All of the syntax for non-object-oriented operations (including primitive variables, pre-processing, expressions, function declarations, and function calls) is identical to that of C, while the syntax for object-oriented features is an implementation of Smalltalk-style messaging.
4
+
5
+ You can find more information about the language and its history [here](https://en.wikipedia.org/wiki/Objective-C).
@@ -2,7 +2,7 @@
2
2
  "language": "Windows PowerShell",
3
3
  "active": false,
4
4
  "blurb": "",
5
- "checklist_issue": "4",
5
+ "checklist_issue": 4,
6
6
  "exercises": [
7
7
  {
8
8
  "slug": "hello-world",
@@ -1,3 +1,16 @@
1
+ <#
2
+ .SYNOPSIS
3
+ Reverse a string
4
+
5
+ .DESCRIPTION
6
+ Reverses the string in its entirety. That is it does not reverse each word in a string individually.
7
+
8
+ .PARAMETER Forward
9
+ The string to be reversed
10
+
11
+ .EXAMPLE
12
+ Get-ReverseString "PowerShell"
13
+ #>
1
14
  Function Get-ReverseString {
2
15
  [CmdletBinding()]
3
16
  Param(
@@ -1,4 +1,16 @@
1
- Function Get-ReverseString {
1
+ <#
2
+ .SYNOPSIS
3
+ Reverse a string
4
+
5
+ .DESCRIPTION
6
+ Reverses the string in its entirety. That is it does not reverse each word in a string individually.
7
+
8
+ .PARAMETER Forward
9
+ The string to be reversed
10
+
11
+ .EXAMPLE
12
+ Get-ReverseString "PowerShell"
13
+ #>Function Get-ReverseString {
2
14
  [CmdletBinding()]
3
15
  Param(
4
16
  [Parameter(Position=1, ValueFromPipeline=$true)]
@@ -1,3 +1,21 @@
1
+ <#
2
+ .SYNOPSIS
3
+ Given a number, find the sum of all the unique multiples of particular numbers up to
4
+ but not including that number.
5
+
6
+ .DESCRIPTION
7
+ If we list all the natural numbers below 20 that are multiples of 3 or 5,
8
+ we get 3, 5, 6, 9, 10, 12, 15, and 18.
9
+
10
+ .PARAMETER Multiples
11
+ An array of the factors
12
+
13
+ .PARAMETER Limit
14
+ The value BELOW which we test for
15
+
16
+ .EXAMPLE
17
+ Get-SumOfMultiples -Multiples @(3, 5) -Limit 10
18
+ #>
1
19
  Function Get-SumOfMultiples {
2
20
  [CmdletBinding()]
3
21
  Param(
@@ -1,3 +1,21 @@
1
+ <#
2
+ .SYNOPSIS
3
+ Given a number, find the sum of all the unique multiples of particular numbers up to
4
+ but not including that number.
5
+
6
+ .DESCRIPTION
7
+ If we list all the natural numbers below 20 that are multiples of 3 or 5,
8
+ we get 3, 5, 6, 9, 10, 12, 15, and 18.
9
+
10
+ .PARAMETER Multiples
11
+ An array of the factors
12
+
13
+ .PARAMETER Limit
14
+ The value BELOW which we test for
15
+
16
+ .EXAMPLE
17
+ Get-SumOfMultiples -Multiples @(3, 5) -Limit 10
18
+ #>
1
19
  Function Get-SumOfMultiples {
2
20
  [CmdletBinding()]
3
21
  Param(
@@ -1,159 +1,127 @@
1
1
  {
2
2
  "language": "Prolog",
3
3
  "active": true,
4
+ "blurb": "",
4
5
  "exercises": [
5
6
  {
6
- "uuid": "68a85ec5-acdd-4f4f-9b9e-a5e39f1f7ac0",
7
7
  "slug": "hello-world",
8
+ "uuid": "68a85ec5-acdd-4f4f-9b9e-a5e39f1f7ac0",
8
9
  "core": false,
9
10
  "unlocked_by": null,
10
11
  "difficulty": 1,
11
- "topics": [
12
-
13
- ]
12
+ "topics": []
14
13
  },
15
14
  {
16
- "uuid": "3a03d907-73b3-41b8-99ab-583fe98807d7",
17
15
  "slug": "complex-numbers",
16
+ "uuid": "3a03d907-73b3-41b8-99ab-583fe98807d7",
18
17
  "core": false,
19
18
  "unlocked_by": null,
20
19
  "difficulty": 1,
21
- "topics": [
22
-
23
- ]
20
+ "topics": []
24
21
  },
25
22
  {
26
- "uuid": "609b17f6-49d9-4c77-8ec4-99a5ca065163",
27
23
  "slug": "sum-of-multiples",
24
+ "uuid": "609b17f6-49d9-4c77-8ec4-99a5ca065163",
28
25
  "core": false,
29
26
  "unlocked_by": null,
30
27
  "difficulty": 1,
31
- "topics": [
32
-
33
- ]
28
+ "topics": []
34
29
  },
35
30
  {
36
- "uuid": "ee8e835f-1cbf-4ff4-a8f2-c641bc4045cc",
37
31
  "slug": "binary",
32
+ "uuid": "ee8e835f-1cbf-4ff4-a8f2-c641bc4045cc",
38
33
  "core": false,
39
34
  "unlocked_by": null,
40
35
  "difficulty": 1,
41
- "topics": [
42
-
43
- ]
36
+ "topics": []
44
37
  },
45
38
  {
46
- "uuid": "9b6c4536-8f84-46cd-80cc-e80d77803a7b",
47
39
  "slug": "leap",
40
+ "uuid": "9b6c4536-8f84-46cd-80cc-e80d77803a7b",
48
41
  "core": false,
49
42
  "unlocked_by": null,
50
43
  "difficulty": 1,
51
- "topics": [
52
-
53
- ]
44
+ "topics": []
54
45
  },
55
46
  {
56
- "uuid": "a3c467cd-b2f2-43a8-9a81-d60490645c59",
57
47
  "slug": "triangle",
48
+ "uuid": "a3c467cd-b2f2-43a8-9a81-d60490645c59",
58
49
  "core": false,
59
50
  "unlocked_by": null,
60
51
  "difficulty": 1,
61
- "topics": [
62
-
63
- ]
52
+ "topics": []
64
53
  },
65
54
  {
66
- "uuid": "2b72a411-b07f-4e89-bfdf-2ed3fce256fe",
67
55
  "slug": "space-age",
56
+ "uuid": "2b72a411-b07f-4e89-bfdf-2ed3fce256fe",
68
57
  "core": false,
69
58
  "unlocked_by": null,
70
59
  "difficulty": 1,
71
- "topics": [
72
-
73
- ]
60
+ "topics": []
74
61
  },
75
62
  {
76
- "uuid": "acd10394-f609-4047-9f5f-e3303d8ca2fd",
77
63
  "slug": "grains",
64
+ "uuid": "acd10394-f609-4047-9f5f-e3303d8ca2fd",
78
65
  "core": false,
79
66
  "unlocked_by": null,
80
67
  "difficulty": 1,
81
- "topics": [
82
-
83
- ]
68
+ "topics": []
84
69
  },
85
70
  {
86
- "uuid": "09ed3b8e-d093-44e2-9f3a-5e5fc3172e71",
87
71
  "slug": "nucleotide-count",
72
+ "uuid": "09ed3b8e-d093-44e2-9f3a-5e5fc3172e71",
88
73
  "core": false,
89
74
  "unlocked_by": null,
90
75
  "difficulty": 1,
91
- "topics": [
92
-
93
- ]
76
+ "topics": []
94
77
  },
95
78
  {
96
- "uuid": "10ed3b8e-d093-41e2-9f2a-4e5fc3172e71",
97
79
  "slug": "isogram",
80
+ "uuid": "10ed3b8e-d093-41e2-9f2a-4e5fc3172e71",
98
81
  "core": false,
99
82
  "unlocked_by": null,
100
83
  "difficulty": 1,
101
- "topics": [
102
-
103
- ]
84
+ "topics": []
104
85
  },
105
86
  {
106
- "uuid": "8449608f-b55e-452f-b65a-720914dde9af",
107
87
  "slug": "hamming",
88
+ "uuid": "8449608f-b55e-452f-b65a-720914dde9af",
108
89
  "core": false,
109
90
  "unlocked_by": null,
110
91
  "difficulty": 1,
111
- "topics": [
112
-
113
- ]
92
+ "topics": []
114
93
  },
115
94
  {
116
- "uuid": "3e059acb-37dc-44ed-bd06-91c5e1fdd8ba",
117
95
  "slug": "anagram",
96
+ "uuid": "3e059acb-37dc-44ed-bd06-91c5e1fdd8ba",
118
97
  "core": false,
119
98
  "unlocked_by": null,
120
99
  "difficulty": 1,
121
- "topics": [
122
-
123
- ]
100
+ "topics": []
124
101
  },
125
102
  {
126
- "uuid": "e5e2ed3c-d93c-4e8f-a395-53ce6d7135f1",
127
103
  "slug": "rna-transcription",
104
+ "uuid": "e5e2ed3c-d93c-4e8f-a395-53ce6d7135f1",
128
105
  "core": false,
129
106
  "unlocked_by": null,
130
107
  "difficulty": 1,
131
- "topics": [
132
-
133
- ]
108
+ "topics": []
134
109
  },
135
110
  {
136
- "uuid": "e4e1ed2c-d93c-4e8f-a395-53ce6d7135f1",
137
111
  "slug": "queen-attack",
112
+ "uuid": "e4e1ed2c-d93c-4e8f-a395-53ce6d7135f1",
138
113
  "core": false,
139
114
  "unlocked_by": null,
140
115
  "difficulty": 1,
141
- "topics": [
142
-
143
- ]
116
+ "topics": []
144
117
  },
145
118
  {
146
- "uuid": "b7022a0f-9fda-4144-ae1e-11615bac0f56",
147
119
  "slug": "pascals-triangle",
120
+ "uuid": "b7022a0f-9fda-4144-ae1e-11615bac0f56",
148
121
  "core": false,
149
122
  "unlocked_by": null,
150
123
  "difficulty": 1,
151
- "topics": [
152
-
153
- ]
124
+ "topics": []
154
125
  }
155
- ],
156
- "foregone": [
157
-
158
126
  ]
159
127
  }
@@ -1,25 +1,25 @@
1
1
  {
2
+ "docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md",
2
3
  "maintainers": [
3
4
  {
4
5
  "github_username": "parkerl",
5
- "show_on_website": false,
6
6
  "alumnus": false,
7
+ "show_on_website": false,
7
8
  "name": null,
8
- "bio": null,
9
9
  "link_text": null,
10
10
  "link_url": null,
11
- "avatar_url": null
11
+ "avatar_url": null,
12
+ "bio": null
12
13
  },
13
14
  {
14
15
  "github_username": "Average-user",
16
+ "alumnus": false,
15
17
  "show_on_website": false,
16
- "alumnus": null,
17
18
  "name": null,
18
- "bio": null,
19
19
  "link_text": null,
20
20
  "link_url": null,
21
- "avatar_url": null
21
+ "avatar_url": null,
22
+ "bio": null
22
23
  }
23
- ],
24
- "docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
24
+ ]
25
25
  }
@@ -1,6 +1,11 @@
1
- hello(Name, Greeting) :-
2
- atom_concat('Hello, ', Name, Prefix),
3
- atom_concat(Prefix, '!', Greeting).
1
+ append([], L, L).
2
+ append([H|T], L2, [H|L3]) :- append(T, L2, L3).
4
3
 
5
- ?- hello('World', Greeting),
6
- write(Greeting).
4
+ ?- appendx([1,2],[3,4],X).
5
+ X = [1, 2, 3, 4].
6
+
7
+ ?- appendx([1,2],X,[1,2,3,4]).
8
+ X = [3, 4].
9
+
10
+ ?- appendx(X,[3,4],[1,2,3,4]).
11
+ X = [1, 2].
@@ -10,6 +10,7 @@
10
10
  "slug": "hello-world",
11
11
  "uuid": "f458c48a-4a05-4809-9168-8edd55179349",
12
12
  "core": true,
13
+ "auto_approve": true,
13
14
  "unlocked_by": null,
14
15
  "difficulty": 1,
15
16
  "topics": [
@@ -1,15 +1,15 @@
1
- Python is a strong language for beginners.
1
+ Python is a strong language for beginners.
2
+
2
3
  There are many resources available for programmers of all levels, the code is highly readable, and in many cases phrases are comparable to those in the English language.
4
+
3
5
  Code can be written and executed from the command line, in an interactive IPython session, or in a [Jupyter](http://jupyter.org) (IPython) notebook.
4
6
 
5
- The most common form of Python is compiled in C.
6
- This is often invisible to the beginning programmer, but if there are uses for which exceptionally fast implementation is needed then C extensions can be written to optimize Python execution.
7
+ The most common form of Python is compiled in C; this is often invisible to the beginning programmer, but if there are uses for which exceptionally fast implementation is needed then C extensions can be written to optimize Python execution.
7
8
 
8
9
  [Python is used extensively](https://www.python.org/about/apps/) in scientific computing, finance, games, networking, internet development, and in assembling pipelines of other programs.
9
10
 
10
- Python was started by Guido van Rossum in 1989.
11
- Its name is an homage to the comedy troupe Monty Python.
12
- Python 2 is used widely but support [may end by 2020](https://www.python.org/dev/peps/pep-0373/#id2).
13
- Python 3 was introduced in 2008 and is beginning to be adopted more widely.
14
- They are similar, but users will encounter [some differences](http://blog.teamtreehouse.com/python-2-vs-python-3).
11
+ Python was started by Guido van Rossum in 1989; its name is an homage to the comedy troupe Monty Python.
12
+
13
+ Python 2 is used widely but support [may end by 2020](https://www.python.org/dev/peps/pep-0373/#id2); it is highly recommended that beginners use Python 3 (they are similar, but users will encounter [some differences](http://blog.teamtreehouse.com/python-2-vs-python-3)).
14
+
15
15
  Python development is shepherded by [The Python Software Foundation](https://www.python.org/about/) and there are active community-based user groups worldwide.
@@ -5,7 +5,7 @@ from all_your_base import rebase
5
5
 
6
6
  # Tests adapted from `problem-specifications//canonical-data.json` @ v2.3.0
7
7
 
8
- class AllYourBaseTests(unittest.TestCase):
8
+ class AllYourBaseTest(unittest.TestCase):
9
9
 
10
10
  def test_single_bit_to_one_decimal(self):
11
11
  self.assertEqual(rebase(2, [1], 10), [1])
@@ -9,7 +9,7 @@ if not hasattr(unittest.TestCase, 'assertCountEqual'):
9
9
 
10
10
  # Tests adapted from `problem-specifications//canonical-data.json` @ v1.1.0
11
11
 
12
- class AllergiesTests(unittest.TestCase):
12
+ class AllergiesTest(unittest.TestCase):
13
13
  def test_no_allergies_means_not_allergic(self):
14
14
  allergies = Allergies(0)
15
15
  self.assertIs(allergies.is_allergic_to('peanuts'), False)