diff options
Diffstat (limited to 'tests/compile/tsortdev.nim')
-rwxr-xr-x | tests/compile/tsortdev.nim | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/tests/compile/tsortdev.nim b/tests/compile/tsortdev.nim deleted file mode 100755 index c4e63fab4..000000000 --- a/tests/compile/tsortdev.nim +++ /dev/null @@ -1,72 +0,0 @@ -discard """ - disabled: true -""" - -import math, algorithm - -proc sorted[T](a: openArray[T], order: TSortOrder): bool = - result = true - for i in 0 .. < a.high: - if cmp(a[i], a[i+1]) * order > 0: - echo "Out of order: ", a[i], " ", a[i+1] - result = false - -proc bubbleSort[T](a: var openArray[T], - cmp: proc (x, y: T): int = cmp, - order = TSortOrder.Ascending) = - while true: - var sorted = true - for i in 0 .. a.len-2: - if cmp(a[i], a[i+1]) * order > 0: - swap(a[i], a[i+1]) - sorted = false - if sorted: break - -when isMainModule: - proc main() = - const order = Ascending - var data: seq[string] = @[] - - for i in 0..10_000: - var L = random(59) - setLen(data, L) - for j in 0 .. L-1: - data[j] = $(math.random(90) - 10) - var copy = data - sort(data, cmp, order) - if not sorted(data, order): - #for x in items(data): echo x - break - else: - echo "SUCCESS!" - bubblesort(copy, cmp, order) - if copy.len != data.len: - quit "lengths differ!" - for i in 0 .. copy.high: - if copy[i] != data[i]: - quit "algorithms differ!" - - for i in 0..10_000: - var data: seq[int] = @[] - var L = random(59) - setLen(data, L) - for j in 0 .. L-1: - data[j] = (math.random(90) - 10) - var copy = data - sort(data, cmp[int], order) - if not sorted(data, order): - #for x in items(data): echo x - break - else: - echo "SUCCESS!" - bubblesort(copy) - if copy.len != data.len: - quit "lengths differ!" - for i in 0 .. copy.high: - if copy[i] != data[i]: - quit "algorithms differ!" - - main() - -echo "done" - |