Sha256: a856ada4a89d8c5f61b9077caae58b93a4a589e7e5387199041bf2e69b538376

Contents?: true

Size: 1.06 KB

Versions: 165

Compression:

Stored size: 1.06 KB

Contents

{-# OPTIONS_GHC -fno-warn-type-defaults #-}

import Data.Foldable     (for_)
import Test.Hspec        (Spec, describe, it, shouldBe)
import Test.Hspec.Runner (configFastFail, defaultConfig, hspecWith)

import Triangle (rows)

main :: IO ()
main = hspecWith defaultConfig {configFastFail = True} specs

specs :: Spec
specs = describe "pascals-triangle" $
          describe "rows" $ for_ rowsCases rowsTest
  where

    rowsTest (description, n, expected) = it description assertion
      where
        assertion = rows n `shouldBe` expected

    -- Test cases adapted from `exercism/x-common` on 2016-09-14.

    rowsCases = [ ("no rows"      , 0, [                                    ])
                , ("single row"   , 1, [[1]                                 ])
                , ("two rows"     , 2, [[1], [1, 1]                         ])
                , ("three rows"   , 3, [[1], [1, 1], [1, 2, 1]              ])
                , ("four rows"    , 4, [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1]])
                , ("negative rows",-1, [                                    ]) ]

Version data entries

165 entries across 165 versions & 1 rubygems

Version Path
trackler-2.1.0.9 tracks/haskell/exercises/pascals-triangle/test/Tests.hs
trackler-2.1.0.8 tracks/haskell/exercises/pascals-triangle/test/Tests.hs
trackler-2.1.0.7 tracks/haskell/exercises/pascals-triangle/test/Tests.hs
trackler-2.1.0.6 tracks/haskell/exercises/pascals-triangle/test/Tests.hs
trackler-2.1.0.5 tracks/haskell/exercises/pascals-triangle/test/Tests.hs
trackler-2.1.0.4 tracks/haskell/exercises/pascals-triangle/test/Tests.hs
trackler-2.1.0.3 tracks/haskell/exercises/pascals-triangle/test/Tests.hs
trackler-2.1.0.2 tracks/haskell/exercises/pascals-triangle/test/Tests.hs
trackler-2.1.0.1 tracks/haskell/exercises/pascals-triangle/test/Tests.hs
trackler-2.1.0.0 tracks/haskell/exercises/pascals-triangle/test/Tests.hs
trackler-2.0.8.55 tracks/haskell/exercises/pascals-triangle/test/Tests.hs
trackler-2.0.8.54 tracks/haskell/exercises/pascals-triangle/test/Tests.hs
trackler-2.0.8.53 tracks/haskell/exercises/pascals-triangle/test/Tests.hs
trackler-2.0.8.52 tracks/haskell/exercises/pascals-triangle/test/Tests.hs
trackler-2.0.8.51 tracks/haskell/exercises/pascals-triangle/test/Tests.hs
trackler-2.0.8.50 tracks/haskell/exercises/pascals-triangle/test/Tests.hs
trackler-2.0.8.49 tracks/haskell/exercises/pascals-triangle/test/Tests.hs
trackler-2.0.8.48 tracks/haskell/exercises/pascals-triangle/test/Tests.hs
trackler-2.0.8.47 tracks/haskell/exercises/pascals-triangle/test/Tests.hs
trackler-2.0.8.46 tracks/haskell/exercises/pascals-triangle/test/Tests.hs