``````

In [3]:

def negate(matrix):
""" Function that accepts a list of lists of numbers and
returns a new list of lists with each of the numbers negated
"""
return [[-e for e in row] for row in matrix]

``````
``````

In [4]:

import unittest

class NegateTests(unittest.TestCase):

"""Tests for negate."""

def test_empty(self):
self.assertEqual(negate([[]]), [[]])

def test_single_item(self):
self.assertEqual(negate([[5]]), [[-5]])

def test_two_by_two_matrix(self):
inputs = [[1, 2], [3, 4]]
outputs = [[-1, -2], [-3, -4]]
self.assertEqual(negate(inputs), outputs)

def test_two_by_three_matrix(self):
inputs = [[1, 2, 3], [4, 5, 6]]
outputs = [[-1, -2, -3], [-4, -5, -6]]
self.assertEqual(negate(inputs), outputs)

def test_three_by_two_matrix(self):
inputs = [[1, 2], [3, 4], [5, 6]]
outputs = [[-1, -2], [-3, -4], [-5, -6]]
self.assertEqual(negate(inputs), outputs)

def test_three_by_three_matrix(self):
inputs = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
outputs = [[-1, -2, -3], [-4, -5, -6], [-7, -8, -9]]
self.assertEqual(negate(inputs), outputs)

def test_negative_numbers(self):
inputs = [[1, -2, 3], [-4, 5, -6], [7, -8, 9]]
outputs = [[-1, 2, -3], [4, -5, 6], [-7, 8, -9]]
self.assertEqual(negate(inputs), outputs)

if __name__ == "__main__":
unittest.main(argv=['first-arg-is-ignored'], exit=False)

``````
``````

.......
----------------------------------------------------------------------
Ran 7 tests in 0.002s

OK

``````
``````

In [ ]:

``````