Skip to content

Commit bae53d3

Browse files
committed
Fix the tests of SparseArrayUsize so that it works on 32 bit computers.
This issue did not affect production code which did work correctly on 32-bit platforms. Closes #81.
1 parent 9697167 commit bae53d3

File tree

2 files changed

+21
-18
lines changed

2 files changed

+21
-18
lines changed

src/map/hash_trie_map/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -217,9 +217,9 @@ mod node_utils {
217217
use core::hash::Hasher;
218218
use core::mem::size_of_val;
219219

220-
// Returns the index of the array for the given hash on depth `depth`.
221-
//
222-
// When the hash is exhausted, meaning that we are at the maximum depth, this returns `None`.
220+
/// Returns the index of the array for the given hash on depth `depth`.
221+
///
222+
/// When the hash is exhausted, meaning that we are at the maximum depth, this returns `None`.
223223
#[inline]
224224
pub fn index_from_hash(hash: HashValue, depth: usize, degree: u8) -> Option<usize> {
225225
debug_assert!(degree.is_power_of_two());

src/map/hash_trie_map/sparse_array_usize/test.rs

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@
44
*/
55

66
use super::*;
7+
use core::mem::size_of;
78
use pretty_assertions::assert_eq;
89

10+
const USIZE_BITS: usize = 8 * size_of::<usize>();
11+
912
#[test]
1013
fn test_new() {
1114
let empty_array: SparseArrayUsize<u32> = SparseArrayUsize::new();
@@ -21,7 +24,7 @@ fn test_set() {
2124

2225
assert_eq!(array.size(), 0);
2326
assert_eq!(array.get(0), None);
24-
assert_eq!(array.get(63), None);
27+
assert_eq!(array.get(USIZE_BITS - 1), None);
2528

2629
array.set(3, 'a');
2730
assert_eq!(array.size(), 1);
@@ -30,45 +33,45 @@ fn test_set() {
3033
assert_eq!(array.get(3), Some(&'a'));
3134
assert_eq!(array.get(4), None);
3235

33-
array.set(60, 'b');
36+
array.set(USIZE_BITS - 4, 'b');
3437
assert_eq!(array.size(), 2);
3538

3639
assert_eq!(array.get(3), Some(&'a'));
37-
assert_eq!(array.get(60), Some(&'b'));
40+
assert_eq!(array.get(USIZE_BITS - 4), Some(&'b'));
3841

3942
array.set(3, 'c');
4043
assert_eq!(array.size(), 2);
4144

4245
assert_eq!(array.get(3), Some(&'c'));
43-
assert_eq!(array.get(60), Some(&'b'));
46+
assert_eq!(array.get(USIZE_BITS - 4), Some(&'b'));
4447
}
4548

4649
#[test]
4750
fn test_remove() {
4851
let mut array = SparseArrayUsize::new();
4952

5053
array.set(3, 'a');
51-
array.set(60, 'b');
54+
array.set(USIZE_BITS - 4, 'b');
5255

5356
assert_eq!(array.get(3), Some(&'a'));
54-
assert_eq!(array.get(60), Some(&'b'));
57+
assert_eq!(array.get(USIZE_BITS - 4), Some(&'b'));
5558

56-
array.remove(32);
59+
array.remove(8);
5760

5861
assert_eq!(array.get(3), Some(&'a'));
59-
assert_eq!(array.get(60), Some(&'b'));
62+
assert_eq!(array.get(USIZE_BITS - 4), Some(&'b'));
6063
assert_eq!(array.size(), 2);
6164

6265
array.remove(3);
6366

6467
assert_eq!(array.get(3), None);
65-
assert_eq!(array.get(60), Some(&'b'));
68+
assert_eq!(array.get(USIZE_BITS - 4), Some(&'b'));
6669
assert_eq!(array.size(), 1);
6770

68-
array.remove(60);
71+
array.remove(USIZE_BITS - 4);
6972

7073
assert_eq!(array.get(3), None);
71-
assert_eq!(array.get(60), None);
74+
assert_eq!(array.get(USIZE_BITS - 4), None);
7275
assert_eq!(array.size(), 0);
7376
}
7477

@@ -78,10 +81,10 @@ fn test_first() {
7881

7982
assert_eq!(array.first(), None);
8083

81-
array.set(31, 'a');
84+
array.set(8, 'a');
8285
assert_eq!(array.first(), Some(&'a'));
8386

84-
array.set(60, 'b');
87+
array.set(USIZE_BITS - 4, 'b');
8588
assert_eq!(array.first(), Some(&'a'));
8689

8790
array.set(2, 'c');
@@ -95,8 +98,8 @@ fn test_first() {
9598
fn test_pop() {
9699
let mut array = SparseArrayUsize::new();
97100

98-
array.set(60, 'b');
99-
array.set(31, 'a');
101+
array.set(USIZE_BITS - 4, 'b');
102+
array.set(8, 'a');
100103

101104
assert_eq!(array.pop(), Some('b'));
102105
assert_eq!(array.pop(), Some('a'));

0 commit comments

Comments
 (0)