doga_reverse_string/
lib.rs

1use unicode_segmentation::UnicodeSegmentation;
2
3pub fn reverse(bla: &str) -> String {
4    bla.graphemes(true).rev().collect()
5}
6
7#[cfg(test)]
8mod tests {
9    use super::*;
10
11    #[test]
12    fn it_works_for_korean() {
13        let result = reverse("안녕하세요");
14        assert_eq!(result, "요세하녕안");
15    }
16
17    #[test]
18    fn it_works_for_japanese() {
19        let result = reverse("こんにちは");
20        assert_eq!(result, "はちにんこ");
21    }
22
23    #[test]
24    fn it_works_for_mandarin() {
25        let result = reverse("你好");
26        assert_eq!(result, "好你");
27    }
28
29    #[test]
30    fn it_works_for_thai() {
31        let result = reverse("สวัสดีครับ");
32        assert_eq!(result, "บรัคดีสวัส");
33    }
34
35    #[test]
36    fn it_works_for_vietnamese() {
37        let result = reverse("xin chào");
38        assert_eq!(result, "oàhc nix");
39    }
40}