Update rand crate (only used in tests)
This commit is contained in:
parent
2b959e5a68
commit
aa250a8145
|
|
@ -5,4 +5,4 @@ edition = "2021"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
ntest = "0.9.3"
|
ntest = "0.9.3"
|
||||||
rand = {version="0.8.5", features=["small_rng"]}
|
rand = {version="0.9.2", features=["small_rng", "alloc"]}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
use super::super::{Rc, Rope};
|
use super::super::{Rc, Rope};
|
||||||
use rand::{
|
use rand::{
|
||||||
distributions::{Alphanumeric, DistString},
|
distr::{Alphanumeric, SampleString},
|
||||||
rngs::SmallRng,
|
rngs::SmallRng,
|
||||||
Rng, SeedableRng,
|
Rng, SeedableRng,
|
||||||
};
|
};
|
||||||
|
|
@ -45,21 +45,21 @@ pub fn generate_random_edit_sequence_with_seed(
|
||||||
seed: u64,
|
seed: u64,
|
||||||
) -> (String, Vec<(Command, String)>) {
|
) -> (String, Vec<(Command, String)>) {
|
||||||
let mut rng = SmallRng::seed_from_u64(seed);
|
let mut rng = SmallRng::seed_from_u64(seed);
|
||||||
let start_text_length = rng.gen_range(0..4000);
|
let start_text_length = rng.random_range(0..4000);
|
||||||
let start_text = Alphanumeric.sample_string(&mut rng, start_text_length);
|
let start_text = Alphanumeric.sample_string(&mut rng, start_text_length);
|
||||||
let num_steps = rng.gen_range(0..1000);
|
let num_steps = rng.random_range(0..1000);
|
||||||
let mut steps = Vec::with_capacity(num_steps);
|
let mut steps = Vec::with_capacity(num_steps);
|
||||||
let mut current_text = start_text.clone();
|
let mut current_text = start_text.clone();
|
||||||
for i in 0..num_steps {
|
for i in 0..num_steps {
|
||||||
let current_text_length = current_text.len();
|
let current_text_length = current_text.len();
|
||||||
let command = if rng.gen_bool(0.7) || current_text_length > 0 {
|
let command = if rng.random_bool(0.7) || current_text_length > 0 {
|
||||||
let index = rng.gen_range(0..current_text_length);
|
let index = rng.random_range(0..current_text_length);
|
||||||
let text_len = rng.gen_range(0..100);
|
let text_len = rng.random_range(0..100);
|
||||||
let text = Alphanumeric.sample_string(&mut rng, text_len);
|
let text = Alphanumeric.sample_string(&mut rng, text_len);
|
||||||
Command::InsertAtCharIndex { index, text }
|
Command::InsertAtCharIndex { index, text }
|
||||||
} else {
|
} else {
|
||||||
let index = rng.gen_range(0..current_text_length-1);
|
let index = rng.random_range(0..current_text_length-1);
|
||||||
let length = rng.gen_range(1..(current_text_length - index));
|
let length = rng.random_range(1..(current_text_length - index));
|
||||||
Command::DeleteAtCharIndex { index, length }
|
Command::DeleteAtCharIndex { index, length }
|
||||||
};
|
};
|
||||||
current_text = command.run_on_string(current_text);
|
current_text = command.run_on_string(current_text);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue