more sysasserts for allocator/gc
This commit is contained in:
parent
92e1a21b26
commit
e6b3f50c7f
8 changed files with 38 additions and 24 deletions
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue