-1

I want to create a Strategy that generates u32 values less than 1000000 efficiently and uniformly. The only two ways that I know to do this are to use any::<u32>() and then do one of the following:

  • use prop_filter to filter out values greater than or equal to 1000000
  • use prop_map to convert the values greater than or equal to 1000000 to values less than 1000000 using the modulus operator (i.e. .prop_map(|x|x % 1000000)). However, this would not provide a uniform sample, and it seems a bit clunky.

Is there any better way to do this, perhaps by using proptest::prelude::Rng::gen_range() somehow?

nimble_ninja
  • 323
  • 1
  • 13

1 Answers1

0

Just use a Range, as their tutorial states:

0..100i32 is a strategy to generate i32s between 0, inclusive, and 100, exclusive

so the strategy for numbers up to 1_000_000 is 0u32..1_000_000

cafce25
  • 15,907
  • 4
  • 25
  • 31