def test2(self):
        #             x  x  c  a  d  e
        matrix = [
            [0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0],  # a
            [0, 0, 0, 0, 0, 0, 0],  # b
            [0, 0, 0, 0, 0, 0, 0],  # c
            [0, 0, 0, 0, 0, 0, 0],  # a
            [0, 0, 0, 0, 0, 0, 0],  # d
            [0, 0, 0, 0, 0, 0, 0],  # e
            [0, 0, 0, 0, 0, 0, 0]
        ]  # x

        #                    x  x  c  a  d  e
        filled_matrix = [
            [0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 1, 0, 0],  # a
            [0, 0, 0, 0, 0, 0, 0],  # b
            [0, 0, 0, 1, 0, 0, 0],  # c
            [0, 0, 0, 0, 2, 1, 0],  # a
            [0, 0, 0, 0, 1, 3, 2],  # d
            [0, 0, 0, 0, 0, 2, 4],  # e
            [0, 1, 1, 0, 0, 1, 3]
        ]  # x
        list1 = "abcadex"
        list2 = "xxcade"
        SmithWaterman.fill_matrix(list1, list2, matrix)
        self.assertEqual(matrix, filled_matrix)
    def test1(self):
        #             T  A  C  G  G  G  T  A  T
        matrix = [
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],  # G
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],  # G
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],  # A
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],  # C
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],  # G
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],  # T
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],  # A
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],  # C
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
        ]  # G

        #                    T  A  C  G  G  G  T  A  T
        filled_matrix = [
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 1, 1, 1, 0, 0, 0],  # G
            [0, 0, 0, 0, 1, 2, 2, 1, 0, 0],  # G
            [0, 0, 1, 0, 0, 1, 1, 1, 2, 1],  # A
            [0, 0, 0, 2, 1, 0, 0, 0, 1, 1],  # C
            [0, 0, 0, 1, 3, 2, 1, 0, 0, 0],  # G
            [0, 1, 0, 0, 2, 2, 1, 2, 1, 1],  # T
            [0, 0, 2, 1, 1, 1, 1, 1, 3, 2],  # A
            [0, 0, 1, 3, 2, 1, 0, 0, 2, 2],  # C
            [0, 0, 0, 2, 4, 3, 2, 1, 1, 1]
        ]  # G
        list1 = "GGACGTACG"
        list2 = "TACGGGTAT"
        SmithWaterman.fill_matrix(list1, list2, matrix)
        self.assertEqual(matrix, filled_matrix)