Giả sử tôi muốn viết một số xét nghiệm đơn vị cho hàm (!!)
.Làm cách nào để yêu cầu QuickCheck chỉ tạo các chỉ mục danh sách hợp lệ cho một tham số?
my_prop xs n = ...
Tôi muốn hạn chế n để chỉ lập chỉ mục hợp lệ và tôi biết tôi có thể làm một cái gì đó giống như
my_prop xs n = (not.null) (drop n xs) ==> ...
Nhưng điều này làm cho nó để đại đa số các trường hợp phát sinh là không hợp lệ và bị vứt bỏ . Có cách nào tôi có thể thiết lập mọi thứ để QuickCheck tạo danh sách xs
trước tiên và sử dụng giá trị của nó để chỉ tạo các trường hợp hợp lệ là n
?
Tạo một loại mới chứa danh sách và 'Int' với một trường hợp' Arbitrary' thích hợp. –