aboutsummaryrefslogtreecommitdiffstats
path: root/tests/Properties.hs (unfollow)
Commit message (Collapse)AuthorFilesLines
2007-05-21Move xinerama current/visible/hidden workspace logic into StackSet directly.Don Stewart1-70/+53
darcs-hash:20070521055253-9c5c1-4cc51fadb10609340f798aece25097afeae92dbb.gz
2007-05-20HEADS UP: Rewrite StackSet as a ZipperDon Stewart1-276/+537
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.gz
2007-05-16variable number of windows in master areaJason Creighton1-2/+2
darcs-hash:20070516031437-b9aa7-03d82cb2565a45fa0e17a34c4c20740b51ff625c.gz
2007-05-15beautify tileDavid Roundy1-3/+3
darcs-hash:20070515154011-72aca-1557c99da679a2be1e52f365f6ae72cfaf40fc87.gz
2007-05-10keep focus stack.David Roundy1-9/+12
darcs-hash:20070510131637-72aca-2978a0234147fbb748962a27c68b797bd2e747d5.gz
2007-05-08Remove broken prop_promoterotate, replace it with prop_promote_raise_idSpencer Janssen1-4/+7
darcs-hash:20070508211907-a5988-25a6a03356b3017540a53f73bc609a98938c9a9e.gz
2007-05-08Disable shift_reversible until focus issues are decided.Spencer Janssen1-1/+5
darcs-hash:20070508210952-a5988-becbb2c91df5be261943aefeb50f6849fc805067.gz
2007-05-08Disable delete.push until focus issues are decidedSpencer Janssen1-1/+5
darcs-hash:20070508204921-a5988-7397764877c6d1a4acf1c004a1486231961d67d5.gz
2007-05-08Make tests typecheckSpencer Janssen1-1/+1
darcs-hash:20070508152449-a5988-9c8631ebe825ce20e6513f74cb776fb69e0f8509.gz
2007-05-08Arbitrary instance for StackSet must set random focus on each workspaceDon Stewart1-7/+33
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.gz
2007-05-05make quickcheck tests friendlier to read.David Roundy1-1/+6
darcs-hash:20070505175415-72aca-2129b8432f6f2ddb9d1498b0503b86c401020194.gz
2007-05-05make Properties.hs exit with failure on test failureJason Creighton1-7/+8
darcs-hash:20070505174357-b9aa7-2dc94a5ade7740c859831865d49e2da28d2ba0ac.gz
2007-05-04added mirrorLayout to mirror arbitrary layoutsJason Creighton1-8/+2
darcs-hash:20070504014653-b9aa7-1709cb0b718a7a058021c76fb95f9654c43f54b1.gz
2007-05-03-Wall policeDon Stewart1-0/+2
darcs-hash:20070503074937-9c5c1-769ff9e521726032973c5712940c8c671746153e.gz
2007-05-02Fix tests after StackSet changesSpencer Janssen1-2/+3
darcs-hash:20070502201622-a5988-ac80f011c59276c52314ea128c07a54487c9bee9.gz
2007-05-02First steps to adding floating layerSpencer Janssen1-1/+1
darcs-hash:20070502195917-a5988-6831029fae89604c06ae962aaffdf81bfdad3297.gz
2007-04-30check we never generate invalid stack setsDon Stewart1-1/+18
darcs-hash:20070430065946-9c5c1-a63c2fa904ff1b915da40dfef6289ee935991992.gz
2007-04-30view n . shift n . view i . shift i) xDon Stewart1-4/+8
darcs-hash:20070430062901-9c5c1-dd591516cb05072be929aa68d42be3b27476bd5a.gz
2007-04-30add rotate all and view idempotency testsDon Stewart1-3/+19
darcs-hash:20070430055751-9c5c1-da5da09a5c2ff160fb7b243794d5fd3d7f954cb1.gz
2007-04-30push is idempotentDon Stewart1-1/+3
darcs-hash:20070430054345-9c5c1-98af87adafacc002e4df6e22ea42ac97f40b4399.gz
2007-04-30add two properties relating to empty window managersDon Stewart1-1/+13
darcs-hash:20070430051016-9c5c1-ec4c5d4ed5353026b45a769570d53cf299b31ec2.gz
2007-04-30new QC property: opening a window only affects the current screenDon Stewart1-0/+8
darcs-hash:20070430050133-9c5c1-32823e4a47119867b1425a8bbe81af44dc8b7f1e.gz
2007-04-30a bit more precise about building non-empty stacksets for one testDon Stewart1-1/+1
darcs-hash:20070430035729-9c5c1-90b4f4b1e0db1884704e3a1d8fc246734220b603.gz
2007-04-30move size into Properties.hsDon Stewart1-0/+5
darcs-hash:20070430021758-9c5c1-f1ae3d5c2639b9c3ee91ccdebaefe0cf4a2c6df5.gz
2007-04-29add fromList to Properties.hsDon Stewart1-1/+20
darcs-hash:20070429035823-9c5c1-37dc9df3086bb7672eeea83e4add3aeb4ffa0bd4.gz
2007-04-26Remove toListSpencer Janssen1-6/+1
darcs-hash:20070426005713-a5988-10ed3204d691050d7ce018072d3fcf03221f545e.gz
2007-04-19Arbitrary Word64 for running tests on amd64Alec Berryman1-0/+8
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.gz
2007-04-19add 8 new QC tests, including tests of the layout algorithmDon Stewart1-2/+125
darcs-hash:20070419040833-9c5c1-9d8965bf22113a8aec47244eab7c769affb75951.gz
2007-04-19Parameterise StackSet by two index types, rather than breaking abstractionDon Stewart1-3/+3
darcs-hash:20070419012705-9c5c1-3aa97e02123af08c3f4500c9e9c3bb7ab4121652.gz
2007-04-192 more properties for promote.Don Stewart1-2/+17
darcs-hash:20070419001201-9c5c1-7ab345797094d164e47185bebefe05b1add6e120.gz
2007-04-19Promote now swaps focused window with master windowDon Stewart1-1/+9
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.gz
2007-04-11and the tests still runDon Stewart1-5/+6
darcs-hash:20070411081500-9c5c1-de5c90255b488c617bee222ece8e4ff059a8a95a.gz
2007-04-11fromList/toList have # of screens + another QC propertyJason Creighton1-1/+9
darcs-hash:20070411044215-b9aa7-e66ef93fac9102201bfd145ebb26c38bbecd25de.gz
2007-04-10moved screen <-> workspace mapping from XMonad to StackSetJason Creighton1-7/+19
darcs-hash:20070410062731-b9aa7-e1768a3fe6c0e3c749400dffc4a5a5e33e6a08c4.gz
2007-03-28added a quickcheck propertydaniel1-0/+7
darcs-hash:20070328025337-c98ca-5ce390ce8d1d5f5a35fe1ba851cf09fc96ca7183.gz
2007-03-09more QC properties on StackSetsDon Stewart1-7/+42
darcs-hash:20070309054042-9c5c1-2ae77f352ab1e5c822e8144c4685c24d4d12059d.gz
2007-03-09simpler type (no need to cache size, we *could* grow new stacks on demand now)Don Stewart1-4/+2
darcs-hash:20070309043638-9c5c1-d943771821d71f87bae133c90d0d3f3a615f4010.gz
2007-03-09simplify StackSet api even further (-15 loc)Don Stewart1-3/+1
darcs-hash:20070309041707-9c5c1-3c9ef62c25f49b9025f137f73c8d25438a640ff4.gz
2007-03-09smaller api, less testsDon Stewart1-37/+5
darcs-hash:20070309035635-9c5c1-98fef33dead5a1f092b4d21120a45da06ffe164e.gz
2007-03-08forgot to add Properties.hsDon Stewart1-0/+166
darcs-hash:20070308120521-9c5c1-984458c813a58b04c648b05f314165541c74d2b7.gz