|
|
//! Tests for reverse-string |
|
|
//! |
|
|
//! Generated by [script][script] using [canonical data][canonical-data] |
|
|
//! |
|
|
//! [script]: https://github.com/exercism/rust/blob/b829ce2/bin/init_exercise.py |
|
|
//! [canonical-data]: https://raw.githubusercontent.com/exercism/problem-specifications/main/exercises/reverse-string/canonical_data.json |
|
|
|
|
|
use reverse_string::*; |
|
|
|
|
|
/// Process a single test case for the property `reverse` |
|
|
fn process_reverse_case(input: &str, expected: &str) { |
|
|
assert_eq!(&reverse(input), expected) |
|
|
} |
|
|
|
|
|
#[test] |
|
|
/// empty string |
|
|
fn test_an_empty_string() { |
|
|
process_reverse_case("", ""); |
|
|
} |
|
|
|
|
|
#[test] |
|
|
/// a word |
|
|
fn test_a_word() { |
|
|
process_reverse_case("robot", "tobor"); |
|
|
} |
|
|
|
|
|
#[test] |
|
|
/// a capitalized word |
|
|
fn test_a_capitalized_word() { |
|
|
process_reverse_case("Ramen", "nemaR"); |
|
|
} |
|
|
|
|
|
#[test] |
|
|
/// a sentence with punctuation |
|
|
fn test_a_sentence_with_punctuation() { |
|
|
process_reverse_case("I'm hungry!", "!yrgnuh m'I"); |
|
|
} |
|
|
|
|
|
#[test] |
|
|
/// a palindrome |
|
|
fn test_a_palindrome() { |
|
|
process_reverse_case("racecar", "racecar"); |
|
|
} |
|
|
|
|
|
#[test] |
|
|
/// an even-sized word |
|
|
fn test_an_even_sized_word() { |
|
|
process_reverse_case("drawer", "reward"); |
|
|
} |
|
|
|
|
|
#[test] |
|
|
/// wide characters |
|
|
fn test_wide_characters() { |
|
|
process_reverse_case("子猫", "猫子"); |
|
|
} |
|
|
|
|
|
#[test] |
|
|
#[cfg(feature = "grapheme")] |
|
|
/// grapheme clusters |
|
|
fn test_grapheme_clusters() { |
|
|
process_reverse_case("uüu", "uüu"); |
|
|
}
|
|
|
|