testFloat
<timeout: 5 "seconds">
"Float <- Multiplicand (''e'' Multiplicand)+"
| n output actor |
actor := PEGWikiMediaGeneratorTables new.
actor transcripton: false. "disable tracing to Transcript"
n := '-2.3e-4'.
output := parser parse: 'Negation' stream: n reading actor: actor.
self assert: (output = -0.00023 ).
n := '6e2e3'.
output := parser parse: 'Float' stream: n reading actor: actor.
self assert: (output = 600000.0) .
n := '2e3'.
output := parser parse: 'Float' stream: n reading actor: actor.
self assert: (output = 2000) .
n := '-2.3e-4'.
output := parser parse: 'Negation' stream: n reading actor: actor.
self assert: (output = -0.00023 ).
n := '(trunc2)e(trunc-3)'.
output := parser parse: 'Float' stream: n reading actor: actor.
self assert: (output = 0.002) .
n := '(trunc2)e(trunc0)'.
output := parser parse: 'Float' stream: n reading actor: actor.
self assert: (output = 2) .
n := '(trunc2)e(trunc18)'.
output := parser parse: 'Float' stream: n reading actor: actor.
self assert: (output = 2.0e18) .
n := '(trunc2)e(trunc19)'.
output := parser parse: 'Float' stream: n reading actor: actor.
self assert: (output = 2.0e19) .
n := '6e(5-2)'.
output := parser parse: 'Float' stream: n reading actor: actor.
self assert: (output = 6000.0) .
n := '(5-2)e-2'.
output := parser parse: 'Float' stream: n reading actor: actor.
self assert: (output = 0.03) .
n := '6e(5-2)e-2'.
output := parser parse: 'Float' stream: n reading actor: actor.
self assert: (output = 60) .
n := '5.0e-324'. "(Float fmin) * (Float fmax)"
output := parser parse: 'Operation' stream: n reading actor: actor.
self assert: (output = (Float fmin) ) .