Number.uts 5.0 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
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);
Y
yurj26 已提交
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 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168

    // 数据转换操作示例
    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);


    })


  })
}