1
- import { UInt128Array } from "../../Arrays/UInt128Array" ;
2
1
import { u128 } from "as-bignum" ;
3
- import { UInt128 } from "../../UInt/UInt128 " ;
2
+ import { UInt128Array } from "../../Arrays/UInt128Array " ;
4
3
5
4
describe ( "UInt128Array" , ( ) => {
6
5
7
6
it ( "should encode uint128 array" , ( ) => {
8
7
const dataInput : Array < Array < u128 > > = [
9
- [ u128 . One ] , // Expected output: [0x04, 0x04]
10
- [ u128 . fromU32 ( 1 ) , u128 . fromU32 ( 2 ) , u128 . fromU32 ( 3 ) , u128 . fromU32 ( 4 ) ] , // Expected output: [0x10, 0x04, 0x08, 0x0c, 0x10]
11
- [ u128 . fromU32 ( 16384 ) , u128 . fromU32 ( 2 ) , u128 . fromU32 ( 3 ) , u128 . fromU32 ( 4 ) ] , // Expected output: [0x10, 0x02, 0x00, 0x01, 0x00, 0x08, 0x0c, 0x10]
12
- [ u128 . fromU64 ( 97222587 ) , u128 . fromU64 ( 260918714 ) , u128 . fromU64 ( 432884242 ) , u128 . fromU64 ( 497178323 ) , u128 . fromU64 ( 524283510 ) , u128 . fromU64 ( 530431722 ) , u128 . fromU64 ( 619955096 ) , u128 . fromU64 ( 629855926 ) , u128 . fromU64 ( 884757710 ) , u128 . fromU64 ( 947465305 ) ] ,
13
- [ u128 . fromU64 ( 18446744073709551615 ) , u128 . fromU64 ( 18446744073709551615 ) ] ,
8
+ [ u128 . One ] ,
9
+ [ u128 . fromString ( '54321' ) ] ,
10
+ [ u128 . fromU32 ( 20001 ) , u128 . fromU32 ( 123456 ) ] ,
11
+ [
12
+ u128 . fromU32 ( 1 ) , u128 . fromU64 ( 123456789 ) , u128 . fromString ( '123456789012345' ) ,
13
+ u128 . fromString ( '12345678901234567890' ) , u128 . fromString ( '1234567890123456789012345' )
14
+ ] ,
15
+ [ u128 . fromU64 ( 18446744073709551615 ) , u128 . fromU64 ( 18446744073709551615 ) , u128 . Max ] ,
14
16
[ u128 . Max - u128 . fromU64 ( u64 . MAX_VALUE ) ]
15
17
] ;
16
18
17
19
const expectedOutput : Array < Array < u8 > > = [
18
- [ 0x04 , 0x04 ] ,
19
- [ 0x10 , 0x04 , 0x08 , 0x0c , 0x10 ] ,
20
- [ 0x10 , 0x02 , 0x00 , 0x01 , 0x00 , 0x08 , 0x0c , 0x10 ] ,
21
- [ 0x28 , 0xee , 0xfe , 0x2d , 0x17 , 0xea , 0x36 , 0x35 , 0x3e , 0x4a , 0x28 , 0x35 , 0x67 , 0x4e , 0x5b , 0x89 , 0x76 , 0xda , 0xb9 , 0xff , 0x7c , 0xaa , 0xfb , 0x76 , 0x7e , 0x62 , 0x0e , 0xcf , 0x93 , 0xda , 0x5a , 0x2b , 0x96 , 0x3a , 0x53 , 0xf1 , 0xd2 , 0x66 , 0xb1 , 0xe4 , 0xe1 ] ,
22
- [ 0x08 , 0x13 , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0x13 , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff ] ,
23
- [ 0x04 , 0x33 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff ]
20
+ [ 4 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , // Expected output: [1]
21
+ [ 4 , 49 , 212 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , // Expected output: 54321
22
+ [ 8 , 33 , 78 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 64 , 226 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , // Expected output: [20001, 123456]
23
+ [
24
+ 20 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 21 , 205 , 91 , 7 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
25
+ 121 , 223 , 13 , 134 , 72 , 112 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 210 , 10 , 31 , 235 , 140 , 169 , 84 , 171 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
26
+ 121 , 223 , 226 , 61 , 68 , 166 , 54 , 15 , 110 , 5 , 1 , 0 , 0 , 0 , 0 , 0
27
+ ] ,
28
+ [
29
+ 12 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
30
+ 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255
31
+ ] ,
32
+ [ 4 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 ]
24
33
] ;
25
34
26
35
for ( let i = 0 ; i < dataInput . length ; i ++ ) {
@@ -31,20 +40,30 @@ describe("UInt128Array", () => {
31
40
32
41
it ( "should decode uint128 array" , ( ) => {
33
42
const dataInput : Array < Array < u8 > > = [
34
- [ 0x04 , 0x04 ] , // Expected output: [1]
35
- [ 0x10 , 0x04 , 0x08 , 0x0c , 0x10 ] , // Expected output: [1, 2, 3, 4]
36
- [ 0x10 , 0x02 , 0x00 , 0x01 , 0x00 , 0x08 , 0x0c , 0x10 ] , // Expected output: [16384, 2, 3, 4]
37
- [ 0x28 , 0xee , 0xfe , 0x2d , 0x17 , 0xea , 0x36 , 0x35 , 0x3e , 0x4a , 0x28 , 0x35 , 0x67 , 0x4e , 0x5b , 0x89 , 0x76 , 0xda , 0xb9 , 0xff , 0x7c , 0xaa , 0xfb , 0x76 , 0x7e , 0x62 , 0x0e , 0xcf , 0x93 , 0xda , 0x5a , 0x2b , 0x96 , 0x3a , 0x53 , 0xf1 , 0xd2 , 0x66 , 0xb1 , 0xe4 , 0xe1 ] ,
38
- [ 0x08 , 0x13 , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0x13 , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff ] ,
39
- [ 0x04 , 0x33 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff ]
43
+ [ 4 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , // Expected output: [1]
44
+ [ 4 , 49 , 212 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , // Expected output: 54321
45
+ [ 8 , 33 , 78 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 64 , 226 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , // Expected output: [20001, 123456]
46
+ [
47
+ 20 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 21 , 205 , 91 , 7 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
48
+ 121 , 223 , 13 , 134 , 72 , 112 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 210 , 10 , 31 , 235 , 140 , 169 , 84 , 171 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
49
+ 121 , 223 , 226 , 61 , 68 , 166 , 54 , 15 , 110 , 5 , 1 , 0 , 0 , 0 , 0 , 0
50
+ ] ,
51
+ [
52
+ 12 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
53
+ 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255
54
+ ] ,
55
+ [ 4 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 ]
40
56
] ;
41
57
42
58
const expectedOutput : Array < Array < u128 > > = [
43
59
[ u128 . One ] ,
44
- [ u128 . One , u128 . fromU64 ( 2 ) , u128 . fromU64 ( 3 ) , u128 . fromU64 ( 4 ) ] ,
45
- [ u128 . fromU64 ( 16384 ) , u128 . fromU64 ( 2 ) , u128 . fromU64 ( 3 ) , u128 . fromU64 ( 4 ) ] ,
46
- [ u128 . fromU64 ( 97222587 ) , u128 . fromU64 ( 260918714 ) , u128 . fromU64 ( 432884242 ) , u128 . fromU64 ( 497178323 ) , u128 . fromU64 ( 524283510 ) , u128 . fromU64 ( 530431722 ) , u128 . fromU64 ( 619955096 ) , u128 . fromU64 ( 629855926 ) , u128 . fromU64 ( 884757710 ) , u128 . fromU64 ( 947465305 ) ] ,
47
- [ u128 . fromU64 ( 18446744073709551615 ) , u128 . fromU64 ( 18446744073709551615 ) ] ,
60
+ [ u128 . fromString ( '54321' ) ] ,
61
+ [ u128 . fromU32 ( 20001 ) , u128 . fromU32 ( 123456 ) ] ,
62
+ [
63
+ u128 . fromU32 ( 1 ) , u128 . fromU64 ( 123456789 ) , u128 . fromString ( '123456789012345' ) ,
64
+ u128 . fromString ( '12345678901234567890' ) , u128 . fromString ( '1234567890123456789012345' )
65
+ ] ,
66
+ [ u128 . fromU64 ( 18446744073709551615 ) , u128 . fromU64 ( 18446744073709551615 ) , u128 . Max ] ,
48
67
[ u128 . Max - u128 . fromU64 ( u64 . MAX_VALUE ) ]
49
68
] ;
50
69
@@ -56,19 +75,29 @@ describe("UInt128Array", () => {
56
75
57
76
it ( "should decode uint128 array with populate method" , ( ) => {
58
77
const dataInput : Array < Array < u8 > > = [
59
- [ 0x04 , 0x04 ] , // Expected output: [1]
60
- [ 0x10 , 0x04 , 0x0c , 0x0c , 0x10 ] , // Expected output: [1, 3, 3, 4]
61
- [ 0x10 , 0x02 , 0x00 , 0x01 , 0x00 , 0x08 , 0x0c , 0x10 ] , // Expected output: [16384, 2, 3, 4]
62
- [ 0x28 , 0xee , 0xfe , 0x2d , 0x17 , 0xea , 0x36 , 0x35 , 0x3e , 0x4a , 0x28 , 0x35 , 0x67 , 0x4e , 0x5b , 0x89 , 0x76 , 0xda , 0xb9 , 0xff , 0x7c , 0xaa , 0xfb , 0x76 , 0x7e , 0x62 , 0x0e , 0xcf , 0x93 , 0xda , 0x5a , 0x2b , 0x96 , 0x3a , 0x53 , 0xf1 , 0xd2 , 0x66 , 0xb1 , 0xe4 , 0xe1 ] ,
63
- [ 0x08 , 0x13 , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0x13 , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff ] ,
64
- [ 0x04 , 0x33 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff ]
78
+ [ 4 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , // Expected output: [1]
79
+ [ 4 , 49 , 212 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , // Expected output: 54321
80
+ [ 8 , 33 , 78 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 64 , 226 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , // Expected output: [20001, 123456]
81
+ [
82
+ 20 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 21 , 205 , 91 , 7 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
83
+ 121 , 223 , 13 , 134 , 72 , 112 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 210 , 10 , 31 , 235 , 140 , 169 , 84 , 171 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
84
+ 121 , 223 , 226 , 61 , 68 , 166 , 54 , 15 , 110 , 5 , 1 , 0 , 0 , 0 , 0 , 0
85
+ ] ,
86
+ [
87
+ 12 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
88
+ 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255
89
+ ] ,
90
+ [ 4 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 ]
65
91
] ;
66
92
const expectedOutput : Array < Array < u128 > > = [
67
93
[ u128 . One ] ,
68
- [ u128 . One , u128 . fromU64 ( 3 ) , u128 . fromU64 ( 3 ) , u128 . fromU64 ( 4 ) ] ,
69
- [ u128 . fromU64 ( 16384 ) , u128 . fromU64 ( 2 ) , u128 . fromU64 ( 3 ) , u128 . fromU64 ( 4 ) ] ,
70
- [ u128 . fromU64 ( 97222587 ) , u128 . fromU64 ( 260918714 ) , u128 . fromU64 ( 432884242 ) , u128 . fromU64 ( 497178323 ) , u128 . fromU64 ( 524283510 ) , u128 . fromU64 ( 530431722 ) , u128 . fromU64 ( 619955096 ) , u128 . fromU64 ( 629855926 ) , u128 . fromU64 ( 884757710 ) , u128 . fromU64 ( 947465305 ) ] ,
71
- [ u128 . fromU64 ( 18446744073709551615 ) , u128 . fromU64 ( 18446744073709551615 ) ] ,
94
+ [ u128 . fromString ( '54321' ) ] ,
95
+ [ u128 . fromU32 ( 20001 ) , u128 . fromU32 ( 123456 ) ] ,
96
+ [
97
+ u128 . fromU32 ( 1 ) , u128 . fromU64 ( 123456789 ) , u128 . fromString ( '123456789012345' ) ,
98
+ u128 . fromString ( '12345678901234567890' ) , u128 . fromString ( '1234567890123456789012345' )
99
+ ] ,
100
+ [ u128 . fromU64 ( 18446744073709551615 ) , u128 . fromU64 ( 18446744073709551615 ) , u128 . Max ] ,
72
101
[ u128 . Max - u128 . fromU64 ( u64 . MAX_VALUE ) ]
73
102
] ;
74
103
0 commit comments