MCPcopy Index your code
hub / github.com/crowdsecurity/crowdsec / TestDistanceHelper

Function TestDistanceHelper

pkg/exprhelpers/exprlib_test.go:225–267  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

223}
224
225func TestDistanceHelper(t *testing.T) {
226 err := Init(nil)
227 require.NoError(t, err)
228
229 tests := []struct {
230 lat1 string
231 lon1 string
232 lat2 string
233 lon2 string
234 dist float64
235 valid bool
236 expr string
237 name string
238 }{
239 {"51.45", "1.15", "41.54", "12.27", 1389.1793118293067, true, `Distance(lat1, lon1, lat2, lon2)`, "valid"},
240 {"lol", "1.15", "41.54", "12.27", 0.0, false, `Distance(lat1, lon1, lat2, lon2)`, "invalid lat1"},
241 {"0.0", "0.0", "12.1", "12.1", 0.0, true, `Distance(lat1, lon1, lat2, lon2)`, "empty coord"},
242 }
243
244 for _, test := range tests {
245 t.Run(test.name, func(t *testing.T) {
246 env := map[string]any{
247 "lat1": test.lat1,
248 "lon1": test.lon1,
249 "lat2": test.lat2,
250 "lon2": test.lon2,
251 }
252
253 vm, err := expr.Compile(test.expr, GetExprOptions(env)...)
254 if err != nil {
255 t.Fatalf("pattern:%s val:%s NOK %s", test.lat1, test.lon1, err)
256 }
257
258 ret, err := expr.Run(vm, env)
259 if test.valid {
260 require.NoError(t, err)
261 assert.InDelta(t, test.dist, ret, 0.000001)
262 } else {
263 require.Error(t, err)
264 }
265 })
266 }
267}
268
269func TestRegexpCacheBehavior(t *testing.T) {
270 err := Init(nil)

Callers

nothing calls this directly

Calls 5

InitFunction · 0.85
GetExprOptionsFunction · 0.85
RunMethod · 0.65
ErrorMethod · 0.65
CompileMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…