`1` ```exercism fetch purescript diamond ```

#### test/Main.purs

 ```1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111``` ```module Test.Main where import Prelude import Control.Monad.Eff (Eff) import Control.Monad.Eff.AVar (AVAR) import Control.Monad.Eff.Console (CONSOLE) import Test.Unit.Assert as Assert import Test.Unit (TestSuite, suite, test) import Test.Unit.Console (TESTOUTPUT) import Test.Unit.Main (runTest) import Diamond (rows) main :: forall eff . Eff ( avar :: AVAR , console :: CONSOLE , testOutput :: TESTOUTPUT | eff ) Unit main = runTest suites suites :: forall e. TestSuite e suites = do suite "Diamond.rows" do test "Degenerate case with a single 'A' row" \$ Assert.equal [ "A" ] (rows 'A') test "Degenerate case with no row containing 3 distinct groups of spaces" \$ Assert.equal [ " A " , "B B" , " A " ] (rows 'B') test "Smallest non-degenerate case with odd diamond side length" \$ Assert.equal [ " A " , " B B " , "C C" , " B B " , " A " ] (rows 'C') test "Smallest non-degenerate case with even diamond side length" \$ Assert.equal [ " A " , " B B " , " C C " , "D D" , " C C " , " B B " , " A " ] (rows 'D') test "Largest possible diamond" \$ Assert.equal [ " A " , " B B " , " C C " , " D D " , " E E " , " F F " , " G G " , " H H " , " I I " , " J J " , " K K " , " L L " , " M M " , " N N " , " O O " , " P P " , " Q Q " , " R R " , " S S " , " T T " , " U U " , " V V " , " W W " , " X X " , " Y Y " , "Z Z" , " Y Y " , " X X " , " W W " , " V V " , " U U " , " T T " , " S S " , " R R " , " Q Q " , " P P " , " O O " , " N N " , " M M " , " L L " , " K K " , " J J " , " I I " , " H H " , " G G " , " F F " , " E E " , " D D " , " C C " , " B B " , " A " ] (rows 'Z') ```