From 598359efa5ccffbf65bacb7751b6a31dc2f49508 Mon Sep 17 00:00:00 2001 From: ivanz-thinkpad Date: Fri, 31 Jan 2025 23:26:54 +0300 Subject: [PATCH] fix test file issues --- .../test_strassen_matrix_multiplication.py | 113 +++++++++--------- 1 file changed, 56 insertions(+), 57 deletions(-) diff --git a/divide_and_conquer/tests/test_strassen_matrix_multiplication.py b/divide_and_conquer/tests/test_strassen_matrix_multiplication.py index 1a6073f8d..4e2bf6515 100644 --- a/divide_and_conquer/tests/test_strassen_matrix_multiplication.py +++ b/divide_and_conquer/tests/test_strassen_matrix_multiplication.py @@ -1,61 +1,60 @@ -import unittest -from strassen_matrix_multiplication import split_matrix +import pytest +from divide_and_conquer.strassen_matrix_multiplication import split_matrix -class TestSplitMatrix(unittest.TestCase): - - def test_4x4_matrix(self): - matrix = [ - [4, 3, 2, 4], - [2, 3, 1, 1], - [6, 5, 4, 3], - [8, 4, 1, 6] - ] - expected = ( - [[4, 3], [2, 3]], - [[2, 4], [1, 1]], - [[6, 5], [8, 4]], - [[4, 3], [1, 6]] - ) - self.assertEqual(split_matrix(matrix), expected) - - def test_8x8_matrix(self): - matrix = [ - [4, 3, 2, 4, 4, 3, 2, 4], - [2, 3, 1, 1, 2, 3, 1, 1], - [6, 5, 4, 3, 6, 5, 4, 3], - [8, 4, 1, 6, 8, 4, 1, 6], - [4, 3, 2, 4, 4, 3, 2, 4], - [2, 3, 1, 1, 2, 3, 1, 1], - [6, 5, 4, 3, 6, 5, 4, 3], - [8, 4, 1, 6, 8, 4, 1, 6] - ] - expected = ( - [[4, 3, 2, 4], [2, 3, 1, 1], [6, 5, 4, 3], [8, 4, 1, 6]], - [[4, 3, 2, 4], [2, 3, 1, 1], [6, 5, 4, 3], [8, 4, 1, 6]], - [[4, 3, 2, 4], [2, 3, 1, 1], [6, 5, 4, 3], [8, 4, 1, 6]], - [[4, 3, 2, 4], [2, 3, 1, 1], [6, 5, 4, 3], [8, 4, 1, 6]] - ) - self.assertEqual(split_matrix(matrix), expected) - - def test_invalid_odd_matrix(self): - matrix = [ - [1, 2, 3], - [4, 5, 6], - [7, 8, 9] - ] - with self.assertRaises(Exception): - split_matrix(matrix) - - def test_invalid_non_square_matrix(self): - matrix = [ - [1, 2, 3, 4], - [5, 6, 7, 8], - [9, 10, 11, 12] - ] - with self.assertRaises(Exception): - split_matrix(matrix) +def test_4x4_matrix(): + matrix = [ + [4, 3, 2, 4], + [2, 3, 1, 1], + [6, 5, 4, 3], + [8, 4, 1, 6] + ] + expected = ( + [[4, 3], [2, 3]], + [[2, 4], [1, 1]], + [[6, 5], [8, 4]], + [[4, 3], [1, 6]] + ) + assert split_matrix(matrix) == expected -if __name__ == "__main__": - unittest.main() +def test_8x8_matrix(): + matrix = [ + [4, 3, 2, 4, 4, 3, 2, 4], + [2, 3, 1, 1, 2, 3, 1, 1], + [6, 5, 4, 3, 6, 5, 4, 3], + [8, 4, 1, 6, 8, 4, 1, 6], + [4, 3, 2, 4, 4, 3, 2, 4], + [2, 3, 1, 1, 2, 3, 1, 1], + [6, 5, 4, 3, 6, 5, 4, 3], + [8, 4, 1, 6, 8, 4, 1, 6] + ] + expected = ( + [[4, 3, 2, 4], [2, 3, 1, 1], [6, 5, 4, 3], [8, 4, 1, 6]], + [[4, 3, 2, 4], [2, 3, 1, 1], [6, 5, 4, 3], [8, 4, 1, 6]], + [[4, 3, 2, 4], [2, 3, 1, 1], [6, 5, 4, 3], [8, 4, 1, 6]], + [[4, 3, 2, 4], [2, 3, 1, 1], [6, 5, 4, 3], [8, 4, 1, 6]] + ) + assert split_matrix(matrix) == expected + + +def test_invalid_odd_matrix(): + matrix = [ + [1, 2, 3], + [4, 5, 6], + [7, 8, 9] + ] + with pytest.raises(Exception, match="Odd matrices are not supported!"): + split_matrix(matrix) + + +def test_invalid_non_square_matrix(): + matrix = [ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], + [17, 18, 19, 20] + ] + with pytest.raises(Exception, match="Odd matrices are not supported!"): + split_matrix(matrix)