From 175a3c39bb6dd68fa60dd2632741bfc015ca62b6 Mon Sep 17 00:00:00 2001 From: resu-xuniL Date: Sat, 11 Jul 2026 22:10:08 +0200 Subject: [PATCH 1/6] Missing `TestDox` on `HouseTest.php` --- exercises/practice/house/HouseTest.php | 39 ++++++++++++++++++-------- 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/exercises/practice/house/HouseTest.php b/exercises/practice/house/HouseTest.php index ab5248f3f..bdb33ac3c 100644 --- a/exercises/practice/house/HouseTest.php +++ b/exercises/practice/house/HouseTest.php @@ -2,6 +2,7 @@ declare(strict_types=1); +use PHPUnit\Framework\Attributes\TestDox; use PHPUnit\Framework\TestCase; class HouseTest extends TestCase @@ -21,7 +22,8 @@ protected function setUp(): void /** * uuid: 28a540ff-f765-4348-9d57-ae33f25f41f2 */ - public function testVerseOne(): void + #[TestDox('Verse one - the house that jack built')] + public function testVerseOneTheHouseThatJackBuilt(): void { $lyrics = ['This is the house that Jack built.']; $this->assertEquals($lyrics, $this->house->verse(1)); @@ -30,7 +32,8 @@ public function testVerseOne(): void /** * uuid: ebc825ac-6e2b-4a5e-9afd-95732191c8da */ - public function testVerseTwo(): void + #[TestDox('Verse two - the malt that lay')] + public function testVerseTwoTheMaltThatLay(): void { $lyrics = [ 'This is the malt', @@ -42,7 +45,8 @@ public function testVerseTwo(): void /** * uuid: 1ed8bb0f-edb8-4bd1-b6d4-b64754fe4a60 */ - public function testVerseThree(): void + #[TestDox('Verse three - the rat that ate')] + public function testVerseThreeTheRatThatAte(): void { $lyrics = [ 'This is the rat', @@ -55,7 +59,8 @@ public function testVerseThree(): void /** * uuid: 64b0954e-8b7d-4d14-aad0-d3f6ce297a30 */ - public function testVerseFour(): void + #[TestDox('Verse four - the cat that killed')] + public function testVerseFourTheCatThatKilled(): void { $lyrics = [ 'This is the cat', @@ -69,7 +74,8 @@ public function testVerseFour(): void /** * uuid: 1e8d56bc-fe31-424d-9084-61e6111d2c82 */ - public function testVerseFive(): void + #[TestDox('Verse five - the dog that worried')] + public function testVerseFiveTheDogThatWorried(): void { $lyrics = [ 'This is the dog', @@ -84,7 +90,8 @@ public function testVerseFive(): void /** * uuid: 6312dc6f-ab0a-40c9-8a55-8d4e582beac4 */ - public function testVerseSix(): void + #[TestDox('Verse six - the cow with the crumpled horn')] + public function testVerseSixTheCowWithTheCrumpledHorn(): void { $lyrics = [ 'This is the cow with the crumpled horn', @@ -100,7 +107,8 @@ public function testVerseSix(): void /** * uuid: 68f76d18-6e19-4692-819c-5ff6a7f92feb */ - public function testVerseSeven(): void + #[TestDox('Verse seven - the maiden all forlorn')] + public function testVerseSevenTheMaidenAllForlorn(): void { $lyrics = [ 'This is the maiden all forlorn', @@ -117,7 +125,8 @@ public function testVerseSeven(): void /** * uuid: 73872564-2004-4071-b51d-2e4326096747 */ - public function testVerseEight(): void + #[TestDox('Verse eight - the man all tattered and torn')] + public function testVerseEightTheManAllTatteredAndTorn(): void { $lyrics = [ 'This is the man all tattered and torn', @@ -135,7 +144,8 @@ public function testVerseEight(): void /** * uuid: 0d53d743-66cb-4351-a173-82702f3338c9 */ - public function testVerseNine(): void + #[TestDox('Verse nine - the priest all shaven and shorn')] + public function testVerseNineThePriestAllShavenAndShorn(): void { $lyrics = [ 'This is the priest all shaven and shorn', @@ -154,7 +164,8 @@ public function testVerseNine(): void /** * uuid: 452f24dc-8fd7-4a82-be1a-3b4839cfeb41 */ - public function testVerseTen(): void + #[TestDox('Verse ten - the rooster that crowed in the morn')] + public function testVerseTenTheRoosterThatCrowedInTheMorn(): void { $lyrics = [ 'This is the rooster that crowed in the morn', @@ -174,7 +185,8 @@ public function testVerseTen(): void /** * uuid: 97176f20-2dd3-4646-ac72-cffced91ea26 */ - public function testVerseEleven(): void + #[TestDox('Verse eleven - the farmer sowing his corn')] + public function testVerseElevenTheFarmerSowingHisCorn(): void { $lyrics = [ 'This is the farmer sowing his corn', @@ -195,7 +207,8 @@ public function testVerseEleven(): void /** * uuid: 09824c29-6aad-4dcd-ac98-f61374a6a8b7 */ - public function testVerseTwelve(): void + #[TestDox('Verse twelve - the horse and the hound and the horn')] + public function testVerseTwelveTheHorseAndTheHoundAndTheHorn(): void { $lyrics = [ 'This is the horse and the hound and the horn', @@ -217,6 +230,7 @@ public function testVerseTwelve(): void /** * uuid: d2b980d3-7851-49e1-97ab-1524515ec200 */ + #[TestDox('Multiple verses')] public function testMultipleVerses(): void { $startVerse = 4; @@ -263,6 +277,7 @@ public function testMultipleVerses(): void /** * uuid: 0311d1d0-e085-4f23-8ae7-92406fb3e803 */ + #[TestDox('Full rhyme')] public function testFullRhyme(): void { $startVerse = 1; From 55dc36d4448503e11495f7638308b457d178f85d Mon Sep 17 00:00:00 2001 From: resu-xuniL Date: Sat, 11 Jul 2026 22:29:39 +0200 Subject: [PATCH 2/6] Missing `TestDox` on `KillerSudokuHelperTest.php` --- .../KillerSudokuHelperTest.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/exercises/practice/killer-sudoku-helper/KillerSudokuHelperTest.php b/exercises/practice/killer-sudoku-helper/KillerSudokuHelperTest.php index fc86a9164..229154f30 100644 --- a/exercises/practice/killer-sudoku-helper/KillerSudokuHelperTest.php +++ b/exercises/practice/killer-sudoku-helper/KillerSudokuHelperTest.php @@ -2,6 +2,7 @@ declare(strict_types=1); +use PHPUnit\Framework\Attributes\TestDox; use PHPUnit\Framework\TestCase; class KillerSudokuHelperTest extends TestCase @@ -21,6 +22,7 @@ protected function setUp(): void /** * uuid: 2aaa8f13-11b5-4054-b95c-a906e4d79fb6 */ + #[TestDox('Trivial 1-digit cages -> 1')] public function testTrivialOneDigitCages1(): void { $expected = [ @@ -32,6 +34,7 @@ public function testTrivialOneDigitCages1(): void /** * uuid: 4645da19-9fdd-4087-a910-a6ed66823563 */ + #[TestDox('Trivial 1-digit cages -> 2')] public function testTrivialOneDigitCages2(): void { $expected = [ @@ -43,6 +46,7 @@ public function testTrivialOneDigitCages2(): void /** * uuid: 07cfc704-f8aa-41b2-8f9a-cbefb674cb48 */ + #[TestDox('Trivial 1-digit cages -> 3')] public function testTrivialOneDigitCages3(): void { $expected = [ @@ -54,6 +58,7 @@ public function testTrivialOneDigitCages3(): void /** * uuid: 22b8b2ba-c4fd-40b3-b1bf-40aa5e7b5f24 */ + #[TestDox('Trivial 1-digit cages -> 4')] public function testTrivialOneDigitCages4(): void { $expected = [ @@ -65,6 +70,7 @@ public function testTrivialOneDigitCages4(): void /** * uuid: b75d16e2-ff9b-464d-8578-71f73094cea7 */ + #[TestDox('Trivial 1-digit cages -> 5')] public function testTrivialOneDigitCages5(): void { $expected = [ @@ -76,6 +82,7 @@ public function testTrivialOneDigitCages5(): void /** * uuid: bcbf5afc-4c89-4ff6-9357-07ab4d42788f */ + #[TestDox('Trivial 1-digit cages -> 6')] public function testTrivialOneDigitCages6(): void { $expected = [ @@ -87,6 +94,7 @@ public function testTrivialOneDigitCages6(): void /** * uuid: 511b3bf8-186f-4e35-844f-c804d86f4a7a */ + #[TestDox('Trivial 1-digit cages -> 7')] public function testTrivialOneDigitCages7(): void { $expected = [ @@ -98,6 +106,7 @@ public function testTrivialOneDigitCages7(): void /** * uuid: bd09a60d-3aca-43bd-b6aa-6ccad01bedda */ + #[TestDox('Trivial 1-digit cages -> 8')] public function testTrivialOneDigitCages8(): void { $expected = [ @@ -109,6 +118,7 @@ public function testTrivialOneDigitCages8(): void /** * uuid: 9b539f27-44ea-4ff8-bd3d-c7e136bee677 */ + #[TestDox('Trivial 1-digit cages -> 9')] public function testTrivialOneDigitCages9(): void { $expected = [ @@ -120,6 +130,7 @@ public function testTrivialOneDigitCages9(): void /** * uuid: 0a8b2078-b3a4-4dbd-be0d-b180f503d5c3 */ + #[TestDox('Cage with sum 45 contains all digits 1:9')] public function testCageWithSum45ContainsAllDigits1To9(): void { $expected = [ @@ -131,6 +142,7 @@ public function testCageWithSum45ContainsAllDigits1To9(): void /** * uuid: 2635d7c9-c716-4da1-84f1-c96e03900142 */ + #[TestDox('Cage with only 1 possible combination')] public function testCageWithOnlyOnePossibleCombination(): void { $expected = [ @@ -142,6 +154,7 @@ public function testCageWithOnlyOnePossibleCombination(): void /** * uuid: a5bde743-e3a2-4a0c-8aac-e64fceea4228 */ + #[TestDox('Cage with several combinations')] public function testCageWithSeveralCombinations(): void { $expected = [ @@ -153,6 +166,7 @@ public function testCageWithSeveralCombinations(): void /** * uuid: dfbf411c-737d-465a-a873-ca556360c274 */ + #[TestDox('Cage with several combinations that is restricted')] public function testCageWithSeveralCombinationsThatIsRestricted(): void { $expected = [ From 8110f6b7a180bf1d0fb2ed1e1f06a4236131e9f1 Mon Sep 17 00:00:00 2001 From: resu-xuniL Date: Sun, 12 Jul 2026 08:02:28 +0200 Subject: [PATCH 3/6] Missing `TestDox` on `MicroBlogTest` --- exercises/practice/micro-blog/MicroBlogTest.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/exercises/practice/micro-blog/MicroBlogTest.php b/exercises/practice/micro-blog/MicroBlogTest.php index 5430a4aff..3d653c3ae 100644 --- a/exercises/practice/micro-blog/MicroBlogTest.php +++ b/exercises/practice/micro-blog/MicroBlogTest.php @@ -2,6 +2,7 @@ declare(strict_types=1); +use PHPUnit\Framework\Attributes\TestDox; use PHPUnit\Framework\TestCase; class MicroBlogTest extends TestCase @@ -21,6 +22,7 @@ protected function setUp(): void /** * uuid: b927b57f-7c98-42fd-8f33-fae091dc1efc */ + #[TestDox('English language short')] public function testEnglishLanguageShort(): void { $this->assertEquals('Hi', $this->microBlog->truncate('Hi')); @@ -29,6 +31,7 @@ public function testEnglishLanguageShort(): void /** * uuid: a3fcdc5b-0ed4-4f49-80f5-b1a293eac2a0 */ + #[TestDox('English language long')] public function testEnglishLanguageLong(): void { $this->assertEquals('Hello', $this->microBlog->truncate('Hello there')); @@ -37,6 +40,7 @@ public function testEnglishLanguageLong(): void /** * uuid: 01910864-8e15-4007-9c7c-ac956c686e60 */ + #[TestDox('German language short (broth)')] public function testGermanLanguageShortBroth(): void { $this->assertEquals('brühe', $this->microBlog->truncate('brühe')); @@ -45,6 +49,7 @@ public function testGermanLanguageShortBroth(): void /** * uuid: f263e488-aefb-478f-a671-b6ba99722543 */ + #[TestDox('German language long (bear carpet → beards)')] public function testGermanLanguageLongBearCarpetToBeards(): void { $this->assertEquals('Bärte', $this->microBlog->truncate('Bärteppich')); @@ -53,6 +58,7 @@ public function testGermanLanguageLongBearCarpetToBeards(): void /** * uuid: 0916e8f1-41d7-4402-a110-b08aa000342c */ + #[TestDox('Bulgarian language short (good)')] public function testBulgarianLanguageShortGood(): void { $this->assertEquals('Добър', $this->microBlog->truncate('Добър')); @@ -61,6 +67,7 @@ public function testBulgarianLanguageShortGood(): void /** * uuid: bed6b89c-03df-4154-98e6-a61a74f61b7d */ + #[TestDox('Greek language short (health)')] public function testGreekLanguageShortHealth(): void { $this->assertEquals('υγειά', $this->microBlog->truncate('υγειά')); @@ -69,6 +76,7 @@ public function testGreekLanguageShortHealth(): void /** * uuid: 485a6a70-2edb-424d-b999-5529dbc8e002 */ + #[TestDox('Maths short')] public function testMathShort(): void { $this->assertEquals('a=πr²', $this->microBlog->truncate('a=πr²')); @@ -77,6 +85,7 @@ public function testMathShort(): void /** * uuid: 8b4b7b51-8f48-4fbe-964e-6e4e6438be28 */ + #[TestDox('Maths long')] public function testMathLong(): void { $this->assertEquals('∅⊊ℕ⊊ℤ', $this->microBlog->truncate('∅⊊ℕ⊊ℤ⊊ℚ⊊ℝ⊊ℂ')); @@ -85,6 +94,7 @@ public function testMathLong(): void /** * uuid: 71f4a192-0566-4402-a512-fe12878be523 */ + #[TestDox('English and emoji short')] public function testEnglishAndEmojiShort(): void { $this->assertEquals('Fly 🛫', $this->microBlog->truncate('Fly 🛫')); @@ -93,6 +103,7 @@ public function testEnglishAndEmojiShort(): void /** * uuid: 6f0f71f3-9806-4759-a844-fa182f7bc203 */ + #[TestDox('Emoji short')] public function testEmojiShort(): void { $this->assertEquals('💇', $this->microBlog->truncate('💇')); @@ -101,6 +112,7 @@ public function testEmojiShort(): void /** * uuid: ce71fb92-5214-46d0-a7f8-d5ba56b4cc6e */ + #[TestDox('Emoji long')] public function testEmojiLong(): void { $this->assertEquals('❄🌡🤧🤒🏥', $this->microBlog->truncate('❄🌡🤧🤒🏥🕰😀')); @@ -109,6 +121,7 @@ public function testEmojiLong(): void /** * uuid: 5dee98d2-d56e-468a-a1f2-121c3f7c5a0b */ + #[TestDox('Royal Flush?')] public function testRoyalFlush(): void { $this->assertEquals('🃎🂸🃅🃋🃍', $this->microBlog->truncate('🃎🂸🃅🃋🃍🃁🃊')); From 0e4748e5e0832479191b4c8b484d256d47c0e62c Mon Sep 17 00:00:00 2001 From: resu-xuniL Date: Sun, 12 Jul 2026 08:12:36 +0200 Subject: [PATCH 4/6] Missing `TestDox` on `StrainTest` --- exercises/practice/strain/StrainTest.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/exercises/practice/strain/StrainTest.php b/exercises/practice/strain/StrainTest.php index 1d9cc1dbd..df53ba182 100644 --- a/exercises/practice/strain/StrainTest.php +++ b/exercises/practice/strain/StrainTest.php @@ -2,6 +2,7 @@ declare(strict_types=1); +use PHPUnit\Framework\Attributes\TestDox; use PHPUnit\Framework\TestCase; class StrainTest extends TestCase @@ -21,6 +22,7 @@ public function setUp(): void /** * uuid: 26af8c32-ba6a-4eb3-aa0a-ebd8f136e003 */ + #[TestDox('Keep on empty list returns empty list')] public function testKeepOnEmptyListReturnsEmptyList(): void { $list = []; @@ -34,6 +36,7 @@ public function testKeepOnEmptyListReturnsEmptyList(): void /** * uuid: f535cb4d-e99b-472a-bd52-9fa0ffccf454 */ + #[TestDox('Keeps everything')] public function testKeepsEverything(): void { $list = [1, 3, 5]; @@ -47,6 +50,7 @@ public function testKeepsEverything(): void /** * uuid: 950b8e8e-f628-42a8-85e2-9b30f09cde38 */ + #[TestDox('Keeps nothing')] public function testKeepNothing(): void { $list = [1, 3, 5]; @@ -60,6 +64,7 @@ public function testKeepNothing(): void /** * uuid: 92694259-6e76-470c-af87-156bdf75018a */ + #[TestDox('Keeps first and last')] public function testKeepFirstAndLast(): void { $list = [1, 2, 3]; @@ -73,6 +78,7 @@ public function testKeepFirstAndLast(): void /** * uuid: 938f7867-bfc7-449e-a21b-7b00cbb56994 */ + #[TestDox('Keeps neither first nor last')] public function testKeepNeitherFirstNorLast(): void { $list = [1, 2, 3]; @@ -86,6 +92,7 @@ public function testKeepNeitherFirstNorLast(): void /** * uuid: 8908e351-4437-4d2b-a0f7-770811e4881 */ + #[TestDox('Keeps strings')] public function testKeepStrings(): void { $list = ["apple", "zebra", "banana", "zombies", "cherimoya", "zealot"]; @@ -99,6 +106,7 @@ public function testKeepStrings(): void /** * uuid: 2728036b-102a-4f1e-a3ef-eac6160d876a */ + #[TestDox('Keeps lists')] public function testKeepsLists(): void { $list = [ @@ -127,6 +135,7 @@ public function testKeepsLists(): void /** * uuid: ef16beb9-8d84-451a-996a-14e80607fce6 */ + #[TestDox('Discard on empty list returns empty list')] public function testDiscardOnEmptyListReturnsEmptyList(): void { $list = []; @@ -140,6 +149,7 @@ public function testDiscardOnEmptyListReturnsEmptyList(): void /** * uuid: 2f42f9bc-8e06-4afe-a222-051b5d8cd12a */ + #[TestDox('Discards everything')] public function testDiscardEverything(): void { $list = [1, 3, 5]; @@ -153,6 +163,7 @@ public function testDiscardEverything(): void /** * uuid: ca990fdd-08c2-4f95-aa50-e0f5e1d6802b */ + #[TestDox('Discards nothing')] public function testDiscardNothing(): void { $list = [1, 3, 5]; @@ -166,6 +177,7 @@ public function testDiscardNothing(): void /** * uuid: 71595dae-d283-48ca-a52b-45fa96819d2f */ + #[TestDox('Discards first and last')] public function testDiscardFirstAndLast(): void { $list = [1, 2, 3]; @@ -179,6 +191,7 @@ public function testDiscardFirstAndLast(): void /** * uuid: ae141f79-f86d-4567-b407-919eaca0f3dd */ + #[TestDox('Discards neither first nor last')] public function testDiscardNeitherFirstNorLast(): void { $list = [1, 2, 3]; @@ -192,6 +205,7 @@ public function testDiscardNeitherFirstNorLast(): void /** * uuid: daf25b36-a59f-4f29-bcfe-302eb4e43609 */ + #[TestDox('Discards strings')] public function testDiscardStrings(): void { $list = ["apple", "zebra", "banana", "zombies", "cherimoya", "zealot"]; @@ -205,6 +219,7 @@ public function testDiscardStrings(): void /** * uuid: a38d03f9-95ad-4459-80d1-48e937e4acaf */ + #[TestDox('Discards lists')] public function testDiscardLists(): void { $list = [ From 7b904e80d10046159eb949f19802910f2c67b278 Mon Sep 17 00:00:00 2001 From: resu-xuniL Date: Sun, 12 Jul 2026 08:22:30 +0200 Subject: [PATCH 5/6] Missing `TestDox` on `SublistTest` --- exercises/practice/sublist/SublistTest.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/exercises/practice/sublist/SublistTest.php b/exercises/practice/sublist/SublistTest.php index 2a920105e..cac899b0c 100644 --- a/exercises/practice/sublist/SublistTest.php +++ b/exercises/practice/sublist/SublistTest.php @@ -2,6 +2,7 @@ declare(strict_types=1); +use PHPUnit\Framework\Attributes\TestDox; use PHPUnit\Framework\TestCase; class SublistTest extends TestCase @@ -21,6 +22,7 @@ public function setUp(): void /** * uuid: 97319c93-ebc5-47ab-a022-02a1980e1d29 */ + #[TestDox('Empty lists')] public function testEmptyLists(): void { $listOne = []; @@ -32,6 +34,7 @@ public function testEmptyLists(): void /** * uuid: de27dbd4-df52-46fe-a336-30be58457382 */ + #[TestDox('Empty list within non empty list')] public function testEmptyListWithinNonEmptyList(): void { $listOne = []; @@ -43,6 +46,7 @@ public function testEmptyListWithinNonEmptyList(): void /** * uuid: 5487cfd1-bc7d-429f-ac6f-1177b857d4fb */ + #[TestDox('Non empty list contains empty list')] public function testNonEmptyListContainsEmptyList(): void { $listOne = [1, 2, 3]; @@ -54,6 +58,7 @@ public function testNonEmptyListContainsEmptyList(): void /** * uuid: 1f390b47-f6b2-4a93-bc23-858ba5dda9a6 */ + #[TestDox('List equals itself')] public function testListEqualsItself(): void { $listOne = [1, 2, 3]; @@ -65,6 +70,7 @@ public function testListEqualsItself(): void /** * uuid: 7ed2bfb2-922b-4363-ae75-f3a05e8274f5 */ + #[TestDox('Different lists')] public function testDifferentLists(): void { $listOne = [1, 2, 3]; @@ -76,6 +82,7 @@ public function testDifferentLists(): void /** * uuid: 3b8a2568-6144-4f06-b0a1-9d266b365341 */ + #[TestDox('False start')] public function testFalseStart(): void { $listOne = [1, 2, 5]; @@ -87,6 +94,7 @@ public function testFalseStart(): void /** * uuid: dc39ed58-6311-4814-be30-05a64bc8d9b1 */ + #[TestDox('Consecutive')] public function testConsecutive(): void { $listOne = [1, 1, 2]; @@ -98,6 +106,7 @@ public function testConsecutive(): void /** * uuid: d1270dab-a1ce-41aa-b29d-b3257241ac26 */ + #[TestDox('Sublist at start')] public function testSublistAtStart(): void { $listOne = [0, 1, 2]; @@ -109,6 +118,7 @@ public function testSublistAtStart(): void /** * uuid: 81f3d3f7-4f25-4ada-bcdc-897c403de1b6 */ + #[TestDox('Sublist in middle')] public function testSublistInMiddle(): void { $listOne = [2, 3, 4]; @@ -120,6 +130,7 @@ public function testSublistInMiddle(): void /** * uuid: 43bcae1e-a9cf-470e-923e-0946e04d8fdd */ + #[TestDox('Sublist at end')] public function testSublistAtEnd(): void { $listOne = [3, 4, 5]; @@ -131,6 +142,7 @@ public function testSublistAtEnd(): void /** * uuid: 76cf99ed-0ff0-4b00-94af-4dfb43fe5caa */ + #[TestDox('At start of superlist')] public function testAtStartOfSuperlist(): void { $listOne = [0, 1, 2, 3, 4, 5]; @@ -142,6 +154,7 @@ public function testAtStartOfSuperlist(): void /** * uuid: b83989ec-8bdf-4655-95aa-9f38f3e357fd */ + #[TestDox('In middle of superlist')] public function testInMiddleOfSuperlist(): void { $listOne = [0, 1, 2, 3, 4, 5]; @@ -153,6 +166,7 @@ public function testInMiddleOfSuperlist(): void /** * uuid: 26f9f7c3-6cf6-4610-984a-662f71f8689b */ + #[TestDox('At end of superlist')] public function testAtEndOfSuperlist(): void { $listOne = [0, 1, 2, 3, 4, 5]; @@ -164,6 +178,7 @@ public function testAtEndOfSuperlist(): void /** * uuid: 0a6db763-3588-416a-8f47-76b1cedde31e */ + #[TestDox('First list missing element from second list')] public function testFirstListMissingElementFromSecondList(): void { $listOne = [1, 3]; @@ -175,6 +190,7 @@ public function testFirstListMissingElementFromSecondList(): void /** * uuid: 83ffe6d8-a445-4a3c-8795-1e51a95e65c3 */ + #[TestDox('Second list missing element from first list')] public function testSecondListMissingElementFromFirstList(): void { $listOne = [1, 2, 3]; @@ -186,6 +202,7 @@ public function testSecondListMissingElementFromFirstList(): void /** * uuid: 7bc76cb8-5003-49ca-bc47-cdfbe6c2bb8 */ + #[TestDox('First list missing additional digits from second list')] public function testFirstListMissingAdditionalDigitsFromSecondList(): void { $listOne = [1, 2]; @@ -197,6 +214,7 @@ public function testFirstListMissingAdditionalDigitsFromSecondList(): void /** * uuid: 0d7ee7c1-0347-45c8-9ef5-b88db152b30b */ + #[TestDox('Order matters to a list')] public function testOrderMattersToList(): void { $listOne = [1, 2, 3]; @@ -208,6 +226,7 @@ public function testOrderMattersToList(): void /** * uuid: 5f47ce86-944e-40f9-9f31-6368aad70aa6 */ + #[TestDox('Same digits but different numbers')] public function testSameDigitsButDifferentNumbers(): void { $listOne = [1, 0, 1]; From 46419044d8a50ad336f50eaf797a0e58f5555e69 Mon Sep 17 00:00:00 2001 From: resu-xuniL Date: Sun, 12 Jul 2026 08:30:28 +0200 Subject: [PATCH 6/6] Add github handle --- exercises/practice/house/.meta/config.json | 3 +++ exercises/practice/killer-sudoku-helper/.meta/config.json | 3 +++ exercises/practice/micro-blog/.meta/config.json | 3 +++ exercises/practice/strain/.meta/config.json | 3 +++ exercises/practice/sublist/.meta/config.json | 3 +++ 5 files changed, 15 insertions(+) diff --git a/exercises/practice/house/.meta/config.json b/exercises/practice/house/.meta/config.json index 2c179d043..b8fbcf5e0 100644 --- a/exercises/practice/house/.meta/config.json +++ b/exercises/practice/house/.meta/config.json @@ -2,6 +2,9 @@ "authors": [ "tomasnorre" ], + "contributors": [ + "resu-xuniL" + ], "files": { "solution": [ "House.php" diff --git a/exercises/practice/killer-sudoku-helper/.meta/config.json b/exercises/practice/killer-sudoku-helper/.meta/config.json index de14a1f75..2d6534d78 100644 --- a/exercises/practice/killer-sudoku-helper/.meta/config.json +++ b/exercises/practice/killer-sudoku-helper/.meta/config.json @@ -2,6 +2,9 @@ "authors": [ "tomasnorre" ], + "contributors": [ + "resu-xuniL" + ], "files": { "solution": [ "KillerSudokuHelper.php" diff --git a/exercises/practice/micro-blog/.meta/config.json b/exercises/practice/micro-blog/.meta/config.json index acb879ec5..98dcad308 100644 --- a/exercises/practice/micro-blog/.meta/config.json +++ b/exercises/practice/micro-blog/.meta/config.json @@ -2,6 +2,9 @@ "authors": [ "tomasnorre" ], + "contributors": [ + "resu-xuniL" + ], "files": { "solution": [ "MicroBlog.php" diff --git a/exercises/practice/strain/.meta/config.json b/exercises/practice/strain/.meta/config.json index 896eef918..6a739652f 100644 --- a/exercises/practice/strain/.meta/config.json +++ b/exercises/practice/strain/.meta/config.json @@ -2,6 +2,9 @@ "authors": [ "tomasnorre" ], + "contributors": [ + "resu-xuniL" + ], "files": { "solution": [ "Strain.php" diff --git a/exercises/practice/sublist/.meta/config.json b/exercises/practice/sublist/.meta/config.json index b4508ccf2..e4a739566 100644 --- a/exercises/practice/sublist/.meta/config.json +++ b/exercises/practice/sublist/.meta/config.json @@ -2,6 +2,9 @@ "authors": [ "tomasnorre" ], + "contributors": [ + "resu-xuniL" + ], "files": { "solution": [ "Sublist.php"