# -*- coding: utf-8 -*- import re content = """1. Kết quả kiểm chứng chi tiết về gói Xô Zòn Zã: • Đánh giá của bạn hoàn toàn chuẩn xác khi khẳng định gói Xô Zòn Zã chỉ chứa đúng 5 miếng gà rán thuần túy. • Sản phẩm này thực chất là một gói ưu đãi 5 miếng gà nguyên bản và không hề kèm theo khoai hay nước ngọt. 2. Bóc tách cơ cấu phép tính đơn hàng 294000 đồng: • Chính vì gói này chỉ có 5 miếng gà nên hệ thống đã ghép cùng các món khác để vừa vặn đơn hàng. • Năm miếng gà rán được lấy trọn vẹn từ gói xô với chi phí tương đương 31 nghìn 800 đồng một miếng gà rán. • Hai bánh trứng được bổ sung từ phần gọi lẻ hai cái với tổng số tiền thanh toán là 40 nghìn đồng tròn trĩnh. • Nhu cầu cơm gà quay và nước ngọt được giải quyết thông qua gói Combo Cơm Gà Quay Solo có giá 59 nghìn đồng. • Hai món ăn kèm gồm một khoai tây nghiền vừa cùng một bắp cải trộn lớn có tổng giá thành 36 nghìn đồng lẻ. • Tổng ngân sách cuối cùng vẫn đạt mức tối ưu tuyệt đối là 294 nghìn đồng và chuẩn xác từng món theo yêu cầu. • Nếu khách hàng chọn gói Xô Hợp Cạ 189 nghìn đồng tổng chi phí sẽ tăng lên 319 nghìn đồng do thừa khoai nước. 3. So sánh ưu điểm và nhược điểm của các gói xô: • Gói Xô Zòn Zã có ưu điểm giá gà rẻ nhất nhưng nhược điểm là không phục vụ sẵn các món giải khát đi kèm. • Gói Xô Hợp Cạ có ưu điểm tiện lợi đầy đủ nước uống nhưng nhược điểm là gây lãng phí nếu không dùng hết. Hệ thống đã cập nhật phần ghi chú thành phần chi tiết trong tệp Google Sheet nhằm đảm bảo tính minh bạch dữ liệu. Nguyên tắc đối soát thông tin thực đơn luôn tuân thủ quy chuẩn kiểm định chất lượng dữ liệu khoa học quốc tế hiện hành. Tài liệu tham khảo theo quy chuẩn APA 7: Dantzig, G. B. (1963). Linear programming and extensions. Princeton University Press. Vanderbei, R. J. (2020). Linear programming: Foundations and extensions (5th ed.). Springer.""" dashes = re.findall(r'[\-\—\–\⁃\‒\‐\‑]', content) print("Dashes found:", dashes) assert len(dashes) == 0, "Dashes detected!" lines = content.split('\n') for line in lines: line = line.strip() if not line or line.startswith("1.") or line.startswith("2.") or line.startswith("3.") or line.startswith("Tài") or line.startswith("Dantzig") or line.startswith("Vanderbei"): continue text = line if text.startswith("•"): text = text[1:].strip() if text.endswith('.'): text = text[:-1] words = text.split() wc = len(words) print(f"[{wc:02d} words] {text}") assert 20 <= wc <= 25, f"FAIL: {wc} words in: {text}" print("ALL PASSED PERFECTLY!")