summaryrefslogtreecommitdiff
path: root/tests/test_numbers.py
diff options
context:
space:
mode:
authorJennifer Wang <jtwang@yelp.com>2016-06-02 12:30:46 -0700
committerJennifer Wang <jtwang@yelp.com>2016-06-03 12:45:20 -0700
commit0d1c77498307af875c2e015c7b73d00b52d83831 (patch)
treee8397cb98208bdb4c85a8c14d0bbf46fb36409dc /tests/test_numbers.py
parent5643e5c71fe17ffeda883d62c2cac2676b7610ec (diff)
downloadbabel-0d1c77498307af875c2e015c7b73d00b52d83831.tar.gz
parse_pattern now passes original pattern string to NumberPattern
Diffstat (limited to 'tests/test_numbers.py')
-rw-r--r--tests/test_numbers.py46
1 files changed, 44 insertions, 2 deletions
diff --git a/tests/test_numbers.py b/tests/test_numbers.py
index 19f9bc7..24b274c 100644
--- a/tests/test_numbers.py
+++ b/tests/test_numbers.py
@@ -317,5 +317,47 @@ def test_parse_grouping():
def test_parse_pattern():
- assert numbers.parse_pattern(u'¤#,##0.00;(¤#,##0.00)').suffix == (u'', u')')
- assert numbers.parse_pattern(u'¤ #,##0.00;¤ #,##0.00-').suffix == (u'', u'-')
+
+ # Original pattern is preserved
+ np = numbers.parse_pattern(u'¤#,##0.00')
+ assert np.pattern == u'¤#,##0.00'
+
+ np = numbers.parse_pattern(u'¤#,##0.00;(¤#,##0.00)')
+ assert np.pattern == u'¤#,##0.00;(¤#,##0.00)'
+
+ # Given a NumberPattern object, we don't return a new instance.
+ # However, we don't cache NumberPattern objects, so calling
+ # parse_pattern with the same format string will create new
+ # instances
+ np1 = numbers.parse_pattern(u'¤ #,##0.00')
+ np2 = numbers.parse_pattern(u'¤ #,##0.00')
+ assert np1 is not np2
+ assert np1 is numbers.parse_pattern(np1)
+
+
+def test_parse_pattern_negative():
+
+ # No negative format specified
+ np = numbers.parse_pattern(u'¤#,##0.00')
+ assert np.prefix == (u'¤', u'-¤')
+ assert np.suffix == (u'', u'')
+
+ # Negative format is specified
+ np = numbers.parse_pattern(u'¤#,##0.00;(¤#,##0.00)')
+ assert np.prefix == (u'¤', u'(¤')
+ assert np.suffix == (u'', u')')
+
+ # Negative sign is a suffix
+ np = numbers.parse_pattern(u'¤ #,##0.00;¤ #,##0.00-')
+ assert np.prefix == (u'¤ ', u'¤ ')
+ assert np.suffix == (u'', u'-')
+
+
+def test_numberpattern_repr():
+ """repr() outputs the pattern string"""
+
+ # This implementation looks a bit funny, but that's cause strings are
+ # repr'd differently in Python 2 vs 3 and this test runs under both.
+ format = u'¤#,##0.00;(¤#,##0.00)'
+ np = numbers.parse_pattern(format)
+ assert repr(format) in repr(np)