def _get_formatted_total(groups): calculated_total = 0 answer_format = {'type': None} for group in groups: for block in group['blocks']: for question in block['questions']: for answer in question['answers']: if not answer_format['type']: answer_format = { 'type': answer['type'], 'unit': answer.get('unit'), 'unit_length': answer.get('unit_length'), 'currency': answer.get('currency'), } answer_value = answer.get('value') or 0 calculated_total += answer_value if answer_format['type'] == 'currency': return get_formatted_currency(calculated_total, answer_format['currency']) if answer_format['type'] == 'unit': return format_unit(answer_format['unit'], calculated_total, answer_format['unit_length']) if answer_format['type'] == 'percentage': return format_percentage(calculated_total) return format_number(calculated_total)
def _get_formatted_total(block, answer_store, group_instance, schema): calculated_total = 0 for answer in block['calculation']['answers_to_calculate']: if group_instance > 0 and not schema.answer_is_in_repeating_group( answer): group_instance = 0 calculated_total += get_answer_store_value(answer, answer_store, group_instance) or 0 answer_json = schema.get_answer( block['calculation']['answers_to_calculate'][0]) number_type = answer_json['type'] if number_type == 'Currency': formatted_total = format_currency(calculated_total, answer_json['currency']) elif number_type == 'Unit': formatted_total = format_unit(answer_json['unit'], calculated_total) elif number_type == 'Percentage': formatted_total = format_percentage(calculated_total) else: formatted_total = format_number(calculated_total) return formatted_total
def _get_formatted_total(self, groups, current_location): calculated_total = 0 answer_format = {"type": None} for group in groups: for block in group["blocks"]: question = choose_question_to_display( block, self._schema, self._metadata, self._response_metadata, self._answer_store, self._list_store, current_location=current_location, ) for answer in question["answers"]: if not answer_format["type"]: answer_format = { "type": answer["type"], "unit": answer.get("unit"), "unit_length": answer.get("unit_length"), "currency": answer.get("currency"), } answer_value = answer.get("value") or 0 calculated_total += answer_value if answer_format["type"] == "currency": return get_formatted_currency(calculated_total, answer_format["currency"]) if answer_format["type"] == "unit": return format_unit(answer_format["unit"], calculated_total, answer_format["unit_length"]) if answer_format["type"] == "percentage": return format_percentage(calculated_total) return format_number(calculated_total)
def test_format_unit_welsh(self): self.assertEqual(format_unit("duration-hour", 100), "100 awr") self.assertEqual(format_unit("duration-year", 100), "100 bl") self.assertEqual(format_unit("duration-hour", 100, "long"), "100 awr") self.assertEqual(format_unit("duration-year", 100, "long"), "100 mlynedd")
def test_format_unit(self): self.assertEqual(format_unit("length-meter", 100), "100 m") self.assertEqual(format_unit("length-centimeter", 100), "100 cm") self.assertEqual(format_unit("length-mile", 100), "100 mi") self.assertEqual(format_unit("length-kilometer", 100), "100 km") self.assertEqual(format_unit("area-square-meter", 100), "100 m²") self.assertEqual(format_unit("area-square-centimeter", 100), "100 cm²") self.assertEqual(format_unit("area-square-kilometer", 100), "100 km²") self.assertEqual(format_unit("area-square-mile", 100), "100 sq mi") self.assertEqual(format_unit("area-hectare", 100), "100 ha") self.assertEqual(format_unit("area-acre", 100), "100 ac") self.assertEqual(format_unit("volume-cubic-meter", 100), "100 m³") self.assertEqual(format_unit("volume-cubic-centimeter", 100), "100 cm³") self.assertEqual(format_unit("volume-liter", 100), "100 l") self.assertEqual(format_unit("volume-hectoliter", 100), "100 hl") self.assertEqual(format_unit("volume-megaliter", 100), "100 Ml") self.assertEqual(format_unit("duration-hour", 100), "100 hrs") self.assertEqual(format_unit("duration-hour", 100, "long"), "100 hours") self.assertEqual(format_unit("duration-year", 100, "long"), "100 years")
def test_format_unit_welsh(self): self.assertEqual(format_unit('duration-hour', 100), '100 awr') self.assertEqual(format_unit('duration-year', 100), '100 bl') self.assertEqual(format_unit('duration-hour', 100, 'long'), '100 awr') self.assertEqual(format_unit('duration-year', 100, 'long'), '100 mlynedd')
def test_format_unit(self): self.assertEqual(format_unit('length-meter', 100), '100 m') self.assertEqual(format_unit('length-centimeter', 100), '100 cm') self.assertEqual(format_unit('length-mile', 100), '100 mi') self.assertEqual(format_unit('length-kilometer', 100), '100 km') self.assertEqual(format_unit('area-square-meter', 100), '100 m²') self.assertEqual(format_unit('area-square-centimeter', 100), '100 cm²') self.assertEqual(format_unit('area-square-kilometer', 100), '100 km²') self.assertEqual(format_unit('area-square-mile', 100), '100 sq mi') self.assertEqual(format_unit('area-hectare', 100), '100 ha') self.assertEqual(format_unit('area-acre', 100), '100 ac') self.assertEqual(format_unit('volume-cubic-meter', 100), '100 m³') self.assertEqual(format_unit('volume-cubic-centimeter', 100), '100 cm³') self.assertEqual(format_unit('volume-liter', 100), '100 l') self.assertEqual(format_unit('volume-hectoliter', 100), '100 hl') self.assertEqual(format_unit('volume-megaliter', 100), '100 Ml') self.assertEqual(format_unit('duration-hour', 100), '100 hrs') self.assertEqual(format_unit('duration-hour', 100, 'long'), '100 hours') self.assertEqual(format_unit('duration-year', 100, 'long'), '100 years')