// RUN: %target-run-simple-swift // REQUIRES: executable_test // REQUIRES: objc_interop // CoreMedia is not present on watchOS. // UNSUPPORTED: OS=watchos import CoreMedia import AVFoundation import StdlibUnittest import StdlibUnittestFoundationExtras var coreMedia = TestSuite("CoreMedia") func equalCMTimeMappings(_ x: CMTimeMapping, _ y: CMTimeMapping) -> Bool { var xx = x, yy = y return memcmp(&xx, &yy, MemoryLayout.size) == 0 } coreMedia.test("NSValue bridging") { let time1 = CMTimeMake(181, 60) expectBridgeToNSValue(time1, nsValueInitializer: { NSValue(time: $0) }, nsValueGetter: { $0.timeValue }, equal: (==)) let time2 = CMTimeMake(242, 60) let timeRange1 = CMTimeRangeFromTimeToTime(time1, time2) expectBridgeToNSValue(timeRange1, nsValueInitializer: { NSValue(timeRange: $0) }, nsValueGetter: { $0.timeRangeValue }, equal: (==)) let time3 = CMTimeMake(303, 60) let timeRange2 = CMTimeRangeFromTimeToTime(time2, time3) let timeMapping = CMTimeMapping(source: timeRange1, target: timeRange2) expectBridgeToNSValue(timeMapping, nsValueInitializer: { NSValue(timeMapping: $0) }, nsValueGetter: { $0.timeMappingValue }, equal: equalCMTimeMappings) } runAllTests()