예제 #1
0
 def test_multiplying_big_matrixes(self):
     #this only tests speed and not correctness
     matrix1 = Matrix(20, 20)
     matrix2 = Matrix(20, 20)
     for i in range(1, matrix1.rowCount + 1):
         matrix2.setColumn(i, [random.randint(0, 5000) for i in range(20)])
         matrix1.setColumn(i, [random.randint(0, 5000) for i in range(20)])
     matrix1 * matrix2
예제 #2
0
 def test_adding_columns(self):
     columns = 2
     rows = 3
     matrix = Matrix(rows, columns)
     self.assertRaises(ValueError, matrix.setColumn, 1, [1, 2, 3, 4])
     matrix.setColumn(1, [1, 2, 3])
     matrix.setColumn(2, [4, 5, 6])
     self.assertEqual(matrix.matrix, [[1, 4], [2, 5], [3, 6]])
     self.assertEqual(matrix.getColumn(1), [1, 2, 3])
예제 #3
0
    def test_multiplying_matrixes_with_floats(self):
        matrix1 = Matrix(2, 3)
        matrix1.setRow(1, [3.5, 2, 1])
        matrix1.setRow(2, [1, 0, 2.5])

        matrix2 = Matrix(3, 2)
        matrix2.setColumn(1, [0.5, 0, 4])
        matrix2.setColumn(2, [2, 1.375, 0])

        correctMultipliedMatrix = Matrix(2, 2)
        correctMultipliedMatrix.setRow(1, [5.75, 9.75])
        correctMultipliedMatrix.setRow(2, [10.5, 2])
        multipliedMatrix = matrix1 * matrix2
        self.assertEqual(multipliedMatrix.matrix,
                         correctMultipliedMatrix.matrix)
예제 #4
0
    def test_multiplying_matrixes(self):
        matrix1 = Matrix(2, 3)
        matrix1.setRow(1, [3, 2, 1])
        matrix1.setRow(2, [1, 0, 2])

        matrix2 = Matrix(3, 2)
        matrix2.setColumn(1, [1, 0, 4])
        matrix2.setColumn(2, [2, 1, 0])

        matrixWithWrongDimension = Matrix(5, 6)

        with self.assertRaises(TypeError):
            matrix2 * matrixWithWrongDimension

        correctMultipliedMatrix = Matrix(2, 2)
        correctMultipliedMatrix.setRow(1, [7, 8])
        correctMultipliedMatrix.setRow(2, [9, 2])
        multipliedMatrix = matrix1 * matrix2
        self.assertEqual(multipliedMatrix.matrix,
                         correctMultipliedMatrix.matrix)