Skip to content

Commit 4188a4a

Browse files
committed
测试
1 parent f62d8b2 commit 4188a4a

File tree

2 files changed

+34
-4
lines changed

2 files changed

+34
-4
lines changed

range-module/RangeModule.test.ts

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { assertEquals } from "../deps.ts";
1+
import { assertEquals, runScript } from "../deps.ts";
22
import RangeModule from "./index.ts";
33

44
const { test } = Deno;
@@ -10,3 +10,31 @@ test("RangeModule", () => {
1010
assertEquals(false, rangeModule.queryRange(13, 15)); //返回 false(未跟踪区间 [13, 15) 中像 14, 14.03, 14.17 这样的数字)
1111
assertEquals(true, rangeModule.queryRange(16, 17)); //返回 true (尽管执行了删除操作,区间 [16, 17) 中的数字 16 仍然会被跟踪)
1212
});
13+
test("RangeModule", () => {
14+
assertEquals(
15+
[null, null, false, null, null, null, true, null, true, null],
16+
runScript([
17+
"RangeModule",
18+
"addRange",
19+
"queryRange",
20+
"removeRange",
21+
"removeRange",
22+
"addRange",
23+
"queryRange",
24+
"addRange",
25+
"queryRange",
26+
"removeRange",
27+
], [
28+
[],
29+
[5, 8],
30+
[3, 4],
31+
[5, 6],
32+
[3, 6],
33+
[1, 3],
34+
[2, 3],
35+
[4, 8],
36+
[2, 3],
37+
[4, 9],
38+
], RangeModule),
39+
);
40+
});

range-module/index.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { searchSegmentLeaf } from "../mod.ts";
22
import { SegmentTree } from "../my-calendar-iii/SegmentTree.ts";
33

4-
54
/**
65
* 这个代码实现了一个RangeModule类,该类用于管理一系列不重叠的数字范围,并支持添加、查询和移除操作。使用了区间树(Segment Tree)数据结构来高效地处理这些操作。
76
*/
@@ -39,7 +38,8 @@ export default class RangeModule {
3938
) {
4039
this.#root = /** 范围模块树结构的根节点 */
4140
SegmentTree(
42-
left, right
41+
left,
42+
right,
4343
);
4444
}
4545
/**添加指定范围的方法 */
@@ -72,7 +72,9 @@ export default class RangeModule {
7272
#update_parents(nodes: SegmentTree[]) {
7373
for (let i = nodes.length - 1; i >= 0; i--) {
7474
const node = nodes[i];
75-
node.value = node.children.every((child) => child.value > 0) ? 1 : 0;
75+
node.value = node.children.every((child) => child.value > 0)
76+
? 1
77+
: 0;
7678
}
7779
}
7880
/**合并子节点的方法 */

0 commit comments

Comments
 (0)