def test_make_friendly_plural_forms(self): single_form = make_friendly_plural_forms('0', 1) self.assertEqual(single_form, [{'examples': [0, 1, 2, 3, 4, 5], 'form': 0}]) two_forms = make_friendly_plural_forms('n!=1', 2) self.assertEqual(two_forms, [{'examples': [1], 'form': 0}, {'examples': [0, 2, 3, 4, 5, 6], 'form': 1}])
def test_make_friendly_plural_form_zero_handling(self): zero_forms = make_friendly_plural_forms('n!=0', 2) self.assertEqual(zero_forms, [{'examples': [0], 'form': 0}, {'examples': [1, 2, 3, 4, 5, 6], 'form': 1}]) # Since 'n' can be zero as well, dividing by it won't work. self.assertRaises(BadPluralExpression, make_friendly_plural_forms, '(1/n)', 1)
def friendly_plural_forms(self): """Formats the plural forms' example list. It takes the list of examples for each plural form and transforms in a comma separated list to be displayed. """ pluralforms_list = make_friendly_plural_forms( self.context.pluralexpression, self.context.pluralforms) for item in pluralforms_list: examples = ", ".join(map(str, item['examples'])) if len(item['examples']) != 1: examples += "..." else: examples += "." item['examples'] = examples return pluralforms_list
def friendly_plural_forms(self): """Formats the plural forms' example list. It takes the list of examples for each plural form and transforms in a comma separated list to be displayed. """ pluralforms_list = make_friendly_plural_forms( self.context.pluralexpression, self.context.pluralforms) for item in pluralforms_list: examples = ", ".join(map(str, item['examples'])) if len(item['examples']) != 1: examples += "..." else: examples += "." item['examples'] = examples return pluralforms_list
def _validatePluralData(self, pluralforms, pluralexpression): """Validate plural expression and number of plural forms.""" try: make_friendly_plural_forms(pluralexpression, pluralforms) except BadPluralExpression as e: self.setFieldError('pluralexpression', str(e))
def _validatePluralData(self, pluralforms, pluralexpression): """Validate plural expression and number of plural forms.""" try: make_friendly_plural_forms(pluralexpression, pluralforms) except BadPluralExpression as e: self.setFieldError('pluralexpression', str(e))