44 */
55
66use super :: * ;
7+ use core:: mem:: size_of;
78use pretty_assertions:: assert_eq;
89
10+ const USIZE_BITS : usize = 8 * size_of :: < usize > ( ) ;
11+
912#[ test]
1013fn 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]
4750fn 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() {
9598fn 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