33 lines
1016 B
Swift
33 lines
1016 B
Swift
import XCTest
|
|
@testable import AVLiveWire
|
|
|
|
final class TopologyPayloadTests: XCTestCase {
|
|
func testFrameTagTopology() {
|
|
XCTAssertEqual(FrameTag.topology.rawValue, 7)
|
|
}
|
|
|
|
func testRoundTrip() {
|
|
let names = ["root_joint", "hips_joint", "left_arm_joint"]
|
|
let parents: [Int16] = [-1, 0, 1]
|
|
let p = TopologyPayload(jointNames: names, parents: parents)
|
|
let r = TopologyPayload(decoding: p.encoded())
|
|
XCTAssertNotNil(r)
|
|
XCTAssertEqual(r!.jointNames, names)
|
|
XCTAssertEqual(r!.parents, parents)
|
|
}
|
|
|
|
func testRejectsTruncated() {
|
|
// Claims 3 joints but provides no body.
|
|
let bytes: [UInt8] = [0x00, 0x03]
|
|
XCTAssertNil(TopologyPayload(decoding: Data(bytes)))
|
|
}
|
|
|
|
func testEmpty() {
|
|
let p = TopologyPayload(jointNames: [], parents: [])
|
|
let r = TopologyPayload(decoding: p.encoded())
|
|
XCTAssertNotNil(r)
|
|
XCTAssertEqual(r!.jointNames, [])
|
|
XCTAssertEqual(r!.parents, [])
|
|
}
|
|
}
|