         return try encoder.encode(value)
     }
 
-    let decode = { (_ data: Data) throws -> T in
+    let decode = { (_ type: T.Type, _ data: Data) throws -> T in
         let decoder = JSONDecoder()
         decoder.nonConformingFloatDecodingStrategy = .convertFromString(positiveInfinity: inf,
                                                                         negativeInfinity: negInf,
                                                                         nan: nan)
-        return try decoder.decode(T.self, from: data)
+        return try decoder.decode(type, from: data)
     }
 
     expectRoundTripEquality(of: value, encode: encode, decode: decode, lineNumber: lineNumber)

        fatalError("\(#file):\(lineNumber): Unable to encode \(T.self) <\(debugDescription(value))>: \(error)")
    }

    let decoded: T
    do {
        decoded = try decode(data)
    } catch {
        fatalError("\(#file):\(lineNumber): Unable to decode \(T.self) <\(debugDescription(value))>: \(error)")
    }

    expectEqual(value, decoded, "\(#file):\(lineNumber): Decoded \(T.self) <\(debugDescription(decoded))> not equal to original <\(debugDescription(value))>")
}

    "test_Locale_Plist" : TestCodable.test_Locale_Plist,
    "test_NSRange_JSON" : TestCodable.test_NSRange_JSON,
    "test_NSRange_Plist" : TestCodable.test_NSRange_Plist,
    "test_PartialRangeFrom_JSON" : TestCodable.test_PartialRangeFrom_JSON,
    "test_PartialRangeFrom_Plist" : TestCodable.test_PartialRangeFrom_Plist,
    "test_PartialRangeThrough_JSON" : TestCodable.test_PartialRangeThrough_JSON,
    "test_PartialRangeThrough_Plist" : TestCodable.test_PartialRangeThrough_Plist,
    "test_PartialRangeUpTo_JSON" : TestCodable.test_PartialRangeUpTo_JSON,
    "test_PartialRangeUpTo_Plist" : TestCodable.test_PartialRangeUpTo_Plist,
    "test_Range_JSON" : TestCodable.test_Range_JSON,
    "test_Range_Plist" : TestCodable.test_Range_Plist,
    "test_TimeZone_JSON" : TestCodable.test_TimeZone_JSON,
    "test_TimeZone_Plist" : TestCodable.test_TimeZone_Plist,
    "test_URL_JSON" : TestCodable.test_URL_JSON,
