     .replace(/\n (?=\n)/g, '')
 
 runTests = (tests) ->
-  for [source, result] in pairs tests
-    test source, result
+  for [name, source, expression, result] in pairs tests
+    test source + expression, result
   "Finished"
 # end of tests
 

    logError "Error in test #{teaSource}", e

tests = [
  """a 2
    a""", 2
  """a 2
    b 3
    a""", 1
  """Color (data Red Blue)
    r Red
    b Blue
    r2 Red
    (= r r2)""", true
  """positive (fn [n]
      (match n
        0 False
        m True))
    (positive 3)""", yes
  """Person (data
    Baby
    Adult [name: String])

    babies (fn [month]
      (match month
        1 1
        n (adults (- 1 month))))"""
    "(fibonacci 6)", 8

]

testNamed = (givenName) ->
  for [name, source, expression, result] in pairs tests when name is givenName
    return source
  throw new Error "Test #{givenName} not found!"

logError = (message, error) ->
  log message, error.message, error.stack
