More robust tests for #5453 (#5469)

This commit is contained in:
Florent 2017-03-03 01:30:49 +01:00 • committed by Andreas Rumpf
commit f7af16a1c9

View file

@ -30,17 +30,12 @@ suite "find":
test "bail early": test "bail early":
## we expect nothing to be found and we should be bailing out early which means that ## we expect nothing to be found and we should be bailing out early which means that
## the timing difference between searching in small and large data should be well ## the timing difference between searching in small and large data should be well
## within a tolerance area ## within a tolerance margin
const tolerance = 0.0001 const small = 10
var smallData = repeat("url.sequence = \"http://whatever.com/jwhrejrhrjrhrjhrrjhrjrhrjrh\"", 10) const large = 1000
var largeData = repeat("url.sequence = \"http://whatever.com/jwhrejrhrjrhrjhrrjhrjrhrjrh\"", 1000000) var smallData = repeat("url.sequence = \"http://whatever.com/jwhrejrhrjrhrjhrrjhrjrhrjrh\" ", small)
var start = cpuTime() var largeData = repeat("url.sequence = \"http://whatever.com/jwhrejrhrjrhrjhrrjhrjrhrjrh\" ", large)
check(largeData.findAll(re"url.*? = '(.*?)'") == newSeq[string]()) var expression = re"^url.* = "(.*?)""
var stop = cpuTime()
var elapsedLarge = stop - start check(smallData.findAll(expression) == newSeq[string]())
start = cpuTime() check(largeData.findAll(expression) == newSeq[string]())
check(smallData.findAll(re"url.*? = '(.*?)'") == newSeq[string]())
stop = cpuTime()
var elapsedSmall = stop - start
var difference = elapsedLarge - elapsedSmall
check(difference < tolerance)