Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
Hello UTS
提交
59565563
H
Hello UTS
项目概览
DCloud
/
Hello UTS
通知
1595
Star
27
Fork
9
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
2
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
Hello UTS
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
2
Issue
2
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
59565563
编写于
8月 05, 2023
作者:
杜庆泉
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
兼容所有的 double 测试结果对比
上级
03b0b7c4
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
43 addition
and
13 deletion
+43
-13
uni_modules/uts-tests/utssdk/Matchers.uts
uni_modules/uts-tests/utssdk/Matchers.uts
+26
-0
uni_modules/uts-tests/utssdk/Math.uts
uni_modules/uts-tests/utssdk/Math.uts
+12
-12
uni_modules/uts-tests/utssdk/tests.uts
uni_modules/uts-tests/utssdk/tests.uts
+5
-1
未找到文件。
uni_modules/uts-tests/utssdk/Matchers.uts
浏览文件 @
59565563
...
@@ -16,6 +16,32 @@ export class Matchers<T> {
...
@@ -16,6 +16,32 @@ export class Matchers<T> {
// #endif
// #endif
}
}
}
}
/**
* 数值对比器
*/
export class NumberMatchers {
private actual: number
constructor(actual: number) {
this.actual = actual
}
/**
* 用于浮点数对比,只比较小数点后5位,web/app 浮点储存位数不同
*/
toEqualDouble(expected:number) {
let absDiff = Math.abs(this.actual - expected)
if (absDiff < 0.00001) {
return
}
// #ifndef APP-IOS
throw new Error(format(expected, this.actual))
// #endif
}
}
function format(expected: any | null, actual: any | null): string {
function format(expected: any | null, actual: any | null): string {
return `expected:<${expected}> but was:<${actual}>`
return `expected:<${expected}> but was:<${actual}>`
...
...
uni_modules/uts-tests/utssdk/Math.uts
浏览文件 @
59565563
import { describe, test, expect, Result } from './tests.uts'
import { describe, test, expect,
expectNumber,
Result } from './tests.uts'
export function testMath(): Result {
export function testMath(): Result {
return describe("Math", () => {
return describe("Math", () => {
...
@@ -68,8 +68,8 @@ export function testMath(): Result {
...
@@ -68,8 +68,8 @@ export function testMath(): Result {
test('acosh', () => {
test('acosh', () => {
// 解决精度问题
// 解决精度问题
expect(Math.acosh(1)).toEqual(0.0);
expect(Math.acosh(1)).toEqual(0.0);
expect(Math.acosh(2)).toEqual
(1.3169578969248166);
expectNumber(Math.acosh(2)).toEqualDouble
(1.3169578969248166);
expect
(Math.acosh(2.5)).toEqual
(1.566799236972411);
expect
Number(Math.acosh(2.5)).toEqualDouble
(1.566799236972411);
})
})
test('asin', () => {
test('asin', () => {
expect(Math.asin(-1)).toEqual(-1.5707963267948966);
expect(Math.asin(-1)).toEqual(-1.5707963267948966);
...
@@ -79,10 +79,10 @@ export function testMath(): Result {
...
@@ -79,10 +79,10 @@ export function testMath(): Result {
expect(Math.asin(1)).toEqual(1.5707963267948966);
expect(Math.asin(1)).toEqual(1.5707963267948966);
})
})
test('asinh', () => {
test('asinh', () => {
expect
(Math.asinh(1)).toEqual
(0.881373587019543);
expect
Number(Math.asinh(1)).toEqualDouble
(0.881373587019543);
expect
(Math.asinh(0)).toEqual
(0);
expect
Number(Math.asinh(0)).toEqualDouble
(0);
expect
(Math.asinh(-1)).toEqual
(-0.881373587019543);
expect
Number(Math.asinh(-1)).toEqualDouble
(-0.881373587019543);
expect
(Math.asinh(2)).toEqual
(1.4436354751788103);
expect
Number(Math.asinh(2)).toEqualDouble
(1.4436354751788103);
})
})
test('atan', () => {
test('atan', () => {
expect(Math.atan(1)).toEqual(0.7853981633974483);
expect(Math.atan(1)).toEqual(0.7853981633974483);
...
@@ -133,8 +133,8 @@ export function testMath(): Result {
...
@@ -133,8 +133,8 @@ export function testMath(): Result {
expect(Math.exp(1)).toEqual(2.718281828459045);
expect(Math.exp(1)).toEqual(2.718281828459045);
})
})
test('expm1', () => {
test('expm1', () => {
expect
(Math.expm1(1)).toEqual
(1.718281828459045);
expect
Number(Math.expm1(1)).toEqualDouble
(1.718281828459045);
expect
(Math.expm1(-38)).toEqual
(-1);
expect
Number(Math.expm1(-38)).toEqualDouble
(-1);
})
})
test('floor', () => {
test('floor', () => {
expect(Math.floor(5.95)).toEqual(5);
expect(Math.floor(5.95)).toEqual(5);
...
@@ -144,7 +144,7 @@ export function testMath(): Result {
...
@@ -144,7 +144,7 @@ export function testMath(): Result {
})
})
test('fround', () => {
test('fround', () => {
expect(Math.fround(1.5)).toEqual(1.5);
expect(Math.fround(1.5)).toEqual(1.5);
expect
(Math.fround(1.337)).toEqual
(1.3370000123977661);
expect
Number(Math.fround(1.337)).toEqualDouble
(1.3370000123977661);
})
})
// test('hypot', () => {
// test('hypot', () => {
// expect(Math.hypot(3, 4)).toEqual(5);
// expect(Math.hypot(3, 4)).toEqual(5);
...
@@ -187,8 +187,8 @@ export function testMath(): Result {
...
@@ -187,8 +187,8 @@ export function testMath(): Result {
expect(Math.min(-2, -3, -1)).toEqual(-3);
expect(Math.min(-2, -3, -1)).toEqual(-3);
})
})
test('pow', () => {
test('pow', () => {
expect
(Math.pow(7, 3)).toEqual
(343);
expect
Number(Math.pow(7, 3)).toEqualDouble
(343);
expect
(Math.pow(4, 0.5)).toEqual
(2);
expect
Number(Math.pow(4, 0.5)).toEqualDouble
(2);
})
})
test('random', () => {
test('random', () => {
function getRandomInt(max:number):number {
function getRandomInt(max:number):number {
...
...
uni_modules/uts-tests/utssdk/tests.uts
浏览文件 @
59565563
import { Matchers } from './Matchers.uts'
import { Matchers
,NumberMatchers
} from './Matchers.uts'
export const describes = new Map<string, Result>()
export const describes = new Map<string, Result>()
...
@@ -32,3 +32,7 @@ export function test(name: string, fn: () => void) {
...
@@ -32,3 +32,7 @@ export function test(name: string, fn: () => void) {
export function expect<T>(value: T): Matchers<T> {
export function expect<T>(value: T): Matchers<T> {
return new Matchers(value);
return new Matchers(value);
}
}
export function expectNumber(value: number): NumberMatchers {
return new NumberMatchers(value);
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录