wc3maptranslator 3.0.3 → 4.0.1
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.
- package/.codeclimate.yml +0 -1
- package/.eslintignore +0 -1
- package/.github/workflows/codeql-analysis.yml +54 -0
- package/.nycrc +1 -2
- package/.travis.yml +1 -2
- package/CHANGELOG.md +78 -0
- package/LICENSE.md +23 -0
- package/README.md +68 -75
- package/index.js +11 -15
- package/index.ts +12 -30
- package/lib/CommonInterfaces.ts +22 -0
- package/lib/HexBuffer.ts +11 -14
- package/lib/W3Buffer.ts +7 -3
- package/lib/translators/CamerasTranslator.ts +36 -41
- package/lib/translators/DoodadsTranslator.ts +57 -55
- package/lib/translators/ImportsTranslator.ts +29 -31
- package/lib/translators/InfoTranslator.ts +252 -204
- package/lib/translators/{object/ObjectsTranslator.ts → ObjectsTranslator.ts} +84 -82
- package/lib/translators/RegionsTranslator.ts +40 -58
- package/lib/translators/SoundsTranslator.ts +112 -96
- package/lib/translators/StringsTranslator.ts +23 -49
- package/lib/translators/TerrainTranslator.ts +166 -97
- package/lib/translators/UnitsTranslator.ts +98 -97
- package/lib/translators/index.ts +0 -1
- package/package.json +23 -16
- package/test/.mocharc.json +4 -0
- package/test/HexBufferTest.ts +11 -15
- package/test/TranslatorReversion.ts +104 -115
- package/test/W3BufferTest.ts +19 -13
- package/test/data/cameras.json +16 -0
- package/test/data/doodads.json +2730 -0
- package/test/data/imports.json +386 -0
- package/test/data/info.json +250 -0
- package/test/data/obj-abilities.json +4892 -0
- package/test/data/obj-buffs.json +38 -0
- package/test/data/obj-destructables.json +31 -0
- package/test/data/obj-doodads.json +38 -0
- package/test/data/obj-items.json +31 -0
- package/test/data/obj-units.json +40 -0
- package/test/data/obj-upgrades.json +38 -0
- package/test/data/regions.json +206 -0
- package/test/data/sounds.json +50 -0
- package/test/data/strings.json +115 -0
- package/test/data/terrain.json +1 -0
- package/test/data/units.json +452 -0
- package/test/data/war3map.doo +0 -0
- package/test/data/war3map.imp +0 -0
- package/test/data/war3map.j +3442 -0
- package/test/data/war3map.shd +0 -0
- package/test/data/war3map.w3a +0 -0
- package/test/data/war3map.w3b +0 -0
- package/test/data/war3map.w3c +0 -0
- package/test/data/war3map.w3d +0 -0
- package/test/data/war3map.w3e +0 -0
- package/test/data/war3map.w3h +0 -0
- package/test/data/war3map.w3i +0 -0
- package/test/data/war3map.w3q +0 -0
- package/test/data/war3map.w3r +0 -0
- package/test/data/war3map.w3s +0 -0
- package/test/data/war3map.w3t +0 -0
- package/test/data/war3map.w3u +0 -0
- package/test/data/war3map.wts +631 -0
- package/test/data/war3mapUnits.doo +0 -0
- package/examples/index.js +0 -123
- package/examples/index.ts +0 -134
- package/examples/json/cameras.json +0 -16
- package/examples/json/doodads.json +0 -28499
- package/examples/json/imports.json +0 -10
- package/examples/json/info.json +0 -111
- package/examples/json/object-abilities.json +0 -31
- package/examples/json/object-buffs.json +0 -24
- package/examples/json/object-destructables.json +0 -31
- package/examples/json/object-doodads.json +0 -24
- package/examples/json/object-items.json +0 -45
- package/examples/json/object-units.json +0 -45
- package/examples/json/object-upgrades.json +0 -31
- package/examples/json/regions.json +0 -36
- package/examples/json/sounds.json +0 -46
- package/examples/json/strings.json +0 -83
- package/examples/json/terrain.json +0 -46633
- package/examples/json/units.json +0 -332
- package/examples/package.json +0 -17
- package/examples/tsconfig.json +0 -27
- package/examples/war/war3map.doo +0 -0
- package/examples/war/war3map.imp +0 -0
- package/examples/war/war3map.w3a +0 -0
- package/examples/war/war3map.w3b +0 -0
- package/examples/war/war3map.w3c +0 -0
- package/examples/war/war3map.w3d +0 -0
- package/examples/war/war3map.w3e +0 -0
- package/examples/war/war3map.w3h +0 -0
- package/examples/war/war3map.w3i +0 -0
- package/examples/war/war3map.w3q +0 -0
- package/examples/war/war3map.w3r +0 -0
- package/examples/war/war3map.w3s +0 -0
- package/examples/war/war3map.w3t +0 -0
- package/examples/war/war3map.w3u +0 -0
- package/examples/war/war3map.wts +0 -99
- package/lib/translators/index.js +0 -16
- package/test/mocha.opts +0 -4
|
@@ -3,17 +3,24 @@ import * as diff from 'diff-buf';
|
|
|
3
3
|
import * as fs from 'fs-extra';
|
|
4
4
|
import * as Path from 'path';
|
|
5
5
|
|
|
6
|
-
import
|
|
6
|
+
import * as Translator from '../index';
|
|
7
7
|
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const war3mapDir = Path.resolve('examples/war');
|
|
8
|
+
const ObjectType = Translator.ObjectsTranslator.ObjectType;
|
|
9
|
+
const war3mapDir = Path.resolve('test/data');
|
|
11
10
|
const outputDir = Path.resolve('test/.output');
|
|
12
11
|
|
|
13
12
|
function readWar3MapBuffer(filename: string) {
|
|
14
13
|
return fs.readFileSync(Path.join(war3mapDir, filename));
|
|
15
14
|
}
|
|
16
15
|
|
|
16
|
+
function readJsonTestFile(filename: string) {
|
|
17
|
+
return fs.readJsonSync(Path.join(war3mapDir, filename));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function writeJsonTestFile(filename: string, json: object) {
|
|
21
|
+
return fs.writeJsonSync(Path.join(outputDir, filename), json);
|
|
22
|
+
}
|
|
23
|
+
|
|
17
24
|
function buffersAreEqual(b1: Buffer, b2: Buffer) {
|
|
18
25
|
const comparison = diff.default(b1, b2, { string: false });
|
|
19
26
|
|
|
@@ -31,17 +38,10 @@ function buffersAreEqual(b1: Buffer, b2: Buffer) {
|
|
|
31
38
|
return buffersEqual;
|
|
32
39
|
}
|
|
33
40
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// Ensures that when a war3map file is converted to JSON and back again,
|
|
42
|
-
// the two war3map files are the same; converting between the two data formats
|
|
43
|
-
// should be a reversible process
|
|
44
|
-
describe('Reversion: war -> json -> war', () => {
|
|
41
|
+
// Ensures that when a JSON file is converted to war3map and back again,
|
|
42
|
+
// the two JSON files are the same; converting between the two data formats
|
|
43
|
+
// must yield the original results back (except for some differences in rounding)
|
|
44
|
+
describe('Reversion: json -> war -> json', () => {
|
|
45
45
|
|
|
46
46
|
before(() => {
|
|
47
47
|
fs.emptyDirSync(outputDir);
|
|
@@ -49,181 +49,170 @@ describe('Reversion: war -> json -> war', () => {
|
|
|
49
49
|
});
|
|
50
50
|
|
|
51
51
|
it('Doodads reversion', () => {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const
|
|
55
|
-
const result = testTranslator.Doodads.warToJson(originalBuffer);
|
|
56
|
-
const translatedBuffer = testTranslator.Doodads.jsonToWar(result.json).buffer;
|
|
57
|
-
fs.writeFileSync(Path.join(outputDir, 'war3map.doo'), translatedBuffer);
|
|
58
|
-
writeJsonFile('doodads.json', result.json);
|
|
52
|
+
const originalJson = readJsonTestFile('doodads.json');
|
|
53
|
+
const translatedBuffer = Translator.DoodadsTranslator.jsonToWar(originalJson).buffer;
|
|
54
|
+
const translatedJson = Translator.DoodadsTranslator.warToJson(translatedBuffer).json;
|
|
59
55
|
|
|
60
|
-
|
|
56
|
+
writeJsonTestFile('doodads.json', translatedJson);
|
|
57
|
+
|
|
58
|
+
assert.deepStrictEqual(originalJson, translatedJson);
|
|
61
59
|
});
|
|
62
60
|
|
|
63
61
|
it('Strings reversion', () => {
|
|
64
|
-
const
|
|
65
|
-
const
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
62
|
+
const originalJson = readJsonTestFile('strings.json');
|
|
63
|
+
const translatedBuffer = Translator.StringsTranslator.jsonToWar(originalJson).buffer;
|
|
64
|
+
const translatedJson = Translator.StringsTranslator.warToJson(translatedBuffer).json;
|
|
65
|
+
|
|
66
|
+
writeJsonTestFile('strings.json', translatedJson);
|
|
69
67
|
|
|
70
|
-
assert(
|
|
68
|
+
assert.deepStrictEqual(originalJson, translatedJson);
|
|
71
69
|
});
|
|
72
70
|
|
|
73
71
|
it('Terrain reversion', () => {
|
|
74
|
-
|
|
75
|
-
const
|
|
76
|
-
const
|
|
77
|
-
const translatedBuffer = testTranslator.Terrain.jsonToWar(result.json).buffer;
|
|
72
|
+
const originalJson = readJsonTestFile('terrain.json');
|
|
73
|
+
const translatedBuffer = Translator.TerrainTranslator.jsonToWar(originalJson).buffer;
|
|
74
|
+
const translatedJson = Translator.TerrainTranslator.warToJson(translatedBuffer).json;
|
|
78
75
|
|
|
79
|
-
|
|
80
|
-
writeJsonFile('terrain.json', result.json);
|
|
76
|
+
writeJsonTestFile('terrain.json', translatedJson);
|
|
81
77
|
|
|
82
|
-
assert(
|
|
78
|
+
assert.deepStrictEqual(originalJson, translatedJson);
|
|
83
79
|
});
|
|
84
80
|
|
|
85
81
|
it('Units reversion', () => {
|
|
86
|
-
const
|
|
87
|
-
const
|
|
88
|
-
const
|
|
82
|
+
const originalJson = readJsonTestFile('units.json');
|
|
83
|
+
const translatedBuffer = Translator.UnitsTranslator.jsonToWar(originalJson).buffer;
|
|
84
|
+
const translatedJson = Translator.UnitsTranslator.warToJson(translatedBuffer).json;
|
|
89
85
|
|
|
90
|
-
|
|
91
|
-
writeJsonFile('units.json', result.json);
|
|
86
|
+
writeJsonTestFile('units.json', translatedJson);
|
|
92
87
|
|
|
93
|
-
assert(
|
|
88
|
+
assert.deepStrictEqual(originalJson, translatedJson);
|
|
94
89
|
});
|
|
95
90
|
|
|
96
91
|
it('Regions reversion', () => {
|
|
97
|
-
const
|
|
98
|
-
const
|
|
99
|
-
const
|
|
92
|
+
const originalJson = readJsonTestFile('regions.json');
|
|
93
|
+
const translatedBuffer = Translator.RegionsTranslator.jsonToWar(originalJson).buffer;
|
|
94
|
+
const translatedJson = Translator.RegionsTranslator.warToJson(translatedBuffer).json;
|
|
100
95
|
|
|
101
|
-
|
|
102
|
-
writeJsonFile('regions.json', result.json);
|
|
96
|
+
writeJsonTestFile('regions.json', translatedJson);
|
|
103
97
|
|
|
104
|
-
assert(
|
|
98
|
+
assert.deepStrictEqual(originalJson, translatedJson);
|
|
105
99
|
});
|
|
106
100
|
|
|
107
101
|
it('Cameras reversion', () => {
|
|
108
|
-
const
|
|
109
|
-
const
|
|
110
|
-
const
|
|
102
|
+
const originalJson = readJsonTestFile('cameras.json');
|
|
103
|
+
const translatedBuffer = Translator.CamerasTranslator.jsonToWar(originalJson).buffer;
|
|
104
|
+
const translatedJson = Translator.CamerasTranslator.warToJson(translatedBuffer).json;
|
|
111
105
|
|
|
112
|
-
|
|
113
|
-
writeJsonFile('cameras.json', result.json);
|
|
106
|
+
writeJsonTestFile('cameras.json', translatedJson);
|
|
114
107
|
|
|
115
|
-
assert(
|
|
108
|
+
assert.deepStrictEqual(originalJson, translatedJson);
|
|
116
109
|
});
|
|
117
110
|
|
|
118
111
|
it('Sounds reversion', () => {
|
|
119
|
-
const
|
|
120
|
-
const
|
|
121
|
-
const
|
|
112
|
+
const originalJson = readJsonTestFile('sounds.json');
|
|
113
|
+
const translatedBuffer = Translator.SoundsTranslator.jsonToWar(originalJson).buffer;
|
|
114
|
+
const translatedJson = Translator.SoundsTranslator.warToJson(translatedBuffer).json;
|
|
122
115
|
|
|
123
|
-
|
|
124
|
-
writeJsonFile('sounds.json', result.json);
|
|
116
|
+
writeJsonTestFile('sounds.json', translatedJson);
|
|
125
117
|
|
|
126
|
-
assert(
|
|
118
|
+
assert.deepStrictEqual(originalJson, translatedJson);
|
|
127
119
|
});
|
|
128
120
|
|
|
129
121
|
it('Units (Object) reversion', () => {
|
|
130
|
-
const
|
|
131
|
-
const
|
|
132
|
-
const translatedBuffer =
|
|
122
|
+
const originalJson = readJsonTestFile('obj-units.json');
|
|
123
|
+
const objectType = Translator.ObjectsTranslator.ObjectType.Units;
|
|
124
|
+
const translatedBuffer = Translator.ObjectsTranslator.jsonToWar(objectType, originalJson).buffer;
|
|
125
|
+
const translatedJson = Translator.ObjectsTranslator.warToJson(objectType, translatedBuffer).json;
|
|
133
126
|
|
|
134
|
-
|
|
135
|
-
writeJsonFile('object-units.json', result.json);
|
|
127
|
+
writeJsonTestFile('obj-units.json', translatedJson);
|
|
136
128
|
|
|
137
|
-
assert(
|
|
129
|
+
assert.deepStrictEqual(originalJson, translatedJson);
|
|
138
130
|
});
|
|
139
131
|
|
|
140
132
|
it('Items (Object) reversion', () => {
|
|
141
|
-
const
|
|
142
|
-
const
|
|
143
|
-
const translatedBuffer =
|
|
133
|
+
const originalJson = readJsonTestFile('obj-items.json');
|
|
134
|
+
const objectType = Translator.ObjectsTranslator.ObjectType.Items;
|
|
135
|
+
const translatedBuffer = Translator.ObjectsTranslator.jsonToWar(objectType, originalJson).buffer;
|
|
136
|
+
const translatedJson = Translator.ObjectsTranslator.warToJson(objectType, translatedBuffer).json;
|
|
144
137
|
|
|
145
|
-
|
|
146
|
-
writeJsonFile('object-items.json', result.json);
|
|
138
|
+
writeJsonTestFile('obj-items.json', translatedJson);
|
|
147
139
|
|
|
148
|
-
assert(
|
|
140
|
+
assert.deepStrictEqual(originalJson, translatedJson);
|
|
149
141
|
});
|
|
150
142
|
|
|
151
143
|
it('Destructables (Object) reversion', () => {
|
|
152
|
-
const
|
|
153
|
-
const
|
|
154
|
-
const translatedBuffer =
|
|
144
|
+
const originalJson = readJsonTestFile('obj-destructables.json');
|
|
145
|
+
const objectType = Translator.ObjectsTranslator.ObjectType.Destructables;
|
|
146
|
+
const translatedBuffer = Translator.ObjectsTranslator.jsonToWar(objectType, originalJson).buffer;
|
|
147
|
+
const translatedJson = Translator.ObjectsTranslator.warToJson(objectType, translatedBuffer).json;
|
|
155
148
|
|
|
156
|
-
|
|
157
|
-
writeJsonFile('object-destructables.json', result.json);
|
|
149
|
+
writeJsonTestFile('obj-destructables.json', translatedJson);
|
|
158
150
|
|
|
159
|
-
assert(
|
|
151
|
+
assert.deepStrictEqual(originalJson, translatedJson);
|
|
160
152
|
});
|
|
161
153
|
|
|
162
154
|
it('Doodads (Object) reversion', () => {
|
|
163
|
-
const
|
|
164
|
-
const
|
|
165
|
-
const translatedBuffer =
|
|
155
|
+
const originalJson = readJsonTestFile('obj-doodads.json');
|
|
156
|
+
const objectType = Translator.ObjectsTranslator.ObjectType.Doodads;
|
|
157
|
+
const translatedBuffer = Translator.ObjectsTranslator.jsonToWar(objectType, originalJson).buffer;
|
|
158
|
+
const translatedJson = Translator.ObjectsTranslator.warToJson(objectType, translatedBuffer).json;
|
|
166
159
|
|
|
167
|
-
|
|
168
|
-
writeJsonFile('object-doodads.json', result.json);
|
|
160
|
+
writeJsonTestFile('obj-doodads.json', translatedJson);
|
|
169
161
|
|
|
170
|
-
assert(
|
|
162
|
+
assert.deepStrictEqual(originalJson, translatedJson);
|
|
171
163
|
});
|
|
172
164
|
|
|
173
165
|
it('Abilities (Object) reversion', () => {
|
|
174
|
-
const
|
|
175
|
-
const
|
|
176
|
-
const translatedBuffer =
|
|
166
|
+
const originalJson = readJsonTestFile('obj-abilities.json');
|
|
167
|
+
const objectType = Translator.ObjectsTranslator.ObjectType.Abilities;
|
|
168
|
+
const translatedBuffer = Translator.ObjectsTranslator.jsonToWar(objectType, originalJson).buffer;
|
|
169
|
+
const translatedJson = Translator.ObjectsTranslator.warToJson(objectType, translatedBuffer).json;
|
|
177
170
|
|
|
178
|
-
|
|
179
|
-
writeJsonFile('object-abilities.json', result.json);
|
|
171
|
+
writeJsonTestFile('obj-abilities.json', translatedJson);
|
|
180
172
|
|
|
181
|
-
assert(
|
|
173
|
+
assert.deepStrictEqual(originalJson, translatedJson);
|
|
182
174
|
});
|
|
183
175
|
|
|
184
176
|
it('Buffs (Object) reversion', () => {
|
|
185
|
-
const
|
|
186
|
-
const
|
|
187
|
-
const translatedBuffer =
|
|
177
|
+
const originalJson = readJsonTestFile('obj-buffs.json');
|
|
178
|
+
const objectType = Translator.ObjectsTranslator.ObjectType.Buffs;
|
|
179
|
+
const translatedBuffer = Translator.ObjectsTranslator.jsonToWar(objectType, originalJson).buffer;
|
|
180
|
+
const translatedJson = Translator.ObjectsTranslator.warToJson(objectType, translatedBuffer).json;
|
|
188
181
|
|
|
189
|
-
|
|
190
|
-
writeJsonFile('object-buffs.json', result.json);
|
|
182
|
+
writeJsonTestFile('obj-buffs.json', translatedJson);
|
|
191
183
|
|
|
192
|
-
assert(
|
|
184
|
+
assert.deepStrictEqual(originalJson, translatedJson);
|
|
193
185
|
});
|
|
194
186
|
|
|
195
187
|
it('Upgrades (Object) reversion', () => {
|
|
196
|
-
const
|
|
197
|
-
const
|
|
198
|
-
const translatedBuffer =
|
|
188
|
+
const originalJson = readJsonTestFile('obj-upgrades.json');
|
|
189
|
+
const objectType = Translator.ObjectsTranslator.ObjectType.Upgrades;
|
|
190
|
+
const translatedBuffer = Translator.ObjectsTranslator.jsonToWar(objectType, originalJson).buffer;
|
|
191
|
+
const translatedJson = Translator.ObjectsTranslator.warToJson(objectType, translatedBuffer).json;
|
|
199
192
|
|
|
200
|
-
|
|
201
|
-
writeJsonFile('object-upgrades.json', result.json);
|
|
193
|
+
writeJsonTestFile('obj-upgrades.json', translatedJson);
|
|
202
194
|
|
|
203
|
-
assert(
|
|
195
|
+
assert.deepStrictEqual(originalJson, translatedJson);
|
|
204
196
|
});
|
|
205
197
|
|
|
206
198
|
it('Info reversion', () => {
|
|
207
|
-
const
|
|
208
|
-
const
|
|
209
|
-
|
|
210
|
-
const translatedBuffer = testTranslator.Info.jsonToWar(result.json).buffer;
|
|
199
|
+
const originalJson = readJsonTestFile('info.json');
|
|
200
|
+
const translatedBuffer = Translator.InfoTranslator.jsonToWar(originalJson).buffer;
|
|
201
|
+
const translatedJson = Translator.InfoTranslator.warToJson(translatedBuffer).json;
|
|
211
202
|
|
|
212
|
-
|
|
213
|
-
writeJsonFile('info.json', result.json);
|
|
203
|
+
writeJsonTestFile('info.json', translatedJson);
|
|
214
204
|
|
|
215
|
-
assert(
|
|
205
|
+
assert.deepStrictEqual(originalJson, translatedJson);
|
|
216
206
|
});
|
|
217
207
|
|
|
218
208
|
it('Imports reversion', () => {
|
|
219
|
-
const
|
|
220
|
-
const
|
|
221
|
-
const
|
|
209
|
+
const originalJson = readJsonTestFile('imports.json');
|
|
210
|
+
const translatedBuffer = Translator.ImportsTranslator.jsonToWar(originalJson).buffer;
|
|
211
|
+
const translatedJson = Translator.ImportsTranslator.warToJson(translatedBuffer).json;
|
|
222
212
|
|
|
223
|
-
|
|
224
|
-
writeJsonFile('imports.json', result.json);
|
|
213
|
+
writeJsonTestFile('imports.json', translatedJson);
|
|
225
214
|
|
|
226
|
-
assert(
|
|
215
|
+
assert.deepStrictEqual(originalJson, translatedJson);
|
|
227
216
|
});
|
|
228
217
|
|
|
229
218
|
});
|
package/test/W3BufferTest.ts
CHANGED
|
@@ -5,10 +5,12 @@ import { W3Buffer } from '../lib/W3Buffer';
|
|
|
5
5
|
// on W3Buffer. It consists of, in this order:
|
|
6
6
|
// char(4), int, float, string(7 Ws), byte
|
|
7
7
|
const buffData = Buffer.from([
|
|
8
|
-
0x57, 0x33, 0x64, 0x6f, // char(4): "W3do"
|
|
9
8
|
0x01, 0x00, 0x00, 0x00, // int: 1
|
|
9
|
+
0x81, 0x70, // short: 28801
|
|
10
10
|
0x00, 0x00, 0x9b, 0xc5, // float: -4960
|
|
11
11
|
0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x00, // string: "WWWWWWW"
|
|
12
|
+
0x57, 0x33, 0x64, 0x6f, // char(4): "W3do"
|
|
13
|
+
0x57, // char(1): "W"
|
|
12
14
|
0x02 // byte: 2
|
|
13
15
|
]);
|
|
14
16
|
|
|
@@ -16,29 +18,33 @@ const w3buffer = new W3Buffer(buffData);
|
|
|
16
18
|
|
|
17
19
|
describe('W3Buffer', () => {
|
|
18
20
|
|
|
19
|
-
it('should
|
|
20
|
-
|
|
21
|
-
assert.equal(result, 'W3do');
|
|
21
|
+
it('should readInt', () => {
|
|
22
|
+
assert.equal(w3buffer.readInt(), 1);
|
|
22
23
|
});
|
|
23
24
|
|
|
24
|
-
it('should
|
|
25
|
-
|
|
26
|
-
assert.equal(result, 1);
|
|
25
|
+
it('should readShort', () => {
|
|
26
|
+
assert.equal(w3buffer.readShort(), 28801);
|
|
27
27
|
});
|
|
28
28
|
|
|
29
29
|
it('should readFloat', () => {
|
|
30
|
-
|
|
31
|
-
assert.equal(result, -4960);
|
|
30
|
+
assert.equal(w3buffer.readFloat(), -4960);
|
|
32
31
|
});
|
|
33
32
|
|
|
34
33
|
it('should readString', () => {
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
assert.equal(w3buffer.readString(), 'WWWWWWW');
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('should readChars', () => {
|
|
38
|
+
assert.equal(w3buffer.readChars(4), 'W3do');
|
|
39
|
+
assert.equal(w3buffer.readChars(), 'W')
|
|
37
40
|
});
|
|
38
41
|
|
|
39
42
|
it('should readByte', () => {
|
|
40
|
-
|
|
41
|
-
|
|
43
|
+
assert.equal(w3buffer.readByte(), 2);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it('should be exhausted', () => {
|
|
47
|
+
assert.ok(w3buffer.isExhausted());
|
|
42
48
|
});
|
|
43
49
|
|
|
44
50
|
});
|