Example #1
0
 def test_can_identify_that_saddle_points_in_a_single_row_matrix_are_those_with_the_maximum_value(
     self,
 ):
     matrix = [[2, 5, 3, 5]]
     self.assertEqual(
         sorted_points(saddle_points(matrix)),
         sorted_points([{"row": 1, "column": 2}, {"row": 1, "column": 4}]),
     )
Example #2
0
 def test_can_identify_that_saddle_points_in_a_single_column_matrix_are_those_with_the_minimum_value(
     self,
 ):
     matrix = [[2], [1], [4], [1]]
     self.assertEqual(
         sorted_points(saddle_points(matrix)),
         sorted_points([{"row": 2, "column": 1}, {"row": 4, "column": 1}]),
     )
 def test_can_identify_saddle_point_in_bottom_right_corner(self):
     matrix = [[8, 7, 9], [6, 7, 6], [3, 2, 5]]
     self.assertEqual(
         sorted_points(saddle_points(matrix)),
         sorted_points([{
             "row": 3,
             "column": 3
         }]),
     )
Example #4
0
 def test_non_square_matrix_with_2_saddle_points(self):
     matrix = [[3, 1, 3], [3, 2, 4]]
     self.assertEqual(saddle_points(matrix), [{
         "row": 1,
         "column": 1
     }, {
         "row": 1,
         "column": 3
     }])
Example #5
0
 def test_single_column_matrix_has_saddle_point_min_value(self):
     matrix = [[2], [1], [4], [1]]
     self.assertEqual(saddle_points(matrix), [{
         "row": 2,
         "column": 1
     }, {
         "row": 4,
         "column": 1
     }])
Example #6
0
 def test_single_row_matrix_has_saddle_point_in_max_value(self):
     matrix = [[2, 5, 3, 5]]
     self.assertEqual(saddle_points(matrix), [{
         "row": 1,
         "column": 2
     }, {
         "row": 1,
         "column": 4
     }])
 def test_can_identify_single_saddle_point(self):
     matrix = [[9, 8, 7], [5, 3, 2], [6, 6, 7]]
     self.assertEqual(
         sorted_points(saddle_points(matrix)),
         sorted_points([{
             "row": 2,
             "column": 1
         }]),
     )
 def test_can_identify_saddle_points_in_a_non_square_matrix(self):
     matrix = [[3, 1, 3], [3, 2, 4]]
     self.assertEqual(
         sorted_points(saddle_points(matrix)),
         sorted_points([{
             "row": 1,
             "column": 3
         }, {
             "row": 1,
             "column": 1
         }]),
     )
Example #9
0
 def test_can_identify_multiple_saddle_points_in_a_row(self):
     matrix = [[6, 7, 8], [5, 5, 5], [7, 5, 6]]
     self.assertEqual(
         sorted_points(saddle_points(matrix)),
         sorted_points(
             [
                 {"row": 2, "column": 1},
                 {"row": 2, "column": 2},
                 {"row": 2, "column": 3},
             ]
         ),
     )
Example #10
0
 def test_can_identify_multiple_saddle_points_in_a_column(self):
     matrix = [[4, 5, 4], [3, 5, 5], [1, 5, 4]]
     self.assertEqual(
         sorted_points(saddle_points(matrix)),
         sorted_points(
             [
                 {"row": 1, "column": 2},
                 {"row": 2, "column": 2},
                 {"row": 3, "column": 2},
             ]
         ),
     )
Example #11
0
 def test_identify_multiple_saddle_points_in_row(self):
     matrix = [[6, 7, 8], [5, 5, 5], [7, 5, 6]]
     expected = [{
         "row": 2,
         "column": 1
     }, {
         "row": 2,
         "column": 2
     }, {
         "row": 2,
         "column": 3
     }]
     self.assertEqual(saddle_points(matrix), expected)
Example #12
0
 def test_identify_multiple_saddle_points_in_column(self):
     matrix = [[4, 5, 4], [3, 5, 5], [1, 5, 4]]
     expected = [{
         "row": 1,
         "column": 2
     }, {
         "row": 2,
         "column": 2
     }, {
         "row": 3,
         "column": 2
     }]
     self.assertEqual(saddle_points(matrix), expected)
Example #13
0
 def test_empty_matrix_has_no_saddle_points(self):
     self.assertEqual(saddle_points([]), set())
Example #14
0
 def test_empty_matrix(self):
     self.assertEqual(set(), saddle_points([]))
Example #15
0
 def test_no_saddle(self):
     self.assertEqual(set(), saddle_points([[2, 1], [1, 2]]))
Example #16
0
 def test_irregular_matrix(self):
     matrix = [[3, 2, 1], [0, 1], [2, 1, 0]]
     with self.assertRaisesWithMessage(ValueError):
         saddle_points(matrix)
Example #17
0
 def test_identify_multiple_saddle_points(self):
     matrix = [[4, 5, 4], [3, 5, 5], [1, 5, 4]]
     expected = set([(0, 1), (1, 1), (2, 1)])
     self.assertEqual(saddle_points(matrix), expected)
Example #18
0
 def test_identify_saddle_point_in_bottom_right_corner(self):
     matrix = [[8, 7, 9], [6, 7, 6], [3, 2, 5]]
     expected = [{"row": 3, "column": 3}]
     self.assertEqual(saddle_points(matrix), expected)
Example #19
0
 def test_non_square_matrix_with_2_saddle_points(self):
     matrix = [[3, 1, 3], [3, 2, 4]]
     self.assertEqual(saddle_points(matrix), set([(0, 2), (0, 0)]))
Example #20
0
 def test_identify_multiple_saddle_points_in_column(self):
     matrix = [[4, 5, 4], [3, 5, 5], [1, 5, 4]]
     expected = [{"row": 1, "column": 2}, {"row": 2, "column": 2},
                 {"row": 3, "column": 2}]
     self.assertEqual(saddle_points(matrix), expected)
Example #21
0
 def test_indentify_saddle_bottom_right_corner(self):
     inp = [[8, 7, 9], [6, 7, 6], [3, 2, 5]]
     ans = set([(2, 2)])
     self.assertEqual(saddle_points(inp), ans)
Example #22
0
 def test_mult_saddle(self):
     inp = [[4, 5, 4], [3, 5, 5], [1, 5, 4]]
     ans = set([(0, 1), (1, 1), (2, 1)])
     self.assertEqual(saddle_points(inp), ans)
Example #23
0
 def test_no_saddle(self):
     inp = [[1, 2, 3], [3, 1, 2], [2, 3, 1]]
     self.assertEqual(saddle_points(inp), set())
Example #24
0
 def test_single_row_matrix_has_saddle_point_in_max_value(self):
     matrix = [[2, 5, 3, 5]]
     self.assertEqual(saddle_points(matrix), [{"row": 1, "column": 2},
                                              {"row": 1, "column": 4}])
Example #25
0
 def test_single_column_matrix_has_saddle_point_min_value(self):
     matrix = [[2], [1], [4], [1]]
     self.assertEqual(saddle_points(matrix), [{"row": 2, "column": 1},
                                              {"row": 4, "column": 1}])
Example #26
0
 def test_non_square_matrix_with_2_saddle_points(self):
     matrix = [[3, 1, 3], [3, 2, 4]]
     self.assertEqual(saddle_points(matrix), [{"row": 1, "column": 1},
                                              {"row": 1, "column": 3}])
Example #27
0
 def test_identify_lack_of_saddle_points_when_there_are_none(self):
     matrix = [[1, 2, 3], [3, 1, 2], [2, 3, 1]]
     self.assertEqual(saddle_points(matrix), set())
Example #28
0
 def test_identify_multiple_saddle_points_in_row(self):
     matrix = [[6, 7, 8], [5, 5, 5], [7, 5, 6]]
     expected = set([(1, 0), (1, 1), (1, 2)])
     self.assertEqual(saddle_points(matrix), expected)
 def test_can_identify_that_empty_matrix_has_no_saddle_points(self):
     matrix = []
     self.assertEqual(sorted_points(saddle_points(matrix)),
                      sorted_points([]))
Example #30
0
 def test_single_row_matrix_has_saddle_point_in_max_value(self):
     matrix = [[2, 5, 3, 5]]
     self.assertEqual(saddle_points(matrix), set([(0, 1), (0, 3)]))
Example #31
0
 def test_matrix_with_one_elem_has_single_saddle_point(self):
     matrix = [[1]]
     self.assertEqual(saddle_points(matrix), [{"row": 1, "column": 1}])
Example #32
0
 def test_identify_lack_of_saddle_points_when_there_are_none(self):
     matrix = [[1, 2, 3], [3, 1, 2], [2, 3, 1]]
     self.assertEqual(saddle_points(matrix), set())
Example #33
0
 def test_identify_single_saddle_point(self):
     matrix = [[9, 8, 7], [5, 3, 2], [6, 6, 7]]
     self.assertEqual(saddle_points(matrix), [{"row": 2, "column": 1}])
Example #34
0
 def test_identify_saddle_point_in_bottom_right_corner(self):
     matrix = [[8, 7, 9], [6, 7, 6], [3, 2, 5]]
     expected = set([(2, 2)])
     self.assertEqual(saddle_points(matrix), expected)
Example #35
0
 def test_matrix_with_one_elem_has_single_saddle_point(self):
     matrix = [[1]]
     self.assertEqual(saddle_points(matrix), [{"row": 1, "column": 1}])
Example #36
0
 def test_one_saddle(self):
     inp = [[9, 8, 7], [5, 3, 2], [6, 6, 7]]
     self.assertEqual(set([(1, 0)]), saddle_points(inp))
 def test_irregular_matrix(self):
     with self.assertRaisesRegexp(ValueError, 'irregular matrix'):
         saddle_points([[1,2,3],[2,3],[3,2,1]])
Example #38
0
 def test_mult_saddle(self):
     inp = [[5, 3, 5, 4], [6, 4, 7, 3], [5, 1, 5, 3]]
     ans = set([(0, 0), (0, 2), (2, 0), (2, 2)])
     self.assertEqual(ans, saddle_points(inp))
Example #39
0
 def test_identify_saddle_point_in_bottom_right_corner(self):
     matrix = [[8, 7, 9], [6, 7, 6], [3, 2, 5]]
     expected = [{"row": 3, "column": 3}]
     self.assertEqual(saddle_points(matrix), expected)
Example #40
0
 def test_identify_single_saddle_point(self):
     matrix = [[9, 8, 7], [5, 3, 2], [6, 6, 7]]
     self.assertEqual(saddle_points(matrix), set([(1, 0)]))
Example #41
0
 def test_large(self):
     inp = [range(1000) for _ in range(2000)]
     ans = {(i, 999) for i in range(2000)}
     self.assertEqual(ans, saddle_points(inp))
Example #42
0
 def test_matrix_with_one_elem_has_single_saddle_point(self):
     matrix = [[1]]
     self.assertEqual(saddle_points(matrix), set([(0, 0)]))
Example #43
0
 def test_identify_multiple_saddle_points_in_row(self):
     matrix = [[6, 7, 8], [5, 5, 5], [7, 5, 6]]
     expected = set([(1, 0), (1, 1), (1, 2)])
     self.assertEqual(saddle_points(matrix), expected)
Example #44
0
 def test_identify_multiple_saddle_points_in_column(self):
     matrix = [[4, 5, 4], [3, 5, 5], [1, 5, 4]]
     expected = set([(0, 1), (1, 1), (2, 1)])
     self.assertEqual(saddle_points(matrix), expected)
Example #45
0
#!/usr/bin/env python

from saddle_points import saddle_points;
matrix = [[5, 3, 5, 4], [6, 4, 7, 3], [5, 1, 5, 3]];
print(saddle_points(matrix))
Example #46
0
 def test_identify_saddle_point_in_bottom_right_corner(self):
     matrix = [[8, 7, 9], [6, 7, 6], [3, 2, 5]]
     expected = set([(2, 2)])
     self.assertEqual(saddle_points(matrix), expected)
Example #47
0
 def test_identify_single_saddle_point(self):
     matrix = [[9, 8, 7], [5, 3, 2], [6, 6, 7]]
     self.assertEqual(saddle_points(matrix), set([(1, 0)]))
Example #48
0
 def test_single_column_matrix_has_saddle_point_min_value(self):
     matrix = [[2], [1], [4], [1]]
     self.assertEqual(saddle_points(matrix), set([(1, 0), (3, 0)]))
Example #49
0
 def test_empty_matrix_has_no_saddle_points(self):
     self.assertEqual(saddle_points([]), set())
Example #50
0
 def test_irregular_matrix(self):
     matrix = [[3, 2, 1], [0, 1], [2, 1, 0]]
     with self.assertRaisesWithMessage(ValueError):
         saddle_points(matrix)
Example #51
0
 def test_identify_multiple_saddle_points_in_row(self):
     matrix = [[6, 7, 8], [5, 5, 5], [7, 5, 6]]
     expected = [{"row": 2, "column": 1}, {"row": 2, "column": 2},
                 {"row": 2, "column": 3}]
     self.assertEqual(saddle_points(matrix), expected)