| 221 | } |
| 222 | |
| 223 | func Benchmark_arrayIndex(b *testing.B) { |
| 224 | env := map[string]any{ |
| 225 | "arr": make([]int, 100), |
| 226 | } |
| 227 | for i := 0; i < 100; i++ { |
| 228 | env["arr"].([]int)[i] = i |
| 229 | } |
| 230 | |
| 231 | program, err := expr.Compile(`arr[50]`, expr.Env(env)) |
| 232 | require.NoError(b, err) |
| 233 | |
| 234 | var out any |
| 235 | b.ResetTimer() |
| 236 | for n := 0; n < b.N; n++ { |
| 237 | out, err = vm.Run(program, env) |
| 238 | } |
| 239 | b.StopTimer() |
| 240 | |
| 241 | require.NoError(b, err) |
| 242 | require.Equal(b, 50, out) |
| 243 | } |
| 244 | |
| 245 | func Benchmark_envStruct(b *testing.B) { |
| 246 | type Price struct { |