Number.uts 4.3 KB
Newer Older
Y
yurj26 已提交
1 2
import { describe, test, expect, Result } from './tests.uts'

3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
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
			
        })
		
		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);
			
			
		})
		
		
Y
yurj26 已提交
153
    })
154
}