         }
         
         do {
+            parsed = try Interpreter.parse("(hypot 0.0 0)")
+            let result = try Interpreter.eval(&parsed, with: &interpreter.globalEnv)
+            XCTAssertEqual(result as? Double, 0.0)
+        } catch {
+            XCTFail()
+        }
+        
+        do {
             parsed = try Interpreter.parse("(hypot 0.1 2.2)")
             let result = try Interpreter.eval(&parsed, with: &interpreter.globalEnv)
             XCTAssertEqualWithAccuracy(result as! Double, 2.20227155455452, accuracy: 0.0000000001)

        var parsed: Any
        
        do {
            parsed = try Interpreter.parse("(atan2 0.0 0.0)")
            let result = try Interpreter.eval(&parsed, with: &interpreter.globalEnv)
            XCTAssertEqual(result as? Double, 0.0)
        } catch {

        var parsed: Any
        
        do {
            parsed = try Interpreter.parse("(hypot 1 1)")
            let result = try Interpreter.eval(&parsed, with: &interpreter.globalEnv)
            XCTAssertEqualWithAccuracy(result as! Double, 1.41421356237309, accuracy: 0.0000000001)
        } catch {
            XCTFail()
        }
        
        do {
            parsed = try Interpreter.parse("(hypot 0 0.0)")
            let result = try Interpreter.eval(&parsed, with: &interpreter.globalEnv)
            XCTAssertEqual(result as? Double, 0.0)
        } catch {
