-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.js
60 lines (58 loc) · 1.51 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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
'use strict';
var rejigger = require('.');
var msg = {
time: {
event_time: '2017-03-07T13:01:11.000Z',
server_time: '2017-03-07T13:02:14.941Z'
},
priority: 0,
priority_label: 'Low',
gps: {
latitude: 59.131676,
longitude: 10.196493,
altitude: 155,
angle: 250,
satellites: 14,
speed: 0
},
event_id: 248,
io_elements: {
inputs: [1,0],
outputs: [1,1]
}
};
var test = rejigger({
trans_reason: 'get(event_id) == 248 ? 69 : (get(event_id) == 247 ? 53 : 44)',
num_of_satellites: 'get(gps.satellites)',
latitude: 'get(gps.latitude)',
longitude: 'get(gps.longitude)',
altitude: 'get(gps.altitude)',
speed: 'get(gps.speed)',
logged_time: 'get(time.event_time)',
logged_time_server: 'get(time.server_time)',
digital_in_1: 'get(io_elements.inputs.0)',
digital_in_2: 'get(io_elements.inputs.1)',
IO: {
digital_in_1: 'get(io_elements.inputs.0)',
digital_in_2: 'get(io_elements.inputs.1)'
},
IOarr: [
'get(io_elements.inputs.0)',
'get(io_elements.inputs.1)',
'get(io_elements.outputs.0)',
'get(io_elements.outputs.1)'
],
digital_out_A: 'get(io_elements.outputs.0)',
digital_out_B: 'get(io_elements.outputs.1)',
error_maybe: 'get(none.of.these.properties.exist)'
});
console.log(test.toString());
console.log('test:', test(msg));
var start = Date.now(),
l = 25000,
i = l;
while(--i) {
test(msg);
}
var diff = Date.now() - start;
console.log('Rejiggering the test object ' + l + ' times took ' + diff + ' ms, indicating a speed of ' + Math.floor(1000 / diff * l) + ' rejiggerations per second.');