From 4b45510d31688b84f829a09a5f132529a3a1ea26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A1s=20B=20Nagy?= <20251272+BNAndras@users.noreply.github.com> Date: Sat, 7 Feb 2026 09:34:30 -0800 Subject: [PATCH 1/3] Sync docs --- exercises/practice/relative-distance/.docs/instructions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exercises/practice/relative-distance/.docs/instructions.md b/exercises/practice/relative-distance/.docs/instructions.md index 9046aee..64ca4e4 100644 --- a/exercises/practice/relative-distance/.docs/instructions.md +++ b/exercises/practice/relative-distance/.docs/instructions.md @@ -36,4 +36,4 @@ Isla and Tariq are siblings and have a separation of 1. Similarly, this implementation would report a separation of 2 from you to your father's brother. ~~~~ -[six-bacons]: https://en.m.wikipedia.org/wiki/Six_Degrees_of_Kevin_Bacon +[six-bacons]: https://en.wikipedia.org/wiki/Six_Degrees_of_Kevin_Bacon From 4bec6ab4eb2c9e7a7c3b9b982253de42546015e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A1s=20B=20Nagy?= <20251272+BNAndras@users.noreply.github.com> Date: Sat, 7 Feb 2026 09:34:46 -0800 Subject: [PATCH 2/3] Sync metadata --- exercises/practice/allergies/.meta/config.json | 2 +- exercises/practice/bob/.meta/config.json | 2 +- exercises/practice/etl/.meta/config.json | 2 +- exercises/practice/kindergarten-garden/.meta/config.json | 2 +- exercises/practice/matrix/.meta/config.json | 2 +- exercises/practice/phone-number/.meta/config.json | 2 +- exercises/practice/pig-latin/.meta/config.json | 2 +- exercises/practice/reverse-string/.meta/config.json | 2 +- exercises/practice/space-age/.meta/config.json | 2 +- exercises/practice/triangle/.meta/config.json | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/exercises/practice/allergies/.meta/config.json b/exercises/practice/allergies/.meta/config.json index 0d9be16..1d6ae64 100644 --- a/exercises/practice/allergies/.meta/config.json +++ b/exercises/practice/allergies/.meta/config.json @@ -18,5 +18,5 @@ }, "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://turing.edu" + "source_url": "https://www.turing.edu/" } diff --git a/exercises/practice/bob/.meta/config.json b/exercises/practice/bob/.meta/config.json index 8fd223c..623341e 100644 --- a/exercises/practice/bob/.meta/config.json +++ b/exercises/practice/bob/.meta/config.json @@ -19,5 +19,5 @@ }, "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/?Chapter=06" + "source_url": "https://pine.fm/LearnToProgram/chap_06.html" } diff --git a/exercises/practice/etl/.meta/config.json b/exercises/practice/etl/.meta/config.json index f243032..c053ba8 100644 --- a/exercises/practice/etl/.meta/config.json +++ b/exercises/practice/etl/.meta/config.json @@ -18,5 +18,5 @@ }, "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://turing.edu" + "source_url": "https://www.turing.edu/" } diff --git a/exercises/practice/kindergarten-garden/.meta/config.json b/exercises/practice/kindergarten-garden/.meta/config.json index 7b0ec1e..94042d2 100644 --- a/exercises/practice/kindergarten-garden/.meta/config.json +++ b/exercises/practice/kindergarten-garden/.meta/config.json @@ -15,5 +15,5 @@ }, "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://turing.edu" + "source_url": "https://www.turing.edu/" } diff --git a/exercises/practice/matrix/.meta/config.json b/exercises/practice/matrix/.meta/config.json index fbde0c5..28ccb85 100644 --- a/exercises/practice/matrix/.meta/config.json +++ b/exercises/practice/matrix/.meta/config.json @@ -15,5 +15,5 @@ }, "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://turing.edu" + "source_url": "https://www.turing.edu/" } diff --git a/exercises/practice/phone-number/.meta/config.json b/exercises/practice/phone-number/.meta/config.json index 0c800c9..cb78d22 100644 --- a/exercises/practice/phone-number/.meta/config.json +++ b/exercises/practice/phone-number/.meta/config.json @@ -19,5 +19,5 @@ }, "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://turing.edu" + "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 a8b3c62..d8277c0 100644 --- a/exercises/practice/pig-latin/.meta/config.json +++ b/exercises/practice/pig-latin/.meta/config.json @@ -18,5 +18,5 @@ }, "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/blob/master/learn_ruby/pig_latin/" + "source_url": "https://github.com/ultrasaurus/test-first-teaching/tree/master/learn_ruby/pig_latin" } diff --git a/exercises/practice/reverse-string/.meta/config.json b/exercises/practice/reverse-string/.meta/config.json index cae7d4b..048c151 100644 --- a/exercises/practice/reverse-string/.meta/config.json +++ b/exercises/practice/reverse-string/.meta/config.json @@ -15,5 +15,5 @@ }, "blurb": "Reverse a given string.", "source": "Introductory challenge to reverse an input string", - "source_url": "https://medium.freecodecamp.org/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb" + "source_url": "https://www.freecodecamp.org/news/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb" } diff --git a/exercises/practice/space-age/.meta/config.json b/exercises/practice/space-age/.meta/config.json index 75fea0c..0e886bb 100644 --- a/exercises/practice/space-age/.meta/config.json +++ b/exercises/practice/space-age/.meta/config.json @@ -15,5 +15,5 @@ }, "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/?Chapter=01" + "source_url": "https://pine.fm/LearnToProgram/chap_01.html" } diff --git a/exercises/practice/triangle/.meta/config.json b/exercises/practice/triangle/.meta/config.json index 54611e8..d2c416a 100644 --- a/exercises/practice/triangle/.meta/config.json +++ b/exercises/practice/triangle/.meta/config.json @@ -18,5 +18,5 @@ }, "blurb": "Determine if a triangle is equilateral, isosceles, or scalene.", "source": "The Ruby Koans triangle project, parts 1 & 2", - "source_url": "https://web.archive.org/web/20220831105330/http://rubykoans.com" + "source_url": "https://www.rubykoans.com/" } From c055a129334f52fdae7909037d9f33e656044333 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A1s=20B=20Nagy?= <20251272+BNAndras@users.noreply.github.com> Date: Sat, 7 Feb 2026 09:36:07 -0800 Subject: [PATCH 3/3] Sync testss --- .../practice/perfect-numbers/.meta/tests.toml | 3 ++ .../perfect-numbers/perfect_numbers.vader | 32 +++++++++++-------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/exercises/practice/perfect-numbers/.meta/tests.toml b/exercises/practice/perfect-numbers/.meta/tests.toml index ec28889..81d4840 100644 --- a/exercises/practice/perfect-numbers/.meta/tests.toml +++ b/exercises/practice/perfect-numbers/.meta/tests.toml @@ -27,6 +27,9 @@ description = "Abundant numbers -> Medium abundant number is classified correctl [ec7792e6-8786-449c-b005-ce6dd89a772b] description = "Abundant numbers -> Large abundant number is classified correctly" +[05f15b93-849c-45e9-9c7d-1ea131ef7d10] +description = "Abundant numbers -> Perfect square abundant number is classified correctly" + [e610fdc7-2b6e-43c3-a51c-b70fb37413ba] description = "Deficient numbers -> Smallest prime deficient number is classified correctly" diff --git a/exercises/practice/perfect-numbers/perfect_numbers.vader b/exercises/practice/perfect-numbers/perfect_numbers.vader index 823b310..93fec55 100644 --- a/exercises/practice/perfect-numbers/perfect_numbers.vader +++ b/exercises/practice/perfect-numbers/perfect_numbers.vader @@ -1,67 +1,71 @@ - Execute (Smallest perfect number is classified correctly): let g:number = 6 - let g:expected = "perfect" + let g:expected = 'perfect' AssertEqual g:expected, Classify(g:number) Execute (Medium perfect number is classified correctly): let g:number = 28 - let g:expected = "perfect" + let g:expected = 'perfect' AssertEqual g:expected, Classify(g:number) Execute (Large perfect number is classified correctly): let g:number = 33550336 - let g:expected = "perfect" + let g:expected = 'perfect' AssertEqual g:expected, Classify(g:number) Execute (Smallest abundant number is classified correctly): let g:number = 12 - let g:expected = "abundant" + let g:expected = 'abundant' AssertEqual g:expected, Classify(g:number) Execute (Medium abundant number is classified correctly): let g:number = 30 - let g:expected = "abundant" + let g:expected = 'abundant' AssertEqual g:expected, Classify(g:number) Execute (Large abundant number is classified correctly): let g:number = 33550335 - let g:expected = "abundant" + let g:expected = 'abundant' + AssertEqual g:expected, Classify(g:number) + +Execute (Perfect square abundant number is classified correctly): + let g:number = 196 + let g:expected = 'abundant' AssertEqual g:expected, Classify(g:number) Execute (Smallest prime deficient number is classified correctly): let g:number = 2 - let g:expected = "deficient" + let g:expected = 'deficient' AssertEqual g:expected, Classify(g:number) Execute (Smallest non-prime deficient number is classified correctly): let g:number = 4 - let g:expected = "deficient" + let g:expected = 'deficient' AssertEqual g:expected, Classify(g:number) Execute (Medium deficient number is classified correctly): let g:number = 32 - let g:expected = "deficient" + let g:expected = 'deficient' AssertEqual g:expected, Classify(g:number) Execute (Large deficient number is classified correctly): let g:number = 33550337 - let g:expected = "deficient" + let g:expected = 'deficient' AssertEqual g:expected, Classify(g:number) Execute (Edge case (no factors other than itself) is classified correctly): let g:number = 1 - let g:expected = "deficient" + let g:expected = 'deficient' AssertEqual g:expected, Classify(g:number) Execute (Zero is rejected (as it is not a positive integer)): let g:number = 0 - let g:expected = "Classification is only possible for positive integers." + let g:expected = 'Classification is only possible for positive integers.' AssertThrows call Classify(g:number) AssertEqual g:expected, g:vader_exception Execute (Negative integer is rejected (as it is not a positive integer)): let g:number = -1 - let g:expected = "Classification is only possible for positive integers." + let g:expected = 'Classification is only possible for positive integers.' AssertThrows call Classify(g:number) AssertEqual g:expected, g:vader_exception