in PlaygroundLogger/PlaygroundLoggerTests/LegacyPlaygroundLoggerTests.swift [111:165]
func testBaseTypesDecoding() {
struct S { var a = 1; var b = "hello world"; var c: Double = 12.15; var d: Float = 12.15 }
let logdata = legacyLog(instance: S(), name: "s", id: 0, startLine: 0, endLine: 0, startColumn: 0, endColumn: 0) as! NSData
guard let decoded = legacyLogDecode(logdata) else {
XCTFail("Failed to decode log data")
return
}
guard let structured = decoded.object as? PlaygroundDecodedObject_Structured else {
XCTFail("Decoded object is not structured")
return
}
XCTAssertEqual(4, structured.count)
let child0 = structured[0]
let child1 = structured[1]
let child2 = structured[2]
let child3 = structured[3]
guard let child0_iderepr = child0 as? PlaygroundDecodedObject_IDERepr else {
XCTFail("child0 is not IDERepr")
return
}
guard let child1_iderepr = child1 as? PlaygroundDecodedObject_IDERepr else {
XCTFail("child1 is not IDERepr")
return
}
guard let child2_iderepr = child2 as? PlaygroundDecodedObject_IDERepr else {
XCTFail("child2 is not IDERepr")
return
}
guard let child3_iderepr = child3 as? PlaygroundDecodedObject_IDERepr else {
XCTFail("child3 is not IDERepr")
return
}
guard let child0Payload = child0_iderepr.payload, let aInt64 = child0Payload as? Int64 else {
XCTFail("child0 does not contain expected payload type")
return
}
let a = Int(aInt64)
guard let child1Payload = child1_iderepr.payload, let b = child1Payload as? String else {
XCTFail("child1 does not contain expected payload type")
return
}
guard let child2Payload = child2_iderepr.payload, let c = child2Payload as? Double else {
XCTFail("child2 does not contain expected payload type")
return
}
guard let child3Payload = child3_iderepr.payload, let d = child3Payload as? Float else {
XCTFail("child3 does not contain expected payload type")
return
}
let realS = S()
XCTAssertEqual(a, realS.a)
XCTAssertEqual(b, realS.b)
XCTAssertEqual(c, realS.c)
XCTAssertEqual(d, realS.d)
}