format method
Formats the specified unit.
Implementation
String format(Unit unit) {
var name = nameFor(unit);
if (name != null) return name;
if (unit is ProductUnit) {
var posExponents = unit.elements
.where((e) => e.pow.dividend >= 0)
.map(
(e) => _formatPow(nameFor(e.base), e.pow.dividend, e.pow.divisor))
.join('·');
var negExponents = unit.elements.where((e) => e.pow.dividend < 0).map(
(e) => _formatPow(nameFor(e.base), -e.pow.dividend, e.pow.divisor));
if (negExponents.isEmpty) return posExponents;
if (posExponents.isEmpty) posExponents = '1';
if (negExponents.length == 1) {
return '$posExponents/${negExponents.join('·')}';
}
return '$posExponents/(${negExponents.join('·')})';
}
throw ArgumentError('Cannot format given Object as a Unit');
}