stack_wallet/test/utilities/amount_test.dart

82 lines
2.6 KiB
Dart
Raw Normal View History

2023-03-24 17:08:02 +00:00
import 'package:decimal/decimal.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:stackwallet/utilities/amount.dart';
void main() {
test("Basic Amount Constructor tests", () {
Amount amount = Amount(rawValue: BigInt.two, fractionDigits: 0);
expect(amount.fractionDigits, 0);
expect(amount.raw, BigInt.two);
expect(amount.decimal, Decimal.fromInt(2));
amount = Amount(rawValue: BigInt.two, fractionDigits: 2);
expect(amount.fractionDigits, 2);
expect(amount.raw, BigInt.two);
expect(amount.decimal, Decimal.parse("0.02"));
amount = Amount(rawValue: BigInt.from(123456789), fractionDigits: 7);
expect(amount.fractionDigits, 7);
expect(amount.raw, BigInt.from(123456789));
expect(amount.decimal, Decimal.parse("12.3456789"));
bool didThrow = false;
try {
amount = Amount(rawValue: BigInt.one, fractionDigits: -1);
} catch (_) {
didThrow = true;
}
expect(didThrow, true);
});
test("Named fromDouble Amount Constructor tests", () {
Amount amount = Amount.fromDouble(2.0, fractionDigits: 0);
expect(amount.fractionDigits, 0);
expect(amount.raw, BigInt.two);
expect(amount.decimal, Decimal.fromInt(2));
amount = Amount.fromDouble(2.0, fractionDigits: 2);
expect(amount.fractionDigits, 2);
expect(amount.raw, BigInt.from(200));
expect(amount.decimal, Decimal.fromInt(2));
amount = Amount.fromDouble(0.0123456789, fractionDigits: 7);
expect(amount.fractionDigits, 7);
expect(amount.raw, BigInt.from(123456));
expect(amount.decimal, Decimal.parse("0.0123456"));
bool didThrow = false;
try {
amount = Amount.fromDouble(2.0, fractionDigits: -1);
} catch (_) {
didThrow = true;
}
expect(didThrow, true);
});
test("Named fromDecimal Amount Constructor tests", () {
Amount amount = Amount.fromDecimal(Decimal.fromInt(2), fractionDigits: 0);
expect(amount.fractionDigits, 0);
expect(amount.raw, BigInt.two);
expect(amount.decimal, Decimal.fromInt(2));
amount = Amount.fromDecimal(Decimal.fromInt(2), fractionDigits: 2);
expect(amount.fractionDigits, 2);
expect(amount.raw, BigInt.from(200));
expect(amount.decimal, Decimal.fromInt(2));
amount =
Amount.fromDecimal(Decimal.parse("0.0123456789"), fractionDigits: 7);
expect(amount.fractionDigits, 7);
expect(amount.raw, BigInt.from(123456));
expect(amount.decimal, Decimal.parse("0.0123456"));
bool didThrow = false;
try {
amount = Amount.fromDecimal(Decimal.fromInt(2), fractionDigits: -1);
} catch (_) {
didThrow = true;
}
expect(didThrow, true);
});
}