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