• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Nic30 / d3-wave / 173e4429-8dd4-4410-aa8e-d024e272ef34

pending completion
173e4429-8dd4-4410-aa8e-d024e272ef34

push

circleci

Nic30
v1.1.5

212 of 377 branches covered (56.23%)

Branch coverage included in aggregate %.

612 of 867 relevant lines covered (70.59%)

70.58 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

65.67
/src/filterData.js
1
"use strict";
2

3
import { binarySearch } from './binarySearch.js'
4

5
export function filterDataByTime(data, rowRange) {
6
        // return list ([time, value, duration])
7
        var min = rowRange[0];
258✔
8
        if (min < 0) { throw new Error('min time has to be >= 0'); }
258!
9
        var max = rowRange[1];
258✔
10
        var _data = [];
258✔
11

12
        function boundaryCheckFn(ar, el) {
13
                if (el[0] < ar[0][0]) { return 0; }
258✔
14
                if (el[0] > ar[ar.length - 1][0]) { return ar.length; }
212!
15
                return -1;
212✔
16
        }
17
        for (var i = binarySearch(data, [min,], (a, b) => { return a[0] - b[0]; }, boundaryCheckFn); i < data.length; i++) {
440✔
18
                if (i < 0)
1,186!
19
                    break;
×
20
                var d = data[i];
1,186✔
21
                var t = d[0];
1,186✔
22

23
                if (t < min) {
1,186!
24
                        // data before actual dataset
25
                } else if (t <= max) {
1,186✔
26
                        let prev = data[i - 1];
1,184✔
27
                        if (_data.length === 0 && t !== min) {
1,184✔
28
                                // first data, unaligned
29
                                let prevVal;
30
                                if (!prev) {
46!
31
                                        prevVal = 'bX';
46✔
32
                                } else {
33
                                        prevVal = prev[1];
×
34
                                }
35
                                _data.push([min, prevVal, t - min]);
46✔
36
                        }
37
                        // normal data in range
38
                        var next = data[i + 1];
1,184✔
39
                        var nextTime;
40
                        if (next) {
1,184✔
41
                                nextTime = Math.min(max, next[0]);
928✔
42
                        } else {
43
                                nextTime = max;
256✔
44
                        }
45

46
                        _data.push([t, d[1], nextTime - t]);
1,184✔
47
                } else {
48
                        if (_data.length === 0) {
2!
49
                                // selection range smaller than one data item
50
                                let prev = data[i - 1];
×
51
                                let prevVal;
52
                                if (!prev) {
×
53
                                        prevVal = 'bX';
×
54
                                } else {
55
                                        prevVal = prev[1];
×
56
                                }
57
                                _data.push([min, prevVal, max - min]);
×
58
                        }
59
                        // after selected range
60
                        break;
2✔
61
                }
62
        }
63

64
        if (_data.length === 0) {
258!
65
                // no new data after selected range
66
                var last = data[data.length - 1];
×
67
                var lastVal;
68
                if (!last) {
×
69
                        lastVal = 'bX';
×
70
                } else {
71
                        lastVal = last[1];
×
72
                }
73
                _data.push([min, lastVal, max - min]);
×
74
        }
75

76
        return _data;
258✔
77
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc