1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- test("parsing numbers", () => {
- [
- [0, 0],
- [1, 1],
- [0.23, 0.23],
- [1.23, 1.23],
- [0.0123e2, 1.23],
- [1.23e4, 12300],
- [Infinity, Infinity],
- ].forEach(test => {
- expect(parseFloat(test[0])).toBe(test[1]);
- expect(parseFloat(+test[0])).toBe(test[1]);
- expect(parseFloat(-test[0])).toBe(-test[1]);
- });
- });
- test("parsing strings", () => {
- [
- ["0", 0],
- ["1", 1],
- [".23", 0.23],
- ["1.23", 1.23],
- ["0.0123E+2", 1.23],
- ["1.23e4", 12300],
- ["Infinity", Infinity],
- ].forEach(test => {
- expect(parseFloat(test[0])).toBe(test[1]);
- expect(parseFloat(`+${test[0]}`)).toBe(test[1]);
- expect(parseFloat(`-${test[0]}`)).toBe(-test[1]);
- expect(parseFloat(`${test[0]}foo`)).toBe(test[1]);
- expect(parseFloat(`+${test[0]}foo`)).toBe(test[1]);
- expect(parseFloat(`-${test[0]}foo`)).toBe(-test[1]);
- expect(parseFloat(` \n \t ${test[0]} \v foo `)).toBe(test[1]);
- expect(parseFloat(` \r -${test[0]} \f \n\n foo `)).toBe(-test[1]);
- expect(parseFloat({ toString: () => test[0] })).toBe(test[1]);
- });
- });
- test("parsing NaN", () => {
- [
- "",
- [],
- [],
- true,
- false,
- null,
- undefined,
- NaN,
- "foo123",
- "foo+123",
- "fooInfinity",
- "foo+Infinity",
- ].forEach(value => {
- expect(parseFloat(value)).toBeNaN();
- });
- expect(parseFloat()).toBeNaN();
- expect(parseFloat("", 123, Infinity)).toBeNaN();
- });
|