diff --git a/examples/sorted-tree-indexed/tests/gens/sorted-big/Main.idr b/examples/sorted-tree-indexed/tests/gens/sorted-big/Main.idr new file mode 100644 index 000000000..6303b7d87 --- /dev/null +++ b/examples/sorted-tree-indexed/tests/gens/sorted-big/Main.idr @@ -0,0 +1,20 @@ +import Data.SortedBinTree.Gen +import Data.Fuel +import Data.List +import Data.List.Lazy +import Data.Primitives.Interpolation + +import System.Random.Pure.StdGen + +%default total + +main : IO () +main = do + let vals = unGenTryN 10 someStdGen $ genSortedBinTree1 $ limit 10 + Lazy.for_ vals $ \(mi ** ma ** tree) => do + putStrLn "--------------" + let list = toList tree + putStrLn "min: \{mi}, max: \{ma}, length: \{length list}" + putStrLn "tree:\n\{tree}" + putStrLn "as list: \{show list}" + putStrLn "sorted: \{show $ sorted list}" diff --git a/examples/sorted-tree-indexed/tests/gens/sorted-big/expected b/examples/sorted-tree-indexed/tests/gens/sorted-big/expected new file mode 100644 index 000000000..55dba7526 --- /dev/null +++ b/examples/sorted-tree-indexed/tests/gens/sorted-big/expected @@ -0,0 +1,324 @@ +-------------- +min: 4, max: 12, length: 5 +tree: +. +| +|- . +| | +| |- . +| | | +| | |- . +| | | | +| | | |- 4 +| | | | +| | | |- 7 +| | | +| | |- 8 +| | +| |- 9 +| +|- 12 +as list: [4, 7, 8, 9, 12] +sorted: True +-------------- +min: 4, max: 11, length: 6 +tree: +. +| +|- . +| | +| |- . +| | | +| | |- . +| | | | +| | | |- 4 +| | | | +| | | |- . +| | | | +| | | |- 6 +| | | | +| | | |- 7 +| | | +| | |- 8 +| | +| |- 9 +| +|- 11 +as list: [4, 6, 7, 8, 9, 11] +sorted: True +-------------- +min: 5, max: 15, length: 6 +tree: +. +| +|- . +| | +| |- . +| | | +| | |- . +| | | | +| | | |- . +| | | | | +| | | | |- 5 +| | | | | +| | | | |- 6 +| | | | +| | | |- 7 +| | | +| | |- 8 +| | +| |- 9 +| +|- 15 +as list: [5, 6, 7, 8, 9, 15] +sorted: True +-------------- +min: 3, max: 19, length: 4 +tree: +. +| +|- 3 +| +|- . + | + |- . + | | + | |- 8 + | | + | |- 9 + | + |- 19 +as list: [3, 8, 9, 19] +sorted: True +-------------- +min: 3, max: 17, length: 8 +tree: +. +| +|- . +| | +| |- . +| | | +| | |- . +| | | | +| | | |- . +| | | | | +| | | | |- . +| | | | | | +| | | | | |- . +| | | | | | | +| | | | | | |- 3 +| | | | | | | +| | | | | | |- 4 +| | | | | | +| | | | | |- 5 +| | | | | +| | | | |- 6 +| | | | +| | | |- 7 +| | | +| | |- 8 +| | +| |- 9 +| +|- 17 +as list: [3, 4, 5, 6, 7, 8, 9, 17] +sorted: True +-------------- +min: 0, max: 14, length: 9 +tree: +. +| +|- . +| | +| |- . +| | | +| | |- . +| | | | +| | | |- . +| | | | | +| | | | |- . +| | | | | | +| | | | | |- . +| | | | | | | +| | | | | | |- . +| | | | | | | | +| | | | | | | |- 0 +| | | | | | | | +| | | | | | | |- 3 +| | | | | | | +| | | | | | |- 4 +| | | | | | +| | | | | |- 5 +| | | | | +| | | | |- 6 +| | | | +| | | |- 7 +| | | +| | |- 8 +| | +| |- 9 +| +|- 14 +as list: [0, 3, 4, 5, 6, 7, 8, 9, 14] +sorted: True +-------------- +min: 0, max: 12, length: 11 +tree: +. +| +|- . +| | +| |- . +| | | +| | |- . +| | | | +| | | |- . +| | | | | +| | | | |- . +| | | | | | +| | | | | |- . +| | | | | | | +| | | | | | |- . +| | | | | | | | +| | | | | | | |- . +| | | | | | | | | +| | | | | | | | |- . +| | | | | | | | | | +| | | | | | | | | |- 0 +| | | | | | | | | | +| | | | | | | | | |- 1 +| | | | | | | | | +| | | | | | | | |- 2 +| | | | | | | | +| | | | | | | |- 3 +| | | | | | | +| | | | | | |- 4 +| | | | | | +| | | | | |- 5 +| | | | | +| | | | |- 6 +| | | | +| | | |- 7 +| | | +| | |- 8 +| | +| |- 9 +| +|- 12 +as list: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12] +sorted: True +-------------- +min: 0, max: 12, length: 11 +tree: +. +| +|- . +| | +| |- . +| | | +| | |- . +| | | | +| | | |- . +| | | | | +| | | | |- . +| | | | | | +| | | | | |- . +| | | | | | | +| | | | | | |- . +| | | | | | | | +| | | | | | | |- . +| | | | | | | | | +| | | | | | | | |- . +| | | | | | | | | | +| | | | | | | | | |- 0 +| | | | | | | | | | +| | | | | | | | | |- 1 +| | | | | | | | | +| | | | | | | | |- 2 +| | | | | | | | +| | | | | | | |- 3 +| | | | | | | +| | | | | | |- 4 +| | | | | | +| | | | | |- 5 +| | | | | +| | | | |- 6 +| | | | +| | | |- 7 +| | | +| | |- 8 +| | +| |- 9 +| +|- 12 +as list: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12] +sorted: True +-------------- +min: 1, max: 17, length: 10 +tree: +. +| +|- . +| | +| |- . +| | | +| | |- . +| | | | +| | | |- . +| | | | | +| | | | |- . +| | | | | | +| | | | | |- . +| | | | | | | +| | | | | | |- . +| | | | | | | | +| | | | | | | |- . +| | | | | | | | | +| | | | | | | | |- 1 +| | | | | | | | | +| | | | | | | | |- 2 +| | | | | | | | +| | | | | | | |- 3 +| | | | | | | +| | | | | | |- 4 +| | | | | | +| | | | | |- 5 +| | | | | +| | | | |- 6 +| | | | +| | | |- 7 +| | | +| | |- 8 +| | +| |- 9 +| +|- 17 +as list: [1, 2, 3, 4, 5, 6, 7, 8, 9, 17] +sorted: True +-------------- +min: 5, max: 18, length: 6 +tree: +. +| +|- . +| | +| |- . +| | | +| | |- . +| | | | +| | | |- . +| | | | | +| | | | |- 5 +| | | | | +| | | | |- 6 +| | | | +| | | |- 7 +| | | +| | |- 8 +| | +| |- 9 +| +|- 18 +as list: [5, 6, 7, 8, 9, 18] +sorted: True diff --git a/examples/sorted-tree-indexed/tests/gens/sorted/run b/examples/sorted-tree-indexed/tests/gens/sorted-big/run similarity index 100% rename from examples/sorted-tree-indexed/tests/gens/sorted/run rename to examples/sorted-tree-indexed/tests/gens/sorted-big/run diff --git a/examples/sorted-tree-indexed/tests/gens/sorted/test.ipkg b/examples/sorted-tree-indexed/tests/gens/sorted-big/test.ipkg similarity index 100% rename from examples/sorted-tree-indexed/tests/gens/sorted/test.ipkg rename to examples/sorted-tree-indexed/tests/gens/sorted-big/test.ipkg diff --git a/examples/sorted-tree-indexed/tests/gens/sorted/Main.idr b/examples/sorted-tree-indexed/tests/gens/sorted-small/Main.idr similarity index 100% rename from examples/sorted-tree-indexed/tests/gens/sorted/Main.idr rename to examples/sorted-tree-indexed/tests/gens/sorted-small/Main.idr diff --git a/examples/sorted-tree-indexed/tests/gens/sorted/expected b/examples/sorted-tree-indexed/tests/gens/sorted-small/expected similarity index 100% rename from examples/sorted-tree-indexed/tests/gens/sorted/expected rename to examples/sorted-tree-indexed/tests/gens/sorted-small/expected diff --git a/examples/sorted-tree-naive/tests/gens/sorted/run b/examples/sorted-tree-indexed/tests/gens/sorted-small/run similarity index 100% rename from examples/sorted-tree-naive/tests/gens/sorted/run rename to examples/sorted-tree-indexed/tests/gens/sorted-small/run diff --git a/examples/sorted-tree-indexed/tests/gens/sorted-small/test.ipkg b/examples/sorted-tree-indexed/tests/gens/sorted-small/test.ipkg new file mode 100644 index 000000000..9b6c7c376 --- /dev/null +++ b/examples/sorted-tree-indexed/tests/gens/sorted-small/test.ipkg @@ -0,0 +1,6 @@ +package a-test + +depends = sorted-tree-indexed + +executable = a-test +main = Main diff --git a/examples/sorted-tree-naive/tests/gens/sorted/Main.idr b/examples/sorted-tree-naive/tests/gens/sorted-big/Main.idr similarity index 100% rename from examples/sorted-tree-naive/tests/gens/sorted/Main.idr rename to examples/sorted-tree-naive/tests/gens/sorted-big/Main.idr diff --git a/examples/sorted-tree-naive/tests/gens/sorted/expected b/examples/sorted-tree-naive/tests/gens/sorted-big/expected similarity index 100% rename from examples/sorted-tree-naive/tests/gens/sorted/expected rename to examples/sorted-tree-naive/tests/gens/sorted-big/expected diff --git a/examples/sorted-tree-naive/tests/gens/sorted-big/run b/examples/sorted-tree-naive/tests/gens/sorted-big/run new file mode 100755 index 000000000..3445c95bf --- /dev/null +++ b/examples/sorted-tree-naive/tests/gens/sorted-big/run @@ -0,0 +1,6 @@ +rm -rf build + +flock "$1" pack -q install-deps test.ipkg && \ +pack run test.ipkg + +rm -rf build diff --git a/examples/sorted-tree-naive/tests/gens/sorted/test.ipkg b/examples/sorted-tree-naive/tests/gens/sorted-big/test.ipkg similarity index 100% rename from examples/sorted-tree-naive/tests/gens/sorted/test.ipkg rename to examples/sorted-tree-naive/tests/gens/sorted-big/test.ipkg diff --git a/examples/sorted-tree-naive/tests/gens/sorted-small/Main.idr b/examples/sorted-tree-naive/tests/gens/sorted-small/Main.idr new file mode 100644 index 000000000..51a0916f0 --- /dev/null +++ b/examples/sorted-tree-naive/tests/gens/sorted-small/Main.idr @@ -0,0 +1,20 @@ +import Data.SortedBinTree.Gen +import Data.Fuel +import Data.List +import Data.List.Lazy +import Data.Primitives.Interpolation + +import System.Random.Pure.StdGen + +%default total + +main : IO () +main = do + let vals = unGenTryN 10 someStdGen $ genSortedBinTree $ limit 5 + Lazy.for_ vals $ \tree => do + putStrLn "--------------" + let list = toList tree + putStrLn "length: \{length list}" + putStrLn "tree:\n\{tree}" + putStrLn "as list: \{show list}" + putStrLn "sorted: \{show $ sorted list}" diff --git a/examples/sorted-tree-naive/tests/gens/sorted-small/expected b/examples/sorted-tree-naive/tests/gens/sorted-small/expected new file mode 100644 index 000000000..a2b8c9d65 --- /dev/null +++ b/examples/sorted-tree-naive/tests/gens/sorted-small/expected @@ -0,0 +1,196 @@ +-------------- +length: 4 +tree: +2 +| +|- * +| +|- 6 + | + |- 3 + | | + | |- * + | | + | |- 4 + | | + | |- * + | | + | |- * + | + |- * +as list: [2, 3, 4, 6] +sorted: True +-------------- +length: 4 +tree: +2 +| +|- * +| +|- 6 + | + |- 3 + | | + | |- * + | | + | |- 4 + | | + | |- * + | | + | |- * + | + |- * +as list: [2, 3, 4, 6] +sorted: True +-------------- +length: 1 +tree: +4 +| +|- * +| +|- * +as list: [4] +sorted: True +-------------- +length: 6 +tree: +5 +| +|- 2 +| | +| |- 0 +| | | +| | |- * +| | | +| | |- 1 +| | | +| | |- * +| | | +| | |- * +| | +| |- 4 +| | +| |- 3 +| | | +| | |- * +| | | +| | |- * +| | +| |- * +| +|- * +as list: [0, 1, 2, 3, 4, 5] +sorted: True +-------------- +length: 0 +tree: +* +as list: [] +sorted: True +-------------- +length: 0 +tree: +* +as list: [] +sorted: True +-------------- +length: 3 +tree: +9 +| +|- 3 +| | +| |- * +| | +| |- 4 +| | +| |- * +| | +| |- * +| +|- * +as list: [3, 4, 9] +sorted: True +-------------- +length: 5 +tree: +0 +| +|- * +| +|- 1 + | + |- * + | + |- 6 + | + |- 2 + | | + | |- * + | | + | |- 4 + | | + | |- * + | | + | |- * + | + |- * +as list: [0, 1, 2, 4, 6] +sorted: True +-------------- +length: 5 +tree: +7 +| +|- 2 +| | +| |- 0 +| | | +| | |- * +| | | +| | |- 1 +| | | +| | |- * +| | | +| | |- * +| | +| |- 4 +| | +| |- * +| | +| |- * +| +|- * +as list: [0, 1, 2, 4, 7] +sorted: True +-------------- +length: 6 +tree: +6 +| +|- 1 +| | +| |- 0 +| | | +| | |- * +| | | +| | |- * +| | +| |- 4 +| | +| |- 3 +| | | +| | |- 2 +| | | | +| | | |- * +| | | | +| | | |- * +| | | +| | |- * +| | +| |- * +| +|- * +as list: [0, 1, 2, 3, 4, 6] +sorted: True diff --git a/examples/sorted-tree-naive/tests/gens/sorted-small/run b/examples/sorted-tree-naive/tests/gens/sorted-small/run new file mode 100755 index 000000000..3445c95bf --- /dev/null +++ b/examples/sorted-tree-naive/tests/gens/sorted-small/run @@ -0,0 +1,6 @@ +rm -rf build + +flock "$1" pack -q install-deps test.ipkg && \ +pack run test.ipkg + +rm -rf build diff --git a/examples/sorted-tree-naive/tests/gens/sorted-small/test.ipkg b/examples/sorted-tree-naive/tests/gens/sorted-small/test.ipkg new file mode 100644 index 000000000..656230c72 --- /dev/null +++ b/examples/sorted-tree-naive/tests/gens/sorted-small/test.ipkg @@ -0,0 +1,6 @@ +package a-test + +depends = sorted-tree-naive + +executable = a-test +main = Main