mirror of
https://github.com/MontFerret/ferret.git
synced 2025-04-07 07:19:58 +02:00
* Switched to Lab for e2e tests * Switched to binary * Updated lab installation * Updated use of Lab installer * updates * Changed lab installation path * Updated use of installer * Works * Added additional functions * Updated some tests * Updated go.sum * Works * Refactored assertions * Added tests for testing.True * Added tests for testing.None * Added tests for testing.Lte * Added tests for testing.Lt * Added generic consturctor * Added tests for testing.Len * Added tests for testing.Gte * Added tests for testing.Gt * Added tests for testing.False * Added tests for testing.Empty * Added tests for testing.Fail * Added tests for testing.Equal * Added tests for testing.Include * Updated urls in static page tests * Fixed namespace unit tests * Fixed unit test for testing.Len * Updated E2E scripts * Updaes * Updated Chrome in CI/CD * Added e2e for example test click.fql * Added suite cases for example scripts * Updated examples * Updated * Added type assertions * Updated Chrome opts and disabled headers and cookies related tests * Fixed iframes example * Increased timeouts in navigation examples * Updated value example * Updated comments * Disabled cookies examples * Fixed static url * Disabled headers examples * Disabled UA test * Simplified wait logic * Added base testing module * Fixes after codereview * Disabled failing tests
73 lines
1.1 KiB
Go
73 lines
1.1 KiB
Go
package core
|
|
|
|
import (
|
|
"context"
|
|
"math"
|
|
"math/rand"
|
|
"reflect"
|
|
)
|
|
|
|
func IsNil(input interface{}) bool {
|
|
val := reflect.ValueOf(input)
|
|
kind := val.Kind()
|
|
|
|
switch kind {
|
|
case reflect.Ptr,
|
|
reflect.Array,
|
|
reflect.Slice,
|
|
reflect.Map,
|
|
reflect.Func,
|
|
reflect.Interface,
|
|
reflect.Chan:
|
|
return val.IsNil()
|
|
case reflect.Struct,
|
|
reflect.UnsafePointer:
|
|
return false
|
|
case reflect.Invalid:
|
|
return true
|
|
default:
|
|
return false
|
|
}
|
|
}
|
|
|
|
func NumberBoundaries(input float64) (max float64, min float64) {
|
|
min = input / 2
|
|
max = input * 2
|
|
|
|
return
|
|
}
|
|
|
|
func NumberUpperBoundary(input float64) float64 {
|
|
return input * 2
|
|
}
|
|
|
|
func NumberLowerBoundary(input float64) float64 {
|
|
return input / 2
|
|
}
|
|
|
|
func Random(max float64, min float64) float64 {
|
|
r := rand.Float64()
|
|
i := r * (max - min + 1)
|
|
out := math.Floor(i) + min
|
|
|
|
return out
|
|
}
|
|
|
|
func ForEach(ctx context.Context, iter Iterator, predicate func(value Value, key Value) bool) error {
|
|
for {
|
|
value, key, err := iter.Next(ctx)
|
|
|
|
if err != nil {
|
|
if IsNoMoreData(err) {
|
|
return nil
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
if !predicate(value, key) {
|
|
return nil
|
|
}
|
|
}
|
|
}
|