From d330dcae24a6e666518612f9fb6807a2b7cbcdcc Mon Sep 17 00:00:00 2001 From: Max Rabkin Date: Thu, 1 Oct 2009 15:58:53 +0000 Subject: [PATCH] added prop_select_two_consec to test_Selective.hs --- tests/test_Selective.hs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/test_Selective.hs b/tests/test_Selective.hs index 15ea5c02..186f9040 100644 --- a/tests/test_Selective.hs +++ b/tests/test_Selective.hs @@ -5,7 +5,7 @@ -- L.LimitWindows. import XMonad.Layout.LimitWindows -import XMonad.StackSet hiding (focusUp, focusDown) +import XMonad.StackSet hiding (focusUp, focusDown, filter) import Control.Applicative ((<$>)) import Test.QuickCheck import Control.Arrow (second) @@ -52,6 +52,12 @@ prop_select_increasing sel (stk :: Stack Int) = let res = integrate $ select sel stk in and . zipWith (<) res $ tail res +-- selection has the form [0..l] ++ [m..n] +-- relies on the Arbitrary instance for Stack Int generating stacks like [0..k] +prop_select_two_consec sel (stk :: Stack Int) = + let wins = integrate $ select sel stk + in (length . filter not . zipWith ((==) . (+1)) wins $ tail wins) <= 1 + -- update preserves invariants on selections prop_update_nm sel (stk :: Stack Int) = nMaster (update sel stk) >= 0 prop_update_start sel (stk :: Stack Int) = nMaster sel' <= start sel'