def test_small(self):
     for (first_sequence, second_sequence) in [([1], [2]), ([2], [1]),
                                               ([1], [1]), ([1, 2], [5,
                                                                     10]),
                                               ([2, 1], [5, 10]),
                                               ([1, 2, 3, 4,
                                                 5], [5, 4, 3, 2, 1]),
                                               ([17, 12, 20], [19, 2, 3])]:
         self.assertEqual(
             max_dot_product(list(first_sequence), list(second_sequence)),
             max_dot_product_naive(first_sequence, second_sequence))
 def test_large(self):
     n = 10 ** 3
     self.assertEqual(max_dot_product([0] * n, [0] * n), 0)
     self.assertEqual(max_dot_product([1] * n, [1] * n), n)
     for _ in range(5):
         len = random.randint(0,10**3)
         first_sequence, second_sequence = [], []
         for _ in range(len):
             n1 = random.randint(1,10**5)
             first_sequence.append(n1)
             n2 = random.randint(1,10**5)
             second_sequence.append(n2)
         self.assertEqual(
             max_dot_product(list(first_sequence), list(second_sequence)),
             max_dot_product_naive(first_sequence, second_sequence)
         )