def cho_cap_nhat(doc, han, cu="v1", moi="v2"): for nhip in range(han + 1): gia_tri = doc(nhip) if gia_tri == moi: return "đạt" if gia_tri != cu: return "sai dữ liệu" return "vượt hạn" assert cho_cap_nhat(lambda t: "v2" if t >= 5 else "v1", 5) == "đạt" assert cho_cap_nhat(lambda t: "v2" if t >= 6 else "v1", 5) == "vượt hạn" assert cho_cap_nhat(lambda t: "lỗi" if t >= 2 else "v1", 5) == "sai dữ liệu" # Oracle chỉ kiểm tra lần xuất hiện đầu, không kiểm tra hội tụ ổn định. assert cho_cap_nhat(lambda t: "v2" if t == 4 else "v1", 5) == "đạt" print("Ba nhánh đúng kỳ vọng; oracle dừng tại lần đầu thấy bản mới.")