Пример #1
0
 def test_square_matrix_multiply_strassen(self):
     """ strassenのアルゴリズムの結果が定義通りの計算の結果と一致することを確認する。
     """
     # nは2のベキである必要がある
     n = 2**randint(1, 4)
     A = [[randint(-100, 100) for _ in range(n)] for _ in range(n)]
     B = [[randint(-100, 100) for _ in range(n)] for _ in range(n)]
     result1 = square_matrix_multiply(A, B)
     result2 = square_matrix_multiply_strassen(A, B)
     self.assertEqual(result1, result2)
Пример #2
0
 def test_noncommunicative(self):
     a = [[1, 1], [0, 1]]
     b = [[0, 1], [0, 1]]
     c = [[0, 2], [0, 1]]
     self.assertEqual(c, square_matrix_multiply(a, b))
Пример #3
0
 def test_2by2(self):
     a = [[2, 1], [1, 2]]
     b = [[1, 2], [2, 1]]
     c = [[4, 5], [5, 4]]
     self.assertEqual(c, square_matrix_multiply(a, b))
Пример #4
0
 def test_3by3(self):
     a = [[9, 8, 7], [6, 5, 4], [3, 2, 1]]
     b = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
     c = [[90, 114, 138], [54, 69, 84], [18, 24, 30]]
     self.assertEqual(c, square_matrix_multiply(a, b))