aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_SwapWorkspaces.hs
diff options
context:
space:
mode:
authorAdam Vogt <vogt.adam@gmail.com>2010-04-19 03:49:46 +0200
committerAdam Vogt <vogt.adam@gmail.com>2010-04-19 03:49:46 +0200
commit1f2f6239a5d942d2cd0f06aeec2d96ab05980600 (patch)
tree5b789a736dc3a938f4bdb598b8ed0bd591878d2c /tests/test_SwapWorkspaces.hs
parent21033ad1ff3948c39dab6fca2e003acb6f575cc2 (diff)
downloadXMonadContrib-1f2f6239a5d942d2cd0f06aeec2d96ab05980600.tar.gz
XMonadContrib-1f2f6239a5d942d2cd0f06aeec2d96ab05980600.tar.xz
XMonadContrib-1f2f6239a5d942d2cd0f06aeec2d96ab05980600.zip
Rearrange tests. See test/genMain.hs for instructions.
Ignore-this: 1745e6f1052e84e40153b5b1c0a6e15a darcs-hash:20100419014946-1499c-4705ec3d27ad26df038a7d72e978e5a137d712b5.gz
Diffstat (limited to 'tests/test_SwapWorkspaces.hs')
-rw-r--r--tests/test_SwapWorkspaces.hs56
1 files changed, 0 insertions, 56 deletions
diff --git a/tests/test_SwapWorkspaces.hs b/tests/test_SwapWorkspaces.hs
deleted file mode 100644
index 148ab97..0000000
--- a/tests/test_SwapWorkspaces.hs
+++ /dev/null
@@ -1,56 +0,0 @@
-{-# OPTIONS -fglasgow-exts #-}
-
-import Data.List(find,union)
-import Data.Maybe(fromJust)
-import Test.QuickCheck
-
-import XMonad.StackSet
-import Properties(T, NonNegative) -- requires tests/Properties.hs from xmonad-core
-import XMonad.Actions.SwapWorkspaces
-
--- Ensures that no "loss of information" can happen from a swap.
-prop_double_swap (ss :: T) (t1 :: NonNegative Int) (t2 :: NonNegative Int) =
- t1 `tagMember` ss && t2 `tagMember` ss ==>
- ss == swap (swap ss)
- where swap = swapWorkspaces t1 t2
-
--- Degrade nicely when given invalid data.
-prop_invalid_swap (ss :: T) (t1 :: NonNegative Int) (t2 :: NonNegative Int) =
- not (t1 `tagMember` ss || t2 `tagMember` ss) ==>
- ss == swapWorkspaces t1 t2 ss
-
--- This doesn't pass yet. Probably should.
--- prop_half_invalid_swap (ss :: T) (t1 :: NonNegative Int) (t2 :: NonNegative Int) =
--- t1 `tagMember` ss && not (t2 `tagMember` ss) ==>
--- ss == swapWorkspaces t1 t2 ss
-
-zipWorkspacesWith :: (Workspace i l a -> Workspace i l a -> n) -> StackSet i l a s sd ->
- StackSet i l a s sd -> [n]
-zipWorkspacesWith f s t = f (workspace $ current s) (workspace $ current t) :
- zipWith f (map workspace $ visible s) (map workspace $ visible t) ++
- zipWith f (hidden s) (hidden t)
-
--- Swap only modifies the workspaces tagged t1 and t2 -- leaves all others alone.
-prop_swap_only_two (ss :: T) (t1 :: NonNegative Int) (t2 :: NonNegative Int) =
- t1 `tagMember` ss && t2 `tagMember` ss ==>
- and $ zipWorkspacesWith mostlyEqual ss (swapWorkspaces t1 t2 ss)
- where mostlyEqual w1 w2 = map tag [w1, w2] `elem` [[t1, t2], [t2, t1]] || w1 == w2
-
--- swapWithCurrent stays on current
-prop_swap_with_current (ss :: T) (t :: NonNegative Int) =
- t `tagMember` ss ==>
- layout before == layout after && stack before == stack after
- where before = workspace $ current ss
- after = workspace $ current $ swapWithCurrent t ss
-
-main = do
- putStrLn "Testing double swap"
- quickCheck prop_double_swap
- putStrLn "Testing invalid swap"
- quickCheck prop_invalid_swap
- -- putStrLn "Testing half-invalid swap"
- -- quickCheck prop_half_invalid_swap
- putStrLn "Testing swap only two"
- quickCheck prop_swap_only_two
- putStrLn "Testing swap with current"
- quickCheck prop_swap_with_current