def testParsePadding3And4WithSuffixPattern(self): self.assertEqual(parseNumberPattern('###0* /* '), ((None, '', None, '###0', '', '', ' ', '/', ' ', 0), (None, '', None, '###0', '', '', ' ', '/', ' ', 0))) self.assertEqual(parseNumberPattern('###0* /* ;###0*_/*_'), ((None, '', None, '###0', '', '', ' ', '/', ' ', 0), (None, '', None, '###0', '', '', '_', '/', '_', 0)))
def testParseScientificIntegerPattern(self): self.assertEqual( parseNumberPattern('###0E#0'), ((None, '', None, '###0', '', '#0', None, '', None, 0), (None, '', None, '###0', '', '#0', None, '', None, 0))) self.assertEqual( parseNumberPattern('###0E+#0'), ((None, '', None, '###0', '', '+#0', None, '', None, 0), (None, '', None, '###0', '', '+#0', None, '', None, 0)))
def testParseMultipleCharacterPrefix(self): self.assertEqual( parseNumberPattern('DM###0'), ((None, 'DM', None, '###0', '', '', None, '', None, 0), (None, 'DM', None, '###0', '', '', None, '', None, 0))) self.assertEqual( parseNumberPattern('DM* ###0'), ((None, 'DM', ' ', '###0', '', '', None, '', None, 0), (None, 'DM', ' ', '###0', '', '', None, '', None, 0)))
def testParsePadding1Padding2WithPrefixPattern(self): self.assertEqual(parseNumberPattern('* +* ###0'), ((' ', '+', ' ', '###0', '', '', None, '', None, 0), (' ', '+', ' ', '###0', '', '', None, '', None, 0))) self.assertEqual( parseNumberPattern('* +* ###0.0##'), ((' ', '+', ' ', '###0', '0##', '', None, '', None, 0), (' ', '+', ' ', '###0', '0##', '', None, '', None, 0))) self.assertEqual( parseNumberPattern('* +* ###0.0##;*_-*_###0.0##'), ((' ', '+', ' ', '###0', '0##', '', None, '', None, 0), ('_', '-', '_', '###0', '0##', '', None, '', None, 0)))
def testParsePadding3WithoutSufffixPattern(self): self.assertEqual(parseNumberPattern('###0* '), ((None, '', None, '###0', '', '', ' ', '', None, 0), (None, '', None, '###0', '', '', ' ', '', None, 0))) self.assertEqual( parseNumberPattern('###0.0##* '), ((None, '', None, '###0', '0##', '', ' ', '', None, 0), (None, '', None, '###0', '0##', '', ' ', '', None, 0))) self.assertEqual( parseNumberPattern('###0.0##* ;###0.0##*_'), ((None, '', None, '###0', '0##', '', ' ', '', None, 0), (None, '', None, '###0', '0##', '', '_', '', None, 0)))
def testParsePadding3WithSufffixPattern(self): self.assertEqual(parseNumberPattern('###0* /'), ((None, '', None, '###0', '', '', ' ', '/', None, 0), (None, '', None, '###0', '', '', ' ', '/', None, 0))) self.assertEqual( parseNumberPattern('###0.0#* /'), ((None, '', None, '###0', '0#', '', ' ', '/', None, 0), (None, '', None, '###0', '0#', '', ' ', '/', None, 0))) self.assertEqual( parseNumberPattern('###0.0#* /;###0.0#*_/'), ((None, '', None, '###0', '0#', '', ' ', '/', None, 0), (None, '', None, '###0', '0#', '', '_', '/', None, 0)))
def testParsePadding3InScientificPattern(self): self.assertEqual( parseNumberPattern('###0E#0* '), ((None, '', None, '###0', '', '#0', ' ', '', None, 0), (None, '', None, '###0', '', '#0', ' ', '', None, 0))) self.assertEqual( parseNumberPattern('###0.0##E0* '), ((None, '', None, '###0', '0##', '0', ' ', '', None, 0), (None, '', None, '###0', '0##', '0', ' ', '', None, 0))) self.assertEqual( parseNumberPattern('###0.0##E#0* ;###0.0##E0*_'), ((None, '', None, '###0', '0##', '#0', ' ', '', None, 0), (None, '', None, '###0', '0##', '0', '_', '', None, 0)))
def testParseStringEscapedSuffix(self): self.assertEqual( parseNumberPattern("###0'DEM'"), ((None, '', None, '###0', '', '', None, 'DEM', None, 0), (None, '', None, '###0', '', '', None, 'DEM', None, 0))) self.assertEqual( parseNumberPattern("###0D'EM'"), ((None, '', None, '###0', '', '', None, 'DEM', None, 0), (None, '', None, '###0', '', '', None, 'DEM', None, 0))) self.assertEqual( parseNumberPattern("###0D'E'M"), ((None, '', None, '###0', '', '', None, 'DEM', None, 0), (None, '', None, '###0', '', '', None, 'DEM', None, 0)))
def testParseStringEscapedPrefix(self): self.assertEqual( parseNumberPattern("'DEM'###0"), ((None, 'DEM', None, '###0', '', '', None, '', None, 0), (None, 'DEM', None, '###0', '', '', None, '', None, 0))) self.assertEqual( parseNumberPattern("D'EM'###0"), ((None, 'DEM', None, '###0', '', '', None, '', None, 0), (None, 'DEM', None, '###0', '', '', None, '', None, 0))) self.assertEqual( parseNumberPattern("D'E'M###0"), ((None, 'DEM', None, '###0', '', '', None, '', None, 0), (None, 'DEM', None, '###0', '', '', None, '', None, 0)))
def runTest(self): # Loading Locale object locale = LocaleFactory(self.__path)() # Making sure all number format patterns parse for category in (u'decimal', u'scientific', u'percent', u'currency'): for length in getattr(locale.numbers, category + 'Formats').values(): for format in length.formats.values(): self.assert_( parseNumberPattern(format.pattern) is not None) # Making sure all datetime patterns parse for calendar in locale.dates.calendars.values(): for category in ('date', 'time', 'dateTime'): for length in getattr(calendar, category + 'Formats').values(): for format in length.formats.values(): self.assert_( parseDateTimePattern(format.pattern) is not None)
def testParseScientificPosNegFractionPattern(self): self.assertEqual( parseNumberPattern('+###0.0##E#0;-###0.0##E0'), ((None, '+', None, '###0', '0##', '#0', None, '', None, 0), (None, '-', None, '###0', '0##', '0', None, '', None, 0)))
def testParsePrefixedIntegerPattern(self): self.assertEqual( parseNumberPattern('+###0'), ((None, '+', None, '###0', '', '', None, '', None, 0), (None, '+', None, '###0', '', '', None, '', None, 0)))
def testParsePosNegAlternativeIntegerPattern(self): self.assertEqual(parseNumberPattern('###0;#0'), ((None, '', None, '###0', '', '', None, '', None, 0), (None, '', None, '#0', '', '', None, '', None, 0)))
def testParseScientificPosNegIntegerPattern(self): self.assertEqual( parseNumberPattern('+###0E0;-###0E#0'), ((None, '+', None, '###0', '', '0', None, '', None, 0), (None, '-', None, '###0', '', '#0', None, '', None, 0)))
def testParseThousandSeparatorIntegerPattern(self): self.assertEqual(parseNumberPattern('#,##0'), ((None, '', None, '###0', '', '', None, '', None, 1), (None, '', None, '###0', '', '', None, '', None, 1)))
def testParseSimpleDecimalPattern(self): self.assertEqual( parseNumberPattern('###0.00#'), ((None, '', None, '###0', '00#', '', None, '', None, 0), (None, '', None, '###0', '00#', '', None, '', None, 0)))
def testParseScientificDecimalPattern(self): self.assertEqual( parseNumberPattern('###0.00#E#0'), ((None, '', None, '###0', '00#', '#0', None, '', None, 0), (None, '', None, '###0', '00#', '#0', None, '', None, 0)))
def testParsePosNegAlternativeFractionPattern(self): self.assertEqual( parseNumberPattern('###0.00#;#0.0#'), ((None, '', None, '###0', '00#', '', None, '', None, 0), (None, '', None, '#0', '0#', '', None, '', None, 0)))
def testParseThousandSeparatorFractionPattern(self): self.assertEqual( parseNumberPattern('#,##0.0#'), ((None, '', None, '###0', '0#', '', None, '', None, 1), (None, '', None, '###0', '0#', '', None, '', None, 1)))
def testParseSimpleIntegerPattern(self): self.assertEqual(parseNumberPattern('###0'), ((None, '', None, '###0', '', '', None, '', None, 0), (None, '', None, '###0', '', '', None, '', None, 0)))