         ]
 
         YamsAssertEqual(objects, expected)
+    }
+
+    func testString() throws {
+        let example = """
+            one: two
+            three: four
+            """
+        let objects = try Yams.load(yaml: example)
+        let expected: [String: Any] = [
+            "one": "two",
+            "three": "four"
+        ]
+        YamsAssertEqual(objects, expected)
+
+        XCTAssertNil(String.construct(from: [Node("1"), Node("2")]))
+    }
+
+    func testDecimal() throws {
+        XCTAssertEqual(Decimal.construct(from: Node("1.2")), Decimal(string: "1.2")!)
+        XCTAssertNil(Decimal.construct(from: [Node("1"), Node("2")]))
+    }
+
+    func testURL() throws {
+        XCTAssertEqual(URL.construct(from: Node("http://www.google.com")), URL(string: "http://www.google.com")!)
+        XCTAssertEqual(URL.construct(from: Node("~/file.txt")), URL(string: "~/file.txt")!)
+        XCTAssertNil(URL.construct(from: [Node("1"), Node("2")]))
     }
 }
 

            "date (00:00:00Z)": timestamp( 0, 2002, 12, 14)
        ]
        YamsAssertEqual(objects, expected)
    }

    func testTimestampWithNanosecond() throws {

            "canonicalMax": 9223372036854775807
        ]
        YamsAssertEqual(objects, expected)

        XCTAssertNil(Int.construct(from: [Node("1"), Node("2")]))
    }

    func testMap() throws {
