@@ -121,6 +121,39 @@ def test_group_separator(self):
121121 assert numbers .format_currency (101299.98 , 'EUR' , locale = 'en_US' , group_separator = True , format_type = 'name' ) == u'101,299.98 euros'
122122 assert numbers .format_percent (251234.1234 , locale = 'sv_SE' , group_separator = True ) == u'25\xa0 123\xa0 412\xa0 %'
123123
124+ def test_compact (self ):
125+ assert numbers .format_compact_decimal (1 , locale = 'en_US' , format_type = "short" ) == u'1'
126+ assert numbers .format_compact_decimal (999 , locale = 'en_US' , format_type = "short" ) == u'999'
127+ assert numbers .format_compact_decimal (1000 , locale = 'en_US' , format_type = "short" ) == u'1K'
128+ assert numbers .format_compact_decimal (9000 , locale = 'en_US' , format_type = "short" ) == u'9K'
129+ assert numbers .format_compact_decimal (9123 , locale = 'en_US' , format_type = "short" , fraction_digits = 2 ) == u'9.12K'
130+ assert numbers .format_compact_decimal (10000 , locale = 'en_US' , format_type = "short" ) == u'10K'
131+ assert numbers .format_compact_decimal (10000 , locale = 'en_US' , format_type = "short" , fraction_digits = 2 ) == u'10K'
132+ assert numbers .format_compact_decimal (1000000 , locale = 'en_US' , format_type = "short" ) == u'1M'
133+ assert numbers .format_compact_decimal (9000999 , locale = 'en_US' , format_type = "short" ) == u'9M'
134+ assert numbers .format_compact_decimal (9000900099 , locale = 'en_US' , format_type = "short" , fraction_digits = 5 ) == u'9.0009B'
135+ assert numbers .format_compact_decimal (1 , locale = 'en_US' , format_type = "long" ) == u'1'
136+ assert numbers .format_compact_decimal (999 , locale = 'en_US' , format_type = "long" ) == u'999'
137+ assert numbers .format_compact_decimal (1000 , locale = 'en_US' , format_type = "long" ) == u'1 thousand'
138+ assert numbers .format_compact_decimal (9000 , locale = 'en_US' , format_type = "long" ) == u'9 thousand'
139+ assert numbers .format_compact_decimal (9000 , locale = 'en_US' , format_type = "long" , fraction_digits = 2 ) == u'9 thousand'
140+ assert numbers .format_compact_decimal (10000 , locale = 'en_US' , format_type = "long" ) == u'10 thousand'
141+ assert numbers .format_compact_decimal (10000 , locale = 'en_US' , format_type = "long" , fraction_digits = 2 ) == u'10 thousand'
142+ assert numbers .format_compact_decimal (1000000 , locale = 'en_US' , format_type = "long" ) == u'1 million'
143+ assert numbers .format_compact_decimal (9999999 , locale = 'en_US' , format_type = "long" ) == u'10 million'
144+ assert numbers .format_compact_decimal (9999999999 , locale = 'en_US' , format_type = "long" , fraction_digits = 5 ) == u'10 billion'
145+ assert numbers .format_compact_decimal (1 , locale = 'ja_JP' , format_type = "short" ) == u'1'
146+ assert numbers .format_compact_decimal (999 , locale = 'ja_JP' , format_type = "short" ) == u'999'
147+ assert numbers .format_compact_decimal (1000 , locale = 'ja_JP' , format_type = "short" ) == u'1000'
148+ assert numbers .format_compact_decimal (9123 , locale = 'ja_JP' , format_type = "short" ) == u'9123'
149+ assert numbers .format_compact_decimal (10000 , locale = 'ja_JP' , format_type = "short" ) == u'1万'
150+ assert numbers .format_compact_decimal (1234567 , locale = 'ja_JP' , format_type = "long" ) == u'123万'
151+ assert numbers .format_compact_decimal (- 1 , locale = 'en_US' , format_type = "short" ) == u'-1'
152+ assert numbers .format_compact_decimal (- 1234 , locale = 'en_US' , format_type = "short" , fraction_digits = 2 ) == u'-1.23K'
153+ assert numbers .format_compact_decimal (- 123456789 , format_type = 'short' , locale = 'en_US' ) == u'-123M'
154+ assert numbers .format_compact_decimal (- 123456789 , format_type = 'long' , locale = 'en_US' ) == u'-123 million'
155+ assert numbers .format_compact_decimal (2345678 , locale = 'mk' , format_type = 'long' ) == u'2 милиони'
156+ assert numbers .format_compact_decimal (21098765 , locale = 'mk' , format_type = 'long' ) == u'21 милион'
124157
125158class NumberParsingTestCase (unittest .TestCase ):
126159
0 commit comments