[WIP] feat: introduce ArbitraryInRange#192
Draft
sivizius wants to merge 1 commit intorust-fuzz:mainfrom
Draft
Conversation
|
I'd like to see this get added as well. I've tested |
|
Actually, the trait #[test] │On branch add-test-to-in-range
fn arbitrary_in_range_for_integers() { │Changes not staged for commit:
let x = [1, 2, 3, 4]; │ (use "git add <file>..." to update what will be committed)
let mut u = Unstructured::new(&x); │ (use "git restore <file>..." to discard changes in working directory)
let result_one = i32::arbitrary_in_range(&mut u, &(0..=10)); │ modified: src/tests.rs
│
let y = [1, 2, 3]; │Untracked files:
let mut u = Unstructured::new(&y); │ (use "git add <file>..." to include in what will be committed)
let result_two = i32::arbitrary_in_range(&mut u, &(0..=10)); │ src/.tests.rs.swp
│ tags
assert_ne!(result_one, result_two); │
}The result is always |
c28e5fa to
d97bd18
Compare
Contributor
Author
In let minimum = map_bound(range.start_bound(), |x| *x as Self);
let maximum = map_bound(range.start_bound(), |x| *x as Self);
u.int_in_range((minimum, maximum))Note the second |
|
Thanks, that makes sense. Will give it a test when I can. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR introduces the trait
ArbitraryInRange, which allows limiting the range of possible values for some types. The intention is to use this trait in an not-yet-implemented[arbitrary(range(min = …, max = …))]field-attribute. A separate trait is necessary, because 1. not all types can be meaningful used as ranges, 2. I like to use#[arbitrary(range(min = 23, max = 42))]onOption<u8>.However, there are certainly some implementations missing, so still WIP.