tdd-katas/lib/roman_numerals.dart

17 lines
395 B
Dart

String integerToRoman(int number) {
const romanSymbols = {6: 'VI', 5: 'V', 1: 'I'};
if (_isSubtractiveCase(number)) {
return romanSymbols[1]! + romanSymbols[5]!;
}
if (_canRepeatSymbol(number)) {
return romanSymbols[1]! * number;
}
return romanSymbols[number] ?? '';
}
bool _isSubtractiveCase(int number) => number == 4;
bool _canRepeatSymbol(int number) => number < 4;