Skip to content

Commit 00fbba5

Browse files
committedJun 6, 2018
Update tests.
1 parent 183dade commit 00fbba5

File tree

2 files changed

+32
-13
lines changed

2 files changed

+32
-13
lines changed
 

‎src/data-structures/tree/fenwick-tree/FenwickTree.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ export default class FenwickTree {
1313
}
1414

1515
/**
16-
* Adds value to position.
16+
* Adds value to existing value at position.
1717
*
1818
* @param {number} position
1919
* @param {number} value
2020
* @return {FenwickTree}
2121
*/
22-
update(position, value) {
22+
increase(position, value) {
2323
if (position < 1 || position > this.arraySize) {
2424
throw new Error('Position is out of allowed range');
2525
}

‎src/data-structures/tree/fenwick-tree/__test__/FenwickTree.test.js

+30-11
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ describe('FenwickTree', () => {
2020
expect(tree.treeArray.length).toBe(inputArray.length + 1);
2121

2222
inputArray.forEach((value, index) => {
23-
tree.update(index + 1, value);
23+
tree.increase(index + 1, value);
2424
});
2525

2626
expect(tree.treeArray).toEqual([0, 3, 5, -1, 10, 5, 9, -3, 19, 7, 9, 3]);
@@ -41,23 +41,42 @@ describe('FenwickTree', () => {
4141
expect(tree.queryRange(1, 2)).toBe(5);
4242
expect(tree.queryRange(2, 4)).toBe(7);
4343
expect(tree.queryRange(6, 9)).toBe(11);
44+
45+
tree.increase(3, 1);
46+
47+
expect(tree.query(1)).toBe(3);
48+
expect(tree.query(2)).toBe(5);
49+
expect(tree.query(3)).toBe(5);
50+
expect(tree.query(4)).toBe(11);
51+
expect(tree.query(5)).toBe(16);
52+
expect(tree.query(6)).toBe(20);
53+
expect(tree.query(7)).toBe(17);
54+
expect(tree.query(8)).toBe(20);
55+
expect(tree.query(9)).toBe(27);
56+
expect(tree.query(10)).toBe(29);
57+
expect(tree.query(11)).toBe(32);
58+
59+
expect(tree.queryRange(1, 1)).toBe(3);
60+
expect(tree.queryRange(1, 2)).toBe(5);
61+
expect(tree.queryRange(2, 4)).toBe(8);
62+
expect(tree.queryRange(6, 9)).toBe(11);
4463
});
4564

4665
it('should correctly execute queries', () => {
4766
const tree = new FenwickTree(5);
4867

49-
tree.update(1, 4);
50-
tree.update(3, 7);
68+
tree.increase(1, 4);
69+
tree.increase(3, 7);
5170

5271
expect(tree.query(1)).toBe(4);
5372
expect(tree.query(3)).toBe(11);
5473
expect(tree.query(5)).toBe(11);
5574
expect(tree.queryRange(2, 3)).toBe(7);
5675

57-
tree.update(2, 5);
76+
tree.increase(2, 5);
5877
expect(tree.query(5)).toBe(16);
5978

60-
tree.update(1, 3);
79+
tree.increase(1, 3);
6180
expect(tree.queryRange(1, 1)).toBe(7);
6281
expect(tree.query(5)).toBe(19);
6382
expect(tree.queryRange(1, 5)).toBe(19);
@@ -66,12 +85,12 @@ describe('FenwickTree', () => {
6685
it('should throw exceptions', () => {
6786
const tree = new FenwickTree(5);
6887

69-
const updateAtInvalidLowIndex = () => {
70-
tree.update(0, 1);
88+
const increaseAtInvalidLowIndex = () => {
89+
tree.increase(0, 1);
7190
};
7291

73-
const updateAtInvalidHighIndex = () => {
74-
tree.update(10, 1);
92+
const increaseAtInvalidHighIndex = () => {
93+
tree.increase(10, 1);
7594
};
7695

7796
const queryInvalidLowIndex = () => {
@@ -86,8 +105,8 @@ describe('FenwickTree', () => {
86105
tree.queryRange(3, 2);
87106
};
88107

89-
expect(updateAtInvalidLowIndex).toThrowError();
90-
expect(updateAtInvalidHighIndex).toThrowError();
108+
expect(increaseAtInvalidLowIndex).toThrowError();
109+
expect(increaseAtInvalidHighIndex).toThrowError();
91110
expect(queryInvalidLowIndex).toThrowError();
92111
expect(queryInvalidHighIndex).toThrowError();
93112
expect(rangeQueryInvalidIndex).toThrowError();

0 commit comments

Comments
 (0)
Please sign in to comment.