• + 0 comments

    def minimum_index(seq): if len(seq) == 0: raise ValueError("Cannot get the minimum value index from an empty sequence") min_idx = 0 for i in range(1, len(seq)): if seq[i] < seq[min_idx]: min_idx = i return min_idx

    class TestDataEmptyArray(object):

    @staticmethod
    def get_array():
        return []
        # complete this function
    

    class TestDataUniqueValues(object): data = [] for i in range(5): data.append(i) data[::-1]
    @staticmethod def get_array(): return TestDataUniqueValues.data @staticmethod def get_expected_result(): data = TestDataUniqueValues.get_array() return data.index(min(data)) # complete this function

    class TestDataExactlyTwoDifferentMinimums(object): data = [] for i in range(5): data.append(i) data[::-1] data.insert(0,0)

    @staticmethod
    def get_array():
        return TestDataExactlyTwoDifferentMinimums.data
    @staticmethod
    def get_expected_result():
        data = TestDataExactlyTwoDifferentMinimums.get_array()
        return data.index(min(data))
        # complete this function
    

    def TestWithEmptyArray(): try: seq = TestDataEmptyArray.get_array() result = minimum_index(seq) except ValueError as e: pass else: assert False

    def TestWithUniqueValues(): seq = TestDataUniqueValues.get_array() assert len(seq) >= 2

    assert len(list(set(seq))) == len(seq)
    
    expected_result = TestDataUniqueValues.get_expected_result()
    result = minimum_index(seq)
    assert result == expected_result
    

    def TestiWithExactyTwoDifferentMinimums(): seq = TestDataExactlyTwoDifferentMinimums.get_array() assert len(seq) >= 2 tmp = sorted(seq) assert tmp[0] == tmp[1] and (len(tmp) == 2 or tmp[1] < tmp[2])

    expected_result = TestDataExactlyTwoDifferentMinimums.get_expected_result()
    result = minimum_index(seq)
    assert result == expected_result
    

    TestWithEmptyArray() TestWithUniqueValues() TestiWithExactyTwoDifferentMinimums() print("OK")