-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.js
43 lines (35 loc) · 2.58 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
const test = require("flug");
const { ModelTransform, Geotransform, PreciseGeotransform, PreciseModelTransform } = require("./index.js");
test("Geotransform", ({ eq }) => {
const geotransform = [337934.4836350695, -0.14299987236417117, -0.5767759114507439, 7840518.464866471, -0.5767759114507457, 0.14299987236414916];
const { forward, inverse } = Geotransform(geotransform);
eq(forward([0, 0]), [337934.4836350695, 7840518.464866471]);
eq(forward([100, 100]), [337862.50605668797, 7840475.087262562]);
eq(inverse([337934.4836350695, 7840518.464866471], { round: true }), [-0, -0]);
eq(inverse([337862.50605668797, 7840475.087262562], { round: true }), [100, 100]);
});
test("PreciseGeotransform", ({ eq }) => {
const geotransform = [337934.4836350695, -0.14299987236417117, -0.5767759114507439, 7840518.464866471, -0.5767759114507457, 0.14299987236414916];
const { forward, inverse } = PreciseGeotransform(geotransform);
eq(forward([0, 0]), ["337934.4836350695", "7840518.464866471"]);
eq(forward([33.125, 67.825]), ["337890.62693810329012497625", "7840509.0581307472924654645"]);
eq(forward([100, 100]), ["337862.506056688008493", "7840475.087262562340346"]);
eq(inverse([337934.4836350695, 7840518.464866471]).toString(), "0,0");
eq(inverse([336934, 7841518], { digits: 4 }).toString(), "-1227.4566,2038.937");
eq(inverse(["337890.62693810329012497625", "7840509.0581307472924654645"]), ["33.125", "67.825"]);
eq(inverse(["337890.62693810329012497625", "7840509.0581307472924654645"], { floor: true }), ["33", "67"]);
eq(inverse([337862.50605668797, 7840475.087262562], { digits: 4 }).toString(), "100,100");
eq(inverse(["337862.506056688008493", "7840475.087262562340346"]), ["100", "100"]);
});
test("ModelTransform", ({ eq }) => {
const matrix = [-0.14299987236417117, -0.5767759114507439, 0, 337934.4836350695, -0.5767759114507457, 0.14299987236414916, 0, 7840518.464866471, 0, 0, 0, 0, 0, 0, 0, 1];
const { forward, inverse } = ModelTransform(matrix);
eq(forward([2000, 2000]), [336494.9320674397, 7839650.912788297]);
eq(inverse([336780.9318121680122, 7840804.46461119929832], { round: true }), [-0, 2000]);
});
test("PreciseModelTransform", ({ eq }) => {
const matrix = [-0.14299987236417117, -0.5767759114507439, 0, 337934.4836350695, -0.5767759114507457, 0.14299987236414916, 0, 7840518.464866471, 0, 0, 0, 0, 0, 0, 0, 1];
const { forward, inverse } = PreciseModelTransform(matrix);
eq(forward([2000, 2000]), ["336494.93206743966986", "7839650.91278829780692"]);
eq(inverse(["336494.93206743966986", "7839650.91278829780692"], { round: true }), ["2000", "2000"]);
});