Skip to content

Commit c605e8f

Browse files
authored
Merge pull request #6 from bugless/fix-hashcode
Add hashCode implementation
2 parents 07a9f98 + 6cae56b commit c605e8f

File tree

4 files changed

+23
-1
lines changed

4 files changed

+23
-1
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# CHANGELOG
22

3+
## 0.3.0
4+
- Add missing hashCode implementation ~aka remove feature where all BigDecimals were different~
5+
36
## 0.2.1
47
- Remove undue logs
58

lib/src/big_decimal.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,9 @@ class BigDecimal implements Comparable<BigDecimal> {
336336
return _add(intVal, -other.intVal, scale, other.scale).intVal.sign;
337337
}
338338

339+
@override
340+
int get hashCode => 31 * intVal.hashCode + scale;
341+
339342
@override
340343
String toString() {
341344
if (scale == 0) {

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: big_decimal
2-
version: 0.2.1
2+
version: 0.3.0
33
description: >
44
A bugless implementation of BigDecimal in Dart based on Java's BigDecimal
55

test/big_decimal_test.dart

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -428,4 +428,20 @@ void main() {
428428
tabCase(['123.456e-8', '0.00000123456']),
429429
]),
430430
);
431+
432+
group('hashcode', () {
433+
test('same for equal numbers', () {
434+
expect('1.0'.dec.hashCode, '1.0'.dec.hashCode);
435+
expect('-1.0'.dec.hashCode, '-1.0'.dec.hashCode);
436+
expect('1.0000'.dec.hashCode, '1.0000'.dec.hashCode);
437+
expect('0'.dec.hashCode, '0'.dec.hashCode);
438+
});
439+
440+
test('different for different numbers', () {
441+
expect(false, '1.0'.dec.hashCode == '1.00'.dec.hashCode);
442+
expect(false, '-1.0'.dec.hashCode == '1.0'.dec.hashCode);
443+
expect(false, '1.0000'.dec.hashCode == '2'.dec.hashCode);
444+
expect(false, '0'.dec.hashCode == '0.00'.dec.hashCode);
445+
});
446+
});
431447
}

0 commit comments

Comments
 (0)