From 41826fa82c0f94f31db5d91a069f2d44c9f2775b Mon Sep 17 00:00:00 2001 From: wangyaqi Date: Wed, 29 Nov 2023 16:08:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E7=BC=96=E8=AF=91=E5=B1=8F=E8=94=BDweb=E7=AB=AF=E4=B8=8D?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E7=9A=84=E6=B5=8B=E8=AF=95=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 12 + uni_modules/uts-tests/utssdk/KeyWord.uts | 253 ++++++++--------- uni_modules/uts-tests/utssdk/Number.uts | 331 +++++++++++------------ 3 files changed, 306 insertions(+), 290 deletions(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..ebe51d3 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = false +insert_final_newline = false \ No newline at end of file diff --git a/uni_modules/uts-tests/utssdk/KeyWord.uts b/uni_modules/uts-tests/utssdk/KeyWord.uts index eb552e4..14dc40a 100644 --- a/uni_modules/uts-tests/utssdk/KeyWord.uts +++ b/uni_modules/uts-tests/utssdk/KeyWord.uts @@ -1,136 +1,141 @@ import { describe, test, expect, Result } from './tests.uts' -class User{ - name:string = ""; - age:number = 0 +class User { + name : string = ""; + age : number = 0 } const passcode = "secret passcode"; class Parent { - private _name: string = ""; // private是私有的,外部不能访问 - get name(): string { // 读取name会触发此拦截器 - console.log("start to get parent.name"); - return this._name; - } - set name(newName: string) { // 给name赋值会触发此拦截器 - console.log("start to set parent.name"); - if (passcode == "secret passcode") { // 校验是否有权修改name的值,这里的条件可以修改以方便测试 - this._name = newName; - } else { - console.log("Error: set parent.name fail"); - } - } - - // 静态属性和方法 - static age: number = 30 - static run(): string { - console.log("this is a static method") - return "static method" - } - - // readonly - readonly address: string = "" - - weight: number = 80 - - // constructor - constructor(weight: number) { - console.log("开始实例化") - this.weight = weight - } - - // 实例方法 - eat(): string { - console.log("this is parent") - return "parent instance method" - } - + private _name : string = ""; // private是私有的,外部不能访问 + get name() : string { // 读取name会触发此拦截器 + console.log("start to get parent.name"); + return this._name; + } + set name(newName : string) { // 给name赋值会触发此拦截器 + console.log("start to set parent.name"); + if (passcode == "secret passcode") { // 校验是否有权修改name的值,这里的条件可以修改以方便测试 + this._name = newName; + } else { + console.log("Error: set parent.name fail"); + } + } + + // 静态属性和方法 + static age : number = 30 + static run() : string { + console.log("this is a static method") + return "static method" + } + + // readonly + readonly address : string = "" + + weight : number = 80 + + // constructor + constructor(weight : number) { + console.log("开始实例化") + this.weight = weight + } + + // 实例方法 + eat() : string { + console.log("this is parent") + return "parent instance method" + } + } class ChildrenTest extends Parent { - - // override constructor(weight: number) { - // super(weight) - // } - - override eat(): string { - super.eat() - return "children instance method" - } - - // swift 中不能重写父类的存储属性,只能重写父类的计算的属性(本质上是重写计算属性的get set方法) - // #ifndef APP-IOS - override weight = 8 - // #endif + + // override constructor(weight: number) { + // super(weight) + // } + + override eat() : string { + super.eat() + return "children instance method" + } + + // swift 中不能重写父类的存储属性,只能重写父类的计算的属性(本质上是重写计算属性的get set方法) + // #ifndef APP-IOS + override weight = 8 + // #endif } -export function testKeyWord(): Result { - return describe("KeyWord", () => { - - test('new', () => { - let new1 = new User() - // expect(JSON.stringify(new1)).toEqual('{"age":0,"name":""}') - console.log(JSON.stringify(new1)) - - new1.age = 10 - new1.name = "job" - console.log(JSON.stringify(new1)) - // expect(JSON.stringify(new1)).toEqual('{"age":10,"name":"job"}') - - }) - - test('typeof', () => { - let new1 = new User() - expect(typeof(new1)).toEqual('object') - expect(typeof(123456.789)).toEqual('Double') - //expect(typeof(789778979798797987979)).toEqual('number') - expect(typeof(0.0)).toEqual('Double') - - expect(typeof("hello world")).toEqual('string') - expect(typeof([1,2,3])).toEqual('object') - expect(typeof(new Array())).toEqual('object') - expect(typeof(new Set())).toEqual('object') - // expect(typeof(new Map())).toEqual('object') - expect(typeof(new Date())).toEqual('object') - expect(typeof("hello world")).toEqual('string') - // 原生对象 - // #ifndef APP-IOS - expect(typeof(UTSAndroid.getUniActivity())).toEqual('object') - // #endif - - - }) - - - test('instanceof', () => { - let user1:any = new User() - let instanceRet1 = user1 instanceof User - expect(instanceRet1).toEqual(true) - let instanceRet2 = (typeof user1) == "string" - expect(instanceRet2).toEqual(false) - let num1:any = 3.1415926 - let instanceRet3 = (typeof num1) == "string" - expect(instanceRet3).toEqual(false) - let instanceRet4 = (typeof num1) == "number" - expect(instanceRet4).toEqual(false) - }) - - test('isArray', () => { - let user1:any = new User() - expect(Array.isArray(user1)).toEqual(false) - expect(Array.isArray([1,2,3])).toEqual(true) - }) - - test('class', () => { - let p = new Parent(20) - p.name = "tom" // 会打印"start to set person.name" - console.log(p.name); // 先打印"start to get person.name",然后打印"tom" - expect(Parent.age).toEqual(30) - expect(Parent.run()).toEqual("static method") - expect(p.eat()).toEqual("parent instance method") - // let c = new ChildrenTest(0) - // expect(c.eat()).toEqual("children instance method") - }) - +export function testKeyWord() : Result { + return describe("KeyWord", () => { + + test('new', () => { + let new1 = new User() + // expect(JSON.stringify(new1)).toEqual('{"age":0,"name":""}') + console.log(JSON.stringify(new1)) + + new1.age = 10 + new1.name = "job" + console.log(JSON.stringify(new1)) + // expect(JSON.stringify(new1)).toEqual('{"age":10,"name":"job"}') + }) -} + + test('typeof', () => { + let new1 = new User() + expect(typeof (new1)).toEqual('object') + + // #ifdef APP-ANDROID || APP-IOS + expect(typeof (123456.789)).toEqual('Double') + //expect(typeof(789778979798797987979)).toEqual('number') + expect(typeof (0.0)).toEqual('Double') + // #endif + + expect(typeof ("hello world")).toEqual('string') + expect(typeof ([1, 2, 3])).toEqual('object') + expect(typeof (new Array())).toEqual('object') + expect(typeof (new Set())).toEqual('object') + // expect(typeof(new Map())).toEqual('object') + expect(typeof (new Date())).toEqual('object') + expect(typeof ("hello world")).toEqual('string') + // 原生对象 + // #ifdef APP-ANDROID + expect(typeof (UTSAndroid.getUniActivity())).toEqual('object') + // #endif + + + }) + + + test('instanceof', () => { + let user1 : any = new User() + let instanceRet1 = user1 instanceof User + expect(instanceRet1).toEqual(true) + let instanceRet2 = (typeof user1) == "string" + expect(instanceRet2).toEqual(false) + let num1 : any = 3.1415926 + let instanceRet3 = (typeof num1) == "string" + expect(instanceRet3).toEqual(false) + // #ifdef APP-ANDROID + let instanceRet4 = (typeof num1) == "number" + expect(instanceRet4).toEqual(false) + // #endif + }) + + test('isArray', () => { + let user1 : any = new User() + expect(Array.isArray(user1)).toEqual(false) + expect(Array.isArray([1, 2, 3])).toEqual(true) + }) + + test('class', () => { + let p = new Parent(20) + p.name = "tom" // 会打印"start to set person.name" + console.log(p.name); // 先打印"start to get person.name",然后打印"tom" + expect(Parent.age).toEqual(30) + expect(Parent.run()).toEqual("static method") + expect(p.eat()).toEqual("parent instance method") + // let c = new ChildrenTest(0) + // expect(c.eat()).toEqual("children instance method") + }) + + }) +} \ No newline at end of file diff --git a/uni_modules/uts-tests/utssdk/Number.uts b/uni_modules/uts-tests/utssdk/Number.uts index 3d9fda5..1e887e0 100644 --- a/uni_modules/uts-tests/utssdk/Number.uts +++ b/uni_modules/uts-tests/utssdk/Number.uts @@ -1,169 +1,168 @@ import { describe, test, expect, Result } from './tests.uts' -export function testNumber(): Result { - return describe("Number", () => { - - test('toFixed', () => { - function financial(x: Number): String { - return x.toFixed(2); - } - expect(financial(123.456)).toEqual('123.46'); - expect(financial(0.004)).toEqual("0.00"); - expect(financial(0)).toEqual("0.00"); - expect(financial(1)).toEqual("1.00"); - - let num1: number = -1.1 / 0.1 - let num2: number = -1.1 / 0.1 - let num3: number = -1.1 / -0.1 - console.warn(num1) - console.warn(num2) - console.warn(num3) - let obj = {"id":"3be2c600-894c-4231-aa56-82fd989cc961","result":{"result":[num1, num2, num3]}} - console.log(JSON.stringify(obj)) - - - - // #ifndef APP-IOS - // android 专有数据类型 - expect(123456.789.toFixed(2)).toEqual("123456.79"); - expect(12345600123.789123.toFixed(2)).toEqual("12345600123.79"); - expect((-123456.789).toFixed(5)).toEqual("-123456.78900"); - expect(parseFloat("16688995566.369").toFixed(3)).toEqual("16688995566.369"); - let a1 = 56 - let a2 = -122 - expect(a1.toByte().toFixed(2)).toEqual("56.00"); - expect(a2.toByte().toFixed(2)).toEqual("-122.00"); - - expect(a1.toShort().toFixed(5)).toEqual("56.00000"); - expect(a2.toShort().toFixed(5)).toEqual("-122.00000"); - - // #endif - /** - * add since 2023-11-21 - * 发现部分场景在android 6 以下与web有差异,新增以下示例 - */ - let r = 2.449999999999999999; - let t1 = r.toFixed(1); - expect(t1).toEqual("2.5"); - - let r2 = 2.4499999999999999; - let t2 = r2.toFixed(1); - expect(t2).toEqual("2.4"); - - let r3 = -9007199254740991; - let t3 = r3.toFixed(15); - expect(t3).toEqual("-9007199254740991.000000000000000"); - - }) - - test('isFinite', () => { - expect(isFinite(1000 / 1)).toEqual(true); - expect(isFinite(910)).toEqual(true); - expect(isFinite(0)).toEqual(true); - }) - test('isInteger', () => { - expect(Number.isInteger(12)).toEqual(true); - expect(Number.isInteger(12.01)).toEqual(false); - expect(Number.isInteger(-213123112.01)).toEqual(false); - expect(Number.isInteger(-213123112)).toEqual(true); - }) - - test('isNaN', () => { - expect(isNaN(0)).toEqual(false); - }) - - test('toPrecision', () => { - expect(123.456.toPrecision(4)).toEqual("123.5"); - expect(0.004.toPrecision(4)).toEqual("0.004000"); - // expect(1.23e5.toPrecision(4)).toEqual("1.230e+5"); - }) - - test('toString', () => { - expect((10).toString()).toEqual("10"); - expect((17).toString()).toEqual("17"); - expect((17.2).toString()).toEqual("17.2"); - expect((6).toString(2)).toEqual("110"); - expect((254).toString(16)).toEqual("fe"); - expect((-10).toString(2)).toEqual("-1010"); - expect((-0xff).toString(2)).toEqual("-11111111"); - }) - - test('valueOf', () => { - expect((10).valueOf()).toEqual(10); - expect((-10.2).valueOf()).toEqual(-10.2); - expect((0xf).valueOf()).toEqual(15); - }) - - // 数据转换操作示例 - test('toX', () => { - let num = 10.123 - expect(num.toInt()).toEqual(10); - expect(num.toDouble()).toEqual(10.123); - }) - - test('numberEquals', () => { - let a1 = 10.123 - let b1 = 10.12300 - let c1 = 10.12300002 - expect(a1 == b1).toEqual(true); - expect(a1 === b1).toEqual(true); - expect(a1 !== 10.123001).toEqual(true); - expect(a1 != c1).toEqual(true); - - let a2 = 0 - let b2 = 0.0 - expect(a2 == b2).toEqual(true); - expect(a2 === b2).toEqual(true); - - let a3 = -1000 - let b3 = -1000.0 - expect(a3 == b3).toEqual(true); - expect(a3 === b3).toEqual(true); - - let a4 = 123456789123456 - let b4 = 123456789123456.0 - expect(a4 == b4).toEqual(true); - expect(a4 === b4 * 1.0).toEqual(true); - - - let a5 = -123456789123456 - let b5 = -123456789123456.01 - expect(a5 != b5).toEqual(true); - expect(a5 !== b5).toEqual(true); - - - let a6 = 246.0 / 123 * 1.0 - let b6 = 2 - let c6 = 2.0 - expect(a6 == b6).toEqual(true); - expect(b6 === c6).toEqual(true); - expect(b6 !== c6 * 1.001).toEqual(true); - expect(b6 != c6 * 1.001).toEqual(true); - - let a7 = -10 * 123.2 - let b7 = - 1232 - expect(a7 == b7).toEqual(true); - expect(a7 != b7 * -1).toEqual(true); - - let a8 = -101 * 123.201 - expect(a8 == -12443.301).toEqual(true); - expect(a8 === -12443.301).toEqual(true); - expect(a8 !== -12443.301 * 0.999).toEqual(true); - expect(a8 != -12443.301 * 0.999999).toEqual(true); - - let a9 = -0.02 * -123456 - expect(a9 == 2469.12).toEqual(true); - expect(a9 === 2469.12).toEqual(true); - expect(a9 != 2469.1201).toEqual(true); - - let a10 = 123456789123456.123456789123456 - let b10 = 123456789123456.123456789123456000000 - expect(a10 == b10).toEqual(true); - expect(a10 === b10).toEqual(true); - - - }) - - +export function testNumber() : Result { + return describe("Number", () => { + + test('toFixed', () => { + function financial(x : Number) : String { + return x.toFixed(2); + } + expect(financial(123.456)).toEqual('123.46'); + expect(financial(0.004)).toEqual("0.00"); + expect(financial(0)).toEqual("0.00"); + expect(financial(1)).toEqual("1.00"); + + let num1 : number = -1.1 / 0.1 + let num2 : number = -1.1 / 0.1 + let num3 : number = -1.1 / -0.1 + console.warn(num1) + console.warn(num2) + console.warn(num3) + let obj = { "id": "3be2c600-894c-4231-aa56-82fd989cc961", "result": { "result": [num1, num2, num3] } } + console.log(JSON.stringify(obj)) + + + + expect(123456.789.toFixed(2)).toEqual("123456.79"); + expect(12345600123.789123.toFixed(2)).toEqual("12345600123.79"); + expect((-123456.789).toFixed(5)).toEqual("-123456.78900"); + expect(parseFloat("16688995566.369").toFixed(3)).toEqual("16688995566.369"); + // #ifndef APP-ANDROID + // android 专有数据类型 + let a1 = 56 + let a2 = -122 + expect(a1.toByte().toFixed(2)).toEqual("56.00"); + expect(a2.toByte().toFixed(2)).toEqual("-122.00"); + + expect(a1.toShort().toFixed(5)).toEqual("56.00000"); + expect(a2.toShort().toFixed(5)).toEqual("-122.00000"); + // #endif + /** + * add since 2023-11-21 + * 发现部分场景在android 6 以下与web有差异,新增以下示例 + */ + let r = 2.449999999999999999; + let t1 = r.toFixed(1); + expect(t1).toEqual("2.5"); + + let r2 = 2.4499999999999999; + let t2 = r2.toFixed(1); + expect(t2).toEqual("2.4"); + + let r3 = -9007199254740991; + let t3 = r3.toFixed(15); + expect(t3).toEqual("-9007199254740991.000000000000000"); + + }) + + test('isFinite', () => { + expect(isFinite(1000 / 1)).toEqual(true); + expect(isFinite(910)).toEqual(true); + expect(isFinite(0)).toEqual(true); + }) + test('isInteger', () => { + expect(Number.isInteger(12)).toEqual(true); + expect(Number.isInteger(12.01)).toEqual(false); + expect(Number.isInteger(-213123112.01)).toEqual(false); + expect(Number.isInteger(-213123112)).toEqual(true); + }) + + test('isNaN', () => { + expect(isNaN(0)).toEqual(false); + }) + + test('toPrecision', () => { + expect(123.456.toPrecision(4)).toEqual("123.5"); + expect(0.004.toPrecision(4)).toEqual("0.004000"); + // expect(1.23e5.toPrecision(4)).toEqual("1.230e+5"); + }) + + test('toString', () => { + expect((10).toString()).toEqual("10"); + expect((17).toString()).toEqual("17"); + expect((17.2).toString()).toEqual("17.2"); + expect((6).toString(2)).toEqual("110"); + expect((254).toString(16)).toEqual("fe"); + expect((-10).toString(2)).toEqual("-1010"); + expect((-0xff).toString(2)).toEqual("-11111111"); + }) + + test('valueOf', () => { + expect((10).valueOf()).toEqual(10); + expect((-10.2).valueOf()).toEqual(-10.2); + expect((0xf).valueOf()).toEqual(15); }) -} + + // 数据转换操作示例 + test('toX', () => { + let num = 10.123 + expect(num.toInt()).toEqual(10); + expect(num.toDouble()).toEqual(10.123); + }) + + test('numberEquals', () => { + let a1 = 10.123 + let b1 = 10.12300 + let c1 = 10.12300002 + expect(a1 == b1).toEqual(true); + expect(a1 === b1).toEqual(true); + expect(a1 !== 10.123001).toEqual(true); + expect(a1 != c1).toEqual(true); + + let a2 = 0 + let b2 = 0.0 + expect(a2 == b2).toEqual(true); + expect(a2 === b2).toEqual(true); + + let a3 = -1000 + let b3 = -1000.0 + expect(a3 == b3).toEqual(true); + expect(a3 === b3).toEqual(true); + + let a4 = 123456789123456 + let b4 = 123456789123456.0 + expect(a4 == b4).toEqual(true); + expect(a4 === b4 * 1.0).toEqual(true); + + + let a5 = -123456789123456 + let b5 = -123456789123456.01 + expect(a5 != b5).toEqual(true); + expect(a5 !== b5).toEqual(true); + + + let a6 = 246.0 / 123 * 1.0 + let b6 = 2 + let c6 = 2.0 + expect(a6 == b6).toEqual(true); + expect(b6 === c6).toEqual(true); + expect(b6 !== c6 * 1.001).toEqual(true); + expect(b6 != c6 * 1.001).toEqual(true); + + let a7 = -10 * 123.2 + let b7 = - 1232 + expect(a7 == b7).toEqual(true); + expect(a7 != b7 * -1).toEqual(true); + + let a8 = -101 * 123.201 + expect(a8 == -12443.301).toEqual(true); + expect(a8 === -12443.301).toEqual(true); + expect(a8 !== -12443.301 * 0.999).toEqual(true); + expect(a8 != -12443.301 * 0.999999).toEqual(true); + + let a9 = -0.02 * -123456 + expect(a9 == 2469.12).toEqual(true); + expect(a9 === 2469.12).toEqual(true); + expect(a9 != 2469.1201).toEqual(true); + + let a10 = 123456789123456.123456789123456 + let b10 = 123456789123456.123456789123456000000 + expect(a10 == b10).toEqual(true); + expect(a10 === b10).toEqual(true); + + + }) + + + }) +} \ No newline at end of file -- GitLab