-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathPile.test.js
More file actions
81 lines (73 loc) · 2.07 KB
/
Pile.test.js
File metadata and controls
81 lines (73 loc) · 2.07 KB
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import Pile from './Pile';
function getPile(items) {
var pile = Pile();
for (var index = 0, len = items.length; index < len; index += 1) {
var item = items[index];
pile.add(item[0], item[1], item);
}
return pile;
}
test('Pile should have two rows', () => {
const items = [[1, 3], [2, 4], [3, 5], [4, 6], [5, 7], [6, 8], [7, 9], [8, 10], [9, 11], [10, 12], [11, 13], [12, 14]];
const pile = getPile(items);
var result = {};
var pileHeight = pile.resolve(this, function (from, to, context, offset) {
if (!result.hasOwnProperty(offset)) {
result[offset] = [];
}
result[offset].push(context);
});
expect(pileHeight).toBe(2);
expect(result).toEqual({
"0": [[2, 4], [4, 6], [6, 8], [8, 10], [10, 12], [12, 14]],
"1": [[1, 3], [3, 5], [5, 7], [7, 9], [9, 11], [11, 13]]
});
});
test('Pile should have 6 rows', () => {
const items = [
[5, 10], [10, 15],
[12.5, 13], [13, 14.5],
[1, 10], [12, 14],
[5, 13],
[2, 7], [8, 10], [12, 14],
[12, 13], [13.5, 15]
];
const pile = getPile(items);
var result = {};
var pileHeight = pile.resolve(this, function (from, to, context, offset) {
if (!result.hasOwnProperty(offset)) {
result[offset] = [];
}
result[offset].push(context);
});
expect(pileHeight).toBe(6);
expect(result).toEqual({
"0": [[2, 7], [8, 10], [12.5, 13], [13.5, 15]],
"1": [[5, 10], [12, 13], [13, 14.5]],
"2": [[1, 10], [12, 14]],
"3": [[12, 14]],
"4": [[10, 15]],
"5": [[5, 13]]
});
});
test('Pile should have 2 rows', () => {
const items = [
[70, 90], [70, 80],
[10, 20], [30, 40],
[36, 65], [50, 60],
[10, 35]
];
const pile = getPile(items);
var result = {};
var pileHeight = pile.resolve(this, function (from, to, context, offset) {
if (!result.hasOwnProperty(offset)) {
result[offset] = [];
}
result[offset].push(context);
});
expect(pileHeight).toBe(2);
expect(result).toEqual({
"0": [[10, 20], [30, 40], [50, 60], [70, 80]],
"1": [[10, 35], [36, 65], [70, 90]]
});
});