sublist
This commit is contained in:
parent
d3bfaf4131
commit
a1afa1e16b
7 changed files with 396 additions and 0 deletions
163
rust/sublist/tests/sublist.rs
Normal file
163
rust/sublist/tests/sublist.rs
Normal file
|
|
@ -0,0 +1,163 @@
|
|||
use sublist::*;
|
||||
|
||||
#[test]
|
||||
fn empty_lists() {
|
||||
let list_one: &[i32] = &[];
|
||||
let list_two: &[i32] = &[];
|
||||
let output = sublist(list_one, list_two);
|
||||
let expected = Comparison::Equal;
|
||||
assert_eq!(output, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn empty_list_within_non_empty_list() {
|
||||
let list_one: &[i32] = &[];
|
||||
let list_two: &[i32] = &[1, 2, 3];
|
||||
let output = sublist(list_one, list_two);
|
||||
let expected = Comparison::Sublist;
|
||||
assert_eq!(output, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn non_empty_list_contains_empty_list() {
|
||||
let list_one: &[i32] = &[1, 2, 3];
|
||||
let list_two: &[i32] = &[];
|
||||
let output = sublist(list_one, list_two);
|
||||
let expected = Comparison::Superlist;
|
||||
assert_eq!(output, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn list_equals_itself() {
|
||||
let list_one: &[i32] = &[1, 2, 3];
|
||||
let list_two: &[i32] = &[1, 2, 3];
|
||||
let output = sublist(list_one, list_two);
|
||||
let expected = Comparison::Equal;
|
||||
assert_eq!(output, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn different_lists() {
|
||||
let list_one: &[i32] = &[1, 2, 3];
|
||||
let list_two: &[i32] = &[2, 3, 4];
|
||||
let output = sublist(list_one, list_two);
|
||||
let expected = Comparison::Unequal;
|
||||
assert_eq!(output, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn false_start() {
|
||||
let list_one: &[i32] = &[1, 2, 5];
|
||||
let list_two: &[i32] = &[0, 1, 2, 3, 1, 2, 5, 6];
|
||||
let output = sublist(list_one, list_two);
|
||||
let expected = Comparison::Sublist;
|
||||
assert_eq!(output, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn consecutive() {
|
||||
let list_one: &[i32] = &[1, 1, 2];
|
||||
let list_two: &[i32] = &[0, 1, 1, 1, 2, 1, 2];
|
||||
let output = sublist(list_one, list_two);
|
||||
let expected = Comparison::Sublist;
|
||||
assert_eq!(output, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sublist_at_start() {
|
||||
let list_one: &[i32] = &[0, 1, 2];
|
||||
let list_two: &[i32] = &[0, 1, 2, 3, 4, 5];
|
||||
let output = sublist(list_one, list_two);
|
||||
let expected = Comparison::Sublist;
|
||||
assert_eq!(output, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sublist_in_middle() {
|
||||
let list_one: &[i32] = &[2, 3, 4];
|
||||
let list_two: &[i32] = &[0, 1, 2, 3, 4, 5];
|
||||
let output = sublist(list_one, list_two);
|
||||
let expected = Comparison::Sublist;
|
||||
assert_eq!(output, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sublist_at_end() {
|
||||
let list_one: &[i32] = &[3, 4, 5];
|
||||
let list_two: &[i32] = &[0, 1, 2, 3, 4, 5];
|
||||
let output = sublist(list_one, list_two);
|
||||
let expected = Comparison::Sublist;
|
||||
assert_eq!(output, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn at_start_of_superlist() {
|
||||
let list_one: &[i32] = &[0, 1, 2, 3, 4, 5];
|
||||
let list_two: &[i32] = &[0, 1, 2];
|
||||
let output = sublist(list_one, list_two);
|
||||
let expected = Comparison::Superlist;
|
||||
assert_eq!(output, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn in_middle_of_superlist() {
|
||||
let list_one: &[i32] = &[0, 1, 2, 3, 4, 5];
|
||||
let list_two: &[i32] = &[2, 3];
|
||||
let output = sublist(list_one, list_two);
|
||||
let expected = Comparison::Superlist;
|
||||
assert_eq!(output, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn at_end_of_superlist() {
|
||||
let list_one: &[i32] = &[0, 1, 2, 3, 4, 5];
|
||||
let list_two: &[i32] = &[3, 4, 5];
|
||||
let output = sublist(list_one, list_two);
|
||||
let expected = Comparison::Superlist;
|
||||
assert_eq!(output, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn first_list_missing_element_from_second_list() {
|
||||
let list_one: &[i32] = &[1, 3];
|
||||
let list_two: &[i32] = &[1, 2, 3];
|
||||
let output = sublist(list_one, list_two);
|
||||
let expected = Comparison::Unequal;
|
||||
assert_eq!(output, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn second_list_missing_element_from_first_list() {
|
||||
let list_one: &[i32] = &[1, 2, 3];
|
||||
let list_two: &[i32] = &[1, 3];
|
||||
let output = sublist(list_one, list_two);
|
||||
let expected = Comparison::Unequal;
|
||||
assert_eq!(output, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn first_list_missing_additional_digits_from_second_list() {
|
||||
let list_one: &[i32] = &[1, 2];
|
||||
let list_two: &[i32] = &[1, 22];
|
||||
let output = sublist(list_one, list_two);
|
||||
let expected = Comparison::Unequal;
|
||||
assert_eq!(output, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn order_matters_to_a_list() {
|
||||
let list_one: &[i32] = &[1, 2, 3];
|
||||
let list_two: &[i32] = &[3, 2, 1];
|
||||
let output = sublist(list_one, list_two);
|
||||
let expected = Comparison::Unequal;
|
||||
assert_eq!(output, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn same_digits_but_different_numbers() {
|
||||
let list_one: &[i32] = &[1, 0, 1];
|
||||
let list_two: &[i32] = &[10, 1];
|
||||
let output = sublist(list_one, list_two);
|
||||
let expected = Comparison::Unequal;
|
||||
assert_eq!(output, expected);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue