Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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']
Ejemplo n.º 3
0
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']
Ejemplo n.º 4
0
    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'])
Ejemplo n.º 5
0
    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'])