packages feed

rainbow-tests (empty) → 0.14.0.2

raw patch · 28 files changed

+684/−0 lines, 28 filesdep +QuickCheckdep +basedep +rainbowsetup-changed

Dependencies added: QuickCheck, base, rainbow, terminfo, text

Files

+ LICENSE view
@@ -0,0 +1,30 @@+Copyright (c) 2013-2014, Omari Norman++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++    * Redistributions of source code must retain the above copyright+      notice, this list of conditions and the following disclaimer.++    * Redistributions in binary form must reproduce the above+      copyright notice, this list of conditions and the following+      disclaimer in the documentation and/or other materials provided+      with the distribution.++    * Neither the name of Omari Norman nor the names of other+      contributors may be used to endorse or promote products derived+      from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ README.md view
@@ -0,0 +1,45 @@+# rainbow++rainbow helps you build colorful output for both 8- and 256-color+terminals.  It works only on Unix-like operating systems.++rainbow is on Github:++http://www.github.com/massysett/rainbow++and Hackage:++http://hackage.haskell.org/package/rainbow++rainbow is licensed under the BSD license; see the LICENSE file.++## Versioning++rainbow releases are numbered in accordance with the Haskell+Package Versioning Policy.++rainbow does not set its dependencies in accordance with the+Package Versioning Policy, as I do not set upper bounds.  rainbow+is guaranteed to build with the *minimum* versions specified in the+cabal file.  I also include a dependencies.txt file that+documents more recent dependencies that are also known to work.++If you find that rainbow does not build due to dependency problems:+1) please let me know at omari@smileystation.com; 2) feel free to+add appropriate upper bounds or patches to the package as+appropriate; and 3) feel free to add command-line contraints to your+cabal command to get it to build.++## Building++If you get the package from Hackage, it is ready to build with+`cabal install` like any other Haskell package.++If you get it from Github, first you will need to create the cabal+file.  It's built using m4 to avoid redundancies in the file.  To+build the cabal file, simply invoke `make`.++## Generators package++The source tree also includes a package `rainbow-tests` which+includes several generators that other packages might find useful.
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ changelog view
@@ -0,0 +1,8 @@+0.14.0.2+  * Change dependency bounds+  * Change cabal generator to cartel++0.14.0.0++  * Change Chunk to hold a list of strict Text rather+  than just a single Text.
+ current-versions.txt view
@@ -0,0 +1,45 @@+This package was tested to work with these dependency+versions and compiler version.+These are the default versions fetched by cabal install.+Tested as of: 2014-07-13 15:21:37.859452 UTC+Path to compiler: ghc-7.8.2+Compiler description: 7.8.2++/opt/ghc/7.8.2/lib/ghc-7.8.2/package.conf.d:+    Cabal-1.18.1.3+    array-0.5.0.0+    base-4.7.0.0+    bin-package-db-0.0.0.0+    binary-0.7.1.0+    rts-1.0+    bytestring-0.10.4.0+    containers-0.5.5.1+    deepseq-1.3.0.2+    directory-1.2.1.0+    filepath-1.3.0.2+    (ghc-7.8.2)+    ghc-prim-0.3.1.0+    (haskell2010-1.1.2.0)+    (haskell98-2.0.0.3)+    hoopl-3.10.0.1+    hpc-0.6.0.1+    integer-gmp-0.5.1.0+    old-locale-1.0.0.6+    old-time-1.1.0.2+    pretty-1.1.1.1+    process-1.2.0.0+    template-haskell-2.9.0.0+    time-1.4.2+    transformers-0.3.0.0+    unix-2.7.0.1++/home/massysett/rainbow/tests/sunlight-5537/db:+    QuickCheck-2.7.5+    primitive-0.5.3.0+    rainbow-0.14.0.2+    rainbow-tests-0.14.0.2+    random-1.0.1.1+    terminfo-0.4.0.0+    text-1.1.1.3+    tf-random-0.5+
+ genCabal.hs view
@@ -0,0 +1,64 @@+-- Generates a Cabal file for rainbow-tests using the Cartel package.+--+-- Written for Cartel version 0.10.0.2.++import qualified Cartel as A+import CabalCommon++rainbow :: A.Package+rainbow = A.exactly "rainbow" versionInts++quickcheck :: A.Package+quickcheck = A.closedOpen "QuickCheck" [2,7,5] [2,8]++properties :: A.Properties+properties = sharedProperties+  { A.prName = "rainbow-tests"+  , A.prSynopsis = "Tests and QuickCheck generators to accompany rainbow."+  , A.prDescription =+    [ "These are packaged separately so other packages may depend"+    , "on them."+    ]++  , A.prExtraSourceFiles =+    [ "README.md"+    , "changelog"+    , "current-versions.txt"+    , "minimum-versions.txt"+    , "genCabal.hs"+    , "sunlight-test.hs"+    ]+  }++library+  :: [String]+  -- ^ Library modules+  -> A.Library+library ms = A.Library+  [ A.LibExposedModules ms+  , A.defaultLanguage A.Haskell2010+  , A.ghcOptions ["-Wall"]+  , A.hsSourceDirs ["lib"]+  , A.buildDepends+    [ base+    , terminfo+    , text+    , rainbow+    , quickcheck+    ]+  ]++cabal+  :: [String]+  -- ^ Library modules+  -> A.Cabal+cabal ms = A.empty+  { A.cProperties = properties+  , A.cRepositories = [repo]+  , A.cLibrary = Just $ library ms+  }++main :: IO ()+main = do+  ms <- A.modules "lib"+  A.render "genCabal.hs" $ cabal ms
+ lib/Data/Monoid/Coarbitrary.hs view
@@ -0,0 +1,9 @@+module Data.Monoid.Coarbitrary where++import Test.QuickCheck+import qualified Data.Monoid as O++last :: (a -> Gen b -> Gen b) -> O.Last a -> Gen b -> Gen b+last f (O.Last m) = case m of+  Nothing -> variant (0 :: Int)+  Just a -> variant (1 :: Int) . f a
+ lib/Data/Monoid/Generators.hs view
@@ -0,0 +1,8 @@+module Data.Monoid.Generators where++import qualified Data.Monoid as O+import Test.QuickCheck++last :: Gen a -> Gen (O.Last a)+last g = fmap O.Last $ frequency+  [ (3, fmap Just g), (1, return Nothing) ]
+ lib/Data/Monoid/Shrinkers.hs view
@@ -0,0 +1,8 @@+module Data.Monoid.Shrinkers where++import qualified Data.Monoid as O++last :: (a -> [a]) -> O.Last a -> [O.Last a]+last f (O.Last l) = case l of+  Nothing -> []+  Just a -> map O.Last $ Nothing : [Just x | x <- f a]
+ lib/Data/Text/Coarbitrary.hs view
@@ -0,0 +1,8 @@+module Data.Text.Coarbitrary where++import Test.QuickCheck+import Data.Text (Text)+import qualified Data.Text as X++text :: Text -> Gen b -> Gen b+text = coarbitrary . X.unpack
+ lib/Data/Text/Generators.hs view
@@ -0,0 +1,9 @@+module Data.Text.Generators where++import Test.QuickCheck+import qualified Data.Text as X+import Data.Text (Text)++text :: Gen Char -> Gen Text+text = fmap X.pack . listOf+
+ lib/Data/Text/Shrinkers.hs view
@@ -0,0 +1,8 @@+module Data.Text.Shrinkers where++import Data.Text (Text)+import qualified Data.Text as X+import Test.QuickCheck++text :: (Char -> [Char]) -> Text -> [Text]+text f = map X.pack . shrinkList f . X.unpack
+ lib/Rainbow/Tests/Util.hs view
@@ -0,0 +1,52 @@+module Rainbow.Tests.Util where++import Test.QuickCheck++shrink2 :: (a -> [a]) -> (b -> [b]) -> (a, b) -> [(a, b)]+shrink2 fa fb (a, b) =+     [ (a', b) | a' <- fa a ]+  ++ [ (a, b') | b' <- fb b ]++shrink3+  :: (a -> [a])+  -> (b -> [b])+  -> (c -> [c])+  -> (a, b, c)+  -> [(a, b, c)]+shrink3 fa fb fc (a, b, c) =+  [ (a', b', c') | (a', (b', c'))+    <- shrink2 fa (shrink2 fb fc) (a, (b, c)) ]++shrink4+  :: (a -> [a])+  -> (b -> [b])+  -> (c -> [c])+  -> (d -> [d])+  -> (a, b, c, d)+  -> [(a, b, c, d)]+shrink4 fa fb fc fd (a, b, c, d) =+  [ (a', b', c', d') | (a', (b', (c', d')))+    <- shrink2 fa (shrink2 fb (shrink2 fc fd)) (a, (b, (c, d))) ]++shrink5+  :: (a -> [a])+  -> (b -> [b])+  -> (c -> [c])+  -> (d -> [d])+  -> (e -> [e])+  -> (a, b, c, d, e)+  -> [(a, b, c, d, e)]+shrink5 fa fb fc fd fe (a, b, c, d, e) =+  [ (a', b', c', d', e') | (a', (b', (c', (d', e'))))+    <- shrink2 fa (shrink2 fb (shrink2 fc (shrink2 fd fe)))+                  (a, (b, (c, (d, e)))) ]++coarbitraryList+  :: (a -> Gen b -> Gen b)+  -> [a]+  -> Gen b+  -> Gen b+coarbitraryList f xs = case xs of+  [] -> variant (0 :: Int)+  a:as -> variant (1 :: Int) . f a . coarbitraryList f as+
+ lib/System/Console/Rainbow/Coarbitrary.hs view
@@ -0,0 +1,7 @@+module System.Console.Rainbow.Coarbitrary+  ( module System.Console.Rainbow.Types.Coarbitrary+  , module System.Console.Rainbow.Colors.Coarbitrary+  ) where++import System.Console.Rainbow.Types.Coarbitrary+import System.Console.Rainbow.Colors.Coarbitrary
+ lib/System/Console/Rainbow/Colors/Coarbitrary.hs view
@@ -0,0 +1,15 @@+module System.Console.Rainbow.Colors.Coarbitrary where++import Test.QuickCheck+import System.Console.Terminfo.Color.Coarbitrary+import System.Console.Rainbow.Colors++color8 :: Color8 -> Gen b -> Gen b+color8 c = case unColor8 c of+  Nothing -> variant (0 :: Int)+  Just x -> variant (1 :: Int) . color x++color256 :: Color256 -> Gen b -> Gen b+color256 c = case unColor256 c of+  Nothing -> variant (0 :: Int)+  Just x -> variant (1 :: Int) . color x
+ lib/System/Console/Rainbow/Colors/Generators.hs view
@@ -0,0 +1,10 @@+module System.Console.Rainbow.Colors.Generators where++import qualified System.Console.Rainbow.Colors as C+import Test.QuickCheck++color8 :: Gen C.Color8+color8 = elements $ C.c8_default : map snd C.c8_all++color256 :: Gen C.Color256+color256 = elements $ C.c256_default : map snd C.c256_all
+ lib/System/Console/Rainbow/Colors/Shrinkers.hs view
@@ -0,0 +1,54 @@+module System.Console.Rainbow.Colors.Shrinkers where++import Test.QuickCheck+import qualified System.Console.Rainbow.Colors as C+import qualified System.Console.Terminfo.Color as TC++color8Named :: [C.Color8]+color8Named =+  [ C.c8_black+  , C.c8_red+  , C.c8_green+  , C.c8_yellow+  , C.c8_blue+  , C.c8_magenta+  , C.c8_cyan+  , C.c8_white+  ]++color256Named :: [C.Color256]+color256Named =+  [ C.c256_black+  , C.c256_red+  , C.c256_green+  , C.c256_yellow+  , C.c256_blue+  , C.c256_magenta+  , C.c256_cyan+  , C.c256_white+  ]++color8 :: C.Color8 -> [C.Color8]+color8 c = case C.unColor8 c of+  Nothing -> []+  Just t -> case t of+    TC.ColorNumber n -> C.c8_default : color8Named ++ rest+      where+        rest = map get . shrinkIntegral $ n+        get i = case lookup i C.c8_all of+          Nothing -> error "color8 shrink failed"+          Just x -> x+    _ -> [C.c8_default]++color256 :: C.Color256 -> [C.Color256]+color256 c = case C.unColor256 c of+  Nothing -> []+  Just t -> case t of+    TC.ColorNumber n -> C.c256_default : color256Named ++ rest+      where+        rest = map get . shrinkIntegral $ n+        get i = case lookup i C.c256_all of+          Nothing -> error "color256 shrink failed"+          Just x -> x+    _ -> [C.c256_default]+
+ lib/System/Console/Rainbow/Generators.hs view
@@ -0,0 +1,7 @@+module System.Console.Rainbow.Generators+  ( module System.Console.Rainbow.Types.Generators+  , module System.Console.Rainbow.Colors.Generators+  ) where++import System.Console.Rainbow.Types.Generators+import System.Console.Rainbow.Colors.Generators
+ lib/System/Console/Rainbow/Shrinkers.hs view
@@ -0,0 +1,7 @@+module System.Console.Rainbow.Shrinkers+  ( module System.Console.Rainbow.Types.Shrinkers+  , module System.Console.Rainbow.Colors.Shrinkers+  ) where++import System.Console.Rainbow.Types.Shrinkers+import System.Console.Rainbow.Colors.Shrinkers
+ lib/System/Console/Rainbow/Types/Coarbitrary.hs view
@@ -0,0 +1,38 @@+module System.Console.Rainbow.Types.Coarbitrary where++import Test.QuickCheck+import Data.Monoid.Coarbitrary+import Data.Text.Coarbitrary+import System.Console.Rainbow.Colors.Coarbitrary+import qualified System.Console.Rainbow.Types as T+import Rainbow.Tests.Util+import Prelude hiding (last)++styleCommon :: T.StyleCommon -> Gen b -> Gen b+styleCommon c+  = last coarbitrary (T.scBold c)+  . last coarbitrary (T.scUnderline c)+  . last coarbitrary (T.scFlash c)+  . last coarbitrary (T.scInverse c)++style8 :: T.Style8 -> Gen b -> Gen b+style8 c+  = last color8 (T.foreground8 c)+  . last color8 (T.background8 c)+  . styleCommon (T.common8 c)++style256 :: T.Style256 -> Gen b -> Gen b+style256 c+  = last color256 (T.foreground256 c)+  . last color256 (T.background256 c)+  . styleCommon (T.common256 c)++textSpec :: T.TextSpec -> Gen b -> Gen b+textSpec c+  = style8 (T.style8 c)+  . style256 (T.style256 c)++chunk :: T.Chunk -> Gen b -> Gen b+chunk c+  = textSpec (T.textSpec c)+  . coarbitraryList text (T.text c)
+ lib/System/Console/Rainbow/Types/Generators.hs view
@@ -0,0 +1,30 @@+module System.Console.Rainbow.Types.Generators where++import Data.Monoid.Generators+import qualified System.Console.Rainbow.Types as T+import System.Console.Rainbow.Colors.Generators+import Test.QuickCheck+import Control.Monad+import Data.Text.Generators+import Prelude ()++styleCommon :: Gen T.StyleCommon+styleCommon = liftM4 T.StyleCommon g g g g+  where+    g = last arbitrary++style8 :: Gen T.Style8+style8 = liftM3 T.Style8 g g styleCommon+  where+    g = last color8++style256 :: Gen T.Style256+style256 = liftM3 T.Style256 g g styleCommon+  where+    g = last color256++textSpec :: Gen T.TextSpec+textSpec = liftM2 T.TextSpec style8 style256++chunk :: Gen T.Chunk+chunk = liftM2 T.Chunk textSpec (listOf (text arbitrary))
+ lib/System/Console/Rainbow/Types/Shrinkers.hs view
@@ -0,0 +1,39 @@+module System.Console.Rainbow.Types.Shrinkers where++import Data.Text.Shrinkers+import Rainbow.Tests.Util+import Data.Monoid.Shrinkers+import System.Console.Rainbow.Colors.Shrinkers+import Test.QuickCheck+import qualified System.Console.Rainbow.Types as T+import Prelude ()++styleCommon :: T.StyleCommon -> [T.StyleCommon]+styleCommon (T.StyleCommon a b c d) =+  [ T.StyleCommon a' b' c' d'+    | (a', b', c', d') <- shrink4 s s s s (a, b, c, d) ]+  where+    s = last shrink++style8 :: T.Style8 -> [T.Style8]+style8 (T.Style8 f8 b8 c) =+  [ T.Style8 f8' b8' c'+  | (f8', b8', c') <- shrink3 sc sc styleCommon (f8, b8, c) ]+  where+    sc = last color8++style256 :: T.Style256 -> [T.Style256]+style256 (T.Style256 f256 b256 c) =+  [ T.Style256 f256' b256' c'+  | (f256', b256', c') <- shrink3 sc sc styleCommon (f256, b256, c) ]+  where+    sc = last color256++textSpec :: T.TextSpec -> [T.TextSpec]+textSpec (T.TextSpec s8 s256) =+  [ T.TextSpec s8' s256'+  | (s8', s256') <- shrink2 style8 style256 (s8, s256) ]++chunk :: T.Chunk -> [T.Chunk]+chunk (T.Chunk t xs) = [T.Chunk t' xs'+  | (t', xs') <- shrink2 textSpec (shrinkList (text shrink)) (t, xs) ]
+ lib/System/Console/Terminfo/Color/Coarbitrary.hs view
@@ -0,0 +1,18 @@+module System.Console.Terminfo.Color.Coarbitrary where++import Test.QuickCheck+import System.Console.Terminfo.Color++color :: Color -> Gen b -> Gen b+color c = case c of+  Black -> var 0+  Red -> var 1+  Green -> var 2+  Yellow -> var 3+  Blue -> var 4+  Magenta -> var 5+  Cyan -> var 6+  White -> var 7+  ColorNumber i -> var 8 . var i+  where+    var = variant
+ lib/System/Console/Terminfo/Color/Generators.hs view
@@ -0,0 +1,22 @@+module System.Console.Terminfo.Color.Generators where++import Test.QuickCheck+import qualified System.Console.Terminfo.Color as C++basicColors :: [C.Color]+basicColors =+  [ C.Black+  , C.Red+  , C.Green+  , C.Yellow+  , C.Blue+  , C.Magenta+  , C.Cyan+  , C.White+  ]++allColors :: [C.Color]+allColors = basicColors ++ map C.ColorNumber [0..255]++color :: Gen C.Color+color = elements allColors
+ lib/System/Console/Terminfo/Color/Shrinkers.hs view
@@ -0,0 +1,11 @@+module System.Console.Terminfo.Color.Shrinkers where++import qualified System.Console.Terminfo.Color.Generators as GC+import qualified System.Console.Terminfo.Color as C+import Test.QuickCheck++color :: C.Color -> [C.Color]+color c = case c of+  C.ColorNumber n -> GC.basicColors +++    map C.ColorNumber (shrinkIntegral n)+  _ -> []
+ minimum-versions.txt view
@@ -0,0 +1,46 @@+This package was tested to work with these dependency+versions and compiler version.+These are the minimum versions given in the .cabal file.+Tested as of: 2014-07-13 15:21:37.859452 UTC+Path to compiler: ghc-7.4.1+Compiler description: 7.4.1++/opt/ghc/7.4.1/lib/ghc-7.4.1/package.conf.d:+    Cabal-1.14.0+    array-0.4.0.0+    base-4.5.0.0+    bin-package-db-0.0.0.0+    binary-0.5.1.0+    bytestring-0.9.2.1+    containers-0.4.2.1+    deepseq-1.3.0.0+    directory-1.1.0.2+    extensible-exceptions-0.1.1.4+    filepath-1.3.0.0+    (ghc-7.4.1)+    ghc-prim-0.2.0.0+    (haskell2010-1.1.0.1)+    (haskell98-2.0.0.1)+    hoopl-3.8.7.3+    hpc-0.5.1.1+    integer-gmp-0.4.0.0+    old-locale-1.0.0.4+    old-time-1.1.0.0+    pretty-1.1.1.0+    process-1.1.0.1+    rts-1.0+    template-haskell-2.7.0.0+    time-1.4+    unix-2.5.1.0++/home/massysett/rainbow/tests/sunlight-5537/db:+    QuickCheck-2.7.5+    primitive-0.5.3.0+    rainbow-0.14.0.2+    rainbow-tests-0.14.0.2+    random-1.0.1.1+    terminfo-0.3.2+    text-0.11.2.0+    tf-random-0.5+    transformers-0.4.1.0+
+ rainbow-tests.cabal view
@@ -0,0 +1,69 @@+-- This Cabal file generated using the Cartel library.+-- Cartel is available at:+-- http://www.github.com/massysett/cartel+--+-- Script name used to generate: genCabal.hs+-- Generated on: 2014-07-13 11:29:54.334637 EDT+-- Cartel library version: 0.10.0.2+name: rainbow-tests+version: 0.14.0.2+cabal-version: >= 1.14+build-type: Simple+license: BSD3+license-file: LICENSE+copyright: Copyright 2013 - 2014 Omari Norman+author: Omari Norman+maintainer: omari@smileystation.com+stability: Experimental+homepage: http://www.github.com/massysett/rainbow+bug-reports: http://www.github.com/massyett/rainbow/issues+synopsis: Tests and QuickCheck generators to accompany rainbow.+description:+  These are packaged separately so other packages may depend+  on them.+category: System+extra-source-files:+    README.md+  , changelog+  , current-versions.txt+  , minimum-versions.txt+  , genCabal.hs+  , sunlight-test.hs++source-repository head+  type: git+  location: git://github.com/massysett/rainbow.git+  branch: master++Library+  exposed-modules:+      Data.Monoid.Coarbitrary+    , Data.Monoid.Generators+    , Data.Monoid.Shrinkers+    , Data.Text.Coarbitrary+    , Data.Text.Generators+    , Data.Text.Shrinkers+    , Rainbow.Tests.Util+    , System.Console.Rainbow.Coarbitrary+    , System.Console.Rainbow.Colors.Coarbitrary+    , System.Console.Rainbow.Colors.Generators+    , System.Console.Rainbow.Colors.Shrinkers+    , System.Console.Rainbow.Generators+    , System.Console.Rainbow.Shrinkers+    , System.Console.Rainbow.Types.Coarbitrary+    , System.Console.Rainbow.Types.Generators+    , System.Console.Rainbow.Types.Shrinkers+    , System.Console.Terminfo.Color.Coarbitrary+    , System.Console.Terminfo.Color.Generators+    , System.Console.Terminfo.Color.Shrinkers+  default-language: Haskell2010+  ghc-options:+      -Wall+  hs-source-dirs:+      lib+  build-depends:+      base ((> 4.5.0.0 || == 4.5.0.0) && < 4.8.0.0)+    , terminfo ((> 0.3.2 || == 0.3.2) && < 0.5.0.0)+    , text ((> 0.11.2.0 || == 0.11.2.0) && < 1.2.0.0)+    , rainbow == 0.14.0.2+    , QuickCheck ((> 2.7.5 || == 2.7.5) && < 2.8)
+ sunlight-test.hs view
@@ -0,0 +1,15 @@+module Main where++import Test.Sunlight++inputs = TestInputs+  { tiDescription = Nothing+  , tiCabal = "cabal"+  , tiLowest = ("7.4.1", "ghc-7.4.1", "ghc-pkg-7.4.1")+  , tiDefault = [ ("7.4.1", "ghc-7.4.1", "ghc-pkg-7.4.1")+                , ("7.6.3", "ghc-7.6.3", "ghc-pkg-7.6.3")+                , ("7.8.2", "ghc-7.8.2", "ghc-pkg-7.8.2") ]+  , tiTest = []+  }++main = runTests inputs