summaryrefslogtreecommitdiffstats
path: root/tests/Properties.hs
AgeCommit message (Collapse)Author
2007-09-20add (unused) Layout to StackSet.David Roundy
darcs-hash:20070920212843-72aca-4c73a99b58ebd9d1d179c5e627cbf4823493f4ab
2007-09-28add prop for 'differentiate'Don Stewart
darcs-hash:20070927231928-cba2c-84668ba6dab69541e063eaabf57724c13a28a916
2007-09-28new QC properties: floating a window is reversible, screens includes current ↵Don Stewart
screen darcs-hash:20070927220431-cba2c-1f2e67435aec367ee45d0bcbf1e9178f83ff8a71
2007-09-27Add 3 QC properties for focusMaster: local, idempotent, preserves invariantDon Stewart
darcs-hash:20070927214401-cba2c-4d5e8646bcc9d21b844f56e7cea13b9af26de7c1
2007-09-10Fix float behaviour, add shiftWin.Karsten Schoelzel
First, if float is called with window which is on a hidden workspace, then the window will remain on that hidden workspace. Now the focus should change more as expected: float w = (view current) . (shiftWin ws w) where current is the current screen/workspace shiftWin ws w is: - view the workspace w is on - set focus on w - shift ws - set focus back to window it was on that workspace unless w was focused shiftWin was add to StackSet.hs darcs-hash:20070910090329-eb3a1-ae150bf783b36fb4811e92d81b4917066c8733b7
2007-08-15Add greedyView, make it the default action for mod-werSpencer Janssen
darcs-hash:20070815025504-a5988-00ff316a056c48cc07c5e90925702d2ac09ae666
2007-07-28QuickCheck filter preserves orderKarsten Schoelzel
darcs-hash:20070728184534-eb3a1-68bbf44ab26db69a4aa75fb97cb516ebf6c963bb
2007-06-29Move screen details into StackSetSpencer Janssen
darcs-hash:20070629213917-a5988-3ad31d8f028efcec41c9c4805c01c2d42c0009b2
2007-06-26add 2 properties to state where focus goes on delete of focused windowDon Stewart
darcs-hash:20070626040907-9c5c1-397ec2ac01fda2e3f307605bf0f765bbc5724350
2007-06-14make workspace tag not need to be a Num.David Roundy
This change also removes the barely used 'size' field, and replaces it with a tagMember predicate. The idea is to move towards the ability to make the workspace tag be a String, which by default might be "1".."9", but could also be customized to be something meaningful to the user. darcs-hash:20070614140709-72aca-dbc1ce07bf964e4cff69deef95b453a0051ef782
2007-06-12make focus, up and down complete functions.David Roundy
This is a rerun of my change to make (Stack a) never be empty. Gives us more type-safety. darcs-hash:20070612150555-72aca-5f6e43aa33979c71679a73b44d93f9e2b8f9d2a8
2007-06-11Add StackSet.filterSpencer Janssen
darcs-hash:20070611165154-a5988-8c46751ffd4bd03249656e3b467b8e7569c48b09
2007-05-26HEADS UP: change key binding for swapLeft/Right and IncMasterDon Stewart
The use of arrow keys for swapLeft/Right clash with firefox's back button. Use the more intuitive mod-shift-jk for this. (It's a movement operation, after all). This clashes with IncMaster, so we use mod+comma and mod+period for these (i.e. the keys mod < and mod > , to move windows to and from the master area). While we're here, replace the use of the terms 'left' and 'right' for navigation, in comments and identifiers, with 'up' and 'down' instead. Hence mod-j == focusDown. Far more intuitive for people (dons) who live in fullscreen mode and have vim movement wired into their central nervous system. Principle of least VI surprise: movement down or up means using j and k. darcs-hash:20070526111453-9c5c1-3242145ee5b51eb070a7dc3663f0d6cc01671d5c
2007-05-25Add a test that the size field of StackSet is correct to QuickCheck invariant.glasser
darcs-hash:20070525163159-64353-15e04204eb27aebe6c98a58c8e26b5c5d3083348
2007-05-25Quickcheck property to check that delete / focus behaviourRob
See patch "Deleting a window should not affect focus". Checks this property. darcs-hash:20070525035432-64d90-e1b1684a128a8336c14be3479b088988a5ddbd35
2007-05-25Fix bug in noDuplicate invariantRob
ws used by noDuplicates is actually a list of list of elements which will pretty rarely raise any flags even if the StackSet actually does contain duplicates. This patch concatenates ws to ensure the quickcheck property tests accurately. darcs-hash:20070525060842-64d90-efb031dd261cee4fdda597447036631bcce708fa
2007-05-22add swapLeft and swapRightbobstopper
darcs-hash:20070522050008-ee4f8-6073519fac239b25e5e265ce3995ee75683fcb81
2007-05-21Move xinerama current/visible/hidden workspace logic into StackSet directly.Don Stewart
darcs-hash:20070521055253-9c5c1-4cc51fadb10609340f798aece25097afeae92dbb
2007-05-20HEADS UP: Rewrite StackSet as a ZipperDon Stewart
In order to give a better account of how focus and master interact, and how each operation affects focus, we reimplement the StackSet type as a two level nested 'Zipper'. To quote Oleg: A Zipper is essentially an `updateable' and yet pure functional cursor into a data structure. Zipper is also a delimited continuation reified as a data structure. That is, we use the Zipper as a cursor which encodes the window which is in focus. Thus our data structure tracks focus correctly by construction! We then get simple, obvious semantics for e.g. insert, in terms of how it affects focus/master. Our transient-messes-with-focus bug evaporates. 'swap' becomes trivial. By moving focus directly into the stackset, we can toss some QC properties about focus handling: it is simply impossible now for focus to go wrong. As a benefit, we get a dozen new QC properties for free, governing how master and focus operate. The encoding of focus in the data type also simplifies the focus handling in Operations: several operations affecting focus are now simply wrappers over StackSet. For the full story, please read the StackSet module, and the QC properties. Finally, we save ~40 lines with the simplified logic in Operations.hs For more info, see the blog post on the implementation, http://cgi.cse.unsw.edu.au/~dons/blog/2007/05/17#xmonad_part1b_zipper darcs-hash:20070520070053-9c5c1-241f7ee7793f5db2b9e33d375965cdc21b26cbd7
2007-05-16variable number of windows in master areaJason Creighton
darcs-hash:20070516031437-b9aa7-03d82cb2565a45fa0e17a34c4c20740b51ff625c
2007-05-15beautify tileDavid Roundy
darcs-hash:20070515154011-72aca-1557c99da679a2be1e52f365f6ae72cfaf40fc87
2007-05-10keep focus stack.David Roundy
darcs-hash:20070510131637-72aca-2978a0234147fbb748962a27c68b797bd2e747d5
2007-05-08Remove broken prop_promoterotate, replace it with prop_promote_raise_idSpencer Janssen
darcs-hash:20070508211907-a5988-25a6a03356b3017540a53f73bc609a98938c9a9e
2007-05-08Disable shift_reversible until focus issues are decided.Spencer Janssen
darcs-hash:20070508210952-a5988-becbb2c91df5be261943aefeb50f6849fc805067
2007-05-08Disable delete.push until focus issues are decidedSpencer Janssen
darcs-hash:20070508204921-a5988-7397764877c6d1a4acf1c004a1486231961d67d5
2007-05-08Make tests typecheckSpencer Janssen
darcs-hash:20070508152449-a5988-9c8631ebe825ce20e6513f74cb776fb69e0f8509
2007-05-08Arbitrary instance for StackSet must set random focus on each workspaceDon Stewart
When focus was separated from the stack order on each workspace, we forgot to update the Arbitrary instance to set random focus. As spotted by David R, this then invalidates 4 of our QC properties. In particular, the property involving where focus goes after a random transient (annoying behaviour) appeared to be correct, but wasn't, due to inadequate coverage. This patch sets focus to a random window on each workspace. As a result, we now catch the focus/raise/delete issue people have been complaining about. Lesson: make sure your QuickCheck generators are doing what you think they are. darcs-hash:20070508051126-9c5c1-55a0597e6838b35f12b3d348e85360cda6c237ca
2007-05-05make quickcheck tests friendlier to read.David Roundy
darcs-hash:20070505175415-72aca-2129b8432f6f2ddb9d1498b0503b86c401020194
2007-05-05make Properties.hs exit with failure on test failureJason Creighton
darcs-hash:20070505174357-b9aa7-2dc94a5ade7740c859831865d49e2da28d2ba0ac
2007-05-04added mirrorLayout to mirror arbitrary layoutsJason Creighton
darcs-hash:20070504014653-b9aa7-1709cb0b718a7a058021c76fb95f9654c43f54b1
2007-05-03-Wall policeDon Stewart
darcs-hash:20070503074937-9c5c1-769ff9e521726032973c5712940c8c671746153e
2007-05-02Fix tests after StackSet changesSpencer Janssen
darcs-hash:20070502201622-a5988-ac80f011c59276c52314ea128c07a54487c9bee9
2007-05-02First steps to adding floating layerSpencer Janssen
darcs-hash:20070502195917-a5988-6831029fae89604c06ae962aaffdf81bfdad3297
2007-04-30check we never generate invalid stack setsDon Stewart
darcs-hash:20070430065946-9c5c1-a63c2fa904ff1b915da40dfef6289ee935991992
2007-04-30view n . shift n . view i . shift i) x == x --> shift + view is invertibleDon Stewart
darcs-hash:20070430062901-9c5c1-dd591516cb05072be929aa68d42be3b27476bd5a
2007-04-30add rotate all and view idempotency testsDon Stewart
darcs-hash:20070430055751-9c5c1-da5da09a5c2ff160fb7b243794d5fd3d7f954cb1
2007-04-30push is idempotentDon Stewart
darcs-hash:20070430054345-9c5c1-98af87adafacc002e4df6e22ea42ac97f40b4399
2007-04-30add two properties relating to empty window managersDon Stewart
darcs-hash:20070430051016-9c5c1-ec4c5d4ed5353026b45a769570d53cf299b31ec2
2007-04-30new QC property: opening a window only affects the current screenDon Stewart
darcs-hash:20070430050133-9c5c1-32823e4a47119867b1425a8bbe81af44dc8b7f1e
2007-04-30a bit more precise about building non-empty stacksets for one testDon Stewart
darcs-hash:20070430035729-9c5c1-90b4f4b1e0db1884704e3a1d8fc246734220b603
2007-04-30move size into Properties.hsDon Stewart
darcs-hash:20070430021758-9c5c1-f1ae3d5c2639b9c3ee91ccdebaefe0cf4a2c6df5
2007-04-29add fromList to Properties.hsDon Stewart
darcs-hash:20070429035823-9c5c1-37dc9df3086bb7672eeea83e4add3aeb4ffa0bd4
2007-04-26Remove toListSpencer Janssen
darcs-hash:20070426005713-a5988-10ed3204d691050d7ce018072d3fcf03221f545e
2007-04-19Arbitrary Word64 for running tests on amd64Alec Berryman
Copied from Arbitrary Word8; I don't understand the coarbitrary definition and the Word64 one may be erroneous, but Properties.hs now compiles and passes all tests. darcs-hash:20070419104652-39448-765063393aada90785e3160dcfb6c5cc43fb34f1
2007-04-19add 8 new QC tests, including tests of the layout algorithmDon Stewart
darcs-hash:20070419040833-9c5c1-9d8965bf22113a8aec47244eab7c769affb75951
2007-04-19Parameterise StackSet by two index types, rather than breaking abstractionDon Stewart
darcs-hash:20070419012705-9c5c1-3aa97e02123af08c3f4500c9e9c3bb7ab4121652
2007-04-192 more properties for promote.Don Stewart
darcs-hash:20070419001201-9c5c1-7ab345797094d164e47185bebefe05b1add6e120
2007-04-19Promote now swaps focused window with master windowDon Stewart
This means other windows are unaffected. The change from the previous cycling behaviour was felt necessary, since cycling isn't a terribly useful operation. Some properties that hold: focus is unchanged by promotion promote is idempotent (promoting twice does nothing) the focused and master window will swap their positions in the stack darcs-hash:20070418224236-9c5c1-4539f9f397e181f91dc9743e3ffac4b5796c0fac
2007-04-11and the tests still runDon Stewart
darcs-hash:20070411081500-9c5c1-de5c90255b488c617bee222ece8e4ff059a8a95a
2007-04-11fromList/toList have # of screens + another QC propertyJason Creighton
darcs-hash:20070411044215-b9aa7-e66ef93fac9102201bfd145ebb26c38bbecd25de