convertToIntegerModifier function
See rules stated in localizePlural's documentation.
Implementation
@visibleForTesting
int convertToIntegerModifier(Object? modifierObj) {
//
if (modifierObj is! int && modifierObj is! double) {
String modifierStr = modifierObj.toString();
modifierStr = modifierStr.replaceAll(RegExp(r'[^0-9\.]'), ' ');
modifierObj = int.tryParse(modifierStr);
modifierObj ??= double.tryParse(modifierStr) ?? 0.0;
}
if (modifierObj is double) {
modifierObj = modifierObj.abs();
if (modifierObj == 1.0)
return 1;
else if (modifierObj < 1.0)
return 0;
else
return modifierObj.ceil();
}
//
else if (modifierObj is int)
return modifierObj.abs();
//
else
throw AssertionError(modifierObj);
}