Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
VsyncWaiterIOSTest.mm
Go to the documentation of this file.
1// Copyright 2013 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#import <XCTest/XCTest.h>
6
8
9@interface VsyncWaiterIOSTest : XCTestCase
10@end
11
12@implementation VsyncWaiterIOSTest
13
14- (void)testSnapDurationWithValidDuration {
15 // 60Hz: 1/60 = 0.016666...
16 CFTimeInterval duration = 0.016667;
17 CFTimeInterval snapped = flutter::VsyncWaiterIOS::SnapDuration(duration, 60.0);
18 XCTAssertEqualWithAccuracy(snapped, 1.0 / 60.0, 0.0001);
19
20 // 120Hz: 1/120 = 0.008333...
21 duration = 0.008334;
22 snapped = flutter::VsyncWaiterIOS::SnapDuration(duration, 120.0);
23 XCTAssertEqualWithAccuracy(snapped, 1.0 / 120.0, 0.0001);
24}
25
26- (void)testSnapDurationWithInvalidDuration {
27 // Zero duration should fallback to max_refresh_rate.
28 CFTimeInterval snapped = flutter::VsyncWaiterIOS::SnapDuration(0.0, 120.0);
29 XCTAssertEqualWithAccuracy(snapped, 1.0 / 120.0, 0.0001);
30
31 // Negative duration should fallback to max_refresh_rate.
32 snapped = flutter::VsyncWaiterIOS::SnapDuration(-0.1, 80.0);
33 XCTAssertEqualWithAccuracy(snapped, 1.0 / 80.0, 0.0001);
34}
35
36- (void)testSnapDurationWithZeroMaxRefreshRateFallback {
37 // If duration is invalid AND max_refresh_rate is 0, fallback to 60Hz.
38 CFTimeInterval snapped = flutter::VsyncWaiterIOS::SnapDuration(0.0, 0.0);
39 XCTAssertEqualWithAccuracy(snapped, 1.0 / 60.0, 0.0001);
40
41 snapped = flutter::VsyncWaiterIOS::SnapDuration(-1.0, -10.0);
42 XCTAssertEqualWithAccuracy(snapped, 1.0 / 60.0, 0.0001);
43}
44
45@end
static CFTimeInterval SnapDuration(CFTimeInterval duration, double max_refresh_rate)