nebius/SWE-bench-extra huggingface dataset:
Repository: KATO-Hiro/Somen-Soupy

Issue:
行列を右に90度回転
```py
from typing import List


# See:
# https://kazun-kyopro.hatenablog.com/entry/ABC/298/B
def rotate_90_degrees_to_right(array: List[List]):
    return [list(ai)[::-1] for ai in zip(*array)]
```

Comments:

Patch:
diff --git a/snippets/math/matrix_rotation.py b/snippets/math/matrix_rotation.py
new file mode 100644
index 0000000..e2d91f1
--- /dev/null
+++ b/snippets/math/matrix_rotation.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+
+
+from typing import List
+
+
+# See:
+# https://kazun-kyopro.hatenablog.com/entry/ABC/298/B
+def rotate_90_degrees_to_right(array: List[List]):
+    return [list(ai)[::-1] for ai in zip(*array)]


Test patch:
diff --git a/tests/test_matrix_rotation.py b/tests/test_matrix_rotation.py
new file mode 100644
index 0000000..ab76962
--- /dev/null
+++ b/tests/test_matrix_rotation.py
@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+
+
+from snippets.math.matrix_rotation import rotate_90_degrees_to_right
+
+
+class TestMatrixRotation:
+    def test_rotate_90_degrees_to_right(self):
+        array = [[0, 1, 1], [1, 0, 0], [0, 1, 0]]
+
+        # 1st.
+        actual = rotate_90_degrees_to_right(array)
+        expected = [[0, 1, 0], [1, 0, 1], [0, 0, 1]]
+        assert actual == expected
+
+        # 2nd.
+        actual = rotate_90_degrees_to_right(actual)
+        expected = [[0, 1, 0], [0, 0, 1], [1, 1, 0]]
+        assert actual == expected
+
+        # 3rd.
+        actual = rotate_90_degrees_to_right(actual)
+        expected = [[1, 0, 0], [1, 0, 1], [0, 1, 0]]
+        assert actual == expected
+
+        # 4th (= array).
+        actual = rotate_90_degrees_to_right(actual)
+        expected = array
+        assert actual == expected