         var parsed: Any
         
         do {
-            parsed = try Interpreter.parse("(sinh 0.0)")
+            parsed = try Interpreter.parse("(sinh 0.1)")
+            let result = try Interpreter.eval(&parsed, with: &interpreter.globalEnv)
+            XCTAssertEqualWithAccuracy(result as! Double, 0.1001667500198440, accuracy: 0.0000000001)
+        } catch {
+            XCTFail()
+        }
+        
+        do {
+            parsed = try Interpreter.parse("(sinh 1)")
+            let result = try Interpreter.eval(&parsed, with: &interpreter.globalEnv)
+            XCTAssertEqualWithAccuracy(result as! Double, 1.1752011936438014, accuracy: 0.0000000001)
+        } catch {
+            XCTFail()
+        }
+        
+        do {
+            parsed = try Interpreter.parse("(sinh a)")
+            let _ = try Interpreter.eval(&parsed, with: &interpreter.globalEnv)
+            XCTFail()
+        } catch {
+            XCTPass()
+        }
+        
+        do {
+            parsed = try Interpreter.parse("(sinh 1.0 1.0)")
+            let _ = try Interpreter.eval(&parsed, with: &interpreter.globalEnv)
+            XCTFail()
+        } catch {
+            XCTPass()
+        }
+    }
+    
+    /**
+     Tests our `tanh` function
+     */
+    func testTanh() {
+        var parsed: Any
+        
+        do {
+            parsed = try Interpreter.parse("(tanh 0.0)")
             let result = try Interpreter.eval(&parsed, with: &interpreter.globalEnv)
             XCTAssertEqual(result as? Double, 0.0)
         } catch {

        }

        do {
            parsed = try Interpreter.parse("(acosh 1.5)")
            let result = try Interpreter.eval(&parsed, with: &interpreter.globalEnv)
            XCTAssertEqualWithAccuracy(result as! Double, 0.9624236501192068, accuracy: 0.0000000001)
        } catch {
            XCTFail()
        }

        do {
            parsed = try Interpreter.parse("(acosh 0)")
            let _ = try Interpreter.eval(&parsed, with: &interpreter.globalEnv)
            XCTFail()
        } catch {
            XCTPass()
        }

        do {
            parsed = try Interpreter.parse("(acosh 1.0 1.0)")
            let _ = try Interpreter.eval(&parsed, with: &interpreter.globalEnv)

        }
        
        do {
            parsed = try Interpreter.parse("(tanh 0.1)")
            let result = try Interpreter.eval(&parsed, with: &interpreter.globalEnv)
            XCTAssertEqualWithAccuracy(result as! Double, 0.0996679946249558, accuracy: 0.0000000001)
