def test_missing_fractional(self): value, endptr = read_float("1.", 0) self.assertEqual(value, "1.") self.assertEqual(endptr, 2) value, endptr = read_float("2. 3", 0) self.assertEqual(value, "2.") self.assertEqual(endptr, 2)
def test_missing_decimal(self): value, endptr = read_float(".92", 0) self.assertEqual(value, ".92") self.assertEqual(endptr, 3) value, endptr = read_float("-.92", 0) self.assertEqual(value, "-.92") self.assertEqual(endptr, 4) value, endptr = read_float(".92e+3", 0) self.assertEqual(value, ".92e+3") self.assertEqual(endptr, 6) value, endptr = read_float("-.92e+3", 0) self.assertEqual(value, "-.92e+3") self.assertEqual(endptr, 7) # TODO(sergey): Make these catch more concrete. with self.assertRaises(Exception): read_float(".", 0) with self.assertRaises(Exception): read_float(".e+1", 0)
def test_single_value(self): value, endptr = read_float("1.2", 0) self.assertEqual(value, "1.2") self.assertEqual(endptr, 3)
def test_empty_spaces(self): value, endptr = read_float(" ", 0) self.assertEqual(value, "0") self.assertEqual(endptr, 4)
def test_not_a_number(self): # TODO(sergey): Make this more concrete. with self.assertRaises(Exception): read_float("1.2eV", 3)
def test_comma(self): value, endptr = read_float("1.2 ,,3.4 5.6", 3) self.assertEqual(value, "3.4") self.assertEqual(endptr, 10)
def test_middle(self): value, endptr = read_float("1.2 3.4 5.6", 3) self.assertEqual(value, "3.4") self.assertEqual(endptr, 8)
def test_scientific_value_no_sign(self): value, endptr = read_float("1.2e3", 0) self.assertEqual(value, "1.2e3") self.assertEqual(endptr, 5)
def test_scientific_value(self): value, endptr = read_float("1.2e+3", 0) self.assertEqual(value, "1.2e+3") self.assertEqual(endptr, 6)