github.com/TIBCOSoftware/flogo-lib@v0.5.9/core/mapper/exprmapper/expression/operatorprecedence_test.go (about) 1 package expression 2 3 import ( 4 "github.com/stretchr/testify/assert" 5 "testing" 6 ) 7 8 func TestOperatorPrecedenceForMulAdd(t *testing.T) { 9 10 v, err := ParseExpression(`1 + 2 * 3 + 2 * 6 / 2`) 11 if err != nil { 12 t.Fatal(err) 13 t.Failed() 14 } 15 vv, err := v.EvalWithScope(nil, nil) 16 assert.Nil(t, err) 17 assert.Equal(t, 13, vv) 18 19 v, err = ParseExpression(` 1 + 4 * 5 + -6 `) 20 if err != nil { 21 t.Fatal(err) 22 t.Failed() 23 } 24 vv, err = v.EvalWithScope(nil, nil) 25 assert.Nil(t, err) 26 assert.Equal(t, 15, vv) 27 28 v, err = ParseExpression(` 2 < 3 && 5 > 4 && 6 < 7 && 56 > 44`) 29 if err != nil { 30 t.Fatal(err) 31 t.Failed() 32 } 33 vv, err = v.EvalWithScope(nil, nil) 34 assert.Nil(t, err) 35 assert.Equal(t, true, vv) 36 37 v, err = ParseExpression(` 2 < 3 && 5 > 4 || 6 < 7 && 56 < 44`) 38 if err != nil { 39 t.Fatal(err) 40 t.Failed() 41 } 42 vv, err = v.EvalWithScope(nil, nil) 43 assert.Nil(t, err) 44 assert.Equal(t, true, vv) 45 46 } 47 48 func TestOperatorNegative(t *testing.T) { 49 v, err := ParseExpression(`3-2`) 50 if err != nil { 51 t.Fatal(err) 52 t.Failed() 53 } 54 vv, err := v.EvalWithScope(nil, nil) 55 assert.Nil(t, err) 56 assert.Equal(t, 1, vv) 57 58 v, err = ParseExpression(`3 - 2`) 59 if err != nil { 60 t.Fatal(err) 61 t.Failed() 62 } 63 vv, err = v.EvalWithScope(nil, nil) 64 assert.Nil(t, err) 65 assert.Equal(t, 1, vv) 66 67 v, err = ParseExpression(`3+-2`) 68 if err != nil { 69 t.Fatal(err) 70 t.Failed() 71 } 72 vv, err = v.EvalWithScope(nil, nil) 73 assert.Nil(t, err) 74 assert.Equal(t, 1, vv) 75 v, err = ParseExpression(`3- -2`) 76 if err != nil { 77 t.Fatal(err) 78 t.Failed() 79 } 80 vv, err = v.EvalWithScope(nil, nil) 81 assert.Nil(t, err) 82 assert.Equal(t, 5, vv) 83 }