Setup QuickCheck testing
This commit is contained in:
		
							parent
							
								
									e0b5de5a7f
								
							
						
					
					
						commit
						c8af014976
					
				
							
								
								
									
										14
									
								
								default.nix
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								default.nix
									
									
									
									
									
								
							@ -1,7 +1,6 @@
 | 
				
			|||||||
{ mkDerivation, base, Cabal, cabal-test-quickcheck, extra
 | 
					{ mkDerivation, base, Cabal, extra, monad-loops, MonadRandom, pipes
 | 
				
			||||||
, monad-loops, MonadRandom, pipes, protolude, QuickCheck
 | 
					, protolude, QuickCheck, quickcheck-instances, random, random-fu
 | 
				
			||||||
, quickcheck-instances, random, random-fu, random-shuffle, stdenv
 | 
					, random-shuffle, stdenv, text
 | 
				
			||||||
, text
 | 
					 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
mkDerivation {
 | 
					mkDerivation {
 | 
				
			||||||
  pname = "ga";
 | 
					  pname = "ga";
 | 
				
			||||||
@ -14,13 +13,8 @@ mkDerivation {
 | 
				
			|||||||
    quickcheck-instances random random-fu random-shuffle text
 | 
					    quickcheck-instances random random-fu random-shuffle text
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
  executableHaskellDepends = [
 | 
					  executableHaskellDepends = [
 | 
				
			||||||
    base extra monad-loops MonadRandom pipes protolude QuickCheck
 | 
					    base Cabal extra monad-loops MonadRandom pipes protolude QuickCheck
 | 
				
			||||||
    quickcheck-instances random random-fu random-shuffle text
 | 
					    quickcheck-instances random random-fu random-shuffle text
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
  testHaskellDepends = [
 | 
					 | 
				
			||||||
    base Cabal cabal-test-quickcheck extra monad-loops MonadRandom
 | 
					 | 
				
			||||||
    pipes protolude QuickCheck quickcheck-instances random random-fu
 | 
					 | 
				
			||||||
    random-shuffle text
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
  license = stdenv.lib.licenses.gpl3;
 | 
					  license = stdenv.lib.licenses.gpl3;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										11
									
								
								ga.cabal
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								ga.cabal
									
									
									
									
									
								
							@ -56,14 +56,23 @@ executable ga
 | 
				
			|||||||
                     , SS19
 | 
					                     , SS19
 | 
				
			||||||
                     , WS19
 | 
					                     , WS19
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					executable ga-tests
 | 
				
			||||||
 | 
					  build-depends:       base ^>=4.12.0.0
 | 
				
			||||||
 | 
					                     , Cabal
 | 
				
			||||||
 | 
					                     , extra
 | 
				
			||||||
 | 
					                     , MonadRandom
 | 
				
			||||||
 | 
					                     , monad-loops
 | 
				
			||||||
                     , pipes
 | 
					                     , pipes
 | 
				
			||||||
                     , protolude
 | 
					                     , protolude
 | 
				
			||||||
                     , QuickCheck
 | 
					                     , QuickCheck
 | 
				
			||||||
                     , quickcheck-instances
 | 
					                     , quickcheck-instances
 | 
				
			||||||
 | 
					                     , random
 | 
				
			||||||
 | 
					                     , random-fu
 | 
				
			||||||
 | 
					                     , random-shuffle
 | 
				
			||||||
                     , text
 | 
					                     , text
 | 
				
			||||||
  default-language:    Haskell2010
 | 
					  default-language:    Haskell2010
 | 
				
			||||||
  hs-source-dirs:      src
 | 
					  hs-source-dirs:      src
 | 
				
			||||||
  main-is:             Main.hs
 | 
					  main-is:             Test.hs
 | 
				
			||||||
  other-modules:       GA
 | 
					  other-modules:       GA
 | 
				
			||||||
                     , Seminar
 | 
					                     , Seminar
 | 
				
			||||||
                     , Pretty
 | 
					                     , Pretty
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,6 @@
 | 
				
			|||||||
{-# LANGUAGE NoImplicitPrelude #-}
 | 
					{-# LANGUAGE NoImplicitPrelude #-}
 | 
				
			||||||
{-# LANGUAGE OverloadedStrings #-}
 | 
					{-# LANGUAGE OverloadedStrings #-}
 | 
				
			||||||
 | 
					{-# LANGUAGE TemplateHaskell #-}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module Seminar where
 | 
					module Seminar where
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -161,3 +162,6 @@ valid :: Assignment -> Bool
 | 
				
			|||||||
valid a =
 | 
					valid a =
 | 
				
			||||||
  length a == length (nub $ fst <$> a)
 | 
					  length a == length (nub $ fst <$> a)
 | 
				
			||||||
    && length a == length (nub $ snd <$> a)
 | 
					    && length a == length (nub $ snd <$> a)
 | 
				
			||||||
 | 
					return []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					runTests = $quickCheckAll
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										11
									
								
								src/Test.hs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								src/Test.hs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					{-# LANGUAGE NoImplicitPrelude #-}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module Main where
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import Protolude
 | 
				
			||||||
 | 
					import qualified Seminar
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					main :: IO ()
 | 
				
			||||||
 | 
					main = do
 | 
				
			||||||
 | 
					  _ <- Seminar.runTests
 | 
				
			||||||
 | 
					  return ()
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user