Adds property tests to generically test keyboard transformations
Tests: - HorizontalFlip - VerticalFlip - Shift n
This commit is contained in:
		
							parent
							
								
									f3ddd89302
								
							
						
					
					
						commit
						f11b91c985
					
				
					 1 changed files with 25 additions and 1 deletions
				
			
		|  | @ -2,6 +2,7 @@ | ||||||
| module Spec where | module Spec where | ||||||
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ||||||
| import Test.Hspec | import Test.Hspec | ||||||
|  | import Test.QuickCheck | ||||||
| import Keyboard (Keyboard(..)) | import Keyboard (Keyboard(..)) | ||||||
| import Transforms (Transform(..)) | import Transforms (Transform(..)) | ||||||
| 
 | 
 | ||||||
|  | @ -38,7 +39,30 @@ main = hspec $ do | ||||||
|       Transforms.fromString "HVS10potato" == Nothing |       Transforms.fromString "HVS10potato" == Nothing | ||||||
| 
 | 
 | ||||||
|   describe "App.transform" $ do |   describe "App.transform" $ do | ||||||
|     it "flips a keyboard horizontally" $ do |     it "flips any keyboard horizontally" $ do | ||||||
|  |       property $ \first second third fourth -> | ||||||
|  |         App.transform (Keyboard [first, second, third, fourth]) HorizontalFlip == do | ||||||
|  |           Keyboard [ reverse first | ||||||
|  |                    , reverse second | ||||||
|  |                    , reverse third | ||||||
|  |                    , reverse fourth | ||||||
|  |                    ] | ||||||
|  | 
 | ||||||
|  |     it "flips any keyboard vertically" $ do | ||||||
|  |       property $ \first second third fourth -> | ||||||
|  |         App.transform (Keyboard [first, second, third, fourth]) VerticalFlip == do | ||||||
|  |           Keyboard $ reverse [first, second, third, fourth] | ||||||
|  | 
 | ||||||
|  |     it "shifts any keyboard" $ do | ||||||
|  |       property $ \first second third fourth n -> | ||||||
|  |         App.transform (Keyboard [first, second, third, fourth]) (Shift n) == do | ||||||
|  |           Keyboard $ [ Utils.rotate n first | ||||||
|  |                      , Utils.rotate n second | ||||||
|  |                      , Utils.rotate n third | ||||||
|  |                      , Utils.rotate n fourth | ||||||
|  |                      ] | ||||||
|  | 
 | ||||||
|  |     it "flips a QWERTY keyboard horizontally" $ do | ||||||
|       App.transform Keyboard.qwerty HorizontalFlip == do |       App.transform Keyboard.qwerty HorizontalFlip == do | ||||||
|         Keyboard [ ['0','9','8','7','6','5','4','3','2','1'] |         Keyboard [ ['0','9','8','7','6','5','4','3','2','1'] | ||||||
|                  , ['P','O','I','U','Y','T','R','E','W','Q'] |                  , ['P','O','I','U','Y','T','R','E','W','Q'] | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue