Update rand crate (only used in tests)

This commit is contained in:
Matthew Gordon 2025-10-18 21:21:50 -03:00
parent 2b959e5a68
commit aa250a8145
2 changed files with 9 additions and 9 deletions

View File

@ -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"]}

View File

@ -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);