|
@@ -0,0 +1,44 @@
|
|
|
+import * as helpers from './helpers'
|
|
|
+
|
|
|
+describe('Engineering notation', () => {
|
|
|
+ describe('Print numbers', () => {
|
|
|
+ it('prints numbers in engineering notation', () => {
|
|
|
+ // expect(helpers.printEng(1.2)).toBe('1.2')
|
|
|
+ // expect(helpers.printEng(-1.2)).toBe('-1.2')
|
|
|
+ // expect(helpers.printEng(12345678901234.56789)).toBe('12.347T')
|
|
|
+ // expect(helpers.printEng(-12345678901234.56789)).toBe('-12.347T')
|
|
|
+ // expect(helpers.printEng(0.000000000012345678)).toBe('12.347p')
|
|
|
+ // expect(helpers.printEng(-0.000000000012345678)).toBe('-12.347p')
|
|
|
+ })
|
|
|
+ })
|
|
|
+ describe('Parse numbers', () => {
|
|
|
+ it('parses engineering notation to numbers', () => {
|
|
|
+ // simple numbers
|
|
|
+ expect(helpers.parseEng('1')).toBe(1)
|
|
|
+ expect(helpers.parseEng('-2')).toBe(-2)
|
|
|
+ // trailing comma is ok
|
|
|
+ expect(helpers.parseEng('3.')).toBe(3)
|
|
|
+ expect(helpers.parseEng('-4.')).toBe(-4)
|
|
|
+ // leading comma is ok
|
|
|
+ expect(helpers.parseEng('.5')).toBe(0.5)
|
|
|
+ expect(helpers.parseEng('-.6')).toBe(-0.6)
|
|
|
+ // space between sign and number is ok
|
|
|
+ expect(helpers.parseEng('+ 7.1')).toBe(7.1)
|
|
|
+ expect(helpers.parseEng('- 8.2')).toBe(-8.2)
|
|
|
+ // many digits before and after comma are ok
|
|
|
+ expect(helpers.parseEng('+00234329.123000')).toBe(234329.123)
|
|
|
+ expect(helpers.parseEng('-00001234.342500')).toBe(-1234.3425)
|
|
|
+ //
|
|
|
+ })
|
|
|
+ it('parses zero correctly', () => {
|
|
|
+ expect(helpers.parseEng('0')).toBe(0)
|
|
|
+ expect(helpers.parseEng('-0')).toBe(0)
|
|
|
+ expect(helpers.parseEng('0.')).toBe(0)
|
|
|
+ expect(helpers.parseEng('-0.')).toBe(0)
|
|
|
+ expect(helpers.parseEng('.0')).toBe(0)
|
|
|
+ expect(helpers.parseEng('-.0')).toBe(0)
|
|
|
+ expect(helpers.parseEng('+ .0')).toBe(0)
|
|
|
+ expect(helpers.parseEng('- .0')).toBe(0)
|
|
|
+ })
|
|
|
+ })
|
|
|
+})
|