1
1
import assert from "assert" ;
2
- import { setInt64 , getInt64 } from "../src/utils/int" ;
2
+ import { setInt64 , getInt64 , getUint64 , setUint64 } from "../src/utils/int" ;
3
3
4
4
const INT64SPECS = {
5
5
ZERO : 0 ,
@@ -13,17 +13,33 @@ const INT64SPECS = {
13
13
MIN_SAFE_INTEGER : Number . MIN_SAFE_INTEGER ,
14
14
} as Record < string , number > ;
15
15
16
- describe ( "codec: encode and decode int 32/64 " , ( ) => {
16
+ describe ( "codec: int64 / uint64 " , ( ) => {
17
17
context ( "int 64" , ( ) => {
18
18
for ( const name of Object . keys ( INT64SPECS ) ) {
19
19
const value = INT64SPECS [ name ] ;
20
20
21
- it ( `${ value } (${ value < 0 ? "-" : "" } 0x${ Math . abs ( value ) . toString ( 16 ) } )` , ( ) => {
21
+ it ( `sets and gets ${ value } (${ value < 0 ? "-" : "" } 0x${ Math . abs ( value ) . toString ( 16 ) } )` , ( ) => {
22
22
const b = new Uint8Array ( 8 ) ;
23
23
const view = new DataView ( b . buffer ) ;
24
- setInt64 ( new DataView ( b . buffer ) , 0 , value ) ;
24
+ setInt64 ( view , 0 , value ) ;
25
25
assert . deepStrictEqual ( getInt64 ( view , 0 ) , value ) ;
26
26
} ) ;
27
27
}
28
28
} ) ;
29
+
30
+ context ( "uint 64" , ( ) => {
31
+ it ( `sets and gets 0` , ( ) => {
32
+ const b = new Uint8Array ( 8 ) ;
33
+ const view = new DataView ( b . buffer ) ;
34
+ setUint64 ( view , 0 , 0 ) ;
35
+ assert . deepStrictEqual ( getUint64 ( view , 0 ) , 0 ) ;
36
+ } ) ;
37
+
38
+ it ( `sets and gets MAX_SAFE_INTEGER` , ( ) => {
39
+ const b = new Uint8Array ( 8 ) ;
40
+ const view = new DataView ( b . buffer ) ;
41
+ setUint64 ( view , 0 , Number . MAX_SAFE_INTEGER ) ;
42
+ assert . deepStrictEqual ( getUint64 ( view , 0 ) , Number . MAX_SAFE_INTEGER ) ;
43
+ } ) ;
44
+ } ) ;
29
45
} ) ;
0 commit comments