TreeMap.test.js 11.7 KB
Newer Older
L
liuganlin 已提交
1
/*
L
liuganlin 已提交
2
 * Copyright (C) 2022 Huawei Device Co., Ltd.
L
liuganlin 已提交
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
 * Licensed under the Apache License, Version 2.0 (the 'License')
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an 'AS IS' BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index';
import TreeMap from "@ohos.util.TreeMap";

describe("TreeMapTest", function () {
  it("SR000GGR3H_testConstructor001", 0, function () {
    try {
      let treeMap = new TreeMap();
      expect(treeMap != undefined).assertEqual(true);
    } catch (err) {
L
liuganlin 已提交
24 25
      expect(err.name).assertEqual("TypeError");
      expect(err.message).assertEqual("Cannot create new TreeMap");
L
liuganlin 已提交
26 27
    }
  });
L
liuganlin 已提交
28
  it("SR000GGR3H_testSet002", 0, function () {
L
liuganlin 已提交
29 30 31 32 33
    let treeMap = new TreeMap();
    treeMap.set(0, "");
    let res = treeMap.get(0);
    expect(res).assertEqual("");
  });
L
liuganlin 已提交
34
  it("SR000GGR3H_testSet003", 0, function () {
L
liuganlin 已提交
35 36 37 38 39
    let treeMap = new TreeMap();
    treeMap.set(0, 8);
    let res = treeMap.get(0);
    expect(res).assertEqual(8);
  });
L
liuganlin 已提交
40
  it("SR000GGR3H_testSet004", 0, function () {
L
liuganlin 已提交
41 42 43 44 45 46
    let treeMap = new TreeMap();
    let a = [1, 2, 3, 4];
    treeMap.set(0, a);
    let res = treeMap.get(0);
    expect(res).assertEqual(a);
  });
L
liuganlin 已提交
47
  it("SR000GGR3H_testSet005", 0, function () {
L
liuganlin 已提交
48 49 50 51 52 53
    let treeMap = new TreeMap();
    let a = {name: "lala", age: "13"};
    treeMap.set(0, a);
    let res = treeMap.get(0);
    expect(res).assertEqual(a);
  });
L
liuganlin 已提交
54
  it("SR000GGR3H_testSet006", 0, function () {
L
liuganlin 已提交
55 56 57 58 59
    let treeMap = new TreeMap();
    treeMap.set(2, "*");
    let res = treeMap.get(2);
    expect(res).assertEqual("*");
  });
L
liuganlin 已提交
60
  it("SR000GGR3H_testSet007", 0, function () {
L
liuganlin 已提交
61 62 63 64 65
    let treeMap = new TreeMap();
    treeMap.set(-2, 3.14);
    let res = treeMap.get(-2);
    expect(res).assertEqual(3.14);
  });
L
liuganlin 已提交
66
  it("SR000GGR3H_testSet008", 0, function () {
L
liuganlin 已提交
67 68 69 70 71
    let treeMap = new TreeMap();
    treeMap.set(100, true);
    let res = treeMap.get(100);
    expect(res).assertEqual(true);
  });
L
liuganlin 已提交
72
  it("SR000GGR3H_testSet009", 0, function () {
L
liuganlin 已提交
73 74 75 76 77
    let treeMap = new TreeMap();
    treeMap.set(100, "");
    let res = treeMap.get(100);
    expect(res).assertEqual("");
  });
L
liuganlin 已提交
78
  it("SR000GGR3H_testSet010", 0, function () {
L
liuganlin 已提交
79 80 81 82 83
    let treeMap = new TreeMap();
    treeMap.set("a", "");
    let res = treeMap.get("a");
    expect(res).assertEqual("");
  });
L
liuganlin 已提交
84
  it("SR000GGR3H_testSet011", 0, function () {
L
liuganlin 已提交
85 86 87 88 89 90 91 92
    let treeMap = new TreeMap();
    for (let i = 0; i < 10000; i++) {
      treeMap.set(0, 8);
    }
    let res = treeMap.get(0);
    expect(res).assertEqual(8);
    expect(treeMap.length).assertEqual(1);
  });
L
liuganlin 已提交
93
  it("SR000GGR3H_testHasKey012", 0, function () {
L
liuganlin 已提交
94 95 96 97 98 99 100 101
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    let res = treeMap.hasKey(1);
    expect(res).assertEqual(true);
    let res1 = treeMap.hasKey(6);
    expect(res1).assertEqual(false);
  });
L
liuganlin 已提交
102
  it("SR000GGR3H_testHasValue013", 0, function () {
L
liuganlin 已提交
103 104 105 106 107 108 109 110 111
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    treeMap.set(2, "c");
    let res = treeMap.hasValue("a");
    expect(res).assertEqual(true);
    let res1 = treeMap.hasValue("d");
    expect(res1).assertEqual(false);
  });
L
liuganlin 已提交
112
  it("SR000GGR3H_testGet014", 0, function () {
L
liuganlin 已提交
113 114 115 116 117 118 119
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    treeMap.set(2, "c");
    let res = treeMap.get(1);
    expect(res).assertEqual("b");
  });
L
liuganlin 已提交
120
  it("SR000GGR3H_testGet015", 0, function () {
L
liuganlin 已提交
121
    let treeMap = new TreeMap();
L
liuganlin 已提交
122 123
    let res = treeMap.get(1);
    expect(res).assertEqual(undefined);
L
liuganlin 已提交
124
  });
L
liuganlin 已提交
125
  it("SR000GGR3H_testGet016", 0, function () {
L
liuganlin 已提交
126 127 128 129
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.clear();
    expect(treeMap.length).assertEqual(0);
L
liuganlin 已提交
130 131
    let res = treeMap.get(0);
     expect(res).assertEqual(undefined);
L
liuganlin 已提交
132
  });
L
liuganlin 已提交
133
  it("SR000GGR3H_testGetFirstKey017", 0, function () {
L
liuganlin 已提交
134 135 136 137 138 139 140
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    treeMap.set(2, "c");
    let res = treeMap.getFirstKey();
    expect(res).assertEqual(0);
  });
L
liuganlin 已提交
141
  it("SR000GGR3H_testGetFirstKey018", 0, function () {
L
liuganlin 已提交
142
    let treeMap = new TreeMap();
L
liuganlin 已提交
143 144
    let res = treeMap.getFirstKey();
    expect(res).assertEqual(undefined);
L
liuganlin 已提交
145
  });
L
liuganlin 已提交
146
  it("SR000GGR3H_testGetLastKey019", 0, function () {
L
liuganlin 已提交
147 148 149 150 151 152 153
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    treeMap.set(2, "c");
    let res = treeMap.getLastKey();
    expect(res).assertEqual(2);
  });
L
liuganlin 已提交
154
  it("SR000GGR3H_testGetLastKey020", 0, function () {
L
liuganlin 已提交
155
    let treeMap = new TreeMap();
L
liuganlin 已提交
156 157
    let res = treeMap.getLastKey();
    expect(res).assertEqual(undefined);
L
liuganlin 已提交
158
  });
L
liuganlin 已提交
159
  it("SR000GGR3H_testSetAll021", 0, function () {
L
liuganlin 已提交
160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    let treeMap1 = new TreeMap();
    treeMap1.set(0, "a");
    treeMap1.set(1, "b");
    treeMap1.set(2, "c");
    treeMap.setAll(treeMap1);
    let res = treeMap.get(0);
    expect(res).assertEqual("a");
    let res1 = treeMap.get(1);
    expect(res1).assertEqual("b");
    let res2 = treeMap.get(2);
    expect(res2).assertEqual("c");
  });
L
liuganlin 已提交
175
  it("SR000GGR3H_testRemove022", 0, function () {
L
liuganlin 已提交
176 177 178 179 180 181 182
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    treeMap.set(2, "c");
    let res = treeMap.remove(1);
    expect(res).assertEqual("b");
  });
L
liuganlin 已提交
183
  it("SR000GGR3H_testRemove023", 0, function () {
L
liuganlin 已提交
184 185 186
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    let res = treeMap.remove(1);
L
liuganlin 已提交
187
    expect(res).assertEqual(undefined);
L
liuganlin 已提交
188
  });
L
liuganlin 已提交
189
  it("SR000GGR3H_testClear024", 0, function () {
L
liuganlin 已提交
190 191 192 193 194 195 196 197
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    treeMap.set(2, "c");
    treeMap.clear();
    let res = treeMap.length;
    expect(res).assertEqual(0);
  });
L
liuganlin 已提交
198
  it("SR000GGR3H_testClear025", 0, function () {
L
liuganlin 已提交
199 200 201 202 203 204 205 206 207 208 209
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    treeMap.set(2, "c");
    treeMap.clear();
    let res = treeMap.length;
    expect(res).assertEqual(0);
    treeMap.set(3, "d");
    let va = treeMap.get(3);
    expect(va).assertEqual("d");
  });
L
liuganlin 已提交
210
  it("SR000GGR3H_testGetLowerKey026", 0, function () {
L
liuganlin 已提交
211 212 213 214 215 216 217 218 219
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    treeMap.set(2, "c");
    treeMap.set(3, "d");
    treeMap.set(4, "g");
    let res = treeMap.getLowerKey(2);
    expect(res).assertEqual(1);
  });
L
liuganlin 已提交
220
  it("SR000GGR3H_testGetLowerKey027", 0, function () {
L
liuganlin 已提交
221
    let treeMap = new TreeMap();
L
liuganlin 已提交
222 223
    let res = treeMap.getLowerKey(2);
    expect(res).assertEqual(undefined);
L
liuganlin 已提交
224
  });
L
liuganlin 已提交
225
  it("SR000GGR3H_testGetHigherKey028", 0, function () {
L
liuganlin 已提交
226 227 228 229 230 231 232 233 234
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    treeMap.set(2, "c");
    treeMap.set(3, "d");
    treeMap.set(4, "g");
    let res = treeMap.getHigherKey(2);
    expect(res).assertEqual(3);
  });
L
liuganlin 已提交
235
  it("SR000GGR3H_testGetHigherKey029", 0, function () {
L
liuganlin 已提交
236
    let treeMap = new TreeMap();
L
liuganlin 已提交
237 238
    let res = treeMap.getHigherKey(2);
    expect(res).assertEqual(undefined);
L
liuganlin 已提交
239
  });
L
liuganlin 已提交
240
  it("SR000GGR3H_testKeys030", 0, function () {
L
liuganlin 已提交
241 242 243 244 245 246 247 248 249 250 251 252 253
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    treeMap.set(2, "c");
    treeMap.set(3, "d");
    treeMap.set(4, "g");
    let res = treeMap.keys();
    expect(res.next().value).assertEqual(0);
    expect(res.next().value).assertEqual(1);
    expect(res.next().value).assertEqual(2);
    expect(res.next().value).assertEqual(3);
    expect(res.next().value).assertEqual(4);
  });
L
liuganlin 已提交
254
  it("SR000GGR3H_testValues031", 0, function () {
L
liuganlin 已提交
255 256 257 258 259 260 261 262 263 264 265 266 267
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    treeMap.set(2, "c");
    treeMap.set(3, "d");
    treeMap.set(4, "g");
    let res = treeMap.values();
    expect(res.next().value).assertEqual("a");
    expect(res.next().value).assertEqual("b");
    expect(res.next().value).assertEqual("c");
    expect(res.next().value).assertEqual("d");
    expect(res.next().value).assertEqual("g");
  });
L
liuganlin 已提交
268
  it("SR000GGR3H_testReplace032", 0, function () {
L
liuganlin 已提交
269 270 271 272 273 274 275 276 277 278
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    treeMap.set(2, "c");
    treeMap.set(3, "d");
    treeMap.set(4, "g");
    let res = treeMap.replace(2, "B");
    let res1 = treeMap.get(2);
    expect(res1).assertEqual("B");
  });
L
liuganlin 已提交
279
  it("SR000GGR3H_testReplace033", 0, function () {
L
liuganlin 已提交
280 281 282 283
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    let res = treeMap.replace(2, "B");
    expect(res).assertEqual(false);
L
liuganlin 已提交
284 285
    let res1 = treeMap.get(2);
    expect(res1).assertEqual(undefined);
L
liuganlin 已提交
286
  });
L
liuganlin 已提交
287
  it("SR000GGR3H_testLength034", 0, function () {
L
liuganlin 已提交
288 289 290 291 292 293 294 295 296
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    treeMap.set(2, "c");
    treeMap.set(3, "d");
    treeMap.set(4, "g");
    let res = treeMap.length;
    expect(res).assertEqual(5);
  });
L
liuganlin 已提交
297
  it("SR000GGR3H_testLength035", 0, function () {
L
liuganlin 已提交
298 299 300 301
    let treeMap = new TreeMap();
    let res = treeMap.length;
    expect(res).assertEqual(0);
  });
L
liuganlin 已提交
302
  it("SR000GGR3H_testForEach036", 0, function () {
L
liuganlin 已提交
303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    treeMap.set(2, "c");
    treeMap.set(3, "d");
    treeMap.set(4, "g");
    let arr1 = [];
    let arr2 = [];
    treeMap.forEach((value, key) => {
      arr1.push(value);
    });
    treeMap.forEach((value, key) => {
      arr2.push(key);
    });
    let arr = ["a", "b", "c", "d", "g"];
    for (let i = 0; i < arr1.length; i++) {
      expect(arr[i]).assertEqual(arr1[i]);
    }
    let arr3 = [0, 1, 2, 3, 4];
    for (let i = 0; i < arr3.length; i++) {
      expect(arr3[i]).assertEqual(arr2[i]);
    }
  });
L
liuganlin 已提交
326
  it("SR000GGR3H_testEntries037", 0, function () {
L
liuganlin 已提交
327 328 329 330 331 332
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    treeMap.set(2, "c");
    treeMap.set(3, "d");
    treeMap.set(4, "g");
L
liuganlin 已提交
333 334 335 336 337 338 339 340 341
    let entries = treeMap.entries();
    let flag = true;
    for (let i = 0, len = treeMap.length; i < len; i++) {
      let entry = entries.next().value;
      let res = treeMap.get(entry[0]);
      if (res != entry[1]) {
        flag = false;
        break;
      }
L
liuganlin 已提交
342
    }
L
liuganlin 已提交
343
    expect(flag).assertEqual(true);
L
liuganlin 已提交
344
  });
L
liuganlin 已提交
345
  it("SR000GGR3H_testIterator038", 0, function () {
L
liuganlin 已提交
346 347 348 349 350 351 352 353 354 355 356 357 358 359 360
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    treeMap.set(2, "c");
    treeMap.set(3, "d");
    treeMap.set(4, "g");
    let arr = ["0,a", "1,b", "2,c", "3,d", "4,g"];
    let iterArr = [];
    for (let [key, value] of treeMap) {
      iterArr.push(key + "," + value);
    }
    for (let i = 0; i < arr.length; i++) {
      expect(arr[i]).assertEqual(iterArr[i]);
    }
  });
L
liuganlin 已提交
361
  it("SR000GGR3H_testIterator039", 0, function () {
L
liuganlin 已提交
362 363 364 365 366 367
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    treeMap.set(2, "c");
    treeMap.set(3, "d");
    treeMap.set(4, "g");
L
liuganlin 已提交
368 369 370 371 372 373 374 375 376
    let iters = treeMap[Symbol.iterator]();
    let flag = true;
    for (let i = 0, len = treeMap.length; i < len; i++) {
      let entry = iters.next().value;
      let res = treeMap.get(entry[0]);
      if (res != entry[1]) {
        flag = false;
        break;
      }
L
liuganlin 已提交
377
    }
L
liuganlin 已提交
378
    expect(flag).assertEqual(true);
L
liuganlin 已提交
379
  });
380 381 382 383 384 385 386 387 388 389 390 391 392
  it("SR000GGR3H_testIsEmpty040", 0, function () {
    let treeMap = new TreeMap();
    treeMap.set(0, "a");
    treeMap.set(1, "b");
    treeMap.set(2, "c");
    treeMap.set(3, "d");
    treeMap.set(4, "g");
    let res = treeMap.isEmpty();
    expect(res).assertEqual(false);
    treeMap.clear();
    let res1 = treeMap.isEmpty();
    expect(res1).assertEqual(true);
  });
L
liuganlin 已提交
393
});