def inasafe_place_value_coefficient(number, feature, parent): """Given a number, it will return the coefficient of the place value name. For instance: * inasafe_place_value_coefficient(10) -> 1 * inasafe_place_value_coefficient(1700) -> 1.7 It needs to be used with inasafe_number_denomination_unit. """ _ = feature, parent # NOQA if number >= 0: rounded_number = round_affected_number( number, use_rounding=True, use_population_rounding=True ) min_number = 1000 value, unit = denomination(rounded_number, min_number) if number < min_number: rounded_number = int(round(value, 1)) else: rounded_number = round(value, 1) return str(rounded_number) else: return None
def inasafe_place_value_name(number, feature, parent): """Given a number, it will return the place value name. For instance: * inasafe_place_value_name(10) -> Ten \n * inasafe_place_value_name(1700) -> Thousand It needs to be used with inasafe_place_value_coefficient. """ _ = feature, parent # NOQA if number is None: return None rounded_number = round_affected_number(number, use_rounding=True, use_population_rounding=True) value, unit = denomination(rounded_number, 1000) if not unit: return None else: return unit['name']
def inasafe_place_value_name(number, feature, parent): """Given a number, it will return the place value name. For instance: * inasafe_place_value_name(10) -> Ten \n * inasafe_place_value_name(1700) -> Thousand It needs to be used with inasafe_place_value_coefficient. """ _ = feature, parent # NOQA if number is None: return None rounded_number = round_affected_number( number, use_rounding=True, use_population_rounding=True ) value, unit = denomination(rounded_number, 1000) if not unit: return None else: return unit['name']
def test_denomination(self): """Test name number.""" result = denomination(None) for item in result: self.assertIsNone(item) result = denomination(-11) self.assertEqual(-1.1, result[0]) self.assertEqual('unit_tens', result[1]['key']) result = denomination(-1) self.assertEqual(-1, result[0]) self.assertEqual('unit_ones', result[1]['key']) result = denomination(1) self.assertEqual(1, result[0]) self.assertEqual('unit_ones', result[1]['key']) result = denomination(11) self.assertEqual(1.1, result[0]) self.assertEqual('unit_tens', result[1]['key']) result = denomination(99) self.assertEqual(9.9, result[0]) self.assertEqual('unit_tens', result[1]['key']) result = denomination(100) self.assertEqual(1, result[0]) self.assertEqual('unit_hundreds', result[1]['key']) result = denomination(101) self.assertEqual(1.01, result[0]) self.assertEqual('unit_hundreds', result[1]['key']) result = denomination(1001) self.assertEqual(1.001, result[0]) self.assertEqual('unit_thousand', result[1]['key']) result = denomination(10000) self.assertEqual(10, result[0]) self.assertEqual('unit_thousand', result[1]['key']) result = denomination(101000) self.assertEqual(101, result[0]) self.assertEqual('unit_thousand', result[1]['key']) result = denomination(100000000000000) self.assertEqual(100.0, result[0]) self.assertEqual('unit_trillion', result[1]['key']) # test denomination with minimal value parameter result = denomination(1, 1000) self.assertEqual(1, result[0]) self.assertIsNone(result[1]) result = denomination(100, 1000) self.assertEqual(100, result[0]) self.assertIsNone(result[1]) result = denomination(1000, 1000) self.assertEqual(1, result[0]) self.assertEqual('unit_thousand', result[1]['key'])