Allinea iOS a i18n Android 2.0.5 e aggiunge monitoraggio termico nativo.
Completa L10n su login/hub/wizard/broadcast e introduce ThermalStateManager su iOS/Android con degradazione qualità e indicatore in overlay. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
co-authored by
Cursor
parent
ff4de33cc5
commit
ea5da1eb86
@@ -0,0 +1,49 @@
|
||||
import XCTest
|
||||
@testable import MatchLiveTv
|
||||
|
||||
@MainActor
|
||||
final class ThermalAdaptationTests: XCTestCase {
|
||||
func testSeriousReducesBitrateAndFps() {
|
||||
let baseline = BroadcastConfig(
|
||||
rtmpUrl: "rtmp://localhost/live/key",
|
||||
videoBitrate: 2_500_000,
|
||||
fps: 30
|
||||
)
|
||||
let adapted = ThermalStateManager.adaptedConfig(from: baseline, for: .serious)
|
||||
XCTAssertEqual(adapted.videoBitrate, 1_875_000)
|
||||
XCTAssertEqual(adapted.fps, 24)
|
||||
}
|
||||
|
||||
func testCriticalReducesFurther() {
|
||||
let baseline = BroadcastConfig(
|
||||
rtmpUrl: "rtmp://localhost/live/key",
|
||||
videoBitrate: 2_500_000,
|
||||
fps: 30
|
||||
)
|
||||
let adapted = ThermalStateManager.adaptedConfig(from: baseline, for: .critical)
|
||||
XCTAssertEqual(adapted.videoBitrate, 1_250_000)
|
||||
XCTAssertEqual(adapted.fps, 20)
|
||||
}
|
||||
|
||||
func testNominalKeepsBaseline() {
|
||||
let baseline = BroadcastConfig(
|
||||
rtmpUrl: "rtmp://localhost/live/key",
|
||||
videoBitrate: 2_500_000,
|
||||
fps: 30
|
||||
)
|
||||
let adapted = ThermalStateManager.adaptedConfig(from: baseline, for: .nominal)
|
||||
XCTAssertEqual(adapted.videoBitrate, baseline.videoBitrate)
|
||||
XCTAssertEqual(adapted.fps, baseline.fps)
|
||||
}
|
||||
|
||||
func testThermalStateLabels() {
|
||||
AppLanguage.current = .it
|
||||
XCTAssertEqual(ThermalState.nominal.displayLabel, L10n.t("thermal.state.nominal"))
|
||||
XCTAssertEqual(ThermalState.fair.displayLabel, L10n.t("thermal.state.fair"))
|
||||
XCTAssertEqual(ThermalState.serious.displayLabel, L10n.t("thermal.state.serious"))
|
||||
XCTAssertEqual(ThermalState.critical.displayLabel, L10n.t("thermal.state.critical"))
|
||||
AppLanguage.current = .en
|
||||
XCTAssertEqual(ThermalState.nominal.displayLabel, "Temperature OK")
|
||||
AppLanguage.current = .system
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user