From 1cc52c77c536af5d1c33b5783bb966845f5733c6 Mon Sep 17 00:00:00 2001 From: mahaifeng Date: Thu, 5 Sep 2024 18:12:28 +0800 Subject: [PATCH] =?UTF-8?q?[map]=E5=8E=BB=E9=99=A4=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E4=B8=AD=E6=89=8B=E5=8A=A8=E7=94=9F=E6=88=90=E7=9A=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- uni_modules/uts-tests/utssdk/Map.uts | 327 +++++++++++++++++---------- 1 file changed, 211 insertions(+), 116 deletions(-) diff --git a/uni_modules/uts-tests/utssdk/Map.uts b/uni_modules/uts-tests/utssdk/Map.uts index 5da7d8a..a873b07 100644 --- a/uni_modules/uts-tests/utssdk/Map.uts +++ b/uni_modules/uts-tests/utssdk/Map.uts @@ -1,119 +1,214 @@ import { describe, test, expect, Result } from './tests.uts' -export function testMap(): Result { - return describe("Map", () => { - test('size', () => { - const map1: Map = new Map(); - map1.set('a', 'alpha'); - map1.set('b', 'beta'); - map1.set('g', 'gamma'); - expect(map1.size).toEqual(3); - map1.clear() - expect(map1.size).toEqual(0); - }) - test('clear', () => { - const map1 = new Map(); - map1.set('bar', 'baz'); - map1.set("1", 'foo'); - expect(map1.size).toEqual(2); - map1.clear(); - expect(map1.size).toEqual(0); - }) - test('delete', () => { - const map1 = new Map(); - map1.set('bar', 'foo'); - expect(map1.delete('bar')).toEqual(true); - expect(map1.has('bar')).toEqual(false); - }) - test('get', () => { - const map1 = new Map(); - map1.set('bar', 'foo'); - expect(map1.get('bar')).toEqual("foo"); - // js端输出undefined需要抹平差异 - expect(map1.get('baz')).toEqual(null); - }) - test('has', () => { - const map1 = new Map(); - map1.set('bar', 'foo'); - expect(map1.has('bar')).toEqual(true); - expect(map1.has('baz')).toEqual(false); - }) - test('set', () => { - const map1 = new Map(); - map1.set('bar', 'foo'); - expect(map1.get('bar')).toEqual("foo"); - - const map2 = new Map(); - // ios平台不支持any作为key - map2.set('bar', 'foo'); - expect(map2.get('bar')).toEqual('foo'); - map2.set('bar', 'baz'); - expect(map2.get('bar')).toEqual('baz'); - const map3 = new Map(); - map3.set(111, 111); - map3.set(222, 222); - map3.set(333, 333); - expect(map3.get(111)).toEqual(111); - expect(map3.get(222)).toEqual(222); - expect(map3.get(333)).toEqual(333); - // ios不支持链式调用 - // myMap.set(1, 'foobar').set(2, 'baz'); - // const map4 = new Map(); - // key 不支持对象 - // const key1 = {}, key2 = {}; - // map4.set(key1, '1') - // map4.set(key2, '2') - // expect(map4.get(key1)).toEqual('1'); - // expect(map4.get(key2)).toEqual('2'); - const map5 = new Map([['key1', 'value1'], ['key2', 'value2']]); - expect(map5.get('key1')).toEqual('value1'); - expect(map5.get('key2')).toEqual('value2'); - }) - test('forEach', () => { - const map1 = new Map(); - map1.set('key1', 'value1'); - map1.set('key2', 'value2'); - map1.set('key3', 'value3'); - map1.forEach((value:string, key:string, map: Map) => { - expect(value).toEqual(map.get(key)!); - }) - map1.forEach((value, key) => { - expect(value).toEqual(map1.get(key)!); - }) - }) - - test("entries", () => { - // const myMap = new Map(); - // myMap.set("0", "foo"); - // myMap.set("1", "bar"); - // myMap.set("2", "baz"); - // const mapIter = myMap.entries(); - // expect(mapIter.next().value).toEqual(["0", "foo"]); - // expect(mapIter.next().value).toEqual(["1", "bar"]); - // expect(mapIter.next().value).toEqual(["2", "baz"]); - // expect(mapIter.next().done).toEqual(true); - }) - test("keys", () => { - // const myMap = new Map(); - // myMap.set("0", "foo"); - // myMap.set("1", "bar"); - // myMap.set("2", "baz"); - // const mapIter = myMap.keys(); - // expect(mapIter.next().value).toEqual("0"); - // expect(mapIter.next().value).toEqual("1"); - // expect(mapIter.next().value).toEqual("2"); - // expect(mapIter.next().done).toEqual(true); - }) - test("values", () => { - // const myMap = new Map(); - // myMap.set("0", "foo"); - // myMap.set("1", "bar"); - // myMap.set("2", "baz"); - // const mapIter = myMap.values(); - // expect(mapIter.next().value).toEqual("foo"); - // expect(mapIter.next().value).toEqual("bar"); - // expect(mapIter.next().value).toEqual("baz"); - // expect(mapIter.next().done).toEqual(true); - }) +export function testMap() : Result { + return describe("Map", () => { + test('size', () => { + // #TEST Map.size + const map1 : Map = new Map(); + map1.set('a', 'alpha'); + map1.set('b', 'beta'); + map1.set('g', 'gamma'); + console.log(map1.size); + // expected output: 3 + // #END + + expect(map1.size).toEqual(3); + map1.clear() + expect(map1.size).toEqual(0); + }) + test('clear', () => { + // #TEST Map.clear + const map1 = new Map(); + map1.set('bar', 'baz'); + map1.set("1", 'foo'); + map1.clear(); + console.log(map1.size); + // expected output: 0 + // #END + + expect(map1.size).toEqual(0); + }) + test('delete', () => { + // #TEST Map.delete + const map1 = new Map(); + map1.set('bar', 'foo'); + let ret1 = map1.delete('bar') + console.log(ret1); + // expected result: true + // (true indicates successful removal) + console.log(map1.has('bar')); + // expected result: false + // #END + + expect(ret1).toEqual(true); + expect(map1.has('bar')).toEqual(false); + }) + test('get', () => { + // #TEST Map.get + const map1 = new Map(); + map1.set('bar', 'foo'); + console.log(map1.get('bar')); + // expected output: "foo" + // #END + + expect(map1.get('bar')).toEqual("foo"); + // js端输出undefined需要抹平差异 + expect(map1.get('baz')).toEqual(null); + }) + test('has', () => { + // #TEST Map.has + const map1 = new Map(); + map1.set('bar', 'foo'); + console.log(map1.has('bar')); + // expected output: true + + console.log(map1.has('baz')); + // expected output: false + // #END + + expect(map1.has('bar')).toEqual(true); + expect(map1.has('baz')).toEqual(false); + }) + test('set', () => { + // #TEST Map.set + let map1 = new Map(); + map1.set('bar', 'foo'); + console.log(map1.get('bar')); + // expected output: "foo" + + console.log(map1.get('baz')); + // expected output: null + // #END + + expect(map1.get('bar')).toEqual("foo"); + + const map2 = new Map(); + // ios平台不支持any作为key + map2.set('bar', 'foo'); + expect(map2.get('bar')).toEqual('foo'); + map2.set('bar', 'baz'); + expect(map2.get('bar')).toEqual('baz'); + const map3 = new Map(); + map3.set(111, 111); + map3.set(222, 222); + map3.set(333, 333); + expect(map3.get(111)).toEqual(111); + expect(map3.get(222)).toEqual(222); + expect(map3.get(333)).toEqual(333); + // ios不支持链式调用 + // myMap.set(1, 'foobar').set(2, 'baz'); + // const map4 = new Map(); + // key 不支持对象 + // const key1 = {}, key2 = {}; + // map4.set(key1, '1') + // map4.set(key2, '2') + // expect(map4.get(key1)).toEqual('1'); + // expect(map4.get(key2)).toEqual('2'); + const map5 = new Map([['key1', 'value1'], ['key2', 'value2']]); + expect(map5.get('key1')).toEqual('value1'); + expect(map5.get('key2')).toEqual('value2'); + + // #TEST Map.set_1 + map1 = new Map(); //定义一个map,key为string类型,value也是string类型 + map1.set('key1', "abc"); + map1.set('key1', "def"); + console.log(map1.get('key1')) //返回 def + // #END + + }) + test('forEach', () => { + // #TEST Map.forEach,Map.forEach_1,Map.forEach_2 + const map1 = new Map(); + map1.set('key1', 'value1'); + map1.set('key2', 'value2'); + map1.set('key3', 'value3'); + map1.forEach((value : string, key : string, map : Map) => { + console.log(key) + console.log(value) + }) + // #END + + map1.forEach((value : string, key : string, map : Map) => { + expect(value).toEqual(map.get(key)!); + }) + map1.forEach((value, key) => { + expect(value).toEqual(map1.get(key)!); + }) + }) + + test("entries", () => { + // const myMap = new Map(); + // myMap.set("0", "foo"); + // myMap.set("1", "bar"); + // myMap.set("2", "baz"); + // const mapIter = myMap.entries(); + // expect(mapIter.next().value).toEqual(["0", "foo"]); + // expect(mapIter.next().value).toEqual(["1", "bar"]); + // expect(mapIter.next().value).toEqual(["2", "baz"]); + // expect(mapIter.next().done).toEqual(true); + }) + test("keys", () => { + // const myMap = new Map(); + // myMap.set("0", "foo"); + // myMap.set("1", "bar"); + // myMap.set("2", "baz"); + // const mapIter = myMap.keys(); + // expect(mapIter.next().value).toEqual("0"); + // expect(mapIter.next().value).toEqual("1"); + // expect(mapIter.next().value).toEqual("2"); + // expect(mapIter.next().done).toEqual(true); + }) + test("values", () => { + // const myMap = new Map(); + // myMap.set("0", "foo"); + // myMap.set("1", "bar"); + // myMap.set("2", "baz"); + // const mapIter = myMap.values(); + // expect(mapIter.next().value).toEqual("foo"); + // expect(mapIter.next().value).toEqual("bar"); + // expect(mapIter.next().value).toEqual("baz"); + // expect(mapIter.next().done).toEqual(true); + }) + + test("sample", () => { + // #TEST Map.sample_create + let map = new Map() + map.set("name", "zhangsan") + map.set("age", 12) + //Map(2) {"name":"zhangsan","age":12} + console.log(map) + // #END + + // #TEST Map.sample_visit + let map1 = new Map() + map1.set("name", "zhangsan") + map1.set("age", 12) + let nameVal = map1.get('name') + //zhangsan + console.log(nameVal) + // #END + + // #TEST Map.sample_forEach + let map2 = new Map() + map2.set("name", "zhangsan") + map2.set("age", 12) + + // 遍历函数 1 + map2.forEach(function (value : any | null) { + console.log(value) + }) + // 遍历函数 2 + map2.forEach(function (value : any | null, key : string) { + console.log(key) + console.log(value) + }) + // 遍历函数 3 + map2.forEach(function (value : any | null, key : string, map : Map) { + console.log(value) + console.log(key) + console.log(map) + }) + // #END }) -} + }) +} \ No newline at end of file -- GitLab