From 1746840c800ce082dcf43432e861e83c40d84f89 Mon Sep 17 00:00:00 2001 From: Isaac Good Date: Tue, 11 Aug 2026 23:17:06 -0700 Subject: [PATCH 1/2] Run `configlet sync` and unbreak JSON file formats --- exercises/practice/anagram/.meta/config.json | 2 +- exercises/practice/isogram/.meta/config.json | 2 +- exercises/practice/nucleotide-count/.meta/config.json | 4 ++-- exercises/practice/pangram/.meta/config.json | 2 +- exercises/practice/perfect-numbers/.meta/config.json | 4 ++-- exercises/practice/prism/.meta/config.json | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/exercises/practice/anagram/.meta/config.json b/exercises/practice/anagram/.meta/config.json index 841366443..aa1989af0 100644 --- a/exercises/practice/anagram/.meta/config.json +++ b/exercises/practice/anagram/.meta/config.json @@ -27,7 +27,7 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - } + }, "source": "Inspired by the Extreme Startup game", "source_url": "https://github.com/rchatley/extreme_startup" } diff --git a/exercises/practice/isogram/.meta/config.json b/exercises/practice/isogram/.meta/config.json index 55d906c74..ac0fa9a9b 100644 --- a/exercises/practice/isogram/.meta/config.json +++ b/exercises/practice/isogram/.meta/config.json @@ -25,7 +25,7 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - } + }, "source": "Wikipedia", "source_url": "https://en.wikipedia.org/wiki/Isogram" } diff --git a/exercises/practice/nucleotide-count/.meta/config.json b/exercises/practice/nucleotide-count/.meta/config.json index f0584c2fc..d6d54435c 100644 --- a/exercises/practice/nucleotide-count/.meta/config.json +++ b/exercises/practice/nucleotide-count/.meta/config.json @@ -25,7 +25,7 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "The Calculating DNA Nucleotides_problem at Rosalind", + } + "source": "The Counting DNA Nucleotides problem at Rosalind", "source_url": "https://rosalind.info/problems/dna/" } diff --git a/exercises/practice/pangram/.meta/config.json b/exercises/practice/pangram/.meta/config.json index b64c1a8bd..9c2e18fdb 100644 --- a/exercises/practice/pangram/.meta/config.json +++ b/exercises/practice/pangram/.meta/config.json @@ -27,7 +27,7 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - } + }, "source": "Wikipedia", "source_url": "https://en.wikipedia.org/wiki/Pangram" } diff --git a/exercises/practice/perfect-numbers/.meta/config.json b/exercises/practice/perfect-numbers/.meta/config.json index 0bce9d695..6c3c68950 100644 --- a/exercises/practice/perfect-numbers/.meta/config.json +++ b/exercises/practice/perfect-numbers/.meta/config.json @@ -27,7 +27,7 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, + } "source": "Taken from Chapter 2 of Functional Thinking by Neal Ford.", - "source_url": "https://www.oreilly.com/library/view/functional-thinking/9781449365509/" + "source_url": "https://nealford.com/books/functionalthinking.html" } diff --git a/exercises/practice/prism/.meta/config.json b/exercises/practice/prism/.meta/config.json index ce1d449ac..f5f77b8b0 100644 --- a/exercises/practice/prism/.meta/config.json +++ b/exercises/practice/prism/.meta/config.json @@ -21,7 +21,7 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - } + }, "source": "FraSanga", "source_url": "https://github.com/exercism/problem-specifications/pull/2625" } From 6a4652dd05a7847dca5d62e3cb470a5481800cb2 Mon Sep 17 00:00:00 2001 From: Isaac Good Date: Tue, 11 Aug 2026 23:22:14 -0700 Subject: [PATCH 2/2] Run `configlet lint` and `configlet fmt` --- config.json | 94 +++++-------------- exercises/concept/lasagna/.meta/config.json | 4 +- exercises/practice/acronym/.meta/config.json | 6 +- .../practice/allergies/.meta/config.json | 6 +- exercises/practice/anagram/.meta/config.json | 6 +- .../armstrong-numbers/.meta/config.json | 6 +- .../practice/atbash-cipher/.meta/config.json | 6 +- .../binary-search-tree/.meta/config.json | 4 +- .../practice/binary-search/.meta/config.json | 6 +- exercises/practice/bob/.meta/config.json | 6 +- .../practice/bottle-song/.meta/config.json | 35 ++++--- exercises/practice/bowling/.meta/config.json | 6 +- exercises/practice/change/.meta/config.json | 6 +- .../circular-buffer/.meta/config.json | 6 +- exercises/practice/clock/.meta/config.json | 4 +- .../collatz-conjecture/.meta/config.json | 6 +- .../complex-numbers/.meta/config.json | 6 +- .../practice/crypto-square/.meta/config.json | 6 +- exercises/practice/darts/.meta/config.json | 4 +- exercises/practice/diamond/.meta/config.json | 6 +- .../difference-of-squares/.meta/config.json | 6 +- .../practice/diffie-hellman/.meta/config.json | 6 +- .../practice/dnd-character/.meta/config.json | 6 +- .../practice/eliuds-eggs/.meta/config.json | 6 +- exercises/practice/etl/.meta/config.json | 6 +- .../practice/flatten-array/.meta/config.json | 6 +- .../practice/food-chain/.meta/config.json | 6 +- .../practice/gigasecond/.meta/config.json | 6 +- .../practice/grade-school/.meta/config.json | 4 +- exercises/practice/grains/.meta/config.json | 6 +- exercises/practice/hamming/.meta/config.json | 6 +- .../practice/hello-world/.meta/config.json | 6 +- exercises/practice/house/.meta/config.json | 6 +- .../practice/isbn-verifier/.meta/config.json | 6 +- exercises/practice/isogram/.meta/config.json | 6 +- .../kindergarten-garden/.meta/config.json | 6 +- exercises/practice/knapsack/.meta/config.json | 6 +- .../largest-series-product/.meta/config.json | 6 +- exercises/practice/leap/.meta/config.json | 6 +- .../practice/linked-list/.meta/config.json | 4 +- exercises/practice/luhn/.meta/config.json | 6 +- .../matching-brackets/.meta/config.json | 4 +- exercises/practice/matrix/.meta/config.json | 6 +- .../practice/nth-prime/.meta/config.json | 6 +- .../nucleotide-count/.meta/config.json | 4 +- .../practice/ocr-numbers/.meta/config.json | 6 +- .../palindrome-products/.meta/config.json | 6 +- exercises/practice/pangram/.meta/config.json | 6 +- .../pascals-triangle/.meta/config.json | 6 +- .../perfect-numbers/.meta/config.json | 4 +- .../practice/phone-number/.meta/config.json | 6 +- .../practice/pig-latin/.meta/config.json | 6 +- .../practice/prime-factors/.meta/config.json | 6 +- exercises/practice/prism/.meta/config.json | 6 +- .../protein-translation/.meta/config.json | 4 +- exercises/practice/proverb/.meta/config.json | 6 +- .../pythagorean-triplet/.meta/config.json | 6 +- .../practice/queen-attack/.meta/config.json | 6 +- .../practice/raindrops/.meta/config.json | 6 +- .../rational-numbers/.meta/config.json | 6 +- .../resistor-color-duo/.meta/config.json | 6 +- .../resistor-color-trio/.meta/config.json | 6 +- .../practice/resistor-color/.meta/config.json | 6 +- .../practice/reverse-string/.meta/config.json | 6 +- .../rna-transcription/.meta/config.json | 6 +- .../practice/robot-name/.meta/config.json | 4 +- .../robot-simulator/.meta/config.json | 4 +- .../practice/roman-numerals/.meta/config.json | 6 +- .../rotational-cipher/.meta/config.json | 6 +- .../run-length-encoding/.meta/config.json | 6 +- .../practice/saddle-points/.meta/config.json | 6 +- exercises/practice/say/.meta/config.json | 6 +- .../practice/scrabble-score/.meta/config.json | 6 +- .../secret-handshake/.meta/config.json | 6 +- exercises/practice/series/.meta/config.json | 6 +- exercises/practice/sieve/.meta/config.json | 6 +- .../practice/simple-cipher/.meta/config.json | 6 +- .../practice/space-age/.meta/config.json | 6 +- .../practice/spiral-matrix/.meta/config.json | 6 +- .../practice/square-root/.meta/config.json | 6 +- .../state-of-tic-tac-toe/.meta/config.json | 6 +- exercises/practice/strain/.meta/config.json | 6 +- .../sum-of-multiples/.meta/config.json | 6 +- .../practice/transpose/.meta/config.json | 6 +- exercises/practice/triangle/.meta/config.json | 6 +- .../practice/twelve-days/.meta/config.json | 6 +- .../practice/two-bucket/.meta/config.json | 6 +- exercises/practice/two-fer/.meta/config.json | 4 +- .../.meta/config.json | 6 +- .../practice/word-count/.meta/config.json | 4 +- exercises/practice/wordy/.meta/config.json | 6 +- exercises/practice/yacht/.meta/config.json | 6 +- 92 files changed, 298 insertions(+), 343 deletions(-) diff --git a/config.json b/config.json index d89693a72..8add5acdf 100644 --- a/config.json +++ b/config.json @@ -55,7 +55,6 @@ "difficulty": 1, "topics": [ "optional_values", - "strings", "text_formatting" ] }, @@ -68,7 +67,6 @@ "difficulty": 1, "topics": [ "optional_values", - "strings", "text_formatting" ] }, @@ -80,8 +78,7 @@ "prerequisites": [], "difficulty": 1, "topics": [ - "arrays", - "strings" + "arrays" ] }, { @@ -92,7 +89,6 @@ "prerequisites": [], "difficulty": 2, "topics": [ - "strings", "arrays" ] }, @@ -104,7 +100,6 @@ "prerequisites": [], "difficulty": 3, "topics": [ - "strings", "arrays" ] }, @@ -129,8 +124,7 @@ "prerequisites": [], "difficulty": 1, "topics": [ - "numbers", - "strings" + "numbers" ] }, { @@ -141,7 +135,6 @@ "prerequisites": [], "difficulty": 2, "topics": [ - "strings", "transforming" ] }, @@ -189,8 +182,7 @@ "loops", "lists", "maps", - "searching", - "strings" + "searching" ] }, { @@ -205,7 +197,6 @@ "pattern_recognition", "polymorphism", "regular_expressions", - "strings", "unicode" ] }, @@ -262,8 +253,7 @@ "difficulty": 4, "topics": [ "integers", - "logic", - "strings" + "logic" ] }, { @@ -369,7 +359,6 @@ "conditionals", "loops", "randomness", - "strings", "text_formatting", "transforming" ] @@ -387,8 +376,7 @@ "exception_handling", "parsing", "pattern_recognition", - "regular_expressions", - "strings" + "regular_expressions" ] }, { @@ -415,7 +403,6 @@ "loops", "lists", "regular_expressions", - "strings", "unicode" ] }, @@ -460,8 +447,7 @@ "prerequisites": [], "difficulty": 2, "topics": [ - "loops", - "strings" + "loops" ] }, { @@ -517,8 +503,7 @@ "topics": [ "arrays", "conditionals", - "loops", - "strings" + "loops" ] }, { @@ -531,7 +516,6 @@ "topics": [ "conditionals", "integers", - "strings", "transforming" ] }, @@ -545,8 +529,7 @@ "topics": [ "conditionals", "loops", - "equality", - "strings" + "equality" ] }, { @@ -560,7 +543,6 @@ "arrays", "conditionals", "loops", - "strings", "text_formatting" ] }, @@ -573,8 +555,7 @@ "difficulty": 5, "topics": [ "conditionals", - "loops", - "strings" + "loops" ] }, { @@ -595,8 +576,7 @@ "topics": [ "conditionals", "loops", - "maps", - "strings" + "maps" ] }, { @@ -652,8 +632,7 @@ "topics": [ "conditionals", "loops", - "integers", - "strings" + "integers" ] }, { @@ -722,7 +701,6 @@ "topics": [ "loops", "regular_expressions", - "strings", "transforming" ] }, @@ -734,8 +712,7 @@ "prerequisites": [], "difficulty": 2, "topics": [ - "filtering", - "strings" + "filtering" ] }, { @@ -749,8 +726,7 @@ "conditionals", "loops", "filtering", - "searching", - "strings" + "searching" ] }, { @@ -777,7 +753,6 @@ "topics": [ "loops", "exception_handling", - "strings", "text_formatting" ] }, @@ -849,8 +824,7 @@ "exception_handling", "integers", "math", - "regular_expressions", - "strings" + "regular_expressions" ] }, { @@ -876,8 +850,7 @@ "arrays", "conditionals", "loops", - "recursion", - "strings" + "recursion" ] }, { @@ -891,8 +864,7 @@ "conditionals", "loops", "pattern_recognition", - "regular_expressions", - "strings" + "regular_expressions" ] }, { @@ -907,7 +879,6 @@ "loops", "games", "regular_expressions", - "strings", "transforming" ] }, @@ -923,7 +894,6 @@ "conditionals", "loops", "optional_values", - "strings", "text_formatting" ] }, @@ -938,8 +908,7 @@ "conditionals", "loops", "pattern_recognition", - "polymorphism", - "strings" + "polymorphism" ] }, { @@ -952,8 +921,7 @@ "status": "deprecated", "topics": [ "conditionals", - "loops", - "strings" + "loops" ] }, { @@ -968,7 +936,6 @@ "loops", "exception_handling", "integers", - "strings", "text_formatting" ] }, @@ -983,8 +950,7 @@ "arrays", "conditionals", "loops", - "matrices", - "strings" + "matrices" ] }, { @@ -1032,7 +998,6 @@ "loops", "lists", "matrices", - "strings", "text_formatting" ] }, @@ -1297,8 +1262,7 @@ "loops", "exception_handling", "games", - "parsing", - "strings" + "parsing" ] }, { @@ -1327,7 +1291,6 @@ "parsing", "pattern_recognition", "regular_expressions", - "strings", "text_formatting" ] }, @@ -1360,8 +1323,7 @@ "difficulty": 3, "topics": [ "conditionals", - "loops", - "strings" + "loops" ] }, { @@ -1372,7 +1334,6 @@ "prerequisites": [], "difficulty": 4, "topics": [ - "strings", "iterators" ] }, @@ -1447,21 +1408,15 @@ "difficulty": 5, "topics": [ "parsing", - "stacks", - "strings" + "stacks" ] }, { "slug": "tournament", "name": "Tournament", "uuid": "f4634d37-2357-4b54-8cd8-ad450234537a", - "practices": [ - "string-formatting" - ], - "prerequisites": [ - "strings", - "string-formatting" - ], + "practices": [], + "prerequisites": [], "difficulty": 6 }, { @@ -1502,7 +1457,6 @@ "arrays", "conditionals", "loops", - "strings", "text_formatting" ] }, diff --git a/exercises/concept/lasagna/.meta/config.json b/exercises/concept/lasagna/.meta/config.json index 2a67f5b91..51f5f1d19 100644 --- a/exercises/concept/lasagna/.meta/config.json +++ b/exercises/concept/lasagna/.meta/config.json @@ -1,5 +1,7 @@ { - "authors": ["SleeplessByte"], + "authors": [ + "SleeplessByte" + ], "files": { "solution": [ "lasagna.ts" diff --git a/exercises/practice/acronym/.meta/config.json b/exercises/practice/acronym/.meta/config.json index 45b4b58b4..55fccb1b0 100644 --- a/exercises/practice/acronym/.meta/config.json +++ b/exercises/practice/acronym/.meta/config.json @@ -17,6 +17,8 @@ ] }, "blurb": "Convert a long phrase to its acronym.", + "source": "Julien Vanier", + "source_url": "https://github.com/monkbroc", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -24,7 +26,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Julien Vanier", - "source_url": "https://github.com/monkbroc" + } } diff --git a/exercises/practice/allergies/.meta/config.json b/exercises/practice/allergies/.meta/config.json index 3e7889327..4b8218348 100644 --- a/exercises/practice/allergies/.meta/config.json +++ b/exercises/practice/allergies/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.", + "source": "Exercise by the JumpstartLab team for students at The Turing School of Software and Design.", + "source_url": "https://www.turing.edu/", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Exercise by the JumpstartLab team for students at The Turing School of Software and Design.", - "source_url": "https://www.turing.edu/" + } } diff --git a/exercises/practice/anagram/.meta/config.json b/exercises/practice/anagram/.meta/config.json index aa1989af0..3fb6dccb7 100644 --- a/exercises/practice/anagram/.meta/config.json +++ b/exercises/practice/anagram/.meta/config.json @@ -20,6 +20,8 @@ ] }, "blurb": "Find the words that use the same letters as another word.", + "source": "Inspired by the Extreme Startup game", + "source_url": "https://github.com/rchatley/extreme_startup", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -27,7 +29,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Inspired by the Extreme Startup game", - "source_url": "https://github.com/rchatley/extreme_startup" + } } diff --git a/exercises/practice/armstrong-numbers/.meta/config.json b/exercises/practice/armstrong-numbers/.meta/config.json index ab6a259e4..ea69d2f39 100644 --- a/exercises/practice/armstrong-numbers/.meta/config.json +++ b/exercises/practice/armstrong-numbers/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Determine if a number is an Armstrong number.", + "source": "Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/Narcissistic_number", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/Narcissistic_number" + } } diff --git a/exercises/practice/atbash-cipher/.meta/config.json b/exercises/practice/atbash-cipher/.meta/config.json index e04604d6a..39011b654 100644 --- a/exercises/practice/atbash-cipher/.meta/config.json +++ b/exercises/practice/atbash-cipher/.meta/config.json @@ -19,6 +19,8 @@ ] }, "blurb": "Create an implementation of the Atbash cipher, an ancient encryption system created in the Middle East.", + "source": "Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/Atbash", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -26,7 +28,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/Atbash" + } } diff --git a/exercises/practice/binary-search-tree/.meta/config.json b/exercises/practice/binary-search-tree/.meta/config.json index b4a1396bf..5bdab6300 100644 --- a/exercises/practice/binary-search-tree/.meta/config.json +++ b/exercises/practice/binary-search-tree/.meta/config.json @@ -19,6 +19,7 @@ ] }, "blurb": "Insert and search for numbers in a binary tree.", + "source": "Josh Cheek", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -26,6 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Josh Cheek" + } } diff --git a/exercises/practice/binary-search/.meta/config.json b/exercises/practice/binary-search/.meta/config.json index dce0d9239..a08f43128 100644 --- a/exercises/practice/binary-search/.meta/config.json +++ b/exercises/practice/binary-search/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Implement a binary search algorithm.", + "source": "Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/Binary_search_algorithm", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/Binary_search_algorithm" + } } diff --git a/exercises/practice/bob/.meta/config.json b/exercises/practice/bob/.meta/config.json index 2e9a30525..14a66b9a5 100644 --- a/exercises/practice/bob/.meta/config.json +++ b/exercises/practice/bob/.meta/config.json @@ -21,6 +21,8 @@ ] }, "blurb": "Bob is a lackadaisical teenager. In conversation, his responses are very limited.", + "source": "Inspired by the 'Deaf Grandma' exercise in Chris Pine's Learn to Program tutorial.", + "source_url": "https://pine.fm/LearnToProgram/chap_06.html", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -28,7 +30,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Inspired by the 'Deaf Grandma' exercise in Chris Pine's Learn to Program tutorial.", - "source_url": "https://pine.fm/LearnToProgram/chap_06.html" + } } diff --git a/exercises/practice/bottle-song/.meta/config.json b/exercises/practice/bottle-song/.meta/config.json index cf27bc8f1..1efd18e55 100644 --- a/exercises/practice/bottle-song/.meta/config.json +++ b/exercises/practice/bottle-song/.meta/config.json @@ -1,20 +1,19 @@ { - "authors": [ - "Budmin" + "authors": [ + "Budmin" + ], + "files": { + "solution": [ + "bottle-song.ts" ], - "files": { - "solution": [ - "bottle-song.ts" - ], - "test": [ - "bottle-song.test.ts" - ], - "example": [ - ".meta/proof.ci.ts" - ] - }, - "blurb": "Produce the lyrics to the popular children's repetitive song: Ten Green Bottles.", - "source": "Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/Ten_Green_Bottles" - } - \ No newline at end of file + "test": [ + "bottle-song.test.ts" + ], + "example": [ + ".meta/proof.ci.ts" + ] + }, + "blurb": "Produce the lyrics to the popular children's repetitive song: Ten Green Bottles.", + "source": "Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/Ten_Green_Bottles" +} diff --git a/exercises/practice/bowling/.meta/config.json b/exercises/practice/bowling/.meta/config.json index 5f402a690..ced06ed3a 100644 --- a/exercises/practice/bowling/.meta/config.json +++ b/exercises/practice/bowling/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Score a bowling game.", + "source": "The Bowling Game Kata from UncleBob", + "source_url": "https://web.archive.org/web/20221001111000/http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "The Bowling Game Kata from UncleBob", - "source_url": "https://web.archive.org/web/20221001111000/http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata" + } } diff --git a/exercises/practice/change/.meta/config.json b/exercises/practice/change/.meta/config.json index 19c1d6435..0f2cebf14 100644 --- a/exercises/practice/change/.meta/config.json +++ b/exercises/practice/change/.meta/config.json @@ -14,6 +14,8 @@ ] }, "blurb": "Correctly determine change to be given using the least number of coins.", + "source": "Software Craftsmanship - Coin Change Kata", + "source_url": "https://web.archive.org/web/20130115115225/http://craftsmanship.sv.cmu.edu:80/exercises/coin-change-kata", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -21,7 +23,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Software Craftsmanship - Coin Change Kata", - "source_url": "https://web.archive.org/web/20130115115225/http://craftsmanship.sv.cmu.edu:80/exercises/coin-change-kata" + } } diff --git a/exercises/practice/circular-buffer/.meta/config.json b/exercises/practice/circular-buffer/.meta/config.json index 13e9509e5..7be710597 100644 --- a/exercises/practice/circular-buffer/.meta/config.json +++ b/exercises/practice/circular-buffer/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "A data structure that uses a single, fixed-size buffer as if it were connected end-to-end.", + "source": "Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/Circular_buffer", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/Circular_buffer" + } } diff --git a/exercises/practice/clock/.meta/config.json b/exercises/practice/clock/.meta/config.json index b6860cc25..6d225a9f3 100644 --- a/exercises/practice/clock/.meta/config.json +++ b/exercises/practice/clock/.meta/config.json @@ -18,6 +18,7 @@ ] }, "blurb": "Implement a clock that handles times without dates.", + "source": "Pairing session with Erin Drummond", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,6 +26,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Pairing session with Erin Drummond" + } } diff --git a/exercises/practice/collatz-conjecture/.meta/config.json b/exercises/practice/collatz-conjecture/.meta/config.json index d85bbc51e..bba3b3920 100644 --- a/exercises/practice/collatz-conjecture/.meta/config.json +++ b/exercises/practice/collatz-conjecture/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Calculate the number of steps to reach 1 using the Collatz conjecture.", + "source": "Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/Collatz_conjecture", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/Collatz_conjecture" + } } diff --git a/exercises/practice/complex-numbers/.meta/config.json b/exercises/practice/complex-numbers/.meta/config.json index 00e777af4..949e3221d 100644 --- a/exercises/practice/complex-numbers/.meta/config.json +++ b/exercises/practice/complex-numbers/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Implement complex numbers.", + "source": "Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/Complex_number", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/Complex_number" + } } diff --git a/exercises/practice/crypto-square/.meta/config.json b/exercises/practice/crypto-square/.meta/config.json index e4ee75562..82cfaf606 100644 --- a/exercises/practice/crypto-square/.meta/config.json +++ b/exercises/practice/crypto-square/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Implement the classic method for composing secret messages called a square code.", + "source": "J Dalbey's Programming Practice problems", + "source_url": "https://users.csc.calpoly.edu/~jdalbey/103/Projects/ProgrammingPractice.html", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": true, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "J Dalbey's Programming Practice problems", - "source_url": "https://users.csc.calpoly.edu/~jdalbey/103/Projects/ProgrammingPractice.html" + } } diff --git a/exercises/practice/darts/.meta/config.json b/exercises/practice/darts/.meta/config.json index a44717d5b..32d6ab62a 100644 --- a/exercises/practice/darts/.meta/config.json +++ b/exercises/practice/darts/.meta/config.json @@ -17,6 +17,7 @@ ] }, "blurb": "Calculate the points scored in a single toss of a Darts game.", + "source": "Inspired by an exercise created by a professor Della Paolera in Argentina", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -24,6 +25,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Inspired by an exercise created by a professor Della Paolera in Argentina" + } } diff --git a/exercises/practice/diamond/.meta/config.json b/exercises/practice/diamond/.meta/config.json index 73da4b4c1..d4cb1385c 100644 --- a/exercises/practice/diamond/.meta/config.json +++ b/exercises/practice/diamond/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Given a letter, print a diamond starting with 'A' with the supplied letter at the widest point.", + "source": "Seb Rose", + "source_url": "https://web.archive.org/web/20220807163751/http://claysnow.co.uk/recycling-tests-in-tdd/", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Seb Rose", - "source_url": "https://web.archive.org/web/20220807163751/http://claysnow.co.uk/recycling-tests-in-tdd/" + } } diff --git a/exercises/practice/difference-of-squares/.meta/config.json b/exercises/practice/difference-of-squares/.meta/config.json index 466a1b9e9..8221e93a9 100644 --- a/exercises/practice/difference-of-squares/.meta/config.json +++ b/exercises/practice/difference-of-squares/.meta/config.json @@ -17,6 +17,8 @@ ] }, "blurb": "Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.", + "source": "Problem 6 at Project Euler", + "source_url": "https://projecteuler.net/problem=6", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -24,7 +26,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Problem 6 at Project Euler", - "source_url": "https://projecteuler.net/problem=6" + } } diff --git a/exercises/practice/diffie-hellman/.meta/config.json b/exercises/practice/diffie-hellman/.meta/config.json index 078b332d8..1de2c32bc 100644 --- a/exercises/practice/diffie-hellman/.meta/config.json +++ b/exercises/practice/diffie-hellman/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Diffie-Hellman key exchange.", + "source": "Wikipedia, 1024 bit key from www.cryptopp.com/wiki.", + "source_url": "https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Wikipedia, 1024 bit key from www.cryptopp.com/wiki.", - "source_url": "https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange" + } } diff --git a/exercises/practice/dnd-character/.meta/config.json b/exercises/practice/dnd-character/.meta/config.json index 2a5681751..02fb2c4a5 100644 --- a/exercises/practice/dnd-character/.meta/config.json +++ b/exercises/practice/dnd-character/.meta/config.json @@ -15,6 +15,8 @@ ] }, "blurb": "Randomly generate Dungeons & Dragons characters.", + "source": "Simon Shine, Erik Schierboom", + "source_url": "https://github.com/exercism/problem-specifications/issues/616#issuecomment-437358945", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -22,7 +24,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Simon Shine, Erik Schierboom", - "source_url": "https://github.com/exercism/problem-specifications/issues/616#issuecomment-437358945" + } } diff --git a/exercises/practice/eliuds-eggs/.meta/config.json b/exercises/practice/eliuds-eggs/.meta/config.json index b45d14729..9a8911184 100644 --- a/exercises/practice/eliuds-eggs/.meta/config.json +++ b/exercises/practice/eliuds-eggs/.meta/config.json @@ -14,6 +14,8 @@ ] }, "blurb": "Help Eliud count the number of eggs in her chicken coop by counting the number of 1 bits in a binary representation.", + "source": "Christian Willner, Eric Willigers", + "source_url": "https://forum.exercism.org/t/new-exercise-suggestion-pop-count/7632/5", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -21,7 +23,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Christian Willner, Eric Willigers", - "source_url": "https://forum.exercism.org/t/new-exercise-suggestion-pop-count/7632/5" + } } diff --git a/exercises/practice/etl/.meta/config.json b/exercises/practice/etl/.meta/config.json index e855e6e2b..019750e9c 100644 --- a/exercises/practice/etl/.meta/config.json +++ b/exercises/practice/etl/.meta/config.json @@ -19,6 +19,8 @@ ] }, "blurb": "Change the data format for scoring a game to more easily add other languages.", + "source": "Based on an exercise by the JumpstartLab team for students at The Turing School of Software and Design.", + "source_url": "https://www.turing.edu/", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -26,7 +28,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Based on an exercise by the JumpstartLab team for students at The Turing School of Software and Design.", - "source_url": "https://www.turing.edu/" + } } diff --git a/exercises/practice/flatten-array/.meta/config.json b/exercises/practice/flatten-array/.meta/config.json index 39b9f33bd..30c76c3ea 100644 --- a/exercises/practice/flatten-array/.meta/config.json +++ b/exercises/practice/flatten-array/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Take a nested list and return a single list with all values except nil/null.", + "source": "Interview Question", + "source_url": "https://reference.wolfram.com/language/ref/Flatten.html", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Interview Question", - "source_url": "https://reference.wolfram.com/language/ref/Flatten.html" + } } diff --git a/exercises/practice/food-chain/.meta/config.json b/exercises/practice/food-chain/.meta/config.json index d30562cde..6327bf6a3 100644 --- a/exercises/practice/food-chain/.meta/config.json +++ b/exercises/practice/food-chain/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Generate the lyrics of the song 'I Know an Old Lady Who Swallowed a Fly'.", + "source": "Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/There_Was_an_Old_Lady_Who_Swallowed_a_Fly", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/There_Was_an_Old_Lady_Who_Swallowed_a_Fly" + } } diff --git a/exercises/practice/gigasecond/.meta/config.json b/exercises/practice/gigasecond/.meta/config.json index e492f355f..58d0c0aa5 100644 --- a/exercises/practice/gigasecond/.meta/config.json +++ b/exercises/practice/gigasecond/.meta/config.json @@ -19,6 +19,8 @@ ] }, "blurb": "Given a moment, determine the moment that would be after a gigasecond has passed.", + "source": "Chapter 9 in Chris Pine's online Learn to Program tutorial.", + "source_url": "https://pine.fm/LearnToProgram/chap_09.html", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -26,7 +28,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Chapter 9 in Chris Pine's online Learn to Program tutorial.", - "source_url": "https://pine.fm/LearnToProgram/chap_09.html" + } } diff --git a/exercises/practice/grade-school/.meta/config.json b/exercises/practice/grade-school/.meta/config.json index bb7ab5043..102234607 100644 --- a/exercises/practice/grade-school/.meta/config.json +++ b/exercises/practice/grade-school/.meta/config.json @@ -19,6 +19,7 @@ ] }, "blurb": "Given students' names along with the grade that they are in, create a roster for the school.", + "source": "A pairing session with Phil Battos at gSchool", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -26,6 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "A pairing session with Phil Battos at gSchool" + } } diff --git a/exercises/practice/grains/.meta/config.json b/exercises/practice/grains/.meta/config.json index 859398f5a..812367970 100644 --- a/exercises/practice/grains/.meta/config.json +++ b/exercises/practice/grains/.meta/config.json @@ -20,6 +20,8 @@ ] }, "blurb": "Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.", + "source": "The CodeRanch Cattle Drive, Assignment 6", + "source_url": "https://web.archive.org/web/20240908084142/https://coderanch.com/wiki/718824/Grains", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -27,7 +29,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "The CodeRanch Cattle Drive, Assignment 6", - "source_url": "https://web.archive.org/web/20240908084142/https://coderanch.com/wiki/718824/Grains" + } } diff --git a/exercises/practice/hamming/.meta/config.json b/exercises/practice/hamming/.meta/config.json index f11b862fc..b8a3677a9 100644 --- a/exercises/practice/hamming/.meta/config.json +++ b/exercises/practice/hamming/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Calculate the Hamming distance between two DNA strands.", + "source": "The Calculating Point Mutations problem at Rosalind", + "source_url": "https://rosalind.info/problems/hamm/", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "The Calculating Point Mutations problem at Rosalind", - "source_url": "https://rosalind.info/problems/hamm/" + } } diff --git a/exercises/practice/hello-world/.meta/config.json b/exercises/practice/hello-world/.meta/config.json index 9e70a911a..372f707ba 100644 --- a/exercises/practice/hello-world/.meta/config.json +++ b/exercises/practice/hello-world/.meta/config.json @@ -22,6 +22,8 @@ ] }, "blurb": "Exercism's classic introductory exercise. Just say \"Hello, World!\".", + "source": "This is an exercise to introduce users to using Exercism", + "source_url": "https://en.wikipedia.org/wiki/%22Hello,_world!%22_program", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -29,7 +31,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "This is an exercise to introduce users to using Exercism", - "source_url": "https://en.wikipedia.org/wiki/%22Hello,_world!%22_program" + } } diff --git a/exercises/practice/house/.meta/config.json b/exercises/practice/house/.meta/config.json index 6740747f6..995265d87 100644 --- a/exercises/practice/house/.meta/config.json +++ b/exercises/practice/house/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Output the nursery rhyme 'This is the House that Jack Built'.", + "source": "British nursery rhyme", + "source_url": "https://en.wikipedia.org/wiki/This_Is_The_House_That_Jack_Built", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "British nursery rhyme", - "source_url": "https://en.wikipedia.org/wiki/This_Is_The_House_That_Jack_Built" + } } diff --git a/exercises/practice/isbn-verifier/.meta/config.json b/exercises/practice/isbn-verifier/.meta/config.json index ef995ab66..dc133e0dd 100644 --- a/exercises/practice/isbn-verifier/.meta/config.json +++ b/exercises/practice/isbn-verifier/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Check if a given string is a valid ISBN-10 number.", + "source": "Converting a string into a number and some basic processing utilizing a relatable real world example.", + "source_url": "https://en.wikipedia.org/wiki/International_Standard_Book_Number#ISBN-10_check_digit_calculation", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Converting a string into a number and some basic processing utilizing a relatable real world example.", - "source_url": "https://en.wikipedia.org/wiki/International_Standard_Book_Number#ISBN-10_check_digit_calculation" + } } diff --git a/exercises/practice/isogram/.meta/config.json b/exercises/practice/isogram/.meta/config.json index ac0fa9a9b..b81f5fd0b 100644 --- a/exercises/practice/isogram/.meta/config.json +++ b/exercises/practice/isogram/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Determine whether a phrase is an isogram, a word with no repeated letters.", + "source": "Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/Isogram", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/Isogram" + } } diff --git a/exercises/practice/kindergarten-garden/.meta/config.json b/exercises/practice/kindergarten-garden/.meta/config.json index 14243c2ef..f4715cd20 100644 --- a/exercises/practice/kindergarten-garden/.meta/config.json +++ b/exercises/practice/kindergarten-garden/.meta/config.json @@ -19,6 +19,8 @@ ] }, "blurb": "Given a diagram, determine which plants each child in the kindergarten class is responsible for.", + "source": "Exercise by the JumpstartLab team for students at The Turing School of Software and Design.", + "source_url": "https://www.turing.edu/", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -26,7 +28,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Exercise by the JumpstartLab team for students at The Turing School of Software and Design.", - "source_url": "https://www.turing.edu/" + } } diff --git a/exercises/practice/knapsack/.meta/config.json b/exercises/practice/knapsack/.meta/config.json index 3677a4ce4..475f44eeb 100644 --- a/exercises/practice/knapsack/.meta/config.json +++ b/exercises/practice/knapsack/.meta/config.json @@ -17,6 +17,8 @@ ] }, "blurb": "Given a knapsack that can only carry a certain weight, determine which items to put in the knapsack in order to maximize their combined value.", + "source": "Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/Knapsack_problem", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -24,7 +26,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/Knapsack_problem" + } } diff --git a/exercises/practice/largest-series-product/.meta/config.json b/exercises/practice/largest-series-product/.meta/config.json index 9fbea9530..77241769d 100644 --- a/exercises/practice/largest-series-product/.meta/config.json +++ b/exercises/practice/largest-series-product/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Given a string of digits, calculate the largest product for a contiguous substring of digits of length n.", + "source": "A variation on Problem 8 at Project Euler", + "source_url": "https://projecteuler.net/problem=8", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "A variation on Problem 8 at Project Euler", - "source_url": "https://projecteuler.net/problem=8" + } } diff --git a/exercises/practice/leap/.meta/config.json b/exercises/practice/leap/.meta/config.json index a195eaf18..ac11be8e8 100644 --- a/exercises/practice/leap/.meta/config.json +++ b/exercises/practice/leap/.meta/config.json @@ -19,6 +19,8 @@ ] }, "blurb": "Determine whether a given year is a leap year.", + "source": "CodeRanch Cattle Drive, Assignment 3", + "source_url": "https://web.archive.org/web/20240907033714/https://coderanch.com/t/718816/Leap", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -26,7 +28,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "CodeRanch Cattle Drive, Assignment 3", - "source_url": "https://web.archive.org/web/20240907033714/https://coderanch.com/t/718816/Leap" + } } diff --git a/exercises/practice/linked-list/.meta/config.json b/exercises/practice/linked-list/.meta/config.json index 1be5313c1..6f2b1f630 100644 --- a/exercises/practice/linked-list/.meta/config.json +++ b/exercises/practice/linked-list/.meta/config.json @@ -18,6 +18,7 @@ ] }, "blurb": "Implement a doubly linked list.", + "source": "Classic computer science topic", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,6 +26,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Classic computer science topic" + } } diff --git a/exercises/practice/luhn/.meta/config.json b/exercises/practice/luhn/.meta/config.json index aa2145f96..3dcab76cb 100644 --- a/exercises/practice/luhn/.meta/config.json +++ b/exercises/practice/luhn/.meta/config.json @@ -19,6 +19,8 @@ ] }, "blurb": "Given a number determine whether or not it is valid per the Luhn formula.", + "source": "The Luhn Algorithm on Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/Luhn_algorithm", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -26,7 +28,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "The Luhn Algorithm on Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/Luhn_algorithm" + } } diff --git a/exercises/practice/matching-brackets/.meta/config.json b/exercises/practice/matching-brackets/.meta/config.json index e9d940a9a..84c63cc0e 100644 --- a/exercises/practice/matching-brackets/.meta/config.json +++ b/exercises/practice/matching-brackets/.meta/config.json @@ -18,6 +18,7 @@ ] }, "blurb": "Make sure the brackets and braces all match.", + "source": "Ginna Baker", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,6 +26,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Ginna Baker" + } } diff --git a/exercises/practice/matrix/.meta/config.json b/exercises/practice/matrix/.meta/config.json index 1ee5addfa..ed60feaf7 100644 --- a/exercises/practice/matrix/.meta/config.json +++ b/exercises/practice/matrix/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Given a string representing a matrix of numbers, return the rows and columns of that matrix.", + "source": "Exercise by the JumpstartLab team for students at The Turing School of Software and Design.", + "source_url": "https://www.turing.edu/", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Exercise by the JumpstartLab team for students at The Turing School of Software and Design.", - "source_url": "https://www.turing.edu/" + } } diff --git a/exercises/practice/nth-prime/.meta/config.json b/exercises/practice/nth-prime/.meta/config.json index 765b8ae0b..4849bac62 100644 --- a/exercises/practice/nth-prime/.meta/config.json +++ b/exercises/practice/nth-prime/.meta/config.json @@ -16,6 +16,8 @@ ] }, "blurb": "Given a number n, determine what the nth prime is.", + "source": "A variation on Problem 7 at Project Euler", + "source_url": "https://projecteuler.net/problem=7", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -23,7 +25,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "A variation on Problem 7 at Project Euler", - "source_url": "https://projecteuler.net/problem=7" + } } diff --git a/exercises/practice/nucleotide-count/.meta/config.json b/exercises/practice/nucleotide-count/.meta/config.json index d6d54435c..58cb849dc 100644 --- a/exercises/practice/nucleotide-count/.meta/config.json +++ b/exercises/practice/nucleotide-count/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Given a DNA string, compute how many times each nucleotide occurs in the string.", + "source": "The Counting DNA Nucleotides problem at Rosalind", + "source_url": "https://rosalind.info/problems/dna/", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -26,6 +28,4 @@ "flag.tests.jest": true, "flag.tests.tstyche": false } - "source": "The Counting DNA Nucleotides problem at Rosalind", - "source_url": "https://rosalind.info/problems/dna/" } diff --git a/exercises/practice/ocr-numbers/.meta/config.json b/exercises/practice/ocr-numbers/.meta/config.json index ad2e2cc3e..28d81103d 100644 --- a/exercises/practice/ocr-numbers/.meta/config.json +++ b/exercises/practice/ocr-numbers/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Given a 3 x 4 grid of pipes, underscores, and spaces, determine which number is represented, or whether it is garbled.", + "source": "Inspired by the Bank OCR kata", + "source_url": "https://codingdojo.org/kata/BankOCR/", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Inspired by the Bank OCR kata", - "source_url": "https://codingdojo.org/kata/BankOCR/" + } } diff --git a/exercises/practice/palindrome-products/.meta/config.json b/exercises/practice/palindrome-products/.meta/config.json index ac6ded55b..747f5044f 100644 --- a/exercises/practice/palindrome-products/.meta/config.json +++ b/exercises/practice/palindrome-products/.meta/config.json @@ -19,6 +19,8 @@ ] }, "blurb": "Detect palindrome products in a given range.", + "source": "Problem 4 at Project Euler", + "source_url": "https://projecteuler.net/problem=4", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -26,7 +28,5 @@ "flag.tests.includes-optional": true, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Problem 4 at Project Euler", - "source_url": "https://projecteuler.net/problem=4" + } } diff --git a/exercises/practice/pangram/.meta/config.json b/exercises/practice/pangram/.meta/config.json index 9c2e18fdb..2253f9a39 100644 --- a/exercises/practice/pangram/.meta/config.json +++ b/exercises/practice/pangram/.meta/config.json @@ -20,6 +20,8 @@ ] }, "blurb": "Determine whether a phrase uses every letter in the Latin alphabet.", + "source": "Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/Pangram", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -27,7 +29,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/Pangram" + } } diff --git a/exercises/practice/pascals-triangle/.meta/config.json b/exercises/practice/pascals-triangle/.meta/config.json index 0bd7c7133..7025e3498 100644 --- a/exercises/practice/pascals-triangle/.meta/config.json +++ b/exercises/practice/pascals-triangle/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Compute Pascal's triangle up to a given number of rows.", + "source": "Pascal's Triangle at Wolfram Math World", + "source_url": "https://www.wolframalpha.com/input/?i=Pascal%27s+triangle", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Pascal's Triangle at Wolfram Math World", - "source_url": "https://www.wolframalpha.com/input/?i=Pascal%27s+triangle" + } } diff --git a/exercises/practice/perfect-numbers/.meta/config.json b/exercises/practice/perfect-numbers/.meta/config.json index 6c3c68950..27951c977 100644 --- a/exercises/practice/perfect-numbers/.meta/config.json +++ b/exercises/practice/perfect-numbers/.meta/config.json @@ -20,6 +20,8 @@ ] }, "blurb": "Determine if a number is perfect, abundant, or deficient based on Nicomachus' (60 - 120 CE) classification scheme for positive integers.", + "source": "Taken from Chapter 2 of Functional Thinking by Neal Ford.", + "source_url": "https://nealford.com/books/functionalthinking.html", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -28,6 +30,4 @@ "flag.tests.jest": true, "flag.tests.tstyche": false } - "source": "Taken from Chapter 2 of Functional Thinking by Neal Ford.", - "source_url": "https://nealford.com/books/functionalthinking.html" } diff --git a/exercises/practice/phone-number/.meta/config.json b/exercises/practice/phone-number/.meta/config.json index 4bb7df12b..d1b45f42c 100644 --- a/exercises/practice/phone-number/.meta/config.json +++ b/exercises/practice/phone-number/.meta/config.json @@ -20,6 +20,8 @@ ] }, "blurb": "Clean up user-entered phone numbers so that they can be sent SMS messages.", + "source": "Exercise by the JumpstartLab team for students at The Turing School of Software and Design.", + "source_url": "https://www.turing.edu/", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -27,7 +29,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Exercise by the JumpstartLab team for students at The Turing School of Software and Design.", - "source_url": "https://www.turing.edu/" + } } diff --git a/exercises/practice/pig-latin/.meta/config.json b/exercises/practice/pig-latin/.meta/config.json index 379a80b4a..9a8e0978a 100644 --- a/exercises/practice/pig-latin/.meta/config.json +++ b/exercises/practice/pig-latin/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Implement a program that translates from English to Pig Latin.", + "source": "The Pig Latin exercise at Test First Teaching by Ultrasaurus", + "source_url": "https://github.com/ultrasaurus/test-first-teaching/tree/master/learn_ruby/pig_latin", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "The Pig Latin exercise at Test First Teaching by Ultrasaurus", - "source_url": "https://github.com/ultrasaurus/test-first-teaching/tree/master/learn_ruby/pig_latin" + } } diff --git a/exercises/practice/prime-factors/.meta/config.json b/exercises/practice/prime-factors/.meta/config.json index 3701a24cc..4ed5ddddf 100644 --- a/exercises/practice/prime-factors/.meta/config.json +++ b/exercises/practice/prime-factors/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Compute the prime factors of a given natural number.", + "source": "The Prime Factors Kata by Uncle Bob", + "source_url": "https://web.archive.org/web/20221026171801/http://butunclebob.com/ArticleS.UncleBob.ThePrimeFactorsKata", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "The Prime Factors Kata by Uncle Bob", - "source_url": "https://web.archive.org/web/20221026171801/http://butunclebob.com/ArticleS.UncleBob.ThePrimeFactorsKata" + } } diff --git a/exercises/practice/prism/.meta/config.json b/exercises/practice/prism/.meta/config.json index f5f77b8b0..9f83d3bf4 100644 --- a/exercises/practice/prism/.meta/config.json +++ b/exercises/practice/prism/.meta/config.json @@ -14,6 +14,8 @@ ] }, "blurb": "Calculate the path of a laser through refractive prisms.", + "source": "FraSanga", + "source_url": "https://github.com/exercism/problem-specifications/pull/2625", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -21,7 +23,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "FraSanga", - "source_url": "https://github.com/exercism/problem-specifications/pull/2625" + } } diff --git a/exercises/practice/protein-translation/.meta/config.json b/exercises/practice/protein-translation/.meta/config.json index 330f9eafb..1601a0280 100644 --- a/exercises/practice/protein-translation/.meta/config.json +++ b/exercises/practice/protein-translation/.meta/config.json @@ -18,6 +18,7 @@ ] }, "blurb": "Translate RNA sequences into proteins.", + "source": "Tyler Long", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,6 +26,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Tyler Long" + } } diff --git a/exercises/practice/proverb/.meta/config.json b/exercises/practice/proverb/.meta/config.json index 9ee0e954d..5866ab1bf 100644 --- a/exercises/practice/proverb/.meta/config.json +++ b/exercises/practice/proverb/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "For want of a horseshoe nail, a kingdom was lost, or so the saying goes. Output the full text of this proverbial rhyme.", + "source": "Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/For_Want_of_a_Nail", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/For_Want_of_a_Nail" + } } diff --git a/exercises/practice/pythagorean-triplet/.meta/config.json b/exercises/practice/pythagorean-triplet/.meta/config.json index b74992615..d08315966 100644 --- a/exercises/practice/pythagorean-triplet/.meta/config.json +++ b/exercises/practice/pythagorean-triplet/.meta/config.json @@ -19,6 +19,8 @@ ] }, "blurb": "Given an integer N, find all Pythagorean triplets for which a + b + c = N.", + "source": "A variation of Problem 9 from Project Euler", + "source_url": "https://projecteuler.net/problem=9", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -26,7 +28,5 @@ "flag.tests.includes-optional": true, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "A variation of Problem 9 from Project Euler", - "source_url": "https://projecteuler.net/problem=9" + } } diff --git a/exercises/practice/queen-attack/.meta/config.json b/exercises/practice/queen-attack/.meta/config.json index 686bb8282..97ebb6c03 100644 --- a/exercises/practice/queen-attack/.meta/config.json +++ b/exercises/practice/queen-attack/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Given the position of two queens on a chess board, indicate whether or not they are positioned so that they can attack each other.", + "source": "J Dalbey's Programming Practice problems", + "source_url": "https://users.csc.calpoly.edu/~jdalbey/103/Projects/ProgrammingPractice.html", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "J Dalbey's Programming Practice problems", - "source_url": "https://users.csc.calpoly.edu/~jdalbey/103/Projects/ProgrammingPractice.html" + } } diff --git a/exercises/practice/raindrops/.meta/config.json b/exercises/practice/raindrops/.meta/config.json index 49f4ea67e..f829479a2 100644 --- a/exercises/practice/raindrops/.meta/config.json +++ b/exercises/practice/raindrops/.meta/config.json @@ -16,6 +16,8 @@ ] }, "blurb": "Convert a number into its corresponding raindrop sounds - Pling, Plang and Plong.", + "source": "A variation on FizzBuzz, a famous technical interview question that is intended to weed out potential candidates. That question is itself derived from Fizz Buzz, a popular children's game for teaching division.", + "source_url": "https://en.wikipedia.org/wiki/Fizz_buzz", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -23,7 +25,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "A variation on FizzBuzz, a famous technical interview question that is intended to weed out potential candidates. That question is itself derived from Fizz Buzz, a popular children's game for teaching division.", - "source_url": "https://en.wikipedia.org/wiki/Fizz_buzz" + } } diff --git a/exercises/practice/rational-numbers/.meta/config.json b/exercises/practice/rational-numbers/.meta/config.json index 914578a04..d1d1df119 100644 --- a/exercises/practice/rational-numbers/.meta/config.json +++ b/exercises/practice/rational-numbers/.meta/config.json @@ -19,6 +19,8 @@ ] }, "blurb": "Implement rational numbers.", + "source": "Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/Rational_number", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -26,7 +28,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/Rational_number" + } } diff --git a/exercises/practice/resistor-color-duo/.meta/config.json b/exercises/practice/resistor-color-duo/.meta/config.json index 1dd71d1a2..6e829f2d8 100644 --- a/exercises/practice/resistor-color-duo/.meta/config.json +++ b/exercises/practice/resistor-color-duo/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Convert color codes, as used on resistors, to a numeric value.", + "source": "Maud de Vries, Erik Schierboom", + "source_url": "https://github.com/exercism/problem-specifications/issues/1464", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Maud de Vries, Erik Schierboom", - "source_url": "https://github.com/exercism/problem-specifications/issues/1464" + } } diff --git a/exercises/practice/resistor-color-trio/.meta/config.json b/exercises/practice/resistor-color-trio/.meta/config.json index cc172fdc4..5c3757d2e 100644 --- a/exercises/practice/resistor-color-trio/.meta/config.json +++ b/exercises/practice/resistor-color-trio/.meta/config.json @@ -17,6 +17,8 @@ ] }, "blurb": "Convert color codes, as used on resistors, to a human-readable label.", + "source": "Maud de Vries, Erik Schierboom", + "source_url": "https://github.com/exercism/problem-specifications/issues/1549", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -24,7 +26,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Maud de Vries, Erik Schierboom", - "source_url": "https://github.com/exercism/problem-specifications/issues/1549" + } } diff --git a/exercises/practice/resistor-color/.meta/config.json b/exercises/practice/resistor-color/.meta/config.json index 66abc87cf..3cbe219be 100644 --- a/exercises/practice/resistor-color/.meta/config.json +++ b/exercises/practice/resistor-color/.meta/config.json @@ -17,6 +17,8 @@ ] }, "blurb": "Convert a resistor band's color to its numeric representation.", + "source": "Maud de Vries, Erik Schierboom", + "source_url": "https://github.com/exercism/problem-specifications/issues/1458", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -24,7 +26,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Maud de Vries, Erik Schierboom", - "source_url": "https://github.com/exercism/problem-specifications/issues/1458" + } } diff --git a/exercises/practice/reverse-string/.meta/config.json b/exercises/practice/reverse-string/.meta/config.json index f27587e10..f4ff35a7f 100644 --- a/exercises/practice/reverse-string/.meta/config.json +++ b/exercises/practice/reverse-string/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Reverse a given string.", + "source": "Introductory challenge to reverse an input string", + "source_url": "https://www.freecodecamp.org/news/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Introductory challenge to reverse an input string", - "source_url": "https://www.freecodecamp.org/news/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb" + } } diff --git a/exercises/practice/rna-transcription/.meta/config.json b/exercises/practice/rna-transcription/.meta/config.json index 8b65e5d93..c20b4bf0a 100644 --- a/exercises/practice/rna-transcription/.meta/config.json +++ b/exercises/practice/rna-transcription/.meta/config.json @@ -19,6 +19,8 @@ ] }, "blurb": "Given a DNA strand, return its RNA complement.", + "source": "Hyperphysics", + "source_url": "https://web.archive.org/web/20220408112140/http://hyperphysics.phy-astr.gsu.edu/hbase/Organic/transcription.html", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -26,7 +28,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Hyperphysics", - "source_url": "https://web.archive.org/web/20220408112140/http://hyperphysics.phy-astr.gsu.edu/hbase/Organic/transcription.html" + } } diff --git a/exercises/practice/robot-name/.meta/config.json b/exercises/practice/robot-name/.meta/config.json index a30265b6b..2fe787ac2 100644 --- a/exercises/practice/robot-name/.meta/config.json +++ b/exercises/practice/robot-name/.meta/config.json @@ -19,6 +19,7 @@ ] }, "blurb": "Manage robot factory settings.", + "source": "A debugging session with Paul Blackwell at gSchool.", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -26,6 +27,5 @@ "flag.tests.includes-optional": true, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "A debugging session with Paul Blackwell at gSchool." + } } diff --git a/exercises/practice/robot-simulator/.meta/config.json b/exercises/practice/robot-simulator/.meta/config.json index c6c33f013..b84b4c028 100644 --- a/exercises/practice/robot-simulator/.meta/config.json +++ b/exercises/practice/robot-simulator/.meta/config.json @@ -18,6 +18,7 @@ ] }, "blurb": "Write a robot simulator.", + "source": "Inspired by an interview question at a famous company.", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,6 +26,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Inspired by an interview question at a famous company." + } } diff --git a/exercises/practice/roman-numerals/.meta/config.json b/exercises/practice/roman-numerals/.meta/config.json index 322178a5a..5747f0381 100644 --- a/exercises/practice/roman-numerals/.meta/config.json +++ b/exercises/practice/roman-numerals/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Convert modern Arabic numbers into Roman numerals.", + "source": "The Roman Numeral Kata", + "source_url": "https://codingdojo.org/kata/RomanNumerals/", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "The Roman Numeral Kata", - "source_url": "https://codingdojo.org/kata/RomanNumerals/" + } } diff --git a/exercises/practice/rotational-cipher/.meta/config.json b/exercises/practice/rotational-cipher/.meta/config.json index bdcb1e44b..04d8232de 100644 --- a/exercises/practice/rotational-cipher/.meta/config.json +++ b/exercises/practice/rotational-cipher/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Create an implementation of the rotational cipher, also sometimes called the Caesar cipher.", + "source": "Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/Caesar_cipher", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/Caesar_cipher" + } } diff --git a/exercises/practice/run-length-encoding/.meta/config.json b/exercises/practice/run-length-encoding/.meta/config.json index c6bb73dda..6f58c2c66 100644 --- a/exercises/practice/run-length-encoding/.meta/config.json +++ b/exercises/practice/run-length-encoding/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Implement run-length encoding and decoding.", + "source": "Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/Run-length_encoding", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/Run-length_encoding" + } } diff --git a/exercises/practice/saddle-points/.meta/config.json b/exercises/practice/saddle-points/.meta/config.json index 8b448082a..37c65986e 100644 --- a/exercises/practice/saddle-points/.meta/config.json +++ b/exercises/practice/saddle-points/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Detect saddle points in a matrix.", + "source": "J Dalbey's Programming Practice problems", + "source_url": "https://users.csc.calpoly.edu/~jdalbey/103/Projects/ProgrammingPractice.html", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "J Dalbey's Programming Practice problems", - "source_url": "https://users.csc.calpoly.edu/~jdalbey/103/Projects/ProgrammingPractice.html" + } } diff --git a/exercises/practice/say/.meta/config.json b/exercises/practice/say/.meta/config.json index b93d6ea4f..2b56bbc31 100644 --- a/exercises/practice/say/.meta/config.json +++ b/exercises/practice/say/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Given a number from 0 to 999,999,999,999, spell out that number in English.", + "source": "A variation on the JavaRanch CattleDrive, Assignment 4", + "source_url": "https://web.archive.org/web/20240907035912/https://coderanch.com/wiki/718804", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "A variation on the JavaRanch CattleDrive, Assignment 4", - "source_url": "https://web.archive.org/web/20240907035912/https://coderanch.com/wiki/718804" + } } diff --git a/exercises/practice/scrabble-score/.meta/config.json b/exercises/practice/scrabble-score/.meta/config.json index 1a01215f0..5fa9abe42 100644 --- a/exercises/practice/scrabble-score/.meta/config.json +++ b/exercises/practice/scrabble-score/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Given a word, compute the Scrabble score for that word.", + "source": "Inspired by the Extreme Startup game", + "source_url": "https://github.com/rchatley/extreme_startup", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Inspired by the Extreme Startup game", - "source_url": "https://github.com/rchatley/extreme_startup" + } } diff --git a/exercises/practice/secret-handshake/.meta/config.json b/exercises/practice/secret-handshake/.meta/config.json index 9fbe6f681..da85b2768 100644 --- a/exercises/practice/secret-handshake/.meta/config.json +++ b/exercises/practice/secret-handshake/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Given a decimal number, convert it to the appropriate sequence of events for a secret handshake.", + "source": "Bert, in Mary Poppins", + "source_url": "https://www.imdb.com/title/tt0058331/quotes/?item=qt0437047", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Bert, in Mary Poppins", - "source_url": "https://www.imdb.com/title/tt0058331/quotes/?item=qt0437047" + } } diff --git a/exercises/practice/series/.meta/config.json b/exercises/practice/series/.meta/config.json index 5098c1d3a..e2a83d34e 100644 --- a/exercises/practice/series/.meta/config.json +++ b/exercises/practice/series/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Given a string of digits, output all the contiguous substrings of length `n` in that string.", + "source": "A subset of the Problem 8 at Project Euler", + "source_url": "https://projecteuler.net/problem=8", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "A subset of the Problem 8 at Project Euler", - "source_url": "https://projecteuler.net/problem=8" + } } diff --git a/exercises/practice/sieve/.meta/config.json b/exercises/practice/sieve/.meta/config.json index 3749cac0a..4f3beaaf5 100644 --- a/exercises/practice/sieve/.meta/config.json +++ b/exercises/practice/sieve/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.", + "source": "Sieve of Eratosthenes at Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Sieve of Eratosthenes at Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes" + } } diff --git a/exercises/practice/simple-cipher/.meta/config.json b/exercises/practice/simple-cipher/.meta/config.json index 4ee402031..ac7068da3 100644 --- a/exercises/practice/simple-cipher/.meta/config.json +++ b/exercises/practice/simple-cipher/.meta/config.json @@ -21,6 +21,8 @@ ] }, "blurb": "Implement the Vigenère cipher, a simple substitution cipher.", + "source": "Substitution Cipher at Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/Substitution_cipher", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -28,7 +30,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Substitution Cipher at Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/Substitution_cipher" + } } diff --git a/exercises/practice/space-age/.meta/config.json b/exercises/practice/space-age/.meta/config.json index 02505cb42..9fe1f05fe 100644 --- a/exercises/practice/space-age/.meta/config.json +++ b/exercises/practice/space-age/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.", + "source": "Partially inspired by Chapter 1 in Chris Pine's online Learn to Program tutorial.", + "source_url": "https://pine.fm/LearnToProgram/chap_01.html", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Partially inspired by Chapter 1 in Chris Pine's online Learn to Program tutorial.", - "source_url": "https://pine.fm/LearnToProgram/chap_01.html" + } } diff --git a/exercises/practice/spiral-matrix/.meta/config.json b/exercises/practice/spiral-matrix/.meta/config.json index 18e893344..4cd55443c 100644 --- a/exercises/practice/spiral-matrix/.meta/config.json +++ b/exercises/practice/spiral-matrix/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Given the size, return a square matrix of numbers in spiral order.", + "source": "Reddit r/dailyprogrammer challenge #320 [Easy] Spiral Ascension.", + "source_url": "https://web.archive.org/web/20230607064729/https://old.reddit.com/r/dailyprogrammer/comments/6i60lr/20170619_challenge_320_easy_spiral_ascension/", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Reddit r/dailyprogrammer challenge #320 [Easy] Spiral Ascension.", - "source_url": "https://web.archive.org/web/20230607064729/https://old.reddit.com/r/dailyprogrammer/comments/6i60lr/20170619_challenge_320_easy_spiral_ascension/" + } } diff --git a/exercises/practice/square-root/.meta/config.json b/exercises/practice/square-root/.meta/config.json index cd0f82de6..c937119af 100644 --- a/exercises/practice/square-root/.meta/config.json +++ b/exercises/practice/square-root/.meta/config.json @@ -14,6 +14,8 @@ ] }, "blurb": "Given a natural radicand, return its square root.", + "source": "wolf99", + "source_url": "https://github.com/exercism/problem-specifications/pull/1582", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -21,7 +23,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "wolf99", - "source_url": "https://github.com/exercism/problem-specifications/pull/1582" + } } diff --git a/exercises/practice/state-of-tic-tac-toe/.meta/config.json b/exercises/practice/state-of-tic-tac-toe/.meta/config.json index bc050281a..c179910e1 100644 --- a/exercises/practice/state-of-tic-tac-toe/.meta/config.json +++ b/exercises/practice/state-of-tic-tac-toe/.meta/config.json @@ -17,6 +17,8 @@ ] }, "blurb": "Determine the game state of a match of Tic-Tac-Toe.", + "source": "Created by Sascha Mann for the Julia track of the Exercism Research Experiment.", + "source_url": "https://github.com/exercism/research_experiment_1/tree/julia-dev/exercises/julia-1-a", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -24,7 +26,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Created by Sascha Mann for the Julia track of the Exercism Research Experiment.", - "source_url": "https://github.com/exercism/research_experiment_1/tree/julia-dev/exercises/julia-1-a" + } } diff --git a/exercises/practice/strain/.meta/config.json b/exercises/practice/strain/.meta/config.json index 07564d4ea..217d88543 100644 --- a/exercises/practice/strain/.meta/config.json +++ b/exercises/practice/strain/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Implement the `keep` and `discard` operation on collections.", + "source": "Conversation with James Edward Gray II", + "source_url": "http://graysoftinc.com/", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Conversation with James Edward Gray II", - "source_url": "http://graysoftinc.com/" + } } diff --git a/exercises/practice/sum-of-multiples/.meta/config.json b/exercises/practice/sum-of-multiples/.meta/config.json index f34229386..ad96ae9ee 100644 --- a/exercises/practice/sum-of-multiples/.meta/config.json +++ b/exercises/practice/sum-of-multiples/.meta/config.json @@ -16,6 +16,8 @@ ] }, "blurb": "Given a number, find the sum of all the multiples of particular numbers up to but not including that number.", + "source": "A variation on Problem 1 at Project Euler", + "source_url": "https://projecteuler.net/problem=1", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -23,7 +25,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "A variation on Problem 1 at Project Euler", - "source_url": "https://projecteuler.net/problem=1" + } } diff --git a/exercises/practice/transpose/.meta/config.json b/exercises/practice/transpose/.meta/config.json index 41103ef54..3b0611623 100644 --- a/exercises/practice/transpose/.meta/config.json +++ b/exercises/practice/transpose/.meta/config.json @@ -19,6 +19,8 @@ ] }, "blurb": "Take input text and output it transposed.", + "source": "Reddit r/dailyprogrammer challenge #270 [Easy].", + "source_url": "https://web.archive.org/web/20230630051421/https://old.reddit.com/r/dailyprogrammer/comments/4msu2x/challenge_270_easy_transpose_the_input_text/", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -26,7 +28,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Reddit r/dailyprogrammer challenge #270 [Easy].", - "source_url": "https://web.archive.org/web/20230630051421/https://old.reddit.com/r/dailyprogrammer/comments/4msu2x/challenge_270_easy_transpose_the_input_text/" + } } diff --git a/exercises/practice/triangle/.meta/config.json b/exercises/practice/triangle/.meta/config.json index 7468df815..ddcfbc067 100644 --- a/exercises/practice/triangle/.meta/config.json +++ b/exercises/practice/triangle/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Determine if a triangle is equilateral, isosceles, or scalene.", + "source": "The Ruby Koans triangle project, parts 1 & 2", + "source_url": "https://www.rubykoans.com/", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "The Ruby Koans triangle project, parts 1 & 2", - "source_url": "https://www.rubykoans.com/" + } } diff --git a/exercises/practice/twelve-days/.meta/config.json b/exercises/practice/twelve-days/.meta/config.json index 1a54b1d93..9d8ecb541 100644 --- a/exercises/practice/twelve-days/.meta/config.json +++ b/exercises/practice/twelve-days/.meta/config.json @@ -19,6 +19,8 @@ ] }, "blurb": "Output the lyrics to 'The Twelve Days of Christmas'.", + "source": "Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/The_Twelve_Days_of_Christmas_(song)", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -26,7 +28,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/The_Twelve_Days_of_Christmas_(song)" + } } diff --git a/exercises/practice/two-bucket/.meta/config.json b/exercises/practice/two-bucket/.meta/config.json index 6b644af7d..fffca0c3a 100644 --- a/exercises/practice/two-bucket/.meta/config.json +++ b/exercises/practice/two-bucket/.meta/config.json @@ -16,6 +16,8 @@ ] }, "blurb": "Given two buckets of different size, demonstrate how to measure an exact number of liters.", + "source": "Water Pouring Problem", + "source_url": "https://demonstrations.wolfram.com/WaterPouringProblem/", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -23,7 +25,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Water Pouring Problem", - "source_url": "https://demonstrations.wolfram.com/WaterPouringProblem/" + } } diff --git a/exercises/practice/two-fer/.meta/config.json b/exercises/practice/two-fer/.meta/config.json index c13017fd6..feaf71f2d 100644 --- a/exercises/practice/two-fer/.meta/config.json +++ b/exercises/practice/two-fer/.meta/config.json @@ -18,6 +18,7 @@ ] }, "blurb": "Create a sentence of the form \"One for X, one for me.\".", + "source_url": "https://github.com/exercism/problem-specifications/issues/757", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,6 +26,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source_url": "https://github.com/exercism/problem-specifications/issues/757" + } } diff --git a/exercises/practice/variable-length-quantity/.meta/config.json b/exercises/practice/variable-length-quantity/.meta/config.json index 3f6e1ad96..8b1b820f7 100644 --- a/exercises/practice/variable-length-quantity/.meta/config.json +++ b/exercises/practice/variable-length-quantity/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Implement variable length quantity encoding and decoding.", + "source": "A poor Splice developer having to implement MIDI encoding/decoding.", + "source_url": "https://splice.com", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "A poor Splice developer having to implement MIDI encoding/decoding.", - "source_url": "https://splice.com" + } } diff --git a/exercises/practice/word-count/.meta/config.json b/exercises/practice/word-count/.meta/config.json index 507a0b062..8d937b1d4 100644 --- a/exercises/practice/word-count/.meta/config.json +++ b/exercises/practice/word-count/.meta/config.json @@ -19,6 +19,7 @@ ] }, "blurb": "Given a phrase, count the occurrences of each word in that phrase.", + "source": "This is a classic toy problem, but we were reminded of it by seeing it in the Go Tour.", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -26,6 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "This is a classic toy problem, but we were reminded of it by seeing it in the Go Tour." + } } diff --git a/exercises/practice/wordy/.meta/config.json b/exercises/practice/wordy/.meta/config.json index 3f576f842..b69221d0c 100644 --- a/exercises/practice/wordy/.meta/config.json +++ b/exercises/practice/wordy/.meta/config.json @@ -18,6 +18,8 @@ ] }, "blurb": "Parse and evaluate simple math word problems returning the answer as an integer.", + "source": "Inspired by one of the generated questions in the Extreme Startup game.", + "source_url": "https://github.com/rchatley/extreme_startup", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -25,7 +27,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "Inspired by one of the generated questions in the Extreme Startup game.", - "source_url": "https://github.com/rchatley/extreme_startup" + } } diff --git a/exercises/practice/yacht/.meta/config.json b/exercises/practice/yacht/.meta/config.json index 4760e9b11..337d34fd9 100644 --- a/exercises/practice/yacht/.meta/config.json +++ b/exercises/practice/yacht/.meta/config.json @@ -17,6 +17,8 @@ ] }, "blurb": "Score a single throw of dice in the game Yacht.", + "source": "James Kilfiger, using Wikipedia", + "source_url": "https://en.wikipedia.org/wiki/Yacht_(dice_game)", "custom": { "version.tests.compatibility": "jest-29", "flag.tests.task-per-describe": false, @@ -24,7 +26,5 @@ "flag.tests.includes-optional": false, "flag.tests.jest": true, "flag.tests.tstyche": false - }, - "source": "James Kilfiger, using Wikipedia", - "source_url": "https://en.wikipedia.org/wiki/Yacht_(dice_game)" + } }