163 lines
4.3 KiB
Rust
163 lines
4.3 KiB
Rust
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);
|
|
}
|