/ docs / Exercism / rust / reverse-string / tests / reverse_string.rs
reverse_string.rs
 1  use reverse_string::*;
 2  
 3  #[test]
 4  fn an_empty_string() {
 5      let input = "";
 6      let output = reverse(input);
 7      let expected = "";
 8      assert_eq!(output, expected);
 9  }
10  
11  #[test]
12  #[ignore]
13  fn a_word() {
14      let input = "robot";
15      let output = reverse(input);
16      let expected = "tobor";
17      assert_eq!(output, expected);
18  }
19  
20  #[test]
21  #[ignore]
22  fn a_capitalized_word() {
23      let input = "Ramen";
24      let output = reverse(input);
25      let expected = "nemaR";
26      assert_eq!(output, expected);
27  }
28  
29  #[test]
30  #[ignore]
31  fn a_sentence_with_punctuation() {
32      let input = "I'm hungry!";
33      let output = reverse(input);
34      let expected = "!yrgnuh m'I";
35      assert_eq!(output, expected);
36  }
37  
38  #[test]
39  #[ignore]
40  fn a_palindrome() {
41      let input = "racecar";
42      let output = reverse(input);
43      let expected = "racecar";
44      assert_eq!(output, expected);
45  }
46  
47  #[test]
48  #[ignore]
49  fn an_even_sized_word() {
50      let input = "drawer";
51      let output = reverse(input);
52      let expected = "reward";
53      assert_eq!(output, expected);
54  }
55  
56  #[test]
57  #[ignore]
58  fn wide_characters() {
59      let input = "子猫";
60      let output = reverse(input);
61      let expected = "猫子";
62      assert_eq!(output, expected);
63  }
64  
65  #[test]
66  #[ignore]
67  #[cfg(feature = "grapheme")]
68  fn grapheme_cluster_with_pre_combined_form() {
69      let input = "Würstchenstand";
70      let output = reverse(input);
71      let expected = "dnatsnehctsrüW";
72      assert_eq!(output, expected);
73  }
74  
75  #[test]
76  #[ignore]
77  #[cfg(feature = "grapheme")]
78  fn grapheme_clusters() {
79      let input = "ผู้เขียนโปรแกรม";
80      let output = reverse(input);
81      let expected = "มรกแรปโนยขีเผู้";
82      assert_eq!(output, expected);
83  }