def test_calculate_large(self): A = [[7, 2, 5, -10, -5, -10, 6, 2, 1, 2, 1, 1, 3, -9, 2], [-8, 2, -10, 4, 0, 3, -9, 3, 4, -1, -3, -6, 2, 9, -4], [7, -4, 0, -10, 4, -2, -7, -9, 5, 3, -8, -3, -9, -8, -6], [-5, 10, 2, -6, -3, 9, 8, 4, -4, -7, -10, -6, 6, 1, -4], [-3, -7, 6, 10, -5, -4, -2, -3, 3, 3, 5, -5, -6, -9, 7], [5, -1, 9, -1, -7, -4, 6, -7, 3, -9, -8, 4, -5, -5, 5], [-7, 4, -10, 4, -10, -4, 0, -8, 5, -6, -7, -4, -2, -6, 7], [-4, -10, 4, 2, -4, -1, -6, 6, -1, -3, -10, 6, -8, 0, 9], [-6, -9, -8, -10, -2, -5, 6, 0, 5, -10, -4, -1, 10, 0, -4], [-9, 0, -10, -2, -10, -4, 9, -9, 5, 10, 2, 2, 4, -9, 8], [5, -1, 1, 0, -8, -6, -7, 0, -4, 9, 0, 2, -7, -3, -3], [-10, -3, -7, -5, 7, 1, -2, 0, 8, 1, -8, 5, 2, 4, -10], [-1, -4, -1, 10, 8, 8, -7, 10, 6, 7, 3, -7, -1, -10, 8], [0, 4, 2, 3, -4, 9, -10, 6, 7, -8, -2, -8, 6, 1, -7], [-4, -9, 0, 2, 2, -1, -3, -9, 2, 9, 1, 1, -1, 6, -10] ] B = [ [2, 3, -8, 3, -3, 1, 8, -9, 3, -7, 8, 2, -2, -10, -6], [4, -2, -5, 2, -7, -6, -9, 6, 8, 2, 0, 4, -7, 9, 0], [4, 5, 7, 6, -1, -7, 5, 9, 5, 3, -8, 10, -4, 2, 5], [10, 0, -1, -1, 8, -8, -3, -3, -8, 10, -9, 0, -10, 4, 9], [3, 1, -1, 6, 9, -1, 5, -10, -3, -9, -10, 0, -10, 9, 4], [-2, 10, 4, -8, 3, 4, 6, -1, -7, -5, 3, 4, 9, 9, -9], [7, 1, -5, 1, 7, 0, -9, -1, -2, 0, -9, -3, -3, 9, -7], [-7, -8, 8, -8, 9, 10, -4, 6, 8, 8, 1, -9, -1, 2, -1], [-10, -3, 7, -8, -5, -9, 4, 5, -5, 3, -5, 4, -4, -5, 6], [-5, -1, -3, 3, -9, -6, 0, -4, -4, 5, 6, -1, 9, 6, 6], [-8, -7, 8, -9, -7, 2, -6, -5, -6, -3, 1, 5, -1, 7, 9], [2, -8, 10, -5, -5, 2, 5, 5, 8, 0, 8, 9, 10, 5, 5], [5, -7, -6, -10, -3, -7, -1, 10, 2, 5, 1, 10, 10, 8, 7], [4, 7, -3, -6, -4, 9, 0, -3, -10, 0, 9, 6, -10, 5, 2], [-4, -8, 7, -7, 0, -9, -10, 7, -6, -4, 5, -1, 3, 3, 10], ] expected = [[-80,-193,-28,99,-143,-112,-74,158,304,-2,22,-14,141,-155,-26], [-59,58,-59,-165,23,115,-15,-20,-177,121,59,-70,-111,18,20], [-132,195,-107,364,-95,-31,351,-212,98,-222,4,-90,43,-417,-218], [172,172,-173,2,148,97,-103,235,171,44,-98,-17,16,173,-349], [-99,-72,180,57,36,-271,-87,16,-153,117,-193,-89,-35,-145,237], [132,61,38,166,16,-159,47,170,152,-50,-96,57,-36,-259,-104], [2,-77,-72,-9,-11,-213,-222,152,-54,81,-53,-150,12,-195,-13], [-65,-28,279,-4,163,66,80,159,46,65,77,-134,79,-211,41], [-38,-93,-66,-141,86,137,-2,129,54,-14,-50,-61,136,-136,-140], [-134,-256,-19,-112,-214,-297,-301,146,-104,98,40,-64,366,69,136], [-87,-14,-14,170,-186,23,72,-77,126,78,198,-79,108,-242,1], [-50,41,3,-29,30,122,189,-6,-5,28,-42,-2,49,34,-58], [-243,-116,217,-135,213,-185,-4,-47,-188,71,-165,-174,17,77,213], [-56,116,18,-176,38,33,129,155,24,128,-49,75,-70,-86,-86], [14,166,-65,98,-120,21,218,-218,-211,28,1,91,22,-21,74] ] C = multiply(A, B) self.assertEquals(C, expected) pass
def test_calculate_3by3(self): A = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] B = [ [ 2, 4, 6], [ 8, 10, 12], [14, 16, 18] ] C = multiply(A, B) self.assertEquals(C, [ [60, 72, 84], [132, 162, 192], [204, 252, 300] ])
def test_calculate_4by4(self): A = [ [11, 12, 13, 14], [21, 22, 23, 24], [31, 32, 33, 34], [41, 42, 43, 44] ] B = [ [11, 12, 13, 14], [21, 22, 23, 24], [31, 32, 33, 34], [41, 42, 43, 44] ] C = multiply(A, B) self.assertEquals(C, [ [1350, 1400, 1450, 1500], [2390, 2480, 2570, 2660], [3430, 3560, 3690, 3820], [4470, 4640, 4810, 4980], ])
def test_calculate_2by2(self): A = [[-1, 1], [1, -1]] B = [[2, 4], [6, 8]] C = multiply(A, B) self.assertEquals(C, [[4, 4], [-4, -4]])