1
1
using System ;
2
+ using System . Text ;
2
3
using Xunit ;
3
4
4
5
namespace Unidecode . NET . Tests
5
6
{
6
7
public class UnidecoderTest
7
8
{
8
9
[ Fact ]
9
- public void Test ( )
10
+ public void DocTest ( )
10
11
{
11
12
Assert . Equal ( "Bei Jing " , "\u5317 \u4EB0 " . Unidecode ( ) ) ;
13
+ }
14
+
15
+ [ Fact ]
16
+ public void CustomTest ( )
17
+ {
12
18
Assert . Equal ( "Rabota s kirillitsey" , "Работа с кириллицей" . Unidecode ( ) ) ;
13
19
Assert . Equal ( "aouoAOUO" , "äöűőÄÖŨŐ" . Unidecode ( ) ) ;
20
+ }
21
+
22
+ [ Fact ]
23
+ public void PythonTest ( )
24
+ {
14
25
Assert . Equal ( "Hello, World!" , "Hello, World!" . Unidecode ( ) ) ;
26
+
15
27
Assert . Equal ( "'\" \r \n " , "'\" \r \n " . Unidecode ( ) ) ;
16
28
Assert . Equal ( "CZSczs" , "ČŽŠčžš" . Unidecode ( ) ) ;
17
29
Assert . Equal ( "a" , "ア" . Unidecode ( ) ) ;
@@ -20,5 +32,45 @@ public void Test()
20
32
Assert . Equal ( "chateau" , "ch\u00e2 teau" . Unidecode ( ) ) ;
21
33
Assert . Equal ( "vinedos" , "vi\u00f1 edos" . Unidecode ( ) ) ;
22
34
}
35
+
36
+ /// <summary>
37
+ /// According to http://en.wikipedia.org/wiki/Romanization_of_Russian BGN/PCGN.
38
+ /// http://en.wikipedia.org/wiki/BGN/PCGN_romanization_of_Russian
39
+ /// With converting "ё" to "yo".
40
+ /// </summary>
41
+ [ Fact ]
42
+ public void RussianAlphabetTest ( )
43
+ {
44
+ string russianAlphabetLowercase = "а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я" ;
45
+ string russianAlphabetUppercase = "А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я" ;
46
+
47
+ string expectedLowercase = "a b v g d e yo zh z i y k l m n o p r s t u f kh ts ch sh shch \" y ' e yu ya" ;
48
+ string expectedUppercase = "A B V G D E Yo Zh Z I Y K L M N O P R S T U F Kh Ts Ch Sh Shch \" Y ' E Yu Ya" ;
49
+
50
+ Assert . Equal ( expectedLowercase , russianAlphabetLowercase . Unidecode ( ) ) ;
51
+ Assert . Equal ( expectedUppercase , russianAlphabetUppercase . Unidecode ( ) ) ;
52
+ }
53
+
54
+ [ Fact ]
55
+ public void CharUnidecodeTest ( )
56
+ {
57
+ string input = "а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я" ;
58
+ string expected = "a b v g d e yo zh z i y k l m n o p r s t u f kh ts ch sh shch \" y ' e yu ya A B V G D E Yo Zh Z I Y K L M N O P R S T U F Kh Ts Ch Sh Shch \" Y ' E Yu Ya" ;
59
+
60
+ var sb = new StringBuilder ( expected . Length ) ;
61
+ foreach ( char c in input )
62
+ {
63
+ sb . Append ( c . Unidecode ( ) ) ;
64
+ }
65
+ string result = sb . ToString ( ) ;
66
+
67
+ Assert . Equal ( expected , result ) ;
68
+ }
69
+
70
+ [ Fact ]
71
+ public void UnidecodeOnNullShouldReturnEmptyString ( )
72
+ {
73
+ Assert . Equal ( "" , ( ( string ) null ) . Unidecode ( ) ) ;
74
+ }
23
75
}
24
76
}
0 commit comments