Skip to content

Commit

Permalink
Unit tests for the stop_early parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
oSoMoN committed Feb 23, 2024
1 parent ac684c3 commit 59892f3
Show file tree
Hide file tree
Showing 4 changed files with 162 additions and 4 deletions.
65 changes: 64 additions & 1 deletion src/context_diff.rs
Original file line number Diff line number Diff line change
Expand Up @@ -699,5 +699,68 @@ mod tests {
}
}

// TODO: add tests for stop_early parameter
#[test]
fn test_stop_early() {
let from_filename = "foo";
let from = vec!["a", "b", "c", ""].join("\n");
let to_filename = "bar";
let to = vec!["a", "d", "c", ""].join("\n");
let context_size: usize = 3;

let diff_full = diff(
from.as_bytes(),
from_filename,
to.as_bytes(),
to_filename,
context_size,
false,
);
let expected_full = vec![
"*** foo\t",
"--- bar\t",
"***************",
"*** 1,3 ****",
" a",
"! b",
" c",
"--- 1,3 ----",
" a",
"! d",
" c",
"",
]
.join("\n");
assert_eq!(diff_full, expected_full.as_bytes());

let diff_brief = diff(
from.as_bytes(),
from_filename,
to.as_bytes(),
to_filename,
context_size,
true,
);
let expected_brief = vec!["*** foo\t", "--- bar\t", ""].join("\n");
assert_eq!(diff_brief, expected_brief.as_bytes());

let nodiff_full = diff(
from.as_bytes(),
from_filename,
from.as_bytes(),
to_filename,
context_size,
false,
);
assert!(nodiff_full.is_empty());

let nodiff_brief = diff(
from.as_bytes(),
from_filename,
from.as_bytes(),
to_filename,
context_size,
true,
);
assert!(nodiff_brief.is_empty());
}
}
20 changes: 19 additions & 1 deletion src/ed_diff.rs
Original file line number Diff line number Diff line change
Expand Up @@ -389,5 +389,23 @@ mod tests {
}
}

// TODO: add tests for stop_early parameter
#[test]
fn test_stop_early() {
let from = vec!["a", "b", "c", ""].join("\n");
let to = vec!["a", "d", "c", ""].join("\n");

let diff_full = diff(from.as_bytes(), to.as_bytes(), false).unwrap();
let expected_full = vec!["2,2c", "d", ".", ""].join("\n");
assert_eq!(diff_full, expected_full.as_bytes());

let diff_brief = diff(from.as_bytes(), to.as_bytes(), true).unwrap();
let expected_brief = "\0".as_bytes();
assert_eq!(diff_brief, expected_brief);

let nodiff_full = diff(from.as_bytes(), from.as_bytes(), false).unwrap();
assert!(nodiff_full.is_empty());

let nodiff_brief = diff(from.as_bytes(), from.as_bytes(), true).unwrap();
assert!(nodiff_brief.is_empty());
}
}
20 changes: 19 additions & 1 deletion src/normal_diff.rs
Original file line number Diff line number Diff line change
Expand Up @@ -547,5 +547,23 @@ mod tests {
}
}

// TODO: add tests for stop_early parameter
#[test]
fn test_stop_early() {
let from = vec!["a", "b", "c"].join("\n");
let to = vec!["a", "d", "c"].join("\n");

let diff_full = diff(from.as_bytes(), to.as_bytes(), false);
let expected_full = vec!["2c2", "< b", "---", "> d", ""].join("\n");
assert_eq!(diff_full, expected_full.as_bytes());

let diff_brief = diff(from.as_bytes(), to.as_bytes(), true);
let expected_brief = "\0".as_bytes();
assert_eq!(diff_brief, expected_brief);

let nodiff_full = diff(from.as_bytes(), from.as_bytes(), false);
assert!(nodiff_full.is_empty());

let nodiff_brief = diff(from.as_bytes(), from.as_bytes(), true);
assert!(nodiff_brief.is_empty());
}
}
61 changes: 60 additions & 1 deletion src/unified_diff.rs
Original file line number Diff line number Diff line change
Expand Up @@ -853,5 +853,64 @@ mod tests {
}
}

// TODO: add tests for stop_early parameter
#[test]
fn test_stop_early() {
let from_filename = "foo";
let from = vec!["a", "b", "c", ""].join("\n");
let to_filename = "bar";
let to = vec!["a", "d", "c", ""].join("\n");
let context_size: usize = 3;

let diff_full = diff(
from.as_bytes(),
from_filename,
to.as_bytes(),
to_filename,
context_size,
false,
);
let expected_full = vec![
"--- foo\t",
"+++ bar\t",
"@@ -1,3 +1,3 @@",
" a",
"-b",
"+d",
" c",
"",
]
.join("\n");
assert_eq!(diff_full, expected_full.as_bytes());

let diff_brief = diff(
from.as_bytes(),
from_filename,
to.as_bytes(),
to_filename,
context_size,
true,
);
let expected_brief = vec!["--- foo\t", "+++ bar\t", ""].join("\n");
assert_eq!(diff_brief, expected_brief.as_bytes());

let nodiff_full = diff(
from.as_bytes(),
from_filename,
from.as_bytes(),
to_filename,
context_size,
false,
);
assert!(nodiff_full.is_empty());

let nodiff_brief = diff(
from.as_bytes(),
from_filename,
from.as_bytes(),
to_filename,
context_size,
true,
);
assert!(nodiff_brief.is_empty());
}
}

0 comments on commit 59892f3

Please sign in to comment.