diff --git a/examples/sorted-tree-indexed/src/Data/SortedBinTree.idr b/examples/sorted-tree-indexed/src/Data/SortedBinTree.idr index 845b4c31d..41fdc199c 100644 --- a/examples/sorted-tree-indexed/src/Data/SortedBinTree.idr +++ b/examples/sorted-tree-indexed/src/Data/SortedBinTree.idr @@ -1,6 +1,7 @@ module Data.SortedBinTree import public Data.Nat +import Data.String %default total @@ -13,3 +14,22 @@ export toList : SortedBinTree1 mi ma -> List Nat toList (Leaf x) = [x] toList (Node left right) = toList left ++ toList right + +export +weight : SortedBinTree1 mi ma -> Nat +weight $ Leaf x = 1 +weight $ Node l r = 1 + weight l + weight r + +export +Interpolation (SortedBinTree1 mi ma) where + interpolate $ Leaf x = "\{show x}" + interpolate $ Node l r = """ + . + \{ind "|" $ interpolate l} + \{ind " " $ interpolate r} + """ + where + ind : (pref : String) -> String -> String + ind k s = do + let f::fs = lines s | [] => "" + joinBy "\n" $ "|" :: ("|- " ++ f) :: (("\{k} " ++) <$> fs) diff --git a/examples/sorted-tree-indexed/tests/gens/distribution-relative-weight/CheckDistribution.idr b/examples/sorted-tree-indexed/tests/gens/distribution-relative-weight/CheckDistribution.idr new file mode 100644 index 000000000..5d9c93d78 --- /dev/null +++ b/examples/sorted-tree-indexed/tests/gens/distribution-relative-weight/CheckDistribution.idr @@ -0,0 +1,34 @@ +module CheckDistribution + +import Data.DPair +import Data.SortedBinTree.Gen + +import Deriving.DepTyCheck.Gen + +import DistrCheckCommon + +%default total + +%language ElabReflection + +-- Check how weights of subtrees are related between left and right subtree of a root + +getLR : (mi ** ma ** SortedBinTree1 mi ma) -> Maybe $ let t = Exists $ Exists . SortedBinTree1 in (t, t) +getLR (_ ** _ ** Leaf {}) = Nothing +getLR (_ ** _ ** Node l r) = Just (Evidence _ $ Evidence _ l, Evidence _ $ Evidence _ r) + +mainFor : (depth : Nat) -> IO () +mainFor depth = printVerdict' getLR (genSortedBinTree1 $ limit depth) $ fromList + $ [ coverWith 1 (\(l, r) => weight l.snd.snd `f` weight r.snd.snd) + | (r, f) <- + [ (ratio 1 2, (>)) + , (ratio 1 10, (==)) + , (ratio 1 2, (<)) + ] + ] + +main : IO () +main = do + mainFor 2 + mainFor 4 + mainFor 6 diff --git a/examples/sorted-tree-indexed/tests/gens/distribution-relative-weight/DistrCheckCommon.idr b/examples/sorted-tree-indexed/tests/gens/distribution-relative-weight/DistrCheckCommon.idr new file mode 120000 index 000000000..97b34ad55 --- /dev/null +++ b/examples/sorted-tree-indexed/tests/gens/distribution-relative-weight/DistrCheckCommon.idr @@ -0,0 +1 @@ +../_common/DistrCheckCommon.idr \ No newline at end of file diff --git a/examples/sorted-tree-indexed/tests/gens/distribution-relative-weight/expected b/examples/sorted-tree-indexed/tests/gens/distribution-relative-weight/expected new file mode 100644 index 000000000..9bcc36fce --- /dev/null +++ b/examples/sorted-tree-indexed/tests/gens/distribution-relative-weight/expected @@ -0,0 +1,3 @@ +Just [ok, ok, ok] +Just [ok, ok, ok] +Just [ok, ok, ok] diff --git a/examples/sorted-tree-indexed/tests/gens/distribution-relative-weight/run b/examples/sorted-tree-indexed/tests/gens/distribution-relative-weight/run new file mode 120000 index 000000000..805165988 --- /dev/null +++ b/examples/sorted-tree-indexed/tests/gens/distribution-relative-weight/run @@ -0,0 +1 @@ +../_common/run \ No newline at end of file diff --git a/examples/sorted-tree-indexed/tests/gens/distribution-relative-weight/test.ipkg b/examples/sorted-tree-indexed/tests/gens/distribution-relative-weight/test.ipkg new file mode 100644 index 000000000..c02bdac39 --- /dev/null +++ b/examples/sorted-tree-indexed/tests/gens/distribution-relative-weight/test.ipkg @@ -0,0 +1,5 @@ +package test + +main = CheckDistribution + +depends = deptycheck, sorted-tree-indexed, summary-stat 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 94% rename from examples/sorted-tree-indexed/tests/gens/sorted/Main.idr rename to examples/sorted-tree-indexed/tests/gens/sorted-small/Main.idr index 4a3344bff..fc756d37c 100644 --- a/examples/sorted-tree-indexed/tests/gens/sorted/Main.idr +++ b/examples/sorted-tree-indexed/tests/gens/sorted-small/Main.idr @@ -15,5 +15,6 @@ main = 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/expected b/examples/sorted-tree-indexed/tests/gens/sorted-small/expected similarity index 55% rename from examples/sorted-tree-indexed/tests/gens/sorted/expected rename to examples/sorted-tree-indexed/tests/gens/sorted-small/expected index fb11e2355..a508d3624 100644 --- a/examples/sorted-tree-indexed/tests/gens/sorted/expected +++ b/examples/sorted-tree-indexed/tests/gens/sorted-small/expected @@ -1,40 +1,136 @@ -------------- min: 1, max: 4, length: 2 +tree: +. +| +|- 1 +| +|- 4 as list: [1, 4] sorted: True -------------- min: 0, max: 7, length: 3 +tree: +. +| +|- . +| | +| |- 0 +| | +| |- 3 +| +|- 7 as list: [0, 3, 7] sorted: True -------------- min: 3, max: 5, length: 2 +tree: +. +| +|- 3 +| +|- 5 as list: [3, 5] sorted: True -------------- min: 1, max: 7, length: 4 +tree: +. +| +|- . +| | +| |- . +| | | +| | |- 1 +| | | +| | |- 2 +| | +| |- 3 +| +|- 7 as list: [1, 2, 3, 7] sorted: True -------------- min: 3, max: 6, length: 2 +tree: +. +| +|- 3 +| +|- 6 as list: [3, 6] sorted: True -------------- min: 0, max: 5, length: 5 +tree: +. +| +|- . +| | +| |- . +| | | +| | |- . +| | | | +| | | |- 0 +| | | | +| | | |- 1 +| | | +| | |- 2 +| | +| |- 3 +| +|- 5 as list: [0, 1, 2, 3, 5] sorted: True -------------- min: 3, max: 3, length: 1 +tree: +3 as list: [3] sorted: True -------------- min: 4, max: 4, length: 1 +tree: +4 as list: [4] sorted: True -------------- min: 0, max: 4, length: 5 +tree: +. +| +|- . +| | +| |- . +| | | +| | |- . +| | | | +| | | |- 0 +| | | | +| | | |- 1 +| | | +| | |- 2 +| | +| |- 3 +| +|- 4 as list: [0, 1, 2, 3, 4] sorted: True -------------- min: 1, max: 6, length: 4 +tree: +. +| +|- . +| | +| |- . +| | | +| | |- 1 +| | | +| | |- 2 +| | +| |- 3 +| +|- 6 as list: [1, 2, 3, 6] sorted: True 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/sorted-tree-naive.ipkg b/examples/sorted-tree-naive/sorted-tree-naive.ipkg index 9c08c762a..c041f0054 100644 --- a/examples/sorted-tree-naive/sorted-tree-naive.ipkg +++ b/examples/sorted-tree-naive/sorted-tree-naive.ipkg @@ -8,6 +8,7 @@ sourcedir = "src" builddir = ".build" depends = deptycheck + , prettier modules = Data.SortedBinTree , Data.SortedBinTree.Gen diff --git a/examples/sorted-tree-naive/src/Data/SortedBinTree.idr b/examples/sorted-tree-naive/src/Data/SortedBinTree.idr index 0a1708933..50b9127be 100644 --- a/examples/sorted-tree-naive/src/Data/SortedBinTree.idr +++ b/examples/sorted-tree-naive/src/Data/SortedBinTree.idr @@ -1,6 +1,8 @@ module Data.SortedBinTree import public Data.Nat +import Data.Primitives.Interpolation +import Data.String %default total @@ -35,3 +37,17 @@ export toList : SortedBinTree -> List Nat toList Empty = [] toList $ Node x left right = toList left ++ [x] ++ toList right + +export +Interpolation SortedBinTree where + interpolate Empty = "*" + interpolate $ Node x l r = """ + \{show x} + \{ind "|" $ interpolate l} + \{ind " " $ interpolate r} + """ + where + ind : (pref : String) -> String -> String + ind k s = do + let f::fs = lines s | [] => "" + joinBy "\n" $ "|" :: ("|- " ++ f) :: (("\{k} " ++) <$> fs) 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 94% rename from examples/sorted-tree-naive/tests/gens/sorted/Main.idr rename to examples/sorted-tree-naive/tests/gens/sorted-big/Main.idr index 540eac7e7..ff63f990d 100644 --- a/examples/sorted-tree-naive/tests/gens/sorted/Main.idr +++ b/examples/sorted-tree-naive/tests/gens/sorted-big/Main.idr @@ -15,5 +15,6 @@ main = 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-big/expected b/examples/sorted-tree-naive/tests/gens/sorted-big/expected new file mode 100644 index 000000000..6299a1b6a --- /dev/null +++ b/examples/sorted-tree-naive/tests/gens/sorted-big/expected @@ -0,0 +1,212 @@ +-------------- +length: 5 +tree: +2 +| +|- * +| +|- 3 + | + |- * + | + |- 6 + | + |- 4 + | | + | |- * + | | + | |- 5 + | | + | |- * + | | + | |- * + | + |- * +as list: [2, 3, 4, 5, 6] +sorted: True +-------------- +length: 5 +tree: +6 +| +|- 0 +| | +| |- * +| | +| |- 5 +| | +| |- 4 +| | | +| | |- 3 +| | | | +| | | |- * +| | | | +| | | |- * +| | | +| | |- * +| | +| |- * +| +|- * +as list: [0, 3, 4, 5, 6] +sorted: True +-------------- +length: 0 +tree: +* +as list: [] +sorted: True +-------------- +length: 6 +tree: +11 +| +|- 5 +| | +| |- 2 +| | | +| | |- 0 +| | | | +| | | |- * +| | | | +| | | |- 1 +| | | | +| | | |- * +| | | | +| | | |- * +| | | +| | |- 4 +| | | +| | |- * +| | | +| | |- * +| | +| |- * +| +|- * +as list: [0, 1, 2, 4, 5, 11] +sorted: True +-------------- +length: 3 +tree: +10 +| +|- 3 +| | +| |- * +| | +| |- 5 +| | +| |- * +| | +| |- * +| +|- * +as list: [3, 5, 10] +sorted: True +-------------- +length: 0 +tree: +* +as list: [] +sorted: True +-------------- +length: 7 +tree: +8 +| +|- 2 +| | +| |- 0 +| | | +| | |- * +| | | +| | |- 1 +| | | +| | |- * +| | | +| | |- * +| | +| |- 5 +| | +| |- 4 +| | | +| | |- 3 +| | | | +| | | |- * +| | | | +| | | |- * +| | | +| | |- * +| | +| |- * +| +|- * +as list: [0, 1, 2, 3, 4, 5, 8] +sorted: True +-------------- +length: 4 +tree: +9 +| +|- 3 +| | +| |- * +| | +| |- 5 +| | +| |- 4 +| | | +| | |- * +| | | +| | |- * +| | +| |- * +| +|- * +as list: [3, 4, 5, 9] +sorted: True +-------------- +length: 3 +tree: +4 +| +|- * +| +|- 8 + | + |- 5 + | | + | |- * + | | + | |- * + | + |- * +as list: [4, 5, 8] +sorted: True +-------------- +length: 5 +tree: +6 +| +|- 2 +| | +| |- * +| | +| |- 5 +| | +| |- 4 +| | | +| | |- 3 +| | | | +| | | |- * +| | | | +| | | |- * +| | | +| | |- * +| | +| |- * +| +|- * +as list: [2, 3, 4, 5, 6] +sorted: True 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 diff --git a/examples/sorted-tree-naive/tests/gens/sorted/expected b/examples/sorted-tree-naive/tests/gens/sorted/expected deleted file mode 100644 index 866a7128f..000000000 --- a/examples/sorted-tree-naive/tests/gens/sorted/expected +++ /dev/null @@ -1,40 +0,0 @@ --------------- -length: 5 -as list: [2, 3, 4, 5, 6] -sorted: True --------------- -length: 5 -as list: [0, 3, 4, 5, 6] -sorted: True --------------- -length: 0 -as list: [] -sorted: True --------------- -length: 6 -as list: [0, 1, 2, 4, 5, 11] -sorted: True --------------- -length: 3 -as list: [3, 5, 10] -sorted: True --------------- -length: 0 -as list: [] -sorted: True --------------- -length: 7 -as list: [0, 1, 2, 3, 4, 5, 8] -sorted: True --------------- -length: 4 -as list: [3, 4, 5, 9] -sorted: True --------------- -length: 3 -as list: [4, 5, 8] -sorted: True --------------- -length: 5 -as list: [2, 3, 4, 5, 6] -sorted: True