zhongwen_tools 0.0.6 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +41 -24
- data/lib/zhongwen_tools/integer.rb +41 -0
- data/lib/zhongwen_tools/numbers.rb +61 -56
- data/test/test_helper.rb +8 -0
- data/test/test_integer.rb +31 -0
- data/test/test_numbers.rb +12 -14
- data/test/test_string.rb +0 -8
- data/zhongwen_tools.gemspec +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e2db83235c285238192917440b33bbb8f2f1d16f
|
|
4
|
+
data.tar.gz: abb0da06eeefc95b9a3fc1b86ef98f291430a295
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a753b626668df9e3f1e229fb25769fdd5c5a0edda04bf5027c904fb8fbc644a76b8bd448d96f84c2eb431dc36114c867cfc9e39764290e6a70b2fd695707fcb0
|
|
7
|
+
data.tar.gz: d77bba5b9e8345253bb2fa5a6ac154ffca1322a9d32de374bd248d0d41b808b6a7b4e667e47215fc93108c4af74adeda7aebed83144164bd107f18e75ea603a8
|
data/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
#Zhongwen Tools:
|
|
1
|
+
#Zhongwen Tools:
|
|
2
|
+
Tools and methods for dealing with Chinese.
|
|
2
3
|
[](https://travis-ci.org/stevendaniels/zhongwen_tools) [](https://gemnasium.com/stevendaniels/zhongwen_tools) [](https://codeclimate.com/github/stevendaniels/zhongwen_tools) [](https://coveralls.io/r/stevendaniels/zhongwen_tools)
|
|
5
|
+
[](http://badge.fury.io/gh/stevendaniels%2Fzhongwen_tools)
|
|
4
6
|
##INSTALLATION
|
|
5
7
|
|
|
6
8
|
Install as a gem
|
|
@@ -12,7 +14,7 @@ Install as a gem
|
|
|
12
14
|
Add the ZhongwenTools component you need to your classes as a module.
|
|
13
15
|
|
|
14
16
|
class String
|
|
15
|
-
include
|
|
17
|
+
include ZhongwenTools::Romanization
|
|
16
18
|
end
|
|
17
19
|
|
|
18
20
|
str = "ni3 hao3" #pinyin with numbers
|
|
@@ -20,11 +22,12 @@ Add the ZhongwenTools component you need to your classes as a module.
|
|
|
20
22
|
str.to_zhuyinfuhao #=>
|
|
21
23
|
|
|
22
24
|
mzd = "Mao Tse-tung"
|
|
23
|
-
mzd.to_pinyin #=> Mao Zedong
|
|
25
|
+
mzd.to_pinyin #=> "Mao Zedong"
|
|
24
26
|
|
|
25
27
|
Or you can require the components you want
|
|
28
|
+
|
|
26
29
|
require 'zhongwen_tools/numbers'
|
|
27
|
-
ZhongwenTools::Numbers.
|
|
30
|
+
ZhongwenTools::Numbers.to_pyn '一百二十' #=> 'yi1-bai2-er4-shi2'
|
|
28
31
|
|
|
29
32
|
ZhongwenTools includes the following modules:
|
|
30
33
|
|
|
@@ -32,17 +35,17 @@ ZhongwenTools includes the following modules:
|
|
|
32
35
|
2. ZhongwenTools::Numbers => functions for identifying and converting numbers.
|
|
33
36
|
3. ZhongwenTools::Integer => some useful integer functions for Chinese:
|
|
34
37
|
e.g. 12.to_pinyin 12.to_zht
|
|
35
|
-
4. ZhongwenTools::Romanization => functions for converting between Chinese romanization systems
|
|
36
|
-
5. ZhongwenTools::Conversion => functions for converting between Chinese scripts.
|
|
37
|
-
6. ZhongwenTools::ToneSandhi => functions for identifying and dealing with tone sandhi. (Wiki URL)
|
|
38
|
+
4. [TODO] ZhongwenTools::Romanization => functions for converting between Chinese romanization systems
|
|
39
|
+
5. [TODO] ZhongwenTools::Conversion => functions for converting between Chinese scripts.
|
|
40
|
+
6. [TODO] ZhongwenTools::ToneSandhi => functions for identifying and dealing with tone sandhi. (Wiki URL)
|
|
38
41
|
7. [TODO] ZhongwenTools::Segmentation => functions for segmenting Chinese. Can provide different methods for converting
|
|
39
|
-
8. ZhongwenTools::Tagging => functions for tagging Chinese POS, NER, etc.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
### ZhongwenTools::String: useful string functions for
|
|
42
|
+
8. [TODO] ZhongwenTools::Tagging => functions for tagging Chinese POS, NER, etc.
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
### ZhongwenTools::String: useful string functions for Chinese.
|
|
43
46
|
ZhongwenTools::String.ascii? 'hello' #=> true #non-multibyle strings
|
|
44
47
|
ZhongwenTools::String.multibyte? '中文' #=> true #multibtye strings
|
|
45
|
-
ZhongwenTools::String.halfwidth?
|
|
48
|
+
ZhongwenTools::String.halfwidth?
|
|
46
49
|
ZhongwenTools::String.fullwidth?
|
|
47
50
|
ZhongwenTools::String.to_halfwidth
|
|
48
51
|
ZhongwenTools::String.uri_encode #=> just because I'm lazy
|
|
@@ -52,12 +55,12 @@ ZhongwenTools includes the following modules:
|
|
|
52
55
|
ZhongwenTools::String.upcase --> does pinyin uppercase
|
|
53
56
|
ZhongwenTools::String.capitalize ---> does pinyin / fullwidth capitalization
|
|
54
57
|
|
|
55
|
-
ZhongwenTools::String.has_zh? '1月' #=> true
|
|
58
|
+
ZhongwenTools::String.has_zh? '1月' #=> true
|
|
56
59
|
ZhongwenTools::String.is_zh? '1月' #=> false can't be mixed.
|
|
57
60
|
ZhongwenTools::String.is_zhs? '中国' #=> true
|
|
58
61
|
ZhongwenTools::String.is_zht? '中国' #=> false
|
|
59
62
|
|
|
60
|
-
####
|
|
63
|
+
#### Ruby 1.8 safe methods
|
|
61
64
|
ZhongwenTools::String.chars '中文' #=> ['中','文']
|
|
62
65
|
ZhongwenTools::String.size '中文' #=> 2
|
|
63
66
|
ZhongwenTools::String.reverse '中文' #=> '文中'
|
|
@@ -67,21 +70,36 @@ ZhongwenTools includes the following modules:
|
|
|
67
70
|
###Numbers
|
|
68
71
|
Functions for converting to and from Chinese numbers.
|
|
69
72
|
|
|
73
|
+
ZhongwenTools::Number.number_zht 12000 #=> '一萬二千'
|
|
74
|
+
ZhongwenTools::Number.number_zhs 42 #=> '四十二'
|
|
75
|
+
ZhongwenTools::Number.number_to_pyn 42 #=> 'si4-shi2-er4'
|
|
76
|
+
ZhongwenTools::Number.number_to_int '四十二' #=> 42
|
|
77
|
+
ZhongwenTools::Number.number? '四十二' #=> true
|
|
78
|
+
|
|
70
79
|
###Integers
|
|
80
|
+
Monkey-patch your integers for Chinese.
|
|
81
|
+
|
|
82
|
+
class Integer
|
|
83
|
+
include ZhongwenTools::Integer
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
12.to_pinyin #=> 'shi2-er4'
|
|
87
|
+
12.to_zht #=> '十二'
|
|
88
|
+
|
|
71
89
|
|
|
72
90
|
### Romanization
|
|
73
91
|
ZhongwenTools::Chinese has tools for converting between Chinese language romanization systems and
|
|
74
92
|
scripts.
|
|
75
93
|
|
|
76
94
|
class String
|
|
77
|
-
include
|
|
95
|
+
include ZhongwenTools::Romanization
|
|
78
96
|
end
|
|
79
97
|
|
|
80
98
|
|
|
81
99
|
str = "ni3 hao3"
|
|
82
100
|
romanization_system = "pyn" #pyn|wg|yale|bpmf|zhyfh|wade-giles|bopomofo
|
|
83
101
|
|
|
84
|
-
str.to_pinyin romanization_system
|
|
102
|
+
str.to_pinyin romanization_system
|
|
85
103
|
#=> "nǐ hǎo"
|
|
86
104
|
|
|
87
105
|
str.to_py romanization_system
|
|
@@ -106,13 +124,13 @@ Functions for converting between scripts (e.g. traditional Chinese to
|
|
|
106
124
|
simplified Chinese) and between chinese and romanization systems (e.g.
|
|
107
125
|
Chinese to pinyin).
|
|
108
126
|
|
|
109
|
-
ZhongwenTools::Conversion.to_zhs
|
|
110
|
-
ZhongwenTools::Conversion.to_zht
|
|
111
|
-
ZhongwenTools::Conversion.to_zhtw
|
|
112
|
-
ZhongwenTools::Conversion.to_zhhk
|
|
113
|
-
ZhongwenTools::Conversion.to_zhmc
|
|
114
|
-
ZhongwenTools::Conversion.to_zhsg
|
|
115
|
-
ZhongwenTools::Conversion.to_zhprc
|
|
127
|
+
ZhongwenTools::Conversion.to_zhs ‘華語'
|
|
128
|
+
ZhongwenTools::Conversion.to_zht '华语'
|
|
129
|
+
ZhongwenTools::Conversion.to_zhtw '方便面'
|
|
130
|
+
ZhongwenTools::Conversion.to_zhhk '方便面'
|
|
131
|
+
ZhongwenTools::Conversion.to_zhmc
|
|
132
|
+
ZhongwenTools::Conversion.to_zhsg
|
|
133
|
+
ZhongwenTools::Conversion.to_zhprc '马铃薯'
|
|
116
134
|
|
|
117
135
|
|
|
118
136
|
###Tone Sandhi
|
|
@@ -125,4 +143,3 @@ that requires an external dependency is packaged as a separate gem.
|
|
|
125
143
|
## TODO
|
|
126
144
|
1. A trad/simp script converter
|
|
127
145
|
2. A character -> pinyin converter
|
|
128
|
-
3. A language detector
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#encoding: utf-8
|
|
2
|
+
require './lib/zhongwen_tools/numbers'
|
|
3
|
+
|
|
4
|
+
module ZhongwenTools
|
|
5
|
+
module Integer
|
|
6
|
+
include ZhongwenTools::Numbers
|
|
7
|
+
|
|
8
|
+
def to_zh(type = nil)
|
|
9
|
+
type == :zht ? self.to_zht? : self.to_zhs
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def to_zhs(int = nil)
|
|
13
|
+
int ||= self
|
|
14
|
+
number_to_zhs :num, int.to_s
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def to_zht(int = nil)
|
|
18
|
+
int ||= self
|
|
19
|
+
number_to_zht :num, int.to_s
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def to_pyn(int = nil)
|
|
23
|
+
int ||= self
|
|
24
|
+
number_to_pyn int.to_s, :num
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
class Basement
|
|
28
|
+
include ZhongwenTools::Integer
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def self.to_zhs(*args)
|
|
32
|
+
Basement.new.to_zhs(*args)
|
|
33
|
+
end
|
|
34
|
+
def self.to_zht(*args)
|
|
35
|
+
Basement.new.to_zht(*args)
|
|
36
|
+
end
|
|
37
|
+
def self.to_pyn(*args)
|
|
38
|
+
Basement.new.to_pyn(*args)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -5,46 +5,69 @@ module ZhongwenTools
|
|
|
5
5
|
NUMBER_MULTIPLES = '拾十百佰千仟仟万萬亿億'
|
|
6
6
|
|
|
7
7
|
NUMBERS_TABLE = [
|
|
8
|
-
{ :
|
|
9
|
-
{ :
|
|
10
|
-
{ :
|
|
11
|
-
{ :
|
|
12
|
-
{ :
|
|
13
|
-
{ :
|
|
14
|
-
{ :
|
|
15
|
-
{ :
|
|
16
|
-
{ :
|
|
17
|
-
{ :
|
|
18
|
-
{ :
|
|
19
|
-
{ :
|
|
20
|
-
{ :
|
|
21
|
-
{ :
|
|
22
|
-
{ :
|
|
23
|
-
{ :
|
|
24
|
-
{ :
|
|
25
|
-
{ :
|
|
26
|
-
{ :
|
|
27
|
-
{ :
|
|
28
|
-
{ :
|
|
29
|
-
{ :
|
|
30
|
-
{ :
|
|
31
|
-
{ :
|
|
32
|
-
{ :
|
|
33
|
-
{ :
|
|
34
|
-
{ :
|
|
35
|
-
{ :
|
|
36
|
-
{ :
|
|
37
|
-
{ :
|
|
38
|
-
{ :
|
|
39
|
-
{ :
|
|
40
|
-
{ :
|
|
8
|
+
{ :zhs => '零', :zht => '零', :num => 0, :pyn => 'ling2'},
|
|
9
|
+
{ :zhs => '〇', :zht => '〇', :num => 0, :pyn => 'ling2'},
|
|
10
|
+
{ :zhs => '一', :zht => '一', :num => 1, :pyn => 'yi1'},
|
|
11
|
+
{ :zhs => '壹', :zht => '壹', :num => 1, :pyn => 'yi1'},
|
|
12
|
+
{ :zhs => '幺', :zht => '幺', :num => 1, :pyn => 'yao1'},
|
|
13
|
+
{ :zhs => '二', :zht => '二', :num => 2, :pyn => 'er4'},
|
|
14
|
+
{ :zhs => '两', :zht => '兩', :num => 2, :pyn => 'liang3'},
|
|
15
|
+
{ :zhs => '贰', :zht => '貳', :num => 2, :pyn => 'er4'},
|
|
16
|
+
{ :zhs => '三', :zht => '三', :num => 3, :pyn => 'san1'},
|
|
17
|
+
{ :zhs => '弎', :zht => '弎', :num => 3, :pyn => 'san1'},
|
|
18
|
+
{ :zhs => '叁', :zht => '參', :num => 3, :pyn => 'san1'},
|
|
19
|
+
{ :zhs => '四', :zht => '四', :num => 4, :pyn => 'si4'},
|
|
20
|
+
{ :zhs => '䦉', :zht => '䦉', :num => 4, :pyn => 'si4'},
|
|
21
|
+
{ :zhs => '肆', :zht => '肆', :num => 4, :pyn => 'si4'},
|
|
22
|
+
{ :zhs => '五', :zht => '五', :num => 5, :pyn => 'wu3'},
|
|
23
|
+
{ :zhs => '伍', :zht => '伍', :num => 5, :pyn => 'wu3'},
|
|
24
|
+
{ :zhs => '六', :zht => '六', :num => 6, :pyn => 'liu4'},
|
|
25
|
+
{ :zhs => '陆', :zht => '陸', :num => 6, :pyn => 'liu4'},
|
|
26
|
+
{ :zhs => '七', :zht => '七', :num => 7, :pyn => 'qi1'},
|
|
27
|
+
{ :zhs => '柒', :zht => '柒', :num => 7, :pyn => 'qi1'},
|
|
28
|
+
{ :zhs => '八', :zht => '八', :num => 8, :pyn => 'ba1'},
|
|
29
|
+
{ :zhs => '捌', :zht => '捌', :num => 8, :pyn => 'ba1'},
|
|
30
|
+
{ :zhs => '九', :zht => '九', :num => 9, :pyn => 'jiu3'},
|
|
31
|
+
{ :zhs => '玖', :zht => '玖', :num => 9, :pyn => 'jiu3'},
|
|
32
|
+
{ :zhs => '十', :zht => '十', :num => 10, :pyn => 'shi2'},
|
|
33
|
+
{ :zhs => '拾', :zht => '拾', :num => 10, :pyn => 'shi2'},
|
|
34
|
+
{ :zhs => '廿', :zht => '廿', :num => 20, :pyn => ' nian4'},
|
|
35
|
+
{ :zhs => '百', :zht => '百', :num => 100, :pyn => 'bai2'},
|
|
36
|
+
{ :zhs => '佰', :zht => '佰', :num => 100, :pyn => 'bai2'},
|
|
37
|
+
{ :zhs => '千', :zht => '千', :num => 1000, :pyn => 'qian2'},
|
|
38
|
+
{ :zhs => '仟', :zht => '仟', :num => 1000, :pyn => 'qian2'},
|
|
39
|
+
{ :zhs => '万', :zht => '萬', :num => 10000, :pyn => 'wan4'},
|
|
40
|
+
{ :zhs => '亿', :zht => '億', :num => 100000000, :pyn => 'yi4'},
|
|
41
41
|
]
|
|
42
42
|
|
|
43
|
-
def
|
|
43
|
+
def number? word
|
|
44
44
|
#垓 秭 穰 溝 澗 正 載 --> beyond 100,000,000!
|
|
45
45
|
"#{word}".gsub(/([\d]|[一二三四五六七八九十百千萬万億亿]){2,}/,'') == ''
|
|
46
46
|
end
|
|
47
47
|
|
|
48
|
+
def zh_number_to_number(zh_number)
|
|
49
|
+
zh_number = zh_number.to_s
|
|
50
|
+
numbers = convert_date(zh_number)
|
|
51
|
+
|
|
52
|
+
#if it's a year, or an oddly formatted number
|
|
53
|
+
return numbers.join('').to_i if zh_number[/[#{NUMBER_MULTIPLES}]/u].nil?
|
|
54
|
+
|
|
55
|
+
convert_numbers numbers
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
#these should also be able to convert numbers to chinese numbers
|
|
59
|
+
def number_to_zhs type, number
|
|
60
|
+
convert_number_to :zhs, type.to_sym, number
|
|
61
|
+
end
|
|
62
|
+
def number_to_zht type, number
|
|
63
|
+
convert_number_to :zht, type.to_sym, number
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def number_to_pyn number, type = 'zh_s'
|
|
67
|
+
convert_number_to :pyn, type.to_sym, number, '-'
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
private
|
|
48
71
|
def convert_date(zh)
|
|
49
72
|
#if it's a year, or an oddly formatted number
|
|
50
73
|
zh_numbers = ZhongwenTools::String.chars zh
|
|
@@ -64,7 +87,7 @@ module ZhongwenTools
|
|
|
64
87
|
end
|
|
65
88
|
|
|
66
89
|
def convert(number)
|
|
67
|
-
NUMBERS_TABLE.find{|x| x[:
|
|
90
|
+
NUMBERS_TABLE.find{|x| x[:zhs] == number || x[:zht] == number || x[:num].to_s == number}
|
|
68
91
|
end
|
|
69
92
|
|
|
70
93
|
def convert_numbers(numbers)
|
|
@@ -99,36 +122,18 @@ module ZhongwenTools
|
|
|
99
122
|
is_number_multiplier?(curr_num) ? number * curr_num : number + curr_num
|
|
100
123
|
end
|
|
101
124
|
|
|
102
|
-
def convert_chinese_numbers_to_numbers(zh_number)
|
|
103
|
-
zh_number = zh_number.to_s
|
|
104
|
-
numbers = convert_date(zh_number)
|
|
105
|
-
|
|
106
|
-
#if it's a year, or an oddly formatted number
|
|
107
|
-
return numbers.join('').to_i if zh_number[/[#{NUMBER_MULTIPLES}]/u].nil?
|
|
108
|
-
|
|
109
|
-
convert_numbers numbers
|
|
110
|
-
end
|
|
111
125
|
|
|
112
126
|
def is_number_multiplier?(number)
|
|
113
127
|
[10,100,1000,10000,100000000].include? number
|
|
114
128
|
end
|
|
115
129
|
|
|
116
|
-
#these should also be able to convert numbers to chinese numbers
|
|
117
|
-
def convert_number_to_simplified type, number
|
|
118
|
-
convert_number_to :zh_s, type.to_sym, number
|
|
119
|
-
end
|
|
120
|
-
def convert_number_to_traditional type, number
|
|
121
|
-
convert_number_to :zh_t, type.to_sym, number
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
def convert_number_to_pyn number, type = 'zh_s'
|
|
125
|
-
convert_number_to :pyn, type.to_sym, number, '-'
|
|
126
|
-
end
|
|
127
130
|
|
|
128
131
|
|
|
129
132
|
def check_wan(wan, i)
|
|
130
133
|
wan ||= 0
|
|
131
134
|
wan += 1 if (i + 1) % 5 == 0
|
|
135
|
+
|
|
136
|
+
wan
|
|
132
137
|
end
|
|
133
138
|
|
|
134
139
|
def convert_from_zh number, to
|
|
@@ -170,7 +175,7 @@ module ZhongwenTools
|
|
|
170
175
|
end
|
|
171
176
|
|
|
172
177
|
def convert_number_to(to, from, number, separator = '')
|
|
173
|
-
return number unless [:
|
|
178
|
+
return number unless [:zht, :zhs, :num, :pyn].include? to
|
|
174
179
|
|
|
175
180
|
if from == :num
|
|
176
181
|
converted_number = convert_from_num(number, to)
|
data/test/test_helper.rb
CHANGED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#encoding: utf-8
|
|
2
|
+
$:.unshift File.join(File.dirname(__FILE__),'..','lib')
|
|
3
|
+
|
|
4
|
+
require './test/test_helper'
|
|
5
|
+
require 'zhongwen_tools/integer'
|
|
6
|
+
|
|
7
|
+
class Integer
|
|
8
|
+
include ZhongwenTools::Integer
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
class TestInteger < Test::Unit::TestCase
|
|
12
|
+
def test_zh
|
|
13
|
+
assert_equal 122.to_zh, '一百二十二'
|
|
14
|
+
assert_equal 12.to_zh, '十二'
|
|
15
|
+
assert_equal 12000.to_zht, '一萬二千'
|
|
16
|
+
assert_equal 12000.to_zhs, '一万二千'
|
|
17
|
+
refute 12000.to_zh == 12000.to_zht
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
assert_equal '十二', ZhongwenTools::Integer.to_zhs(12)
|
|
21
|
+
assert_equal '一萬二千', ZhongwenTools::Integer.to_zht(12000)
|
|
22
|
+
assert_equal '一万二千', ZhongwenTools::Integer.to_zhs(12000)
|
|
23
|
+
refute ZhongwenTools::Integer.to_zhs(12000) == ZhongwenTools::Integer.to_zht(12000)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_pinyin
|
|
27
|
+
assert_equal 12.to_pyn, 'shi2-er4'
|
|
28
|
+
assert_equal 'shi2-er4', ZhongwenTools::Integer.to_pyn(12)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
data/test/test_numbers.rb
CHANGED
|
@@ -5,37 +5,35 @@ require './test/test_helper'
|
|
|
5
5
|
require 'zhongwen_tools/string'
|
|
6
6
|
require 'zhongwen_tools/numbers'
|
|
7
7
|
|
|
8
|
-
class
|
|
8
|
+
class TestNumbers < Test::Unit::TestCase
|
|
9
9
|
include ZhongwenTools::Numbers
|
|
10
10
|
def test_convert_to_numbers
|
|
11
|
-
#skip
|
|
11
|
+
#skip
|
|
12
12
|
#your function sucks dick man
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
@numbers.each do |num|
|
|
14
|
+
number = zh_number_to_number num[:zh]
|
|
15
|
+
binding.pry if num[:en] != number
|
|
16
|
+
assert_equal num[:en], number
|
|
17
|
+
end
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def test_convert_to_traditional_number
|
|
21
21
|
zhs = @numbers[0][:zh]
|
|
22
|
-
zht =
|
|
22
|
+
zht = number_to_zht :zht, zhs
|
|
23
23
|
|
|
24
24
|
assert_equal '一萬兩千七', zht
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def test_convert_to_simplified_from_number
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
zht = convert_number_to_traditional :num, num
|
|
28
|
+
num = @numbers[0][:en]
|
|
29
|
+
zhs = number_to_zhs :num, num
|
|
31
30
|
|
|
32
|
-
|
|
33
|
-
assert_equal '一萬二千七', zht
|
|
31
|
+
assert_equal '一万二千七', zhs
|
|
34
32
|
end
|
|
35
33
|
|
|
36
34
|
def test_convert_number_to_pyn
|
|
37
35
|
num = '一百三十六'
|
|
38
|
-
pyn = self.
|
|
36
|
+
pyn = self.number_to_pyn num
|
|
39
37
|
|
|
40
38
|
assert_equal 'yi1-bai2-san1-shi2-liu4', pyn
|
|
41
39
|
end
|
data/test/test_string.rb
CHANGED
|
@@ -7,14 +7,6 @@ class String
|
|
|
7
7
|
include ZhongwenTools::String
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
-
if RUBY_VERSION < '1.9'
|
|
11
|
-
class Test::Unit::TestCase
|
|
12
|
-
def refute(statement, message = '')
|
|
13
|
-
assert !statement, message
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
10
|
class TestString < Test::Unit::TestCase
|
|
19
11
|
|
|
20
12
|
def test_size
|
data/zhongwen_tools.gemspec
CHANGED
|
@@ -4,7 +4,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
|
4
4
|
Gem::Specification.new do |s|
|
|
5
5
|
s.name = "zhongwen_tools"
|
|
6
6
|
s.license = "MIT"
|
|
7
|
-
s.version = "0.0
|
|
7
|
+
s.version = "0.1.0"
|
|
8
8
|
s.authors = ["Steven Daniels"]
|
|
9
9
|
s.email = ["steven@tastymantou.com"]
|
|
10
10
|
s.homepage = "https://github.com/stevendaniels/zhongwen_tools"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: zhongwen_tools
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0
|
|
4
|
+
version: 0.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Steven Daniels
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-01-
|
|
11
|
+
date: 2014-01-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|
|
@@ -80,6 +80,7 @@ files:
|
|
|
80
80
|
- README.md
|
|
81
81
|
- Rakefile
|
|
82
82
|
- lib/zhongwen_tools.rb
|
|
83
|
+
- lib/zhongwen_tools/integer.rb
|
|
83
84
|
- lib/zhongwen_tools/numbers.rb
|
|
84
85
|
- lib/zhongwen_tools/string.rb
|
|
85
86
|
- lib/zhongwen_tools/string/fullwidth.rb
|
|
@@ -87,6 +88,7 @@ files:
|
|
|
87
88
|
- lib/zhongwen_tools/string/ruby19.rb
|
|
88
89
|
- test/test_conversion.rb
|
|
89
90
|
- test/test_helper.rb
|
|
91
|
+
- test/test_integer.rb
|
|
90
92
|
- test/test_numbers.rb
|
|
91
93
|
- test/test_romanization.rb
|
|
92
94
|
- test/test_string.rb
|
|
@@ -118,6 +120,7 @@ summary: Zhongwen Tools provide romanization conversions and helper methods for
|
|
|
118
120
|
test_files:
|
|
119
121
|
- test/test_conversion.rb
|
|
120
122
|
- test/test_helper.rb
|
|
123
|
+
- test/test_integer.rb
|
|
121
124
|
- test/test_numbers.rb
|
|
122
125
|
- test/test_romanization.rb
|
|
123
126
|
- test/test_string.rb
|