more sysasserts for allocator/gc

This commit is contained in:
Araq 2012-01-12 19:44:57 +01:00
commit e6b3f50c7f
8 changed files with 38 additions and 24 deletions

View file

@ -1,5 +1,5 @@
discard """
disabled: true
disabled: false
"""
import math, algorithm
@ -12,7 +12,7 @@ proc sorted[T](a: openArray[T], order: TSortOrder): bool =
result = false
proc bubbleSort[T](a: var openArray[T],
cmp: proc (x, y: T): int = cmp,
cmp: proc (x, y: T): int,
order = TSortOrder.Ascending) =
while true:
var sorted = true
@ -28,12 +28,16 @@ when isMainModule:
var data: seq[string] = @[]
for i in 0..10_000:
var L = random(59)
var L = 59 #random(59)
setLen(data, L)
for j in 0 .. L-1:
data[j] = $(math.random(90) - 10)
var copy = data
sort(data, cmp, order)
data[j] = "" #$(math.random(90) - 10)
when false:
#var copy = data
var copy: seq[string]
newSeq(copy, data.len)
for i in 0..data.high: copy[i] = data[i]
bubblesort(data, cmp, order)
if not sorted(data, order):
#for x in items(data): echo x
break
@ -46,6 +50,7 @@ when isMainModule:
if copy[i] != data[i]:
quit "algorithms differ!"
when false:
for i in 0..10_000:
var data: seq[int] = @[]
var L = random(59)
@ -59,7 +64,7 @@ when isMainModule:
break
else:
echo "SUCCESS!"
bubblesort(copy)
bubblesort(copy, cmp[int])
if copy.len != data.len:
quit "lengths differ!"
for i in 0 .. copy.high: