Files
HaishinKit.swift/HaishinKit/Tests/Screen/VideoScreenObjectTests.swift
shogo4405 de6def6aae Align file names and interfaces with the other platforms for ScreenObject. (#1880)
* Rename VideoTrackScreenObject -> VideoScreenObject.

* ScreenObjectSnapshot.frame -> ScreenObjectSnapshot.size

* Support data scheme image source for ImageScreenObject.

* Add Test.
2026-02-16 00:44:28 +09:00

43 lines
1.6 KiB
Swift

import AVFoundation
import Foundation
import Testing
@testable import HaishinKit
@ScreenActor
@Suite struct VideoObjectContainerTests {
@Test func horizontalAlignmentBounds() {
let screen = Screen()
let object1 = VideoScreenObject()
object1.videoGravity = .resizeAspect
object1.size = .init(width: 160, height: 90)
object1.enqueue(CMVideoSampleBufferFactory.makeSampleBuffer(width: 900, height: 1600)!)
object1.horizontalAlignment = .left
let object2 = VideoScreenObject()
object2.videoGravity = .resizeAspect
object2.size = .init(width: 160, height: 90)
object2.enqueue(CMVideoSampleBufferFactory.makeSampleBuffer(width: 900, height: 1600)!)
object2.horizontalAlignment = .center
let object3 = VideoScreenObject()
object3.videoGravity = .resizeAspect
object3.size = .init(width: 160, height: 90)
object3.enqueue(CMVideoSampleBufferFactory.makeSampleBuffer(width: 900, height: 1600)!)
object3.horizontalAlignment = .right
try? screen.addChild(object1)
try? screen.addChild(object2)
try? screen.addChild(object3)
if let sampleBuffer = CMVideoSampleBufferFactory.makeSampleBuffer(width: 1600, height: 900) {
_ = screen.render(sampleBuffer)
}
#expect(object1.bounds == .init(x: 0, y: 0, width: 50.625, height: 90))
#expect(object2.bounds == .init(x: 774.6875, y: 0, width: 50.625, height: 90))
#expect(object3.bounds == .init(x: 1549.375, y: 0, width: 50.625, height: 90))
}
}