def testWhiteSpace(self): self.assertEqual(size.parseSpec("1 KiB "), Decimal(1024)) self.assertEqual(size.parseSpec(" 1 KiB"), Decimal(1024)) self.assertEqual(size.parseSpec(" 1KiB"), Decimal(1024)) self.assertEqual(size.parseSpec(" 1e+0KiB"), Decimal(1024)) with self.assertRaises(ValueError): size.parseSpec("1 KiB just a lot of stray characters") with self.assertRaises(ValueError): size.parseSpec("just 1 KiB")
def testScientificNotation(self): self.assertEqual(size.parseSpec("1e+0 KiB"), Decimal(1024)) self.assertEqual(size.parseSpec("1e-0 KiB"), Decimal(1024)) self.assertEqual(size.parseSpec("1e-1 KB"), Decimal(100)) self.assertEqual(size.parseSpec("1E-4KB"), Decimal("0.1")) self.assertEqual(Size("1E-10KB"), Size(0)) with self.assertRaises(ValueError): # this is an exponent w/out a base size.parseSpec("e+0")
def testParseSpec(self): """ Tests for parseSpec(). """ for lang in self.TEST_LANGS: os.environ['LANG'] = lang locale.setlocale(locale.LC_ALL, '') # Test parsing English spec in foreign locales self.assertEqual(size.parseSpec("1 kibibytes"), Decimal(1024)) self.assertEqual(size.parseSpec("2 kibibyte"), Decimal(2048)) self.assertEqual(size.parseSpec("2 kilobyte"), Decimal(2000)) self.assertEqual(size.parseSpec("2 kilobytes"), Decimal(2000)) self.assertEqual(size.parseSpec("2 KB"), Decimal(2000)) self.assertEqual(size.parseSpec("2 K"), Decimal(2048)) self.assertEqual(size.parseSpec("2 k"), Decimal(2048)) self.assertEqual(size.parseSpec("2 Ki"), Decimal(2048)) self.assertEqual(size.parseSpec("2 g"), Decimal(2 * 1024 ** 3)) self.assertEqual(size.parseSpec("2 G"), Decimal(2 * 1024 ** 3)) # Test parsing foreign spec self.assertEqual(size.parseSpec("1 %s%s" % (_("kibi"), _("bytes"))), Decimal(1024)) # Can't parse a valueless number with self.assertRaises(ValueError): size.parseSpec("Ki") self.assertEqual(size.parseSpec("2 %s" % _("K")), Decimal(2048)) self.assertEqual(size.parseSpec("2 %s" % _("Ki")), Decimal(2048)) self.assertEqual(size.parseSpec("2 %s" % _("g")), Decimal(2 * 1024 ** 3)) self.assertEqual(size.parseSpec("2 %s" % _("G")), Decimal(2 * 1024 ** 3))
def testLeadingZero(self): self.assertEqual(size.parseSpec("001 KiB"), Decimal(1024)) self.assertEqual(size.parseSpec("1e+01"), Decimal(10))
def testFloatingPointStr(self): self.assertEqual(size.parseSpec("1.5e+0 KiB"), Decimal(1536)) self.assertEqual(size.parseSpec("0.0"), Decimal(0)) self.assertEqual(size.parseSpec("0.9 KiB"), Decimal("921.6")) self.assertEqual(size.parseSpec("1.5 KiB"), Decimal(1536)) self.assertEqual(size.parseSpec("0.5 KiB"), Decimal(512)) self.assertEqual(size.parseSpec(".5 KiB"), Decimal(512)) self.assertEqual(size.parseSpec("1. KiB"), Decimal(1024)) self.assertEqual(size.parseSpec("-1. KiB"), Decimal(-1024)) self.assertEqual(size.parseSpec("+1. KiB"), Decimal(1024)) self.assertEqual(size.parseSpec("+1.0000000e+0 KiB"), Decimal(1024)) self.assertEqual(size.parseSpec("+.5 KiB"), Decimal(512)) with self.assertRaises(ValueError): # this is a fragment of an arithmetic expression size.parseSpec("+ 1 KiB") with self.assertRaises(ValueError): # this is a fragment of an arithmetic expression size.parseSpec("- 1 KiB") with self.assertRaises(ValueError): # this is a lonely . size.parseSpec(". KiB") with self.assertRaises(ValueError): # this has a fragmentary exponent size.parseSpec("1.0e+ KiB") with self.assertRaises(ValueError): # this is a version string, not a number size.parseSpec("1.0.0")
def testScientificNotation(self): self.assertEqual(size.parseSpec("1e+0 KiB"), Decimal(1024)) self.assertEqual(size.parseSpec("1e-0 KiB"), Decimal(1024)) self.assertEqual(size.parseSpec("1e-1 KB"), Decimal(100)) self.assertEqual(size.parseSpec("1E-4KB"), Decimal("0.1")) self.assertEqual(Size("1E-10KB"), Size(0))