diff --git a/bin/auto-sync.txt b/bin/auto-sync.txt index 9094e760..bf8742fe 100644 --- a/bin/auto-sync.txt +++ b/bin/auto-sync.txt @@ -47,6 +47,7 @@ list-ops luhn markdown matching-brackets +matrix meetup micro-blog nucleotide-count diff --git a/exercises/practice/matrix/.docs/instructions.md b/exercises/practice/matrix/.docs/instructions.md index 1b2d0f84..dadea8ac 100644 --- a/exercises/practice/matrix/.docs/instructions.md +++ b/exercises/practice/matrix/.docs/instructions.md @@ -1,7 +1,6 @@ # Instructions -Given a string representing a matrix of numbers, return the rows and columns of -that matrix. +Given a string representing a matrix of numbers, return the rows and columns of that matrix. So given a string with embedded newlines like: @@ -23,10 +22,8 @@ representing this matrix: your code should be able to spit out: -- A list of the rows, reading each row left-to-right while moving - top-to-bottom across the rows, -- A list of the columns, reading each column top-to-bottom while moving - from left-to-right. +- A list of the rows, reading each row left-to-right while moving top-to-bottom across the rows, +- A list of the columns, reading each column top-to-bottom while moving from left-to-right. The rows for our example matrix: diff --git a/exercises/practice/matrix/.meta/config.json b/exercises/practice/matrix/.meta/config.json index 82691d14..fa1ea51d 100644 --- a/exercises/practice/matrix/.meta/config.json +++ b/exercises/practice/matrix/.meta/config.json @@ -1,6 +1,7 @@ { "authors": [ - "MichaelBunker" + "MichaelBunker", + "Narkunan" ], "files": { "solution": [ @@ -13,5 +14,7 @@ ".meta/example.php" ] }, - "blurb": "Given a string representing a matrix of numbers, return the rows and columns of that matrix." + "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/" } diff --git a/exercises/practice/matrix/.meta/example.php b/exercises/practice/matrix/.meta/example.php index 71cf6ad3..6dc1bfb7 100644 --- a/exercises/practice/matrix/.meta/example.php +++ b/exercises/practice/matrix/.meta/example.php @@ -1,27 +1,5 @@ . - * - * To disable strict typing, comment out the directive below. - */ - declare(strict_types=1); class Matrix diff --git a/exercises/practice/matrix/.meta/tests.toml b/exercises/practice/matrix/.meta/tests.toml new file mode 100644 index 00000000..90b509c4 --- /dev/null +++ b/exercises/practice/matrix/.meta/tests.toml @@ -0,0 +1,34 @@ +# This is an auto-generated file. +# +# Regenerating this file via `configlet sync` will: +# - Recreate every `description` key/value pair +# - Recreate every `reimplements` key/value pair, where they exist in problem-specifications +# - Remove any `include = true` key/value pair (an omitted `include` key implies inclusion) +# - Preserve any other key/value pair +# +# As user-added comments (using the # character) will be removed when this file +# is regenerated, comments can be added via a `comment` key. + +[ca733dab-9d85-4065-9ef6-a880a951dafd] +description = "extract row from one number matrix" + +[5c93ec93-80e1-4268-9fc2-63bc7d23385c] +description = "can extract row" + +[2f1aad89-ad0f-4bd2-9919-99a8bff0305a] +description = "extract row where numbers have different widths" + +[68f7f6ba-57e2-4e87-82d0-ad09889b5204] +description = "can extract row from non-square matrix with no corresponding column" + +[e8c74391-c93b-4aed-8bfe-f3c9beb89ebb] +description = "extract column from one number matrix" + +[7136bdbd-b3dc-48c4-a10c-8230976d3727] +description = "can extract column" + +[ad64f8d7-bba6-4182-8adf-0c14de3d0eca] +description = "can extract column from non-square matrix with no corresponding row" + +[9eddfa5c-8474-440e-ae0a-f018c2a0dd89] +description = "extract column where numbers have different widths" diff --git a/exercises/practice/matrix/Matrix.php b/exercises/practice/matrix/Matrix.php index 659a9b9a..cef1ac8f 100644 --- a/exercises/practice/matrix/Matrix.php +++ b/exercises/practice/matrix/Matrix.php @@ -1,27 +1,5 @@ . - * - * To disable strict typing, comment out the directive below. - */ - declare(strict_types=1); class Matrix diff --git a/exercises/practice/matrix/MatrixTest.php b/exercises/practice/matrix/MatrixTest.php index 8616cabb..f1863745 100644 --- a/exercises/practice/matrix/MatrixTest.php +++ b/exercises/practice/matrix/MatrixTest.php @@ -1,29 +1,8 @@ . - * - * To disable strict typing, comment out the directive below. - */ - declare(strict_types=1); +use PHPUnit\Framework\Attributes\TestDox; use PHPUnit\Framework\TestCase; class MatrixTest extends TestCase @@ -33,6 +12,8 @@ public static function setUpBeforeClass(): void require_once 'Matrix.php'; } + /** uuid: ca733dab-9d85-4065-9ef6-a880a951dafd */ + #[TestDox('extract row from one number matrix')] public function testExtractRowFromOneNumberMatrix(): void { $matrix = new Matrix("1"); @@ -40,6 +21,8 @@ public function testExtractRowFromOneNumberMatrix(): void $this->assertEquals([1], $matrix->getRow(1)); } + /** uuid: 5c93ec93-80e1-4268-9fc2-63bc7d23385c */ + #[TestDox('can extract row')] public function testExtractRow(): void { $matrix = new Matrix("1 2\n3 4"); @@ -47,6 +30,8 @@ public function testExtractRow(): void $this->assertEquals([3, 4], $matrix->getRow(2)); } + /** uuid: 2f1aad89-ad0f-4bd2-9919-99a8bff0305a */ + #[TestDox('extract row where numbers have different widths')] public function testExtractRowWhereNumbersHaveDifferentWidths(): void { $matrix = new Matrix("1, 2\n10 20"); @@ -54,6 +39,8 @@ public function testExtractRowWhereNumbersHaveDifferentWidths(): void $this->assertEquals([10, 20], $matrix->getRow(2)); } + /** uuid: 68f7f6ba-57e2-4e87-82d0-ad09889b5204 */ + #[TestDox('can extract row from non-square matrix with no corresponding column')] public function testExtractRowFromNonSquareMatrixWithNoMatchingColumn(): void { $matrix = new Matrix("1 2 3\n4 5 6\n7 8 9\n8 7 6"); @@ -61,6 +48,8 @@ public function testExtractRowFromNonSquareMatrixWithNoMatchingColumn(): void $this->assertEquals([8, 7, 6], $matrix->getRow(4)); } + /** uuid: e8c74391-c93b-4aed-8bfe-f3c9beb89ebb */ + #[TestDox('extract column from one number matrix')] public function testExtractColumnFromOneNumberMatrix(): void { $matrix = new Matrix("1"); @@ -68,6 +57,8 @@ public function testExtractColumnFromOneNumberMatrix(): void $this->assertEquals([1], $matrix->getColumn(1)); } + /** uuid: 7136bdbd-b3dc-48c4-a10c-8230976d3727 */ + #[TestDox('can extract column')] public function testExtractColumn(): void { $matrix = new Matrix("1 2 3\n4 5 6\n7 8 9"); @@ -75,6 +66,8 @@ public function testExtractColumn(): void $this->assertEquals([3, 6, 9], $matrix->getColumn(3)); } + /** uuid: ad64f8d7-bba6-4182-8adf-0c14de3d0eca */ + #[TestDox('can extract column from non-square matrix with no corresponding row')] public function testExtractColumnFromNonSquareMatrixWithNoMatchRow(): void { $matrix = new Matrix("1 2 3 4\n5 6 7 8\n9 8 7 6"); @@ -82,10 +75,12 @@ public function testExtractColumnFromNonSquareMatrixWithNoMatchRow(): void $this->assertEquals([4, 8, 6], $matrix->getColumn(4)); } + /** uuid: 9eddfa5c-8474-440e-ae0a-f018c2a0dd89 */ + #[TestDox('extract column where numbers have different widths')] public function testExtractColumnWhenNumbersHaveDifferentWidths(): void { - $matrix = new Matrix("89 1903 3\n18 3 1\n9 41 800"); + $matrix = new Matrix("89 1903 3\n18 3 1\n9 4 800"); - $this->assertEquals([1903, 3, 41], $matrix->getColumn(2)); + $this->assertEquals([1903, 3, 4], $matrix->getColumn(2)); } } diff --git a/phpcs.xml b/phpcs.xml index c88f737e..8a34e991 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -49,5 +49,6 @@ */.meta/*\.php src/* contribution/*.php + */matrix/*