blob: 2df89adf086aaa3fcf8d4128604af4ddf3b8aa36 [file] [log] [blame]
// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
class CompactRoundingTestCase {
CompactRoundingTestCase(this.number, this.expected,
{this.maximumIntegerDigits,
this.minimumIntegerDigits,
this.maximumFractionDigits,
this.minimumFractionDigits,
this.minimumExponentDigits,
int? significantDigits,
this.maximumSignificantDigits,
this.minimumSignificantDigits}) {
if (significantDigits != null) {
if (maximumSignificantDigits != null ||
minimumSignificantDigits != null) {
throw ArgumentError("Cannot specify both significantDigits and "
"maximumSignificantDigits/minimumSignificantDigits");
}
maximumSignificantDigits = significantDigits;
minimumSignificantDigits = significantDigits;
}
}
num number;
String expected;
int? maximumIntegerDigits;
int? minimumIntegerDigits;
int? maximumFractionDigits;
int? minimumFractionDigits;
int? minimumExponentDigits;
int? maximumSignificantDigits;
int? minimumSignificantDigits;
@override
String toString() => "CompactRoundingTestCase for $number, "
"maxIntDig: $maximumIntegerDigits, "
"minIntDig: $minimumIntegerDigits, "
"maxFracDig: $maximumFractionDigits, "
"minFracDig: $minimumFractionDigits, "
"minExpDig: $minimumExponentDigits, "
"maxSigDig: $maximumSignificantDigits, "
"minSigDig: $minimumSignificantDigits.";
}
var cldr35CompactNumTests = <CompactRoundingTestCase>[
//
CompactRoundingTestCase(1750000, "1.8M"),
CompactRoundingTestCase(1750000, "1.8M", maximumIntegerDigits: 1),
CompactRoundingTestCase(1750000, "1.8M", minimumIntegerDigits: 1),
CompactRoundingTestCase(1750000, "1.8M", maximumIntegerDigits: 4),
CompactRoundingTestCase(1750000, "0001.8M", minimumIntegerDigits: 4),
CompactRoundingTestCase(1750000, "2M", maximumFractionDigits: 0),
CompactRoundingTestCase(1750000, "1.75M", minimumFractionDigits: 0),
CompactRoundingTestCase(1750000, "1.75M", maximumFractionDigits: 4),
CompactRoundingTestCase(1750000, "1.7500M", minimumFractionDigits: 4),
CompactRoundingTestCase(1750000, "1.8M", minimumExponentDigits: 3),
CompactRoundingTestCase(1750000, "2M", significantDigits: 1),
CompactRoundingTestCase(1750000, "1.8M", significantDigits: 2),
CompactRoundingTestCase(1750000, "1.75M", significantDigits: 3),
CompactRoundingTestCase(1750000, "1.750M", significantDigits: 4),
CompactRoundingTestCase(175000, "175K"),
CompactRoundingTestCase(175000, "175K", maximumIntegerDigits: 1),
CompactRoundingTestCase(175000, "175K", minimumIntegerDigits: 1),
CompactRoundingTestCase(175000, "175K", maximumIntegerDigits: 4),
CompactRoundingTestCase(175000, "0175K", minimumIntegerDigits: 4),
CompactRoundingTestCase(175000, "175K", maximumFractionDigits: 0),
CompactRoundingTestCase(175000, "175K", minimumFractionDigits: 0),
CompactRoundingTestCase(175000, "175K", maximumFractionDigits: 4),
CompactRoundingTestCase(175000, "175.0000K", minimumFractionDigits: 4),
CompactRoundingTestCase(175000, "175K", minimumExponentDigits: 3),
CompactRoundingTestCase(175000, "200K", significantDigits: 1),
CompactRoundingTestCase(175000, "180K", significantDigits: 2),
CompactRoundingTestCase(175000, "175K", significantDigits: 3),
CompactRoundingTestCase(175000, "175.0K", significantDigits: 4),
CompactRoundingTestCase(1750, "01.750K",
minimumIntegerDigits: 2, minimumFractionDigits: 3),
CompactRoundingTestCase(1750, "01.8K",
minimumIntegerDigits: 2, maximumFractionDigits: 1),
CompactRoundingTestCase(175, "175"),
CompactRoundingTestCase(175, "175", maximumIntegerDigits: 1),
CompactRoundingTestCase(175, "175", minimumIntegerDigits: 1),
CompactRoundingTestCase(175, "175", maximumIntegerDigits: 4),
CompactRoundingTestCase(175, "0175", minimumIntegerDigits: 4),
CompactRoundingTestCase(175, "175", maximumFractionDigits: 0),
CompactRoundingTestCase(175, "175", minimumFractionDigits: 0),
CompactRoundingTestCase(175, "175", maximumFractionDigits: 4),
CompactRoundingTestCase(175, "175.0000", minimumFractionDigits: 4),
CompactRoundingTestCase(175, "175", minimumExponentDigits: 3),
CompactRoundingTestCase(175, "200", significantDigits: 1),
CompactRoundingTestCase(175, "180", significantDigits: 2),
CompactRoundingTestCase(175, "175", significantDigits: 3),
CompactRoundingTestCase(175, "175.0", significantDigits: 4),
CompactRoundingTestCase(1.756, "1.8"),
CompactRoundingTestCase(1.756, "1.8", maximumIntegerDigits: 1),
CompactRoundingTestCase(1.756, "1.8", minimumIntegerDigits: 1),
CompactRoundingTestCase(1.756, "1.8", maximumIntegerDigits: 4),
CompactRoundingTestCase(1.756, "0001.8", minimumIntegerDigits: 4),
CompactRoundingTestCase(1.756, "2", maximumFractionDigits: 0),
CompactRoundingTestCase(1.756, "1.756", minimumFractionDigits: 0),
CompactRoundingTestCase(1.756, "1.756", maximumFractionDigits: 4),
CompactRoundingTestCase(1.756, "1.7560", minimumFractionDigits: 4),
CompactRoundingTestCase(1.756, "1.8", minimumExponentDigits: 3),
CompactRoundingTestCase(1.756, "2", significantDigits: 1),
CompactRoundingTestCase(1.756, "1.8", significantDigits: 2),
CompactRoundingTestCase(1.756, "1.76", significantDigits: 3),
CompactRoundingTestCase(1.756, "1.756", significantDigits: 4),
CompactRoundingTestCase(1.75, "1.8"),
CompactRoundingTestCase(1.75, "1.8", maximumIntegerDigits: 1),
CompactRoundingTestCase(1.75, "1.8", minimumIntegerDigits: 1),
CompactRoundingTestCase(1.75, "1.8", maximumIntegerDigits: 4),
CompactRoundingTestCase(1.75, "0001.8", minimumIntegerDigits: 4),
CompactRoundingTestCase(1.75, "2", maximumFractionDigits: 0),
CompactRoundingTestCase(1.75, "1.75", minimumFractionDigits: 0),
CompactRoundingTestCase(1.75, "1.75", maximumFractionDigits: 4),
CompactRoundingTestCase(1.75, "1.7500", minimumFractionDigits: 4),
CompactRoundingTestCase(1.75, "1.8", minimumExponentDigits: 3),
CompactRoundingTestCase(1.75, "2", significantDigits: 1),
CompactRoundingTestCase(1.75, "1.8", significantDigits: 2),
CompactRoundingTestCase(1.75, "1.75", significantDigits: 3),
CompactRoundingTestCase(1.75, "1.750", significantDigits: 4),
CompactRoundingTestCase(1, "1"),
CompactRoundingTestCase(1, "1", maximumIntegerDigits: 1),
CompactRoundingTestCase(1, "1", minimumIntegerDigits: 1),
CompactRoundingTestCase(1, "1", maximumIntegerDigits: 4),
CompactRoundingTestCase(1, "0001", minimumIntegerDigits: 4),
CompactRoundingTestCase(1, "1", maximumFractionDigits: 0),
CompactRoundingTestCase(1, "1", minimumFractionDigits: 0),
CompactRoundingTestCase(1, "1", maximumFractionDigits: 4),
CompactRoundingTestCase(1, "1.0000", minimumFractionDigits: 4),
CompactRoundingTestCase(1, "1", minimumExponentDigits: 3),
CompactRoundingTestCase(1, "1", significantDigits: 1),
CompactRoundingTestCase(1, "1.0", significantDigits: 2),
CompactRoundingTestCase(1, "1.00", significantDigits: 3),
CompactRoundingTestCase(1, "1.000", significantDigits: 4),
CompactRoundingTestCase(0.9999, "1"),
CompactRoundingTestCase(0.9999, "1", significantDigits: 1),
CompactRoundingTestCase(0.9999, "1.0", significantDigits: 2),
CompactRoundingTestCase(0.9999, "1.00", significantDigits: 3),
CompactRoundingTestCase(0.9999, "0.9999", significantDigits: 4),
CompactRoundingTestCase(0.9876, "0.99"),
CompactRoundingTestCase(0.9876, "1", significantDigits: 1),
CompactRoundingTestCase(0.9876, "0.99", significantDigits: 2),
CompactRoundingTestCase(0.9876, "0.988", significantDigits: 3),
CompactRoundingTestCase(0.9876, "0.9876", significantDigits: 4),
CompactRoundingTestCase(999, "1K", significantDigits: 1),
CompactRoundingTestCase(999, "1.0K", significantDigits: 2),
CompactRoundingTestCase(999, "999", significantDigits: 3),
CompactRoundingTestCase(999, "999.0", significantDigits: 4),
CompactRoundingTestCase(999.9, "1K", significantDigits: 1),
CompactRoundingTestCase(999.9, "1.0K", significantDigits: 2),
CompactRoundingTestCase(999.9, "1.00K", significantDigits: 3),
CompactRoundingTestCase(999.9, "999.9", significantDigits: 4),
CompactRoundingTestCase(999.99, "1K", significantDigits: 1),
CompactRoundingTestCase(999.99, "1.0K", significantDigits: 2),
CompactRoundingTestCase(999.99, "1.00K", significantDigits: 3),
CompactRoundingTestCase(999.99, "1.000K", significantDigits: 4),
CompactRoundingTestCase(999000, "1M", significantDigits: 1),
CompactRoundingTestCase(999000, "1.0M", significantDigits: 2),
CompactRoundingTestCase(999000, "999K", significantDigits: 3),
CompactRoundingTestCase(999000, "999.0K", significantDigits: 4),
CompactRoundingTestCase(999, "1K", maximumSignificantDigits: 1),
CompactRoundingTestCase(999, "1K", maximumSignificantDigits: 2),
CompactRoundingTestCase(999, "999", maximumSignificantDigits: 3),
CompactRoundingTestCase(999, "999", maximumSignificantDigits: 4),
CompactRoundingTestCase(999.9, "1K", maximumSignificantDigits: 1),
CompactRoundingTestCase(999.9, "1K", maximumSignificantDigits: 2),
CompactRoundingTestCase(999.9, "1K", maximumSignificantDigits: 3),
CompactRoundingTestCase(999.9, "999.9", maximumSignificantDigits: 4),
CompactRoundingTestCase(999.99, "1K", maximumSignificantDigits: 1),
CompactRoundingTestCase(999.99, "1K", maximumSignificantDigits: 2),
CompactRoundingTestCase(999.99, "1K", maximumSignificantDigits: 3),
CompactRoundingTestCase(999.99, "1K", maximumSignificantDigits: 4),
CompactRoundingTestCase(999000, "1M", maximumSignificantDigits: 1),
CompactRoundingTestCase(999000, "1M", maximumSignificantDigits: 2),
CompactRoundingTestCase(999000, "999K", maximumSignificantDigits: 3),
CompactRoundingTestCase(999000, "999K", maximumSignificantDigits: 4),
CompactRoundingTestCase(999, "999", maximumFractionDigits: 0),
CompactRoundingTestCase(999, "999", maximumFractionDigits: 1),
CompactRoundingTestCase(999, "999", maximumFractionDigits: 2),
CompactRoundingTestCase(999.9, "1K", maximumFractionDigits: 0),
CompactRoundingTestCase(999.9, "999.9", maximumFractionDigits: 1),
CompactRoundingTestCase(999.9, "999.9", maximumFractionDigits: 2),
CompactRoundingTestCase(999.99, "1K", maximumFractionDigits: 0),
CompactRoundingTestCase(999.99, "1K", maximumFractionDigits: 1),
CompactRoundingTestCase(999.99, "999.99", maximumFractionDigits: 2),
CompactRoundingTestCase(999900, "1M", maximumFractionDigits: 0),
CompactRoundingTestCase(999900, "999.9K", maximumFractionDigits: 1),
CompactRoundingTestCase(999900, "999.9K", maximumFractionDigits: 2),
];