@@ -58,8 +58,8 @@ describe('Interpreter', () => {
5858
5959 it ( '1*2/4 + 2*3/6' , ( ) => {
6060 expect ( e . eval ( "1*2/4 + 2*3/6" ) ) . toBe ( 1 * 2 / 4 + 2 * 3 / 6 )
61- expect ( e . eval ( "1*2/4 + 2*3/6- 2.3" ) ) . toBe ( 1 * 2 / 4 + 2 * 3 / 6 - 2.3 )
62- expect ( e . eval ( "7+1*2/4 + 2*3/6- 2.3" ) ) . toBe ( 7 + 1 * 2 / 4 + 2 * 3 / 6 - 2.3 )
61+ expect ( e . eval ( "1*2/4 + 2*3/6 - 2.3" ) ) . toBe ( 1 * 2 / 4 + 2 * 3 / 6 - 2.3 )
62+ expect ( e . eval ( "7+1*2/4 + 2*3/6 - 2.3" ) ) . toBe ( 7 + 1 * 2 / 4 + 2 * 3 / 6 - 2.3 )
6363 } ) ;
6464
6565 it ( '5 – (5 * (32 + 4))' , ( ) => {
@@ -329,12 +329,39 @@ describe('Interpreter', () => {
329329 expect ( await e . evaluate ( 'x?.p1?.p != null and x.length >0' ) ) . toBe ( false )
330330 } ) ;
331331
332- it ( 'arithmetic + comparison' , async ( ) => {
332+ it ( 'arithmetic + comparison' , async ( ) => {
333+ expect ( await e . evaluate ( '0.25 == 1/4' ) ) . toBe ( true )
334+ expect ( await e . evaluate ( '0.25 == 1/2' ) ) . toBe ( false )
335+
333336 expect ( await e . evaluate ( '1+2*3 == 5 or 1 > 3' ) ) . toBe ( false )
334337 expect ( await e . evaluate ( '1+2*3 == 5 or 1 < 3' ) ) . toBe ( true )
335338
336339 expect ( await e . evaluate ( '2 == 1/2 + 1/2 and 1/2 + 1/2 == 1' ) ) . toBe ( false )
337340 expect ( await e . evaluate ( '(2 == 1/2 + 1/2) and (1/2 + 1/2 == 1)' ) ) . toBe ( false )
338341 expect ( await e . evaluate ( '(2 == (1/2 + 1/2)) and ((1/2 + 1/2) == 1)' ) ) . toBe ( false )
339- } ) ;
342+ } ) ;
343+
344+ it ( 'Negative numbers' , async ( ) => {
345+ expect ( await e . evaluate ( 'x=-1\nx' ) ) . toBe ( - 1 )
346+ expect ( await e . evaluate ( 'x=-3.14 + 3\nx' ) ) . toBe ( - 3.14 + 3 )
347+ expect ( await e . evaluate ( '-3.14 - 3' ) ) . toBe ( - 3.14 - 3 )
348+ expect ( await e . evaluate ( 'x=5\nx*-1' ) ) . toBe ( - 5 )
349+ expect ( await e . evaluate ( `
350+ def f(x):
351+ return x
352+
353+ f(-5)
354+ ` ) ) . toBe ( - 5 )
355+
356+ expect ( await e . evaluate ( `
357+ def f(x):
358+ return x
359+
360+ f(-0.14)
361+ ` ) ) . toBe ( - 0.14 )
362+
363+ expect ( await e . evaluate ( '1/2*-1 == -0.5' ) ) . toBe ( true )
364+
365+ } ) ;
366+
340367} ) ;
0 commit comments