def test_top_matches_expected_value(self):
        third_smallest = ith_smallest.top(3, self.lst, 0, len(self.lst) - 1)
        expected_3rd_smallest = sorted(self.lst)[2]

        self.assertEquals(expected_3rd_smallest, third_smallest)
    def test_top_i_greater_than_array_size_returns_negative_1(self):

        with self.assertRaises(UnboundLocalError):
            ith_smallest.top(25, self.lst, 0, len(self.lst) - 1)
    def test_top_ith_smallest(self):

        samp = [(1, -2), (2, 1), (4, 23), (len(self.lst), 98)]

        for i, v in samp:
            self.assertEquals(ith_smallest.top(i, self.lst, 0, len(self.lst) - 1), v)