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/*