nv-buf-storage 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,33 @@
1
+ const {deepStrictEqual, strictEqual} = require("assert");
2
+ const x = require("../index");
3
+
4
+ var buf = x();
5
+
6
+ const _rnd = require("nv-random-rgx")
7
+
8
+
9
+
10
+
11
+ var ROUNDS = Number(process.argv[2]??2000000)
12
+ var C = 0;
13
+ var si = Date.now();
14
+ var RNGS = [];
15
+ while(C<ROUNDS) {
16
+ var ta = _rnd();
17
+ var rng = buf.wo(ta); RNGS.push(rng)
18
+ var tata = buf.ro(rng);
19
+ deepStrictEqual(ta,tata);
20
+ if(C%10000===0) {
21
+ console.log(C,(Date.now()-si),ta);
22
+ si = Date.now();
23
+ console.log("buf.underlying_bytsz",buf.underlying_bytsz)
24
+ if(buf.underlying_bytsz>1024*1024*128) {
25
+ for(let rng of RNGS) {
26
+ buf.dloc(rng)
27
+ }
28
+ RNGS = [];
29
+ }
30
+ }
31
+ ++C;
32
+ }
33
+
@@ -0,0 +1,33 @@
1
+ const {deepStrictEqual, strictEqual} = require("assert");
2
+ const x = require("../index");
3
+
4
+ var buf = x();
5
+
6
+ const _rnd = require("nv-random-bufvw");
7
+
8
+
9
+
10
+
11
+ var ROUNDS = Number(process.argv[2]??2000000)
12
+ var C = 0;
13
+ var si = Date.now();
14
+ var RNGS = [];
15
+ while(C<ROUNDS) {
16
+ var ta = _rnd();
17
+ var rng = buf.wta(ta); RNGS.push(rng)
18
+ var tata = buf.rta(ta.constructor,rng);
19
+ deepStrictEqual(ta,tata);
20
+ if(C%10000===0) {
21
+ console.log(C,(Date.now()-si),ta);
22
+ si = Date.now();
23
+ console.log("buf.underlying_bytsz",buf.underlying_bytsz)
24
+ if(buf.underlying_bytsz>1024*1024*128) {
25
+ for(let rng of RNGS) {
26
+ buf.dloc(rng)
27
+ }
28
+ RNGS = [];
29
+ }
30
+ }
31
+ ++C;
32
+ }
33
+
package/TEST/check.js ADDED
@@ -0,0 +1,199 @@
1
+ const {deepStrictEqual, strictEqual} = require("assert");
2
+ const x = require("../index");
3
+
4
+ var buf = x();
5
+
6
+ function test(v){
7
+ var pair = buf.debug_write(v);
8
+ var [T,[si,ei]] = pair;
9
+ var r = buf.debug_read(T,[si,ei]);
10
+ if(typeof(v)==='object') {
11
+ deepStrictEqual(r,v);
12
+ } else if(typeof(v)==="symbol") {
13
+ if(r.description === v.description){} else {throw(v)}
14
+ } else {
15
+ if(Object.is(v,NaN)) {
16
+ if(Object.is(r,NaN)) {} else {throw(v)}
17
+ } else {
18
+ if(r === v){} else {throw(v)}
19
+ }
20
+ }
21
+ }
22
+
23
+
24
+ // primitives
25
+ {
26
+ test(undefined)
27
+ test(null)
28
+ test(true)
29
+ test(false)
30
+ test(0)
31
+ test(-0)
32
+ test(1)
33
+ test(-1)
34
+ test(1.1)
35
+ test(NaN)
36
+ test(Infinity)
37
+ test(-Infinity)
38
+ }
39
+
40
+
41
+ // bigint
42
+ {
43
+ test(1n)
44
+ test(123456789012345678901234567890n)
45
+ }
46
+
47
+
48
+ // string
49
+ {
50
+ test("")
51
+ test("abcd")
52
+ test("aÿ我𝑒")
53
+ }
54
+
55
+
56
+ // array
57
+ {
58
+ test([])
59
+ test([1,2,3])
60
+ test([1,"a",true,null,undefined])
61
+ }
62
+
63
+
64
+ // object
65
+ {
66
+ test({})
67
+ test({a:1,b:2})
68
+ test({a:{b:{c:1}}})
69
+ }
70
+
71
+
72
+ // shared reference
73
+ {
74
+ let o = {a:1}
75
+ let v = [o,o]
76
+
77
+ var [T,[si,ei]] = buf.debug_write(v);
78
+ var r = buf.debug_read(T,[si,ei]);
79
+
80
+ deepStrictEqual(r,v)
81
+ deepStrictEqual(r[0],r[1])
82
+ }
83
+
84
+
85
+ // Date
86
+ {
87
+ test(new Date())
88
+ }
89
+
90
+
91
+ // RegExp
92
+ {
93
+ test(/abc/g)
94
+ }
95
+
96
+
97
+ // Map
98
+ {
99
+ let mp = new Map()
100
+ mp.set(1,2)
101
+ mp.set("a","b")
102
+ mp.set(true,false)
103
+
104
+ test(mp)
105
+ }
106
+
107
+
108
+ // Set
109
+ {
110
+ let st = new Set([1,2,3,"a","b"])
111
+ test(st)
112
+ }
113
+
114
+
115
+ // TypedArrays
116
+ {
117
+ test(new Uint8Array([1,2,3]))
118
+ test(new Int8Array([1,-1,2]))
119
+ test(new Uint16Array([1,2,3]))
120
+ test(new Int16Array([1,-1,2]))
121
+ test(new Uint32Array([1,2,3]))
122
+ test(new Int32Array([1,-1,2]))
123
+ test(new Float32Array([1.1,2.2]))
124
+ test(new Float64Array([1.1,2.2]))
125
+
126
+ if(globalThis.Float16Array !== undefined){
127
+ test(new Float16Array([1.1,2.2]))
128
+ }
129
+
130
+ test(new BigUint64Array([1n,2n]))
131
+ test(new BigInt64Array([1n,-2n]))
132
+ }
133
+
134
+
135
+ // DataView
136
+ {
137
+ let ab = new ArrayBuffer(16)
138
+ let dv = new DataView(ab)
139
+ dv.setUint32(0,123,true)
140
+
141
+ test(dv)
142
+ }
143
+
144
+
145
+ // nested
146
+ {
147
+ let v = {
148
+ a:[1,2,3],
149
+ b:{x:10,y:20},
150
+ c:new Set([1,2,3]),
151
+ d:new Map([[1,2],[3,4]])
152
+ }
153
+
154
+ test(v)
155
+ }
156
+
157
+
158
+ // TEST circular
159
+ {
160
+ var st = new Set([])
161
+ for(let e of [1,1.1,undefined,null,true,false,"abcd","aÿ我𝑒",12345678901234567890n,[],{}]) {
162
+ st.add(e)
163
+ }
164
+
165
+ var mp = new Map()
166
+
167
+ let dict = {a:100,b:-0}
168
+ let ary = [0,1,2,3]
169
+
170
+ for(let e of [[{},[]],[true,false],[dict,dict],[ary,ary]]) {
171
+ mp.set(e,e)
172
+ }
173
+
174
+ for(let e of [[]]) {
175
+ mp.set(e,e)
176
+ }
177
+
178
+ for(let e of [1,1.1,undefined,null,true,false,"abcd","aÿ我𝑒",12345678901234567890n]) {
179
+ mp.set(e,e)
180
+ }
181
+
182
+ var circular = []
183
+ circular[0] = circular
184
+ circular[1] = {pr:circular[0]}
185
+ circular[2] = mp
186
+
187
+ st.add(mp)
188
+ mp.set("set",st);
189
+
190
+
191
+ var [T,[si,ei]] = buf.debug_write(circular)
192
+ console.log(circular,[T,[si,ei]]);
193
+ var r = buf.debug_read(T,[si,ei])
194
+
195
+ deepStrictEqual(r,circular)
196
+ }
197
+
198
+ console.log("ALL TEST PASSED")
199
+
@@ -0,0 +1,62 @@
1
+ const {deepStrictEqual, strictEqual} = require("assert");
2
+ const x = require("../index");
3
+ const _path = require("path");
4
+ const _fs = require("fs");
5
+ const buf = x();
6
+ var SAMPLES ;
7
+ try{
8
+ SAMPLES = require("./files.json")
9
+ } catch(e) {
10
+ const {path_only_walk_all} = require("nd-fast-walk-dir")
11
+ SAMPLES = path_only_walk_all("/").filter(
12
+ (pair)=>{
13
+ if(pair[0]==="file") {
14
+ var d = _path.parse(pair[1]);
15
+ return(d.ext === ".json" || d.ext === ".js" || d.ext === ".ts" || d.ext === ".html"|| d.ext === ".css" || d.ext === ".c"
16
+ || d.ext === ".h"|| d.ext === ".cc" ||d.ext === ".cpp" || d.ext === ".txt"
17
+ );
18
+ } else {
19
+ }
20
+ }
21
+ );
22
+ require("fs").writeFileSync("./files.json",JSON.stringify(SAMPLES));
23
+ }
24
+
25
+
26
+ var D = {}
27
+ var si = Date.now();
28
+ var C =0;
29
+ for(var p of SAMPLES) {
30
+ D[p[1]] = buf.wu8a(_fs.readFileSync(p[1]));
31
+ ++C;
32
+ if(C %5000 === 0) {console.log(C)}
33
+ }
34
+ var ei = Date.now();
35
+ var LEN = SAMPLES.length;
36
+ console.log(LEN/(ei-si)*1000);
37
+ SAMPLES = null;
38
+ onsole.log(buf._fl.buf.byteLength + buf._data.byteLength)
39
+
40
+
41
+
42
+ si = Date.now();
43
+ var P;
44
+ C =0;
45
+ for(let p in D) {P = buf.ru8a(D[p]);++C;if(C %5000 === 0) {console.log(C)}}
46
+ ei = Date.now();
47
+ console.log(LEN/(ei-si)*1000);
48
+
49
+ si = Date.now();
50
+ var P;
51
+ C =0;
52
+ for(let p in D) {
53
+ P = buf.ru8a(D[p]);
54
+ if(Buffer.compare(P,_fs.readFileSync(p)) !== 0) {
55
+ throw(p,P,D[p])
56
+ }
57
+ ++C;
58
+ if(C %5000 === 0) {console.log(C)}
59
+ }
60
+ ei = Date.now();
61
+ console.log(LEN/(ei-si)*1000);
62
+ console.log(buf._fl.buf.byteLength + buf._data.byteLength)
@@ -0,0 +1,39 @@
1
+ const {deepStrictEqual, strictEqual} = require("assert");
2
+ const x = require("../index");
3
+
4
+ const buf = x();
5
+ var SAMPLES ;
6
+ try{
7
+ SAMPLES = require("./paths.json")
8
+ } catch(e) {
9
+ const {path_only_walk_all} = require("nd-fast-walk-dir")
10
+ SAMPLES = path_only_walk_all("/");
11
+ require("fs").writeFileSync("./paths.json",JSON.stringify(SAMPLES));
12
+ }
13
+ var D = {}
14
+ var si = Date.now();
15
+ for(var p of SAMPLES) {D[p[1]] = buf.wstr(p[1]);}
16
+ var ei = Date.now();
17
+ var LEN = SAMPLES.length;
18
+ console.log(LEN/(ei-si)*1000);
19
+ SAMPLES = null;
20
+
21
+ si = Date.now();
22
+ var P;
23
+ for(let p in D) {
24
+ P = buf.rstr(D[p])
25
+ }
26
+ ei = Date.now();
27
+ console.log(LEN/(ei-si)*1000);
28
+
29
+ si = Date.now();
30
+ var P;
31
+ for(let p in D) {
32
+ P = buf.rstr(D[p]);
33
+ if(P !== p) {
34
+ throw(p,P,D[p])
35
+ }
36
+ }
37
+ ei = Date.now();
38
+ console.log(LEN/(ei-si)*1000);
39
+ console.log(buf._fl.buf.byteLength + buf._data.byteLength)