def __init__(self, logger=RealLogger()): self.logger = logger self.matrix1 = MatrixOperations.make_from_list([[0] * 3] * 3) self.matrix2 = MatrixOperations.make_from_list([[0] * 3] * 3) self.rows = 3 self.answer = '' self.operation = '+' self.logger.log('Welcome!')
def test_plus_onesize_diff_char_matrix(self): first_matrix = Matrix.make_from_list([[1, 1]]) second_matrix = Matrix.make_from_list([[-1, -1]]) result_matrix = MatrixOperations.add_matrix(first_matrix, second_matrix) self.assertTrue(result_matrix.data_lines[0][0] == 0 and result_matrix.data_lines[0][1] == 0)
def test_scalar_2_mult_square_2x2_matrix(self): first_matrix = Matrix.make_from_list([[1, 2], [3, 4]]) skalar = 2 result_matrix = MatrixOperations.scalar_multiply_matrix( skalar, first_matrix) self.assertTrue(result_matrix.data_lines[0][0] == 2 and result_matrix.data_lines[1][1] == 8)
def test_scalar_1_mult_matrix(self): first_matrix = Matrix.make_from_list([[1, 2], [3, 4]]) scalar = 1 result_matrix = MatrixOperations.scalar_multiply_matrix( scalar, first_matrix) self.assertTrue(result_matrix.data_lines[0][0] == 1 and result_matrix.data_lines[1][1] == 4)
def test_inverse_2x2_matrix(self): matrix = Matrix.make_from_list([[1, 2], [3, 4]]) result_matrix = MatrixOperations.inverse(matrix) self.assertTrue(result_matrix.data_lines[0][0] == -2 and result_matrix.data_lines[0][1] == 1 and result_matrix.data_lines[1][0] == 1.5 and result_matrix.data_lines[1][1] == -0.5)
def test_plus_onesize_negative_matrix(self): first_matrix = Matrix.make_from_list([[1, 1]]) second_matrix = Matrix.make_from_list([[-2, 2]]) result_matrix = MatrixOperations.add_matrix(first_matrix, second_matrix) self.assertTrue(result_matrix.data_lines[0][0] == -1 and result_matrix.data_lines[0][1] == 3)
def test_mult_square_2x2_matrix(self): first_matrix = Matrix.make_from_list([[1, 0], [0, 1]]) second_matrix = Matrix.make_from_list([[3, 3], [3, 3]]) result_matrix = MatrixOperations.multiply_matrix( first_matrix, second_matrix) self.assertTrue(result_matrix.data_lines[0][0] == 3 and result_matrix.data_lines[1][1] == 3)
def test_plus_3x2_matrix(self): first_matrix = Matrix.make_from_list([[1, 1], [2, 2], [3, 3]]) second_matrix = Matrix.make_from_list([[-1, -1], [-1, -1], [-1, -1]]) result_matrix = MatrixOperations.add_matrix(first_matrix, second_matrix) self.assertTrue(result_matrix.data_lines[0][0] == 0 and result_matrix.data_lines[1][1] == 1 and result_matrix.data_lines[2][1] == 2)
def test_inverse_invalid_size_matrix(self): matrix = Matrix.make_from_list([[1, 2, 2], [3, 4, 4]]) with self.assertRaises(MatrixError): MatrixOperations.inverse(matrix)
def test_transpose_1x3_matrix(self): matrix = Matrix.make_from_list([[1, 2, 3]]) result_matrix = MatrixOperations.transpose(matrix) self.assertTrue(result_matrix.data_lines[0][0] == 1 and result_matrix.data_lines[1][0] == 2 and result_matrix.data_lines[2][0] == 3)
def test_transpose_3x2_matrix(self): matrix = Matrix.make_from_list([[1, 2], [3, 4], [5, 6]]) result_matrix = MatrixOperations.transpose(matrix) self.assertTrue(result_matrix.data_lines[0][1] == 3 and result_matrix.data_lines[1][0] == 2 and result_matrix.data_lines[0][2] == 5)
def calculate_determinant2(self): return MatrixOperations.calculate_det(self.matrix2)
def sum(self): return MatrixOperations.add_matrix(self.matrix1, self.matrix2).get_data_lines()
def mul(self): return MatrixOperations.multiply_matrix(self.matrix1, self.matrix2).get_data_lines()
def update_matrix1_content(self, content): self.matrix1 = MatrixOperations.make_from_list(content) self.logger.log('Setting first matrix to %s' % self.matrix1.data_lines)
def inverse2(self): return MatrixOperations.inverse(self.matrix2).get_data_lines()
def transpose2(self): return MatrixOperations.transpose(self.matrix2).get_data_lines()
def test_inverse_matrix_with_zero_det(self): matrix = Matrix.make_from_list([[1, 2], [2, 4]]) with self.assertRaises(MatrixError): MatrixOperations.inverse(matrix)
def test_plus_diffsize_matrix(self): first_matrix = Matrix.make_from_list([[1, 1]]) second_matrix = Matrix.make_from_list([[-1]]) with self.assertRaises(MatrixOperationsError): MatrixOperations.add_matrix(first_matrix, second_matrix)
def test_not_onesize_matrices(self): first_matrix = Matrix.make_from_list([[1, 1]]) second_matrix = Matrix.make_from_list([[2]]) self.assertEqual( MatrixOperations.is_both_same_size(first_matrix, second_matrix), False)
def __init__(self): self.matrix1 = MatrixOperations.make_from_list([[0]*3]*3) self.matrix2 = MatrixOperations.make_from_list([[0]*3]*3) self.rows = 3 self.answer = '' self.operation = '+'
def test_mult_invalid_size_matrix(self): first_matrix = Matrix.make_from_list([[1, 0], [0, 1], [1, 1]]) second_matrix = Matrix.make_from_list([[3, 3], [3, 3], [3, 3]]) with self.assertRaises(MatrixOperationsError): MatrixOperations.multiply_matrix(first_matrix, second_matrix)
def update_matrix2_content(self, content): self.matrix2 = MatrixOperations.make_from_list(content) self.logger.log('Setting second matrix to %s' % self.matrix2.data_lines)
def test_can_create_matrix(self): test_matrix = MatrixOperations(2, 2) test_matrix.data_lines = [[1, 1], [0, 1]] self.assertTrue(test_matrix.data_lines[0][1] == 1 and test_matrix.cols == 2)
def test_scalar_0_mult_matrix(self): first_matrix = Matrix.make_from_list([[1, 2], [3, 4]]) scalar = 0 result_matrix = MatrixOperations.scalar_multiply_matrix( scalar, first_matrix) self.assertEqual(result_matrix, 0)
def test_can_not_multiply_matrices(self): first_matrix = Matrix.make_from_list([[1, 1], [1, 1]]) second_matrix = Matrix.make_from_list([[2, 2]]) self.assertEqual( MatrixOperations.can_multiply_matrix(first_matrix, second_matrix), False)
def update_matrix2_content(self, content): self.matrix2 = MatrixOperations.make_from_list(content)