AvlTree-4.1: Balanced binary trees using the AVL algorithm.




This module contains a large set of fairly comprehensive but extremely time consuming tests of AVL tree functions (not based on QuickCheck).

They can all be run using allTests, or they can be run individually.



allTests :: IO ()Source

Run every test in this module (takes a very long time).

testReadPath :: IO ()Source

Test readPath

testIsBalanced :: IO ()Source

Test isBalanced is capable of failing for a few non-AVL trees.

testIsSorted :: IO ()Source

Test isSorted is capable of failing for a few non-sorted trees.

testSize :: IO ()Source

Test size function

testClipSize :: IO ()Source

Test clipSize function

testGenWrite :: IO ()Source

Test genWrite function

testGenPush :: IO ()Source

Test genPush function

testPushL :: IO ()Source

Test pushL function Also exercises: asListL

testPushR :: IO ()Source

Test pushR function Also exercises: asListR

testGenDel :: IO ()Source

Test genDel function

testAssertDelL :: IO ()Source

Test assertDelL function Also exercises: asListL

testAssertDelR :: IO ()Source

Test delR function Also exercises: asListR

testAssertPopL :: IO ()Source

Test assertPopL function Also exercises: asListL

testPopHL :: IO ()Source

Test popHL function This test can only be run if popHL and HAVL are not hidden. However, popHL is exercised by indirectly by testConcatAVL anyway

testAssertPopR :: IO ()Source

Test assertPopR function Also exercises: asListR

testGenAssertPop :: IO ()Source

Test genAssertPop function

testFlatten :: IO ()Source

Test flatten function Also exercises: asListL,replicateAVL

testJoin :: IO ()Source

Test the join function

testJoinHAVL :: IO ()Source

Test the joinHAVL function

testConcatAVL :: IO ()Source

Test the concatAVL function.

testFlatConcat :: IO ()Source

Test the flatConcat function.

testFoldrAVL :: IO ()Source

Test foldrAVL

testFoldrAVL' :: IO ()Source

Test foldrAVL'

testFoldlAVL :: IO ()Source

Test foldlAVL

testFoldlAVL' :: IO ()Source

Test foldlAVL'

testFoldr1AVL :: IO ()Source

Test foldr1AVL

testFoldr1AVL' :: IO ()Source

Test foldr1AVL'

testFoldl1AVL :: IO ()Source

Test foldl1AVL

testFoldl1AVL' :: IO ()Source

Test foldl1AVL'

testMapAccumLAVL :: IO ()Source

Test mapAccumLAVL

testMapAccumRAVL :: IO ()Source

Test mapAccumRAVL

testMapAccumLAVL' :: IO ()Source

Test mapAccumLAVL'

testMapAccumRAVL' :: IO ()Source

Test mapAccumRAVL'

testMapAccumLAVL'' :: IO ()Source

Test mapAccumLAVL''

testMapAccumRAVL'' :: IO ()Source

Test mapAccumRAVL''

testSplitAtL :: IO ()Source

Test splitAtL function

testFilterViaList :: IO ()Source

Test the filterViaList function

testFilterAVL :: IO ()Source

Test the filterAVL function

testMapMaybeViaList :: IO ()Source

Test the mapMaybeViaList function

testMapMaybeAVL :: IO ()Source

Test the mapMaybeAVL function

testTakeL :: IO ()Source

Test takeL function

testDropL :: IO ()Source

Test dropL function

testSplitAtR :: IO ()Source

Test splitAtR function

testTakeR :: IO ()Source

Test takeR function

testDropR :: IO ()Source

Test dropR function

testSpanL :: IO ()Source

Test spanL function

testTakeWhileL :: IO ()Source

Test takeWhileL function

testDropWhileL :: IO ()Source

Test dropWhileL function

testSpanR :: IO ()Source

Test spanR function

testTakeWhileR :: IO ()Source

Test takeWhileR function

testDropWhileR :: IO ()Source

Test dropWhileR function

testRotateL :: IO ()Source

Test rotateL function

testRotateR :: IO ()Source

Test rotateR function

testRotateByL :: IO ()Source

Test rotateByL function

testRotateByR :: IO ()Source

Test rotateByR function

testGenForkL :: IO ()Source

Test genForkL function

testGenForkR :: IO ()Source

Test genForkR function

testGenFork :: IO ()Source

Test genFork function

testGenTakeLE :: IO ()Source

Test genTakeLE function

testGenTakeGT :: IO ()Source

Test genTakeGT function

testGenTakeGE :: IO ()Source

Test genTakeGE function

testGenTakeLT :: IO ()Source

Test genTakeLT function

testGenUnion :: IO ()Source

Test the genUnion function

testGenDisjointUnion :: IO ()Source

Test the genDisjointUnion function

testGenUnionMaybe :: IO ()Source

Test the genUnionMaybe function

testGenIntersection :: IO ()Source

Test the genIntersection function

testGenIntersectionMaybe :: IO ()Source

Test the genIntersectionMaybe function

testGenIntersectionAsListL :: IO ()Source

Test the genIntersectionAsListL function

testGenIntersectionMaybeAsListL :: IO ()Source

Test the genIntersectionMaybeAsListL function

testGenDifference :: IO ()Source

Test the genDifference function

testGenDifferenceMaybe :: IO ()Source

Test the genDifferenceMaybe function

testGenSymDifference :: IO ()Source

Test the genSymDifference function

testGenIsSubsetOf :: IO ()Source

Test the genIsSubsetOf function

testGenIsSubsetOfBy :: IO ()Source

Test the genIsSubsetOfBy function

testGenVenn :: IO ()Source

Test the genVenn function

testGenVennMaybe :: IO ()Source

Test the genVennMaybe function

testCompareHeight :: IO ()Source

Test compareHeight function

testShowReadEq :: IO ()Source

Test Show,Read,Eq instances

testGenOpenClose :: IO ()Source

Test Zipper open/close

testDelClose :: IO ()Source

Test Zipper delClose

testOpenLClose :: IO ()Source

Test Zipper assertOpenL/close

testOpenRClose :: IO ()Source

Test Zipper assertOpenR/close

testMoveL :: IO ()Source

Test Zipper assertMoveL/isRightmost

testMoveR :: IO ()Source

Test Zipper assertMoveR/isLeftmost

testInsertL :: IO ()Source

Test Zipper insertL

testInsertMoveL :: IO ()Source

Test Zipper insertMoveL

testInsertR :: IO ()Source

Test Zipper insertR

testInsertMoveR :: IO ()Source

Test Zipper insertMoveR

testInsertTreeL :: IO ()Source

Test Zipper insertTreeL

testInsertTreeR :: IO ()Source

Test Zipper insertTreeR

testDelMoveL :: IO ()Source

Test Zipper assertDelMoveL

testDelMoveR :: IO ()Source

Test Zipper assertDelMoveR

testDelAllL :: IO ()Source

Test Zipper delAllL

testDelAllR :: IO ()Source

Test Zipper delAllR

testDelAllCloseL :: IO ()Source

Test Zipper delAllCloseL

testDelAllIncCloseL :: IO ()Source

Test Zipper delAllIncCloseL

testDelAllCloseR :: IO ()Source

Test Zipper delAllCloseR

testDelAllIncCloseR :: IO ()Source

Test Zipper delAllIncCloseR

testZipSize :: IO ()Source

Test Zipper sizeL/sizeR/sizeZAVL

testGenTryOpenLE :: IO ()Source

Test Zipper genTryOpenLE

testGenTryOpenGE :: IO ()Source

Test Zipper genTryOpenGE

testGenOpenEither :: IO ()Source

Test Zipper genOpenEither (also tests fill and fillClose)

testBAVLtoZipper :: IO ()Source

Test anyBAVLtoEither