Enable soft wrap in randomized test of BlockMap

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
This commit is contained in:
Nathan Sobo 2021-11-15 16:59:02 -07:00
parent 862b988d56
commit 7b12c1c9e0

View file

@ -505,10 +505,6 @@ impl Transform {
fn is_isomorphic(&self) -> bool { fn is_isomorphic(&self) -> bool {
self.block.is_none() self.block.is_none()
} }
fn block_disposition(&self) -> Option<BlockDisposition> {
self.block.as_ref().map(|b| b.disposition)
}
} }
impl<'a> Iterator for HighlightedChunks<'a> { impl<'a> Iterator for HighlightedChunks<'a> {
@ -815,7 +811,11 @@ mod tests {
.map(|i| i.parse().expect("invalid `OPERATIONS` variable")) .map(|i| i.parse().expect("invalid `OPERATIONS` variable"))
.unwrap_or(10); .unwrap_or(10);
let wrap_width = None; let wrap_width = if rng.gen_bool(0.2) {
None
} else {
Some(rng.gen_range(0.0..=100.0))
};
let tab_size = 1; let tab_size = 1;
let family_id = cx.font_cache().load_family(&["Helvetica"]).unwrap(); let family_id = cx.font_cache().load_family(&["Helvetica"]).unwrap();
let font_id = cx let font_id = cx
@ -841,15 +841,15 @@ mod tests {
for _ in 0..operations { for _ in 0..operations {
match rng.gen_range(0..=100) { match rng.gen_range(0..=100) {
// 0..=19 => { 0..=19 => {
// let wrap_width = if rng.gen_bool(0.2) { let wrap_width = if rng.gen_bool(0.2) {
// None None
// } else { } else {
// Some(rng.gen_range(0.0..=1000.0)) Some(rng.gen_range(0.0..=100.0))
// }; };
// log::info!("Setting wrap width to {:?}", wrap_width); log::info!("Setting wrap width to {:?}", wrap_width);
// wrap_map.update(cx, |map, cx| map.set_wrap_width(wrap_width, cx)); wrap_map.update(cx, |map, cx| map.set_wrap_width(wrap_width, cx));
// } }
20..=39 => { 20..=39 => {
let block_count = rng.gen_range(1..=1); let block_count = rng.gen_range(1..=1);
let block_properties = (0..block_count) let block_properties = (0..block_count)
@ -938,10 +938,20 @@ mod tests {
.iter() .iter()
.cloned() .cloned()
.map(|(id, block)| { .map(|(id, block)| {
let mut position = block.position.to_point(buffer);
match block.disposition {
BlockDisposition::Above => {
position.column = 0;
}
BlockDisposition::Below => {
position.column = buffer.line_len(position.row);
}
};
let row = wraps_snapshot.from_point(position, Bias::Left).row();
( (
id, id,
BlockProperties { BlockProperties {
position: block.position.to_point(buffer), position: row,
text: block.text, text: block.text,
runs: block.runs, runs: block.runs,
disposition: block.disposition, disposition: block.disposition,
@ -950,7 +960,7 @@ mod tests {
}) })
.collect::<Vec<_>>(); .collect::<Vec<_>>();
sorted_blocks sorted_blocks
.sort_unstable_by_key(|(id, block)| (block.position.row, block.disposition, *id)); .sort_unstable_by_key(|(id, block)| (block.position, block.disposition, *id));
let mut sorted_blocks = sorted_blocks.into_iter().peekable(); let mut sorted_blocks = sorted_blocks.into_iter().peekable();
let mut expected_text = String::new(); let mut expected_text = String::new();
@ -962,7 +972,7 @@ mod tests {
} }
while let Some((_, block)) = sorted_blocks.peek() { while let Some((_, block)) = sorted_blocks.peek() {
if block.position.row == row && block.disposition == BlockDisposition::Above { if block.position == row && block.disposition == BlockDisposition::Above {
expected_text.extend(block.text.chunks()); expected_text.extend(block.text.chunks());
expected_text.push('\n'); expected_text.push('\n');
sorted_blocks.next(); sorted_blocks.next();
@ -974,7 +984,7 @@ mod tests {
expected_text.push_str(input_line); expected_text.push_str(input_line);
while let Some((_, block)) = sorted_blocks.peek() { while let Some((_, block)) = sorted_blocks.peek() {
if block.position.row == row && block.disposition == BlockDisposition::Below { if block.position == row && block.disposition == BlockDisposition::Below {
expected_text.push('\n'); expected_text.push('\n');
expected_text.extend(block.text.chunks()); expected_text.extend(block.text.chunks());
sorted_blocks.next(); sorted_blocks.next();