From 76dec4aad6868eccbb6fe6eeb177be6a85d37c3f Mon Sep 17 00:00:00 2001 From: Carlos Rafael Giani Date: Wed, 8 Mar 2023 17:37:26 +0100 Subject: [PATCH] comboctl-parser: Also parse text in alert screens This helps with distinguishing the "snooze" and "confirm" screens. Signed-off-by: Carlos Rafael Giani --- .../info/nightscout/comboctl/parser/Parser.kt | 31 +- .../comboctl/parser/TitleStrings.kt | 44 +- .../main/ParsedDisplayFrameStreamTest.kt | 2 +- .../comboctl/main/RTNavigationTest.kt | 4 +- .../nightscout/comboctl/parser/ParserTest.kt | 222 ++- .../comboctl/parser/TestDisplayFrames.kt | 1484 +++++++++++++++++ 6 files changed, 1752 insertions(+), 35 deletions(-) diff --git a/pump/combov2/comboctl/src/commonMain/kotlin/info/nightscout/comboctl/parser/Parser.kt b/pump/combov2/comboctl/src/commonMain/kotlin/info/nightscout/comboctl/parser/Parser.kt index a908ad3e0f..c3bead098c 100644 --- a/pump/combov2/comboctl/src/commonMain/kotlin/info/nightscout/comboctl/parser/Parser.kt +++ b/pump/combov2/comboctl/src/commonMain/kotlin/info/nightscout/comboctl/parser/Parser.kt @@ -81,8 +81,14 @@ sealed class MainScreenContent { * Possible contents of alert (= warning/error) screens. */ sealed class AlertScreenContent { - data class Warning(val code: Int) : AlertScreenContent() - data class Error(val code: Int) : AlertScreenContent() + enum class AlertScreenState { + TO_SNOOZE, + TO_CONFIRM, + HISTORY_ENTRY + } + + data class Warning(val code: Int, val state: AlertScreenState) : AlertScreenContent() + data class Error(val code: Int, val state: AlertScreenState) : AlertScreenContent() /** * "Content" while the alert symbol & code currently are "blinked out". @@ -1139,8 +1145,9 @@ class AlertScreenParser : Parser() { OptionalParser(SingleGlyphTypeParser(Glyph.LargeSymbol::class)), // warning/error symbol OptionalParser(SingleGlyphTypeParser(Glyph.LargeCharacter::class)), // "W" or "E" OptionalParser(IntegerParser()), // warning/error number - OptionalParser(SingleGlyphTypeParser(Glyph.LargeSymbol::class)), // stop symbol (only with errors) - SingleGlyphParser(Glyph.SmallSymbol(SmallSymbol.CHECK)) + OptionalParser(SingleGlyphTypeParser(Glyph.LargeSymbol::class)), // stop symbol (shown in suspended state) + SingleGlyphParser(Glyph.SmallSymbol(SmallSymbol.CHECK)), + StringParser() // snooze / confirm text ) ).parse(parseContext) @@ -1149,16 +1156,23 @@ class AlertScreenParser : Parser() { parseResult as ParseResult.Sequence + val stateString = parseResult.valueAt(4) + val alertState = when (knownScreenTitles[stateString]) { + TitleID.ALERT_TO_SNOOZE -> AlertScreenContent.AlertScreenState.TO_SNOOZE + TitleID.ALERT_TO_CONFIRM -> AlertScreenContent.AlertScreenState.TO_CONFIRM + else -> return ParseResult.Failed + } + return when (parseResult.valueAtOrNull(0)) { Glyph.LargeSymbol(LargeSymbol.WARNING) -> { ParseResult.Value(ParsedScreen.AlertScreen( - AlertScreenContent.Warning(parseResult.valueAt(2)) + AlertScreenContent.Warning(parseResult.valueAt(2), alertState) )) } Glyph.LargeSymbol(LargeSymbol.ERROR) -> { ParseResult.Value(ParsedScreen.AlertScreen( - AlertScreenContent.Error(parseResult.valueAt(2)) + AlertScreenContent.Error(parseResult.valueAt(2), alertState) )) } @@ -1654,7 +1668,10 @@ class MyDataErrorDataScreenParser : Parser() { index = index, totalNumEntries = totalNumEntries, timestamp = timestamp, - alert = if (alertType == SmallSymbol.WARNING) AlertScreenContent.Warning(alertNumber) else AlertScreenContent.Error(alertNumber) + alert = if (alertType == SmallSymbol.WARNING) + AlertScreenContent.Warning(alertNumber, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) + else + AlertScreenContent.Error(alertNumber, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ) } diff --git a/pump/combov2/comboctl/src/commonMain/kotlin/info/nightscout/comboctl/parser/TitleStrings.kt b/pump/combov2/comboctl/src/commonMain/kotlin/info/nightscout/comboctl/parser/TitleStrings.kt index 8b13c08d8e..3e85fb5981 100644 --- a/pump/combov2/comboctl/src/commonMain/kotlin/info/nightscout/comboctl/parser/TitleStrings.kt +++ b/pump/combov2/comboctl/src/commonMain/kotlin/info/nightscout/comboctl/parser/TitleStrings.kt @@ -19,7 +19,9 @@ enum class TitleID { BOLUS_DATA, ERROR_DATA, DAILY_TOTALS, - TBR_DATA + TBR_DATA, + ALERT_TO_SNOOZE, + ALERT_TO_CONFIRM } /** @@ -46,6 +48,8 @@ val knownScreenTitles = mapOf( "ERROR DATA" to TitleID.ERROR_DATA, "DAILY TOTALS" to TitleID.DAILY_TOTALS, "TBR DATA" to TitleID.TBR_DATA, + "TO SNOOZE" to TitleID.ALERT_TO_SNOOZE, + "TO CONFIRM" to TitleID.ALERT_TO_CONFIRM, // Spanish "QUICK INFO" to TitleID.QUICK_INFO, @@ -60,6 +64,8 @@ val knownScreenTitles = mapOf( "DATOS DE ERROR" to TitleID.ERROR_DATA, "TOTALES DIARIOS" to TitleID.DAILY_TOTALS, "DATOS DE DBT" to TitleID.TBR_DATA, + "REPETIR SEÑAL" to TitleID.ALERT_TO_SNOOZE, + "CONFIRMAR" to TitleID.ALERT_TO_CONFIRM, // French "QUICK INFO" to TitleID.QUICK_INFO, @@ -74,6 +80,8 @@ val knownScreenTitles = mapOf( "ERREURS" to TitleID.ERROR_DATA, "QUANTITÉS JOURN." to TitleID.DAILY_TOTALS, "DBT" to TitleID.TBR_DATA, + "RAPPEL TARD" to TitleID.ALERT_TO_SNOOZE, // actually, the text is "RAPPEL + TARD", but the + symbol is ignored to simplify parsing + "POUR CONFIRMER" to TitleID.ALERT_TO_CONFIRM, // Italian "QUICK INFO" to TitleID.QUICK_INFO, @@ -88,6 +96,8 @@ val knownScreenTitles = mapOf( "MEMORIA ALLARMI" to TitleID.ERROR_DATA, "TOTALI GIORNATA" to TitleID.DAILY_TOTALS, "MEMORIA PBT" to TitleID.TBR_DATA, + "RIPETI ALLARME" to TitleID.ALERT_TO_SNOOZE, + "PER CONFERMARE" to TitleID.ALERT_TO_CONFIRM, // Russian "QUICK INFO" to TitleID.QUICK_INFO, @@ -102,6 +112,8 @@ val knownScreenTitles = mapOf( "ДАHHЫE OБ O ИБ." to TitleID.ERROR_DATA, "CУTOЧHЫE ДOЗЫ" to TitleID.DAILY_TOTALS, "ДАHHЫE O BБC" to TitleID.TBR_DATA, + "BЫKЛ. ЗBУK" to TitleID.ALERT_TO_SNOOZE, + "ПOДTBEPДИTЬ" to TitleID.ALERT_TO_CONFIRM, // Turkish "QUICK INFO" to TitleID.QUICK_INFO, @@ -116,6 +128,8 @@ val knownScreenTitles = mapOf( "HATA VERİLERİ" to TitleID.ERROR_DATA, "GÜNLÜK TOPLAM" to TitleID.DAILY_TOTALS, "GBH VERİLERİ" to TitleID.TBR_DATA, + "ERTELE" to TitleID.ALERT_TO_SNOOZE, + "ONAYLA" to TitleID.ALERT_TO_CONFIRM, // Polish "QUICK INFO" to TitleID.QUICK_INFO, @@ -130,6 +144,8 @@ val knownScreenTitles = mapOf( "DANE BŁĘDU" to TitleID.ERROR_DATA, "DZIEN. D. CAŁK." to TitleID.DAILY_TOTALS, "DANE TDP" to TitleID.TBR_DATA, + "ABY WYCISZYĆ" to TitleID.ALERT_TO_SNOOZE, + "ABY POTWIERDZ." to TitleID.ALERT_TO_CONFIRM, // Czech "QUICK INFO" to TitleID.QUICK_INFO, @@ -144,6 +160,8 @@ val knownScreenTitles = mapOf( "ÚDAJE CHYB" to TitleID.ERROR_DATA, "CELK. DEN. DÁVKY" to TitleID.DAILY_TOTALS, "ÚDAJE DBD" to TitleID.TBR_DATA, + "ODLOŽIT" to TitleID.ALERT_TO_SNOOZE, + "POTVRDIT" to TitleID.ALERT_TO_CONFIRM, // Hungarian "QUICK INFO" to TitleID.QUICK_INFO, @@ -158,6 +176,8 @@ val knownScreenTitles = mapOf( "HIBAADATOK" to TitleID.ERROR_DATA, "NAPI TELJES" to TitleID.DAILY_TOTALS, "TBR-ADATOK" to TitleID.TBR_DATA, + "NÉMÍTÁS" to TitleID.ALERT_TO_SNOOZE, + "JÓVÁHAGYÁS" to TitleID.ALERT_TO_CONFIRM, // Slovak "QUICK INFO" to TitleID.QUICK_INFO, @@ -172,6 +192,8 @@ val knownScreenTitles = mapOf( "DÁTA O CHYBÁCH" to TitleID.ERROR_DATA, "SÚČTY DŇA" to TitleID.DAILY_TOTALS, "DBD DÁTA" to TitleID.TBR_DATA, + "STLMI" to TitleID.ALERT_TO_SNOOZE, + "POTVRDI" to TitleID.ALERT_TO_CONFIRM, // Romanian "QUICK INFO" to TitleID.QUICK_INFO, @@ -186,6 +208,8 @@ val knownScreenTitles = mapOf( "DATE EROARE" to TitleID.ERROR_DATA, "TOTALURI ZILNICE" to TitleID.DAILY_TOTALS, "DATE RBT" to TitleID.TBR_DATA, + "OPRIRE SONERIE" to TitleID.ALERT_TO_SNOOZE, + "CONFIRMARE" to TitleID.ALERT_TO_CONFIRM, // Croatian "QUICK INFO" to TitleID.QUICK_INFO, @@ -200,6 +224,8 @@ val knownScreenTitles = mapOf( "PODACI O GREŠK." to TitleID.ERROR_DATA, "UKUPNE DNEV.DOZE" to TitleID.DAILY_TOTALS, "PODACI O PBD-U" to TitleID.TBR_DATA, + "ZA ODGODU" to TitleID.ALERT_TO_SNOOZE, + "ZA POTVRDU" to TitleID.ALERT_TO_CONFIRM, // Dutch "QUICK INFO" to TitleID.QUICK_INFO, @@ -214,6 +240,8 @@ val knownScreenTitles = mapOf( "FOUTENGEGEVENS" to TitleID.ERROR_DATA, "DAGTOTALEN" to TitleID.DAILY_TOTALS, "TBD-GEGEVENS" to TitleID.TBR_DATA, + "UITSTELLEN" to TitleID.ALERT_TO_SNOOZE, + "BEVESTIGEN" to TitleID.ALERT_TO_CONFIRM, // Greek "QUICK INFO" to TitleID.QUICK_INFO, @@ -228,6 +256,8 @@ val knownScreenTitles = mapOf( "ΔEΔOМ. ΣΦАΛМАTΩN" to TitleID.ERROR_DATA, "HМEPHΣIO ΣΥNOΛO" to TitleID.DAILY_TOTALS, "ΔEΔOМENА П.B.P." to TitleID.TBR_DATA, + "ANAΣTOΛH" to TitleID.ALERT_TO_SNOOZE, + "EПIBEBАIΩΣH" to TitleID.ALERT_TO_CONFIRM, // Finnish "QUICK INFO" to TitleID.QUICK_INFO, @@ -242,6 +272,8 @@ val knownScreenTitles = mapOf( "HÄLYTYSTIEDOT" to TitleID.ERROR_DATA, "PÄIV. KOK.ANNOS" to TitleID.DAILY_TOTALS, "TBA - TIEDOT" to TitleID.TBR_DATA, + "ILMOITA MYÖH." to TitleID.ALERT_TO_SNOOZE, + "VAHVISTA" to TitleID.ALERT_TO_CONFIRM, // Norwegian "QUICK INFO" to TitleID.QUICK_INFO, @@ -256,6 +288,8 @@ val knownScreenTitles = mapOf( "FEILDATA" to TitleID.ERROR_DATA, "DØGNMENGDE" to TitleID.DAILY_TOTALS, "MBD-DATA" to TitleID.TBR_DATA, + "FOR Å SLUMRE" to TitleID.ALERT_TO_SNOOZE, + "FOR Å BEKREFTE" to TitleID.ALERT_TO_CONFIRM, // Portuguese "QUICK INFO" to TitleID.QUICK_INFO, @@ -271,6 +305,8 @@ val knownScreenTitles = mapOf( "DADOS DE ERROS" to TitleID.ERROR_DATA, "DADOS DE ALARMES" to TitleID.ERROR_DATA, "TOTAIS DIÁRIOS" to TitleID.DAILY_TOTALS, "DADOS DBT" to TitleID.TBR_DATA, + "PARA SILENCIAR" to TitleID.ALERT_TO_SNOOZE, + "PARA CONFIRMAR" to TitleID.ALERT_TO_CONFIRM, // Swedish "QUICK INFO" to TitleID.QUICK_INFO, @@ -285,6 +321,8 @@ val knownScreenTitles = mapOf( "FELDATA" to TitleID.ERROR_DATA, "DYGNSHISTORIK" to TitleID.DAILY_TOTALS, "TBD DATA" to TitleID.TBR_DATA, + "SNOOZE" to TitleID.ALERT_TO_SNOOZE, + "BEKRÄFTA" to TitleID.ALERT_TO_CONFIRM, // Danish "QUICK INFO" to TitleID.QUICK_INFO, @@ -299,6 +337,8 @@ val knownScreenTitles = mapOf( "FEJLDATA" to TitleID.ERROR_DATA, "DAGLIG TOTAL" to TitleID.DAILY_TOTALS, "MBR-DATA" to TitleID.TBR_DATA, + "FOR AT UDSÆTTE" to TitleID.ALERT_TO_SNOOZE, + "FOR GODKEND" to TitleID.ALERT_TO_CONFIRM, // German "QUICK INFO" to TitleID.QUICK_INFO, @@ -313,6 +353,8 @@ val knownScreenTitles = mapOf( "FEHLERMELDUNGEN" to TitleID.ERROR_DATA, "TAGESGESAMTMENGE" to TitleID.DAILY_TOTALS, "TBR-INFORMATION" to TitleID.TBR_DATA, + "NEU ERINNERN" to TitleID.ALERT_TO_SNOOZE, + "BESTÄTIGEN" to TitleID.ALERT_TO_CONFIRM, // Some pumps came preconfigured with a different quick info name "ACCU CHECK SPIRIT" to TitleID.QUICK_INFO diff --git a/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/main/ParsedDisplayFrameStreamTest.kt b/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/main/ParsedDisplayFrameStreamTest.kt index 0afd398ceb..b8a83ac9a4 100644 --- a/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/main/ParsedDisplayFrameStreamTest.kt +++ b/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/main/ParsedDisplayFrameStreamTest.kt @@ -300,7 +300,7 @@ class ParsedDisplayFrameStreamTest { // We expect normal parsing behavior. stream.feedDisplayFrame(testFrameW6CancelTbrWarningScreen) val parsedWarningFrame = stream.getParsedDisplayFrame(processAlertScreens = false) - assertEquals(ParsedScreen.AlertScreen(AlertScreenContent.Warning(6)), parsedWarningFrame!!.parsedScreen) + assertEquals(ParsedScreen.AlertScreen(AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE)), parsedWarningFrame!!.parsedScreen) // Feed a W6 screen, but with alert screen detection enabled. // We expect the alert screen to be detected and an exception diff --git a/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/main/RTNavigationTest.kt b/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/main/RTNavigationTest.kt index 387fd7cd8b..7999bb184e 100644 --- a/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/main/RTNavigationTest.kt +++ b/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/main/RTNavigationTest.kt @@ -723,7 +723,7 @@ class RTNavigationTest { )), ParsedScreen.BasalRate1ProgrammingMenuScreen, ParsedScreen.BasalRate2ProgrammingMenuScreen, - ParsedScreen.AlertScreen(AlertScreenContent.Warning(code = 6)), + ParsedScreen.AlertScreen(AlertScreenContent.Warning(code = 6, AlertScreenContent.AlertScreenState.TO_SNOOZE)), ParsedScreen.BasalRate3ProgrammingMenuScreen, ParsedScreen.BasalRate4ProgrammingMenuScreen, ParsedScreen.BasalRate5ProgrammingMenuScreen @@ -864,7 +864,7 @@ class RTNavigationTest { ParsedScreen.TemporaryBasalRatePercentageScreen(170, remainingDurationInMinutes = 30), ParsedScreen.TemporaryBasalRatePercentageScreen(170, remainingDurationInMinutes = 30), ParsedScreen.TemporaryBasalRatePercentageScreen(170, remainingDurationInMinutes = 30), - ParsedScreen.AlertScreen(AlertScreenContent.Warning(code = 6)), + ParsedScreen.AlertScreen(AlertScreenContent.Warning(code = 6, AlertScreenContent.AlertScreenState.TO_SNOOZE)), ParsedScreen.TemporaryBasalRatePercentageScreen(160, remainingDurationInMinutes = 30), ParsedScreen.TemporaryBasalRatePercentageScreen(160, remainingDurationInMinutes = 30) )) diff --git a/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/parser/ParserTest.kt b/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/parser/ParserTest.kt index 3d342a7599..540213c19a 100644 --- a/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/parser/ParserTest.kt +++ b/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/parser/ParserTest.kt @@ -679,16 +679,16 @@ class ParserTest { assertEquals(ParseResult.Value::class, result::class) val alertScreen = (result as ParseResult.Value<*>).value as ParsedScreen.AlertScreen - assertEquals(AlertScreenContent.Warning(6), alertScreen.content) + assertEquals(AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE), alertScreen.content) } @Test fun checkW8CancelBolusWarningScreenParsing() { val testScreens = listOf( Pair(testFrameW8CancelBolusWarningScreen0, AlertScreenContent.None), - Pair(testFrameW8CancelBolusWarningScreen1, AlertScreenContent.Warning(8)), + Pair(testFrameW8CancelBolusWarningScreen1, AlertScreenContent.Warning(8, AlertScreenContent.AlertScreenState.TO_SNOOZE)), Pair(testFrameW8CancelBolusWarningScreen2, AlertScreenContent.None), - Pair(testFrameW8CancelBolusWarningScreen3, AlertScreenContent.Warning(8)) + Pair(testFrameW8CancelBolusWarningScreen3, AlertScreenContent.Warning(8, AlertScreenContent.AlertScreenState.TO_CONFIRM)) ) for (testScreen in testScreens) { @@ -704,7 +704,7 @@ class ParserTest { fun checkE2BatteryEmptyErrorScreenParsing() { val testScreens = listOf( Pair(testFrameE2BatteryEmptyErrorScreen0, AlertScreenContent.None), - Pair(testFrameE2BatteryEmptyErrorScreen1, AlertScreenContent.Error(2)) + Pair(testFrameE2BatteryEmptyErrorScreen1, AlertScreenContent.Error(2, AlertScreenContent.AlertScreenState.TO_CONFIRM)) ) for (testScreen in testScreens) { @@ -963,7 +963,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 1, dayOfMonth = 28, hour = 11, minute = 0, second = 0), - alert = AlertScreenContent.Warning(6) + alert = AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -994,7 +994,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 1, dayOfMonth = 28, hour = 11, minute = 0, second = 0), - alert = AlertScreenContent.Warning(6) + alert = AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -1025,7 +1025,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 5, dayOfMonth = 11, hour = 21, minute = 56, second = 0), - alert = AlertScreenContent.Warning(7) + alert = AlertScreenContent.Warning(7, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -1056,7 +1056,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 5, dayOfMonth = 11, hour = 21, minute = 56, second = 0), - alert = AlertScreenContent.Warning(7) + alert = AlertScreenContent.Warning(7, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -1087,7 +1087,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 5, dayOfMonth = 11, hour = 21, minute = 56, second = 0), - alert = AlertScreenContent.Warning(7) + alert = AlertScreenContent.Warning(7, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -1118,7 +1118,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 5, dayOfMonth = 11, hour = 21, minute = 56, second = 0), - alert = AlertScreenContent.Warning(7) + alert = AlertScreenContent.Warning(7, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -1149,7 +1149,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 5, dayOfMonth = 11, hour = 21, minute = 56, second = 0), - alert = AlertScreenContent.Warning(7) + alert = AlertScreenContent.Warning(7, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -1180,7 +1180,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 5, dayOfMonth = 11, hour = 21, minute = 56, second = 0), - alert = AlertScreenContent.Warning(7) + alert = AlertScreenContent.Warning(7, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -1211,7 +1211,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 5, dayOfMonth = 11, hour = 21, minute = 56, second = 0), - alert = AlertScreenContent.Warning(7) + alert = AlertScreenContent.Warning(7, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -1242,7 +1242,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 5, dayOfMonth = 11, hour = 21, minute = 56, second = 0), - alert = AlertScreenContent.Warning(7) + alert = AlertScreenContent.Warning(7, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -1273,7 +1273,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 5, dayOfMonth = 11, hour = 21, minute = 56, second = 0), - alert = AlertScreenContent.Warning(7) + alert = AlertScreenContent.Warning(7, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -1304,7 +1304,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 2, dayOfMonth = 1, hour = 1, minute = 6, second = 0), - alert = AlertScreenContent.Warning(1) + alert = AlertScreenContent.Warning(1, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -1335,7 +1335,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 2, dayOfMonth = 1, hour = 1, minute = 6, second = 0), - alert = AlertScreenContent.Warning(1) + alert = AlertScreenContent.Warning(1, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -1366,7 +1366,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 2, dayOfMonth = 1, hour = 1, minute = 6, second = 0), - alert = AlertScreenContent.Warning(1) + alert = AlertScreenContent.Warning(1, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -1397,7 +1397,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 2, dayOfMonth = 1, hour = 1, minute = 6, second = 0), - alert = AlertScreenContent.Warning(1) + alert = AlertScreenContent.Warning(1, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -1428,7 +1428,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 2, dayOfMonth = 1, hour = 1, minute = 6, second = 0), - alert = AlertScreenContent.Warning(1) + alert = AlertScreenContent.Warning(1, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -1459,7 +1459,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 2, dayOfMonth = 1, hour = 1, minute = 6, second = 0), - alert = AlertScreenContent.Warning(1) + alert = AlertScreenContent.Warning(1, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -1490,7 +1490,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 2, dayOfMonth = 1, hour = 1, minute = 6, second = 0), - alert = AlertScreenContent.Warning(1) + alert = AlertScreenContent.Warning(1, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -1521,7 +1521,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 2, dayOfMonth = 1, hour = 1, minute = 6, second = 0), - alert = AlertScreenContent.Warning(1) + alert = AlertScreenContent.Warning(1, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -1552,7 +1552,7 @@ class ParserTest { ParsedScreen.MyDataErrorDataScreen( index = 1, totalNumEntries = 30, timestamp = LocalDateTime(year = 0, monthNumber = 1, dayOfMonth = 28, hour = 11, minute = 0, second = 0), - alert = AlertScreenContent.Warning(6) + alert = AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.HISTORY_ENTRY) ) ), Pair( @@ -1595,6 +1595,180 @@ class ParserTest { } } + @Test + fun checkAlertScreenTextParsing() { + val testScreens = listOf( + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextEnglishScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextEnglishScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextSpanishScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextSpanishScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextFrenchScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextFrenchScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextItalianScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextItalianScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextRussianScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextRussianScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextTurkishScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextTurkishScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextPolishScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextPolishScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextCzechScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextCzechScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextHungarianScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextHungarianScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextSlovakScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextSlovakScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextRomanianScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextRomanianScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextCroatianScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextCroatianScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextDutchScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextDutchScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextGreekScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextGreekScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextFinnishScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextFinnishScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextNorwegianScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextNorwegianScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextPortugueseScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextPortugueseScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextSwedishScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextSwedishScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextDanishScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextDanishScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenSnoozeTextGermanScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_SNOOZE) + ), + Pair( + AlertSnoozeAndConfirmScreens.testAlertScreenConfirmTextGermanScreen, + AlertScreenContent.Warning(6, AlertScreenContent.AlertScreenState.TO_CONFIRM) + ), + ) + + for (testScreen in testScreens) { + val testContext = TestContext(testScreen.first, 0, skipTitleString = true) + val result = AlertScreenParser().parse(testContext.parseContext) + + assertEquals(ParseResult.Value::class, result::class) + val alertScreen = (result as ParseResult.Value<*>).value as ParsedScreen.AlertScreen + assertEquals(testScreen.second, alertScreen.content) + } + } @Test fun checkToplevelScreenParsing() { val testScreens = listOf( diff --git a/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/parser/TestDisplayFrames.kt b/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/parser/TestDisplayFrames.kt index 73eabc7362..7da7090adc 100644 --- a/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/parser/TestDisplayFrames.kt +++ b/pump/combov2/comboctl/src/jvmTest/kotlin/info/nightscout/comboctl/parser/TestDisplayFrames.kt @@ -9712,3 +9712,1487 @@ val testMyDataBolusDataGermanScreen = makeDisplayFrame(arrayOf( " ███ ███ ██ ███ █ █ █ █ █ ███████ ███ ███ ██ ███ ███ ", " " )) + +object AlertSnoozeAndConfirmScreens { + + val testAlertScreenSnoozeTextEnglishScreen = makeDisplayFrame( + arrayOf( + "█████ ████ ████ ███ █ █ █ ███ █████ █ █ █████ ███ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ ", + " █ ████ ████ █ █████ █ █ █ █ ████ █ █ ████ █ █ ", + " █ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ █ █ ███ █ █ █ █ ███ █████ █████ █████ █████ ███ ", + " ", + " ██ ██ ██ ███ ████████ ", + " ████ ██ ██ ██ ██████████ ", + " █ █ ██ ██ ██ ████████████ ", + " ██ ██ ██ ██ ██ ██████████████ ", + " █ █ ██ ██ ██ ██ ████████████████ ", + " ██ ██ ██ ██ ██ ██ ██ █ █ █ █ ██ ", + " █ ██ █ ██ ██ ██ ██████ █ ███ ██ █ █ █ █ ", + " ██ ██ ██ ██ ██ ██ ███ ██ █ ██ ██ █ █ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ██ ██ ██ █ █ ███ ", + " ██ ██ ██ ██ ██ ██ ██ ██ █ ██ ██ █ ███ ", + " █ █ ██ ██ ██ ██ ██ ████████████████ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ██████████████ ", + " █ █ ██████████ ██ ██ ████████████ ", + " ████████████████ ███ ███ ██ ██ ██████████ ", + " ███████████████ █ █ ████ ████████ ", + " ", + " ", + " █ █████ ███ ████ █ █ ███ ███ █████ █████ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ ██ █ █ █ █ █ █ █ ", + "███ █ █ █ ███ █ █ █ █ █ █ █ █ ████ ", + " █ █ █ █ █ █ ██ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ███ ████ █ █ ███ ███ █████ █████ " + ) + ) + + val testAlertScreenConfirmTextEnglishScreen = makeDisplayFrame( + arrayOf( + "█████ ████ ████ ███ █ █ █ ███ █████ █ █ █████ ███ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ ", + " █ ████ ████ █ █████ █ █ █ █ ████ █ █ ████ █ █ ", + " █ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ █ █ ███ █ █ █ █ ███ █████ █████ █████ █████ ███ ", + " ", + " ██ ██ ██ ███ ████████ ", + " ████ ██ ██ ██ ██████████ ", + " █ █ ██ ██ ██ ████████████ ", + " ██ ██ ██ ██ ██ ██████████████ ", + " █ █ ██ ██ ██ ██ ████████████████ ", + " ██ ██ ██ ██ ██ ██ ██ █ █ █ █ ██ ", + " █ ██ █ ██ ██ ██ ██████ █ ███ ██ █ █ █ █ ", + " ██ ██ ██ ██ ██ ██ ███ ██ █ ██ ██ █ █ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ██ ██ ██ █ █ ███ ", + " ██ ██ ██ ██ ██ ██ ██ ██ █ ██ ██ █ ███ ", + " █ █ ██ ██ ██ ██ ██ ████████████████ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ██████████████ ", + " █ █ ██████████ ██ ██ ████████████ ", + " ████████████████ ███ ███ ██ ██ ██████████ ", + " ███████████████ █ █ ████ ████████ ", + " ", + " ", + " █ █████ ███ ███ ███ █ █ █████ ███ ████ █ █ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ██ ", + "█ ██ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ ", + "███ █ █ █ █ █ █ █ █ █ ████ █ ████ █ █ █ ", + " █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ███ ███ ███ █ █ █ ███ █ █ █ █ " + ) + ) + + val testAlertScreenSnoozeTextSpanishScreen = makeDisplayFrame( + arrayOf( + "███ ████ █████ ███ █ █ █ ███ █████ █ █ ███ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ ", + "█ █ ████ █ █ █████ █ █ █ █ ████ █ █████ █ █ █████ ", + "█ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ █ ███ █ █ █ █ ███ █████ █████ █ █ ███ █ █ ", + " ", + " ██ ██ ██ ███ ████████ ", + " ████ ██ ██ ██ ██████████ ", + " █ █ ██ ██ ██ ████████████ ", + " ██ ██ ██ ██ ██ ██████████████ ", + " █ █ ██ ██ ██ ██ ████████████████ ", + " ██ ██ ██ ██ ██ ██ ██ █ █ █ █ ██ ", + " █ ██ █ ██ ██ ██ ██████ █ ███ ██ █ █ █ █ ", + " ██ ██ ██ ██ ██ ██ ███ ██ █ ██ ██ █ █ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ██ ██ ██ █ █ ███ ", + " ██ ██ ██ ██ ██ ██ ██ ██ █ ██ ██ █ ███ ", + " █ █ ██ ██ ██ ██ ██ ████████████████ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ██████████████ ", + " █ █ ██████████ ██ ██ ████████████ ", + " ████████████████ ███ ███ ██ ██ ██████████ ", + " ███████████████ █ █ ████ ████████ ", + " ", + " ", + " █ ████ █████ ████ █████ █████ ███ ████ ████ █████ █ █ █ █ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ ████ ████ ████ █ █ ████ ███ ████ ██ █ █████ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ ", + " █ █ █████ █ █████ █ ███ █ █ ████ █████ █ █ █ █ █████ " + ) + ) + + val testAlertScreenConfirmTextSpanishScreen = makeDisplayFrame( + arrayOf( + "███ ████ █████ ███ █ █ █ ███ █████ █ █ ███ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ ", + "█ █ ████ █ █ █████ █ █ █ █ ████ █ █████ █ █ █████ ", + "█ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ █ ███ █ █ █ █ ███ █████ █████ █ █ ███ █ █ ", + " ", + " ██ ██ ██ ███ ████████ ", + " ████ ██ ██ ██ ██████████ ", + " █ █ ██ ██ ██ ████████████ ", + " ██ ██ ██ ██ ██ ██████████████ ", + " █ █ ██ ██ ██ ██ ████████████████ ", + " ██ ██ ██ ██ ██ ██ ██ █ █ █ █ ██ ", + " █ ██ █ ██ ██ ██ ██████ █ ███ ██ █ █ █ █ ", + " ██ ██ ██ ██ ██ ██ ███ ██ █ ██ ██ █ █ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ██ ██ ██ █ █ ███ ", + " ██ ██ ██ ██ ██ ██ ██ ██ █ ██ ██ █ ███ ", + " █ █ ██ ██ ██ ██ ██ ████████████████ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ██████████████ ", + " █ █ ██████████ ██ ██ ████████████ ", + " ████████████████ ███ ███ ██ ██ ██████████ ", + " ███████████████ █ █ ████ ████████ ", + " ", + " ", + " █ ███ ███ █ █ █████ ███ ████ █ █ █ ████ ", + " ██ █ █ █ █ █ █ █ █ █ █ ██ ██ █ █ █ █ ", + "█ ██ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ █ █ █ █ █ █ ████ █ ████ █ █ █ █████ ████ ", + " █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " ███ ███ █ █ █ ███ █ █ █ █ █ █ █ █ " + ) + ) + + val testAlertScreenSnoozeTextFrenchScreen = makeDisplayFrame( + arrayOf( + "███ ████ █████ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ ██ █ ██ █ █ █ █ █████ ", + "█ █ ████ █ █████ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ ██ █ ██ █ █ █ ████ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ █ █ █ █ █ █ █ ███ █████ █████ ", + " ", + " ██ ██ ██ ███ ████████ ", + " ████ ██ ██ ██ ██████████ ", + " █ █ ██ ██ ██ ████████████ ", + " ██ ██ ██ ██ ██ ██████████████ ", + " █ █ ██ ██ ██ ██ ████████████████ ", + " ██ ██ ██ ██ ██ ██ ██ █ █ █ █ ██ ", + " █ ██ █ ██ ██ ██ ██████ █ ███ ██ █ █ █ █ ", + " ██ ██ ██ ██ ██ ██ ███ ██ █ ██ ██ █ █ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ██ ██ ██ █ █ ███ ", + " ██ ██ ██ ██ ██ ██ ██ ██ █ ██ ██ █ ███ ", + " █ █ ██ ██ ██ ██ ██ ████████████████ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ██████████████ ", + " █ █ ██████████ ██ ██ ████████████ ", + " ████████████████ ███ ███ ██ ██ ██████████ ", + " ███████████████ █ █ ████ ████████ ", + " ", + " ", + " █ ████ █ ████ ████ █████ █ █████ █ ████ ███ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ █████ ████ ████ ████ █ █████ █ █████ ████ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █████ █████ █ █ █ █ █ ███ " + ) + ) + + val testAlertScreenConfirmTextFrenchScreen = makeDisplayFrame( + arrayOf( + "███ ████ █████ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ ██ █ ██ █ █ █ █ █████ ", + "█ █ ████ █ █████ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ ██ █ ██ █ █ █ ████ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ █ █ █ █ █ █ █ ███ █████ █████ ", + " ", + " ██ ██ ██ ███ ████████ ", + " ████ ██ ██ ██ ██████████ ", + " █ █ ██ ██ ██ ████████████ ", + " ██ ██ ██ ██ ██ ██████████████ ", + " █ █ ██ ██ ██ ██ ████████████████ ", + " ██ ██ ██ ██ ██ ██ ██ █ █ █ █ ██ ", + " █ ██ █ ██ ██ ██ ██████ █ ███ ██ █ █ █ █ ", + " ██ ██ ██ ██ ██ ██ ███ ██ █ ██ ██ █ █ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ██ ██ ██ █ █ ███ ", + " ██ ██ ██ ██ ██ ██ ██ ██ █ ██ ██ █ ███ ", + " █ █ ██ ██ ██ ██ ██ ████████████████ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ██████████████ ", + " █ █ ██████████ ██ ██ ████████████ ", + " ████████████████ ███ ███ ██ ██ ██████████ ", + " ███████████████ █ █ ████ ████████ ", + " ", + " ", + " █ ████ ███ █ █ ████ ███ ███ █ █ █████ ███ ████ █ █ █████ ████ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ██ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ █ █ █ █ ████ █ █ █ █ █ █ ████ █ ████ █ █ █ ████ ████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ███ ███ █ █ ███ ███ █ █ █ ███ █ █ █ █ █████ █ █ " + ) + ) + + val testAlertScreenSnoozeTextItalianScreen = makeDisplayFrame( + arrayOf( + "████ ████ █████ █ █ █ █ █ █ █ █ █ █ █████ ███ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ ██ █ ██ █ █ █ █ █ █ █ █ █ █ ", + "████ ████ █ █████ █ █ █ █ █ █ █ █ █ █ █████ █ █ █ ", + "█ █ █ █ █ █ █ ██ █ ██ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ████ █ █ █ █ █ █ █ ███ █████ █████ █ █ █ ███ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ ████ ███ ████ █████ █████ ███ █ █ █ █ ████ █ █ █████ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ██ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ █ ████ ████ █ █ █████ █ █ █████ ████ █ █ █ ████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ ███ █ █████ █ ███ █ █ █████ █████ █ █ █ █ █ █ █████ " + ) + ) + + val testAlertScreenConfirmTextItalianScreen = makeDisplayFrame( + arrayOf( + "████ ████ █████ █ █ █ █ █ █ █ █ █ █ █████ ███ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ ██ █ ██ █ █ █ █ █ █ █ █ █ █ ", + "████ ████ █ █████ █ █ █ █ █ █ █ █ █ █ █████ █ █ █ ", + "█ █ █ █ █ █ █ ██ █ ██ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ████ █ █ █ █ █ █ █ ███ █████ █████ █ █ █ ███ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ ████ █████ ████ ███ ███ █ █ █████ █████ ████ █ █ █ ████ █████ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ██ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ ████ ████ █ █ █ █ █ █ ████ ████ ████ █ █ █ █████ ████ ████ ", + " █ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █████ █ █ ███ ███ █ █ █ █████ █ █ █ █ █ █ █ █ █████ " + ) + ) + + val testAlertScreenSnoozeTextRussianScreen = makeDisplayFrame( + arrayOf( + "████ █████ ███ ███ █████ █ █ █████ █ █ █████ █ █ █ ", + "█ █ █ █ █ █ █ █ ██ ██ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "████ ████ █ █ █ █ █ █ ████ █████ ████ █████ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █████ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "████ ████ ███ ███ █ █ █ █████ █ █ █████ █ █ █ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ ████ █ █ █ █ ████ ███ ████ █ █ █ █ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ ██ █ ██ █ █ ██ ████ ███ ██ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ ", + " ████ ██ █ █ █ ██ █ ██ ███ ████ █ █ █ " + ) + ) + + val testAlertScreenConfirmTextRussianScreen = makeDisplayFrame( + arrayOf( + "████ █████ ███ ███ █████ █ █ █████ █ █ █████ █ █ █ ", + "█ █ █ █ █ █ █ █ ██ ██ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "████ ████ █ █ █ █ █ █ ████ █████ ████ █████ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █████ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "████ ████ ███ ███ █ █ █ █████ █ █ █████ █ █ █ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ █████ ███ ██ █████ ████ █████ ████ ██ █ █ █████ █ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ █ █ █ █ █ █ █ ████ ████ ████ █ █ █ █ █ █ ███ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █████ █ █ █ █ █ █████ ██ █ █ █ █ ", + " █ █ ███ █ █ █ ████ █████ █ █ █ █ █ █ ███ " + ) + ) + + val testAlertScreenSnoozeTextTurkishScreen = makeDisplayFrame( + arrayOf( + " ███ ████ █ █ █ ████ █████ █ █ █████ ███ █ █ ███ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ ███ █ █ █ █ █ █ █ █ █ ███ █ █ █ ███ ", + "█ ███ ████ █████ █ ████ █ █████ █ ████ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " ████ ████ █ █ ███ █ █ █ █ █████ █████ ███ ███ █████ ███ ███ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ █████ ████ █████ █████ █ █████ ", + " ██ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ ", + "███ ████ ████ █ ████ █ ████ ", + " █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ ", + " █████ █ █ █ █████ █████ █████ " + ) + ) + + val testAlertScreenConfirmTextTurkishScreen = makeDisplayFrame( + arrayOf( + " ███ ████ █ █ █ ████ █████ █ █ █████ ███ █ █ ███ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ ███ █ █ █ █ █ █ █ █ █ ███ █ █ █ ███ ", + "█ ███ ████ █████ █ ████ █ █████ █ ████ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " ████ ████ █ █ ███ █ █ █ █ █████ █████ ███ ███ █████ ███ ███ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ ███ █ █ █ █ █ █ █ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ ██ █ █ █ █ █ █ █ █ ", + "███ █ █ █ █ █ █████ █ █ █ █████ ", + " █ █ █ █ ██ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ ", + " ███ █ █ █ █ █ █████ █ █ " + ) + ) + + val testAlertScreenSnoozeTextPolishScreen = makeDisplayFrame( + arrayOf( + " █ █ █ █ █ █ ███ █ █ █ █ █ ███ █████ ███ ████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ ██ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ ", + "█████ █ █ █ █ █ █ █ █ █ █ █ █████ █ █ █ █ █ █ █ █ ████ ", + "█ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ ███ █████ ███ █ █ █ █ █ █ ███ █ ███ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ █ ████ █ █ █ █ █ █ ███ ███ ████ █████ █ █ █ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ████ ", + "███ █████ ████ █ █ █ █ █ █ █ █ █ ███ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ ████ █ █ █ █ ███ ███ ████ █████ █ ████ " + ) + ) + + val testAlertScreenConfirmTextPolishScreen = makeDisplayFrame( + arrayOf( + " █ █ █ █ █ █ ███ █ █ █ █ █ ███ █████ ███ ████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ ██ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ ", + "█████ █ █ █ █ █ █ █ █ █ █ █ █████ █ █ █ █ █ █ █ █ ████ ", + "█ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ ███ █████ ███ █ █ █ █ █ █ ███ █ ███ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ █ ████ █ █ ████ ███ █████ █ █ ███ █████ ████ ███ █████ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ █████ ████ █ █ ████ █ █ █ █ █ █ █ ████ ████ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ", + " █ █ ████ █ █ ███ █ █ █ ███ █████ █ █ ███ █████ ██ " + ) + ) + + val testAlertScreenSnoozeTextCzechScreen = makeDisplayFrame( + arrayOf( + "███ ████ ███ █████ ████ █ █ █ █ █████ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ ████ █ ██ █ █ █ ", + "█ █ ████ █ █ █ ████ █ █ █ ████ █ █ █ █████ ", + "█ █ █ █ █ █ █ █ █ █ █ ███ █ █ ██ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ ███ █████ █ █ ███ ████ █████ █ █ █ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ ███ ███ █ ███ █ █ ███ █████ ", + " ██ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █████ █ █ ", + "███ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ ", + " ███ ███ █████ ███ █████ ███ █ " + ) + ) + + val testAlertScreenConfirmTextCzechScreen = makeDisplayFrame( + arrayOf( + "███ ████ ███ █████ ████ █ █ █ █ █████ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ ████ █ ██ █ █ █ ", + "█ █ ████ █ █ █ ████ █ █ █ ████ █ █ █ █████ ", + "█ █ █ █ █ █ █ █ █ █ █ ███ █ █ ██ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ ███ █████ █ █ ███ ████ █████ █ █ █ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ ████ ███ █████ █ █ ████ ███ ███ █████ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ █ █ █ █ █ ████ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ███ █ █ █ █ ███ ███ █ " + ) + ) + + val testAlertScreenSnoozeTextHungarianScreen = makeDisplayFrame( + arrayOf( + "█████ ████ ████ █ █ █████ ███ ████ █████ █ █ █ █ ███ █████ ", + " █ █ █ █ █ ██ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ ████ █ █ █ ████ █ ███ ███ █ █████ ██ █████ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ █ █ █ █ █████ ████ ████ █████ █ █ █ █ █ █ ███ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ █ █ █ █ █ █ █████ █ ████ ", + " ██ █ █ █ ██ ██ █ █ █ █ ", + "█ ██ ██ █ █████ █ █ █ ███ █ █ █ ", + "███ █ █ █ █ █ █ █ █ █ █ █ ███ ", + " █ █ ██ ████ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █████ █ ", + " █ █ █████ █ █ ███ █ █ █ ████ " + ) + ) + + val testAlertScreenConfirmTextHungarianScreen = makeDisplayFrame( + arrayOf( + "█████ ████ ████ █ █ █████ ███ ████ █████ █ █ █ █ ███ █████ ", + " █ █ █ █ █ ██ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ ████ █ █ █ ████ █ ███ ███ █ █████ ██ █████ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ █ █ █ █ █████ ████ ████ █████ █ █ █ █ █ █ ███ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ ███ █ █ █ █ █ █ █ ███ █ █ █ ████ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ ███ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ █ █ █ █ █ █ █ █████ █████ █ ███ █ █ █ █ ███ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █████ █ █ █ █ █ █ █ █████ █ ", + " ██ ███ █ █ █ █ █ █ █ ████ █ █ █ ████ " + ) + ) + + val testAlertScreenSnoozeTextSlovakScreen = makeDisplayFrame( + arrayOf( + "███ ████ ███ █████ ████ █ █ █ █ █████ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ ████ █ ██ █ █ ", + "█ █ ████ █ █ █ ████ █ █ █ ████ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ ███ █ █ ██ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █████ ", + "███ ████ ███ █████ █ █ ███ ████ █████ █ █ █ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ ████ █████ █ █ █ ███ █ █ ", + " ██ █ █ █ ██ ██ █ █ ", + "█ ██ █ █ █ █ █ █ █ █████ ", + "███ ███ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ ", + " ████ █ █████ █ █ ███ █ " + ) + ) + + val testAlertScreenConfirmTextSlovakScreen = makeDisplayFrame( + arrayOf( + "███ ████ ███ █████ ████ █ █ █ █ █████ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ ████ █ ██ █ █ ", + "█ █ ████ █ █ █ ████ █ █ █ ████ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ ███ █ █ ██ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █████ ", + "███ ████ ███ █████ █ █ ███ ████ █████ █ █ █ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ ████ ███ █████ █ █ ████ ███ ███ █ █ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █████ ", + "███ ████ █ █ █ █ █ ████ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ███ █ █ █ █ ███ ███ █ " + ) + ) + + val testAlertScreenSnoozeTextRomanianScreen = makeDisplayFrame( + arrayOf( + "████ ████ █████ █ █ █ █ █ █ █ █████ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ ", + "████ ████ █ █████ █ █ █ █ █ █ █████ █ ", + "█ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ ████ █ █ █ █ █ ███ █████ █ █ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ ███ ████ ████ ███ ████ █████ ████ ███ █ █ █████ ████ ███ █████ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ ", + "███ █ █ ████ ████ █ ████ ████ ███ █ █ █ █ █ ████ ████ █ ████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " ███ █ █ █ ███ █ █ █████ ████ ███ █ █ █████ █ █ ███ █████ " + ) + ) + + val testAlertScreenConfirmTextRomanianScreen = makeDisplayFrame( + arrayOf( + "████ ████ █████ █ █ █ █ █ █ █ █████ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ ", + "████ ████ █ █████ █ █ █ █ █ █ █████ █ ", + "█ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ ████ █ █ █ █ █ ███ █████ █ █ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ ███ ███ █ █ █████ ███ ████ █ █ █ ████ █████ ", + " ██ █ █ █ █ █ █ █ █ █ █ ██ ██ █ █ █ █ █ ", + "█ ██ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ █ █ █ █ █ █ ████ █ ████ █ █ █ █████ ████ ████ ", + " █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " ███ ███ █ █ █ ███ █ █ █ █ █ █ █ █ █████ " + ) + ) + + val testAlertScreenSnoozeTextCroatianScreen = makeDisplayFrame( + arrayOf( + "████ ████ ███ ███ █████ █ █ █ █████ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ ", + "████ ████ █ █ █ █ █ ██ █████ █ █████ █ █ █ █████ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ████ ███ ███ █ █ █ █ █ █████ █ █ █ █ █ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ █████ █ ███ ███ ███ ███ ███ █ █ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ █ █████ █ █ █ █ █ ███ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █████ █ █ ███ ███ ████ ███ ███ ███ " + ) + ) + + val testAlertScreenConfirmTextCroatianScreen = makeDisplayFrame( + arrayOf( + "████ ████ ███ ███ █████ █ █ █ █████ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ ", + "████ ████ █ █ █ █ █ ██ █████ █ █████ █ █ █ █████ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ████ ███ ███ █ █ █ █ █ █████ █ █ █ █ █ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ █████ █ ████ ███ █████ █ █ ████ ███ █ █ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ █ █████ ████ █ █ █ █ █ ████ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █████ █ █ █ ███ █ █ █ █ ███ ███ " + ) + ) + + val testAlertScreenSnoozeTextDutchScreen = makeDisplayFrame( + arrayOf( + "█████ ████ ███ ███ █████ █ █ █ █ █ █ █ █ █████ █████ ████ ███ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ ██ █ ██ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ █ █ █ ███ ████ █████ █ █ █ █ █ █ █ █ █ ████ ████ ████ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ ██ █ ██ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ ███ ████ █████ █ █ █ █ █ █ ███ █████ █████ █████ █ █ ███ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ █ █ ███ █████ ████ █████ █████ █ █ █████ █ █ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ ██ █ ", + "███ █ █ █ █ ███ █ ████ █ █ ████ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ ██ ", + " █ █ █ █ █ █ █ █ █ █ █ █ ", + " ███ ███ █ ████ █ █████ █████ █████ █████ █ █ " + ) + ) + + val testAlertScreenConfirmTextDutchScreen = makeDisplayFrame( + arrayOf( + "█████ ████ ███ ███ █████ █ █ █ █ █ █ █ █ █████ █████ ████ ███ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ ██ █ ██ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ █ █ █ ███ ████ █████ █ █ █ █ █ █ █ █ █ ████ ████ ████ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ ██ █ ██ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ ███ ████ █████ █ █ █ █ █ █ ███ █████ █████ █████ █ █ ███ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ ████ █████ █ █ █████ ████ █████ ███ ███ █████ █ █ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ ██ █ ", + "███ ████ ████ █ █ ████ ███ █ █ █ ███ ████ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " ████ █████ █ █████ ████ █ ███ ████ █████ █ █ " + ) + ) + + val testAlertScreenSnoozeTextGreekScreen = makeDisplayFrame( + arrayOf( + " █ █ █ █ █ ████ ███ █████ █ █ █████ ████ ████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ ██ ███ ████ █ █ █ █████ █ █ ████ ████ ", + "█████ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ ██ █ ██ ", + "█ █ █ █ █ █ ██ ██ █████ █ █ █ █ ██ ████ ██ █ ██ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ █ █ █ █ █████ █████ ███ █ █ █ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ ", + "███ █████ █ █ █ █████ █ █ █ █ █ █ █████ ", + " █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █████ █ ███ █ █ █ █ " + ) + ) + + val testAlertScreenConfirmTextGreekScreen = makeDisplayFrame( + arrayOf( + " █ █ █ █ █ ████ ███ █████ █ █ █████ ████ ████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ ██ ███ ████ █ █ █ █████ █ █ ████ ████ ", + "█████ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ ██ █ ██ ", + "█ █ █ █ █ █ ██ ██ █████ █ █ █ █ ██ ████ ██ █ ██ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ █████ █████ ███ ████ █████ ████ █ ███ ███ █████ █ █ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ █ █ █ ████ ████ ████ █ █ █ █ █ █ █████ ", + " █ █ █ █ █ █ █ █ █ █ █████ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █████ █ █ ███ ████ █████ ████ █ █ ███ ██ ██ █████ █ █ " + ) + ) + + val testAlertScreenSnoozeTextFinnishScreen = makeDisplayFrame( + arrayOf( + "█████ ████ █ ████ █████ ████ █ █ █ █ █████ █████ █████ █████ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ █████ ████ ████ ████ █ █ █ █ █ ████ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ █ █ █ █████ █ █ ███ ███ █ █████ █ █ ███ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ ███ █ █ █ ███ ███ █████ █ █ █ █ █ █ █ █ █ ", + " ██ █ █ ██ ██ █ █ █ █ █ █ ██ ██ █ █ ███ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ █ █ █ █ █ █ █ █ █ █████ █ █ █ █ █ █ █ █████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ", + " ███ █████ █ █ ███ ███ █ █ █ █ █ █ ███ █ █ ██ " + ) + ) + + val testAlertScreenConfirmTextFinnishScreen = makeDisplayFrame( + arrayOf( + "█████ ████ █ ████ █████ ████ █ █ █ █ █████ █████ █████ █████ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ █████ ████ ████ ████ █ █ █ █ █ ████ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ █ █ █ █████ █ █ ███ ███ █ █████ █ █ ███ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ █ █ █ █ █ █ █ ███ ████ █████ █ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ █ █ █████ █████ █ █ █ ███ █ █████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ ███ ████ █ █ █ " + ) + ) + + val testAlertScreenSnoozeTextNorwegianScreen = makeDisplayFrame( + arrayOf( + "█ █ ████ ███ █ █ █ ████ ████ █ █ █████ █████ ", + "██ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ ████ █ █ █████ █ █ ████ ████ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ ████ ███ █ █ █ ████ █ █ ███ █ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ █████ ███ ████ █ ████ █ █ █ █ █ ████ █████ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ ██ ██ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ █ █ ████ █ █ ███ █ █ █ █ █ █ ████ ████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █████ █ █ █ █ █ █ █ █ █ ", + " █ ███ █ █ █ █ ████ █████ ███ █ █ █ █ █████ " + ) + ) + + val testAlertScreenConfirmTextNorwegianScreen = makeDisplayFrame( + arrayOf( + "█ █ ████ ███ █ █ █ ████ ████ █ █ █████ █████ ", + "██ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ ████ █ █ █████ █ █ ████ ████ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ ████ ███ █ █ █ ████ █ █ ███ █ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ █████ ███ ████ █ ████ █████ █ █ ████ █████ █████ █████ █████ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ █ █ ████ █ █ ████ ████ ██ ████ ████ ████ █ ████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █████ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ███ █ █ █ █ ████ █████ █ █ █ █ █████ █ █ █████ " + ) + ) + + val testAlertScreenSnoozeTextPortugueseScreen = makeDisplayFrame( + arrayOf( + "███ ████ █████ ███ █ █ █ ███ █████ █ █ ███ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ ", + "█ █ ████ █ █ █████ █ █ █ █ ████ █ █████ █ █ █████ ", + "█ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ █ ███ █ █ █ █ ███ █████ █████ █ █ ███ █ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ ████ █ ████ █ ████ ███ █ █████ █ █ ███ ███ █ ████ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ ", + "███ ████ █████ ████ █████ ███ █ █ ████ █ █ █ █ █ █████ ████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ ████ ███ █████ █████ █ █ ███ ███ █ █ █ █ " + ) + ) + + val testAlertScreenConfirmTextPortugueseScreen = makeDisplayFrame( + arrayOf( + "███ ████ █████ ███ █ █ █ ███ █████ █ █ ███ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ ", + "█ █ ████ █ █ █████ █ █ █ █ ████ █ █████ █ █ █████ ", + "█ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ █ ███ █ █ █ █ ███ █████ █████ █ █ ███ █ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ ████ █ ████ █ ███ ███ █ █ █████ ███ ████ █ █ █ ████ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ██ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ █████ ████ █████ █ █ █ █ █ █ ████ █ ████ █ █ █ █████ ████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ ███ ███ █ █ █ ███ █ █ █ █ █ █ █ █ " + ) + ) + + val testAlertScreenSnoozeTextSwedishScreen = makeDisplayFrame( + arrayOf( + "█████ ████ ███ █ █ █ ████ ████ █ █ █████ █████ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ ", + " █ ████ █ █ █████ █ █ ████ ████ █ █ █ ████ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ ███ █ █ █ ████ █ █ ███ █ █████ █ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ ████ █ █ ███ ███ █████ █████ ", + " ██ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ ██ █ █ █ █ █ █ █ ", + "███ ███ █ █ █ █ █ █ █ █ ████ ", + " █ █ █ ██ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ ", + " ████ █ █ ███ ███ █████ █████ " + ) + ) + + val testAlertScreenConfirmTextSwedishScreen = makeDisplayFrame( + arrayOf( + "█████ ████ ███ █ █ █ ████ ████ █ █ █████ █████ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ ", + " █ ████ █ █ █████ █ █ ████ ████ █ █ █ ████ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ ███ █ █ █ ████ █ █ ███ █ █████ █ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ ████ █████ █ █ ████ █ █ █████ █████ █ ", + " ██ █ █ █ █ █ █ █ ███ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ ████ ██ ████ █ █ ████ █ █████ ", + " █ █ █ █ █ █ █ █ █████ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " ████ █████ █ █ █ █ █ █ █ █ █ █ " + ) + ) + + val testAlertScreenSnoozeTextDanishScreen = makeDisplayFrame( + arrayOf( + "█ █ ████ ████ █ █ █ █ █ █ █ █ █ █████ ████ █████ █████ ", + "██ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ ██ █ ██ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ ████ ████ █████ █ █ █ █ █ █ █ █ █ █ ████ ████ ████ █ ", + "█ █ █ █ █ █ █ █ █ ██ █ ██ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ ████ █ █ █ █ █ █ █ █ ███ █████ █████ █████ █ █ █████ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ █████ ███ ████ █ █████ █ █ ███ ████ ████ █████ █████ █████ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "███ ████ █ █ ████ █████ █ █ █ █ █ ███ ████ █ █ ████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ███ █ █ █ █ █ ███ ███ ████ █ ███ █ █ █████ " + ) + ) + + val testAlertScreenConfirmTextDanishScreen = makeDisplayFrame( + arrayOf( + "█ █ ████ ████ █ █ █ █ █ █ █ █ █ █████ ████ █████ █████ ", + "██ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ ██ █ ██ █ █ █ █ █ █ █ █ █ █ ", + "█ █ █ ████ ████ █████ █ █ █ █ █ █ █ █ █ █ ████ ████ ████ █ ", + "█ █ █ █ █ █ █ █ █ ██ █ ██ █ █ █ █ █ █ █ █ █ ", + "█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ █ ████ █ █ █ █ █ █ █ █ ███ █████ █████ █████ █ █ █████ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ █████ ███ ████ ███ ███ ███ █ █ █████ █ █ ███ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ █ ", + "███ ████ █ █ ████ █ ███ █ █ █ █ ██ ████ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ███ █ █ ████ ███ ███ █ █ █████ █ █ ███ " + ) + ) + + val testAlertScreenSnoozeTextGermanScreen = makeDisplayFrame( + arrayOf( + "█████ ████ ████ █ ████ ████ ████ █ █ ███ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ ████ █████ ████ ████ ████ █ █ █ █████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ █ █ █ █ ████ ████ █ █ ███ ███ █ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ █ █ █████ █ █ █████ ████ ███ █ █ █ █ █████ ████ █ █ ", + " ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + "█ ██ ██ █ █ █ █ █ █ █ █ ██ █ ██ █ █ █ █ ██ █ ", + "███ █ █ █ ████ █ █ ████ ████ █ █ █ █ █ █ █ ████ ████ █ █ █ ", + " █ █ ██ █ █ █ █ █ █ █ █ ██ █ ██ █ █ █ █ ██ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █████ ███ █████ █ █ ███ █ █ █ █ █████ █ █ █ █ " + ) + ) + + val testAlertScreenConfirmTextGermanScreen = makeDisplayFrame( + arrayOf( + "█████ ████ ████ █ ████ ████ ████ █ █ ███ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ ████ █████ ████ ████ ████ █ █ █ █████ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " █ ████ █ █ █ █ ████ ████ █ █ ███ ███ █ █ ", + " ", + " ██ ██ ██ ███ ", + " ████ ██ ██ ██ ", + " █ █ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ", + " █ ██ █ ██ ██ ██ ██████ ", + " ██ ██ ██ ██ ██ ██ ███ ██ ", + " █ ██ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ██ ██ ██ ██ ", + " █ █ ██ ██ ██ ██ ██ ", + " ██ ██ ██ ██ ████ ██ ██ ██ ", + " █ █ ██████████ ██ ██ ", + " ████████████████ ███ ███ ██ ██ ", + " ███████████████ █ █ ████ ", + " ", + " ", + " █ ████ █████ ████ █████ █ █ █████ ███ ███ █████ █ █ ", + " ██ █ █ █ █ █ ███ █ █ █ █ █ █ █ ", + "█ ██ █ █ █ █ █ █ █ █ █ █ █ ██ █ ", + "███ ████ ████ ███ █ █ █ █ █ █ ███ ████ █ █ █ ", + " █ █ █ █ █ █ █████ █ █ █ █ █ █ ██ ", + " █ █ █ █ █ █ █ █ █ █ █ █ █ █ ", + " ████ █████ ████ █ █ █ █ ███ ████ █████ █ █ " + ) + ) + +} \ No newline at end of file