         }
     }
 
+    func testToString_withDoubleToNSDateDictionary() {
+        do {
+            var subject = CerealEncoder()
+            let first = NSDate(timeIntervalSince1970: 10.0)
+            let second = NSDate(timeIntervalSince1970: 20.0)
+            try subject.encode([1.0: first, 1.1: second], forKey: "wat")
+            let result = subject.toString()
+            XCTAssertTrue(result.hasPrefix("k,3:wat:m,33:"))
+            XCTAssertTrue(result.containsSubstring("d,3:1.0:t,4:10.0"))
+            XCTAssertTrue(result.containsSubstring("d,3:1.1:t,4:20.0"))
+        } catch let error {
+            XCTFail("Encoding failed due to error: \(error)")
+        }
+    }
+
     func testToString_withDoubleToCerealDictionary() {
         do {
             var subject = CerealEncoder()

        }
    }

    func testToString_withBoolToCerealDictionary() {
        do {
            var subject = CerealEncoder()

        }
    }

    func testToString_withIdentifyingCerealToNSDateDictionary() {
        do {
            var subject = CerealEncoder()
            let firstKey = TestIdentifyingCerealType(foo: "bar")
            let secondKey = TestIdentifyingCerealType(foo: "baz")
            let first = NSDate(timeIntervalSince1970: 10.0)
            let second = NSDate(timeIntervalSince1970: 20.0)
            try subject.encode([firstKey: first, secondKey: second], forKey: "wat")
            let result = subject.toString()
            XCTAssertTrue(result.hasPrefix("k,3:wat:m,73:"))
            XCTAssertTrue(result.containsSubstring("p,22:4:tict:k,3:foo:s,3:bar:t,4:10.0"))
            XCTAssertTrue(result.containsSubstring("p,22:4:tict:k,3:foo:s,3:baz:t,4:20.0"))
        } catch let error {
            XCTFail("Encoding failed due to error: \(error)")
        }
    }

    func testToString_withIdentifyingCerealToCerealDictionary() {
        do {
            var subject = CerealEncoder()
