github.com/cloudwego/iasm@v0.2.0/expr/parser_test.go (about) 1 // 2 // Copyright 2024 CloudWeGo Authors 3 // 4 // Licensed under the Apache License, Version 2.0 (the "License"); 5 // you may not use this file except in compliance with the License. 6 // You may obtain a copy of the License at 7 // 8 // http://www.apache.org/licenses/LICENSE-2.0 9 // 10 // Unless required by applicable law or agreed to in writing, software 11 // distributed under the License is distributed on an "AS IS" BASIS, 12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 // See the License for the specific language governing permissions and 14 // limitations under the License. 15 // 16 17 package expr 18 19 import ( 20 `testing` 21 22 `github.com/stretchr/testify/assert` 23 `github.com/stretchr/testify/require` 24 ) 25 26 func TestParser_Eval(t *testing.T) { 27 p := new(Parser).SetSource(`3 - 2 * (5 + 6) ** 4 / 7 + (1 << (1234 % 23)) & 0x5436 ^ 0x5a5a - 2 | 1`) 28 v, err := p.Parse(nil) 29 require.NoError(t, err) 30 r, err := v.Evaluate() 31 require.NoError(t, err) 32 assert.Equal(t, int64(7805), r) 33 }