19596a2c1Sopenharmony_ci/* 29596a2c1Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 39596a2c1Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 49596a2c1Sopenharmony_ci * you may not use this file except in compliance with the License. 59596a2c1Sopenharmony_ci * You may obtain a copy of the License at 69596a2c1Sopenharmony_ci * 79596a2c1Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 89596a2c1Sopenharmony_ci * 99596a2c1Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 109596a2c1Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 119596a2c1Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 129596a2c1Sopenharmony_ci * See the License for the specific language governing permissions and 139596a2c1Sopenharmony_ci * limitations under the License. 149596a2c1Sopenharmony_ci */ 159596a2c1Sopenharmony_ci 169596a2c1Sopenharmony_ci#include <gtest/gtest.h> 179596a2c1Sopenharmony_ci#include "entity_recognizer.h" 189596a2c1Sopenharmony_ci#include "i18n_break_iterator.h" 199596a2c1Sopenharmony_ci#include "i18n_calendar.h" 209596a2c1Sopenharmony_ci#include "i18n_normalizer.h" 219596a2c1Sopenharmony_ci#include "i18n_timezone_mock.h" 229596a2c1Sopenharmony_ci#include "locale_config.h" 239596a2c1Sopenharmony_ci#include "locale_info.h" 249596a2c1Sopenharmony_ci#include "locale_matcher.h" 259596a2c1Sopenharmony_ci#include "locale_util.h" 269596a2c1Sopenharmony_ci#include "lunar_calendar.h" 279596a2c1Sopenharmony_ci#include "measure_data.h" 289596a2c1Sopenharmony_ci#include "phone_number_format_mock.h" 299596a2c1Sopenharmony_ci#include "preferred_language.h" 309596a2c1Sopenharmony_ci 319596a2c1Sopenharmony_ciusing namespace OHOS::Global::I18n; 329596a2c1Sopenharmony_ciusing testing::ext::TestSize; 339596a2c1Sopenharmony_ciusing namespace std; 349596a2c1Sopenharmony_ci 359596a2c1Sopenharmony_cinamespace OHOS { 369596a2c1Sopenharmony_cinamespace Global { 379596a2c1Sopenharmony_cinamespace I18n { 389596a2c1Sopenharmony_ciclass I18nTest : public testing::Test { 399596a2c1Sopenharmony_cipublic: 409596a2c1Sopenharmony_ci static void SetUpTestCase(void); 419596a2c1Sopenharmony_ci static void TearDownTestCase(void); 429596a2c1Sopenharmony_ci void SetUp(); 439596a2c1Sopenharmony_ci void TearDown(); 449596a2c1Sopenharmony_ci}; 459596a2c1Sopenharmony_ci 469596a2c1Sopenharmony_civoid I18nTest::SetUpTestCase(void) 479596a2c1Sopenharmony_ci{} 489596a2c1Sopenharmony_ci 499596a2c1Sopenharmony_civoid I18nTest::TearDownTestCase(void) 509596a2c1Sopenharmony_ci{} 519596a2c1Sopenharmony_ci 529596a2c1Sopenharmony_civoid I18nTest::SetUp(void) 539596a2c1Sopenharmony_ci{} 549596a2c1Sopenharmony_ci 559596a2c1Sopenharmony_civoid I18nTest::TearDown(void) 569596a2c1Sopenharmony_ci{} 579596a2c1Sopenharmony_ci 589596a2c1Sopenharmony_ci/** 599596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest001 609596a2c1Sopenharmony_ci * @tc.desc: Test I18n PreferredLanguage GetPreferredLocale 619596a2c1Sopenharmony_ci * @tc.type: FUNC 629596a2c1Sopenharmony_ci */ 639596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest001, TestSize.Level1) 649596a2c1Sopenharmony_ci{ 659596a2c1Sopenharmony_ci string preferredLocale = PreferredLanguage::GetPreferredLocale(); 669596a2c1Sopenharmony_ci EXPECT_TRUE(preferredLocale.size() > 0); 679596a2c1Sopenharmony_ci string systemLocale = "zh-Hans-CN"; 689596a2c1Sopenharmony_ci I18nErrorCode status = LocaleConfig::SetSystemLocale(systemLocale); 699596a2c1Sopenharmony_ci EXPECT_EQ(status, I18nErrorCode::SUCCESS); 709596a2c1Sopenharmony_ci status = PreferredLanguage::AddPreferredLanguage("en-US", 0); 719596a2c1Sopenharmony_ci EXPECT_EQ(status, I18nErrorCode::SUCCESS); 729596a2c1Sopenharmony_ci preferredLocale = PreferredLanguage::GetPreferredLocale(); 739596a2c1Sopenharmony_ci EXPECT_EQ(preferredLocale, "en-CN"); 749596a2c1Sopenharmony_ci PreferredLanguage::RemovePreferredLanguage(0); 759596a2c1Sopenharmony_ci#ifdef SUPPORT_APP_PREFERRED_LANGUAGE 769596a2c1Sopenharmony_ci I18nErrorCode errCode = I18nErrorCode::SUCCESS; 779596a2c1Sopenharmony_ci PreferredLanguage::SetAppPreferredLanguage("en-US", errCode); 789596a2c1Sopenharmony_ci EXPECT_EQ(errCode, I18nErrorCode::SUCCESS); 799596a2c1Sopenharmony_ci std::string appPreferLanguage = PreferredLanguage::GetAppPreferredLanguage(); 809596a2c1Sopenharmony_ci EXPECT_EQ(appPreferLanguage, "en-US"); 819596a2c1Sopenharmony_ci#endif 829596a2c1Sopenharmony_ci} 839596a2c1Sopenharmony_ci 849596a2c1Sopenharmony_ci/** 859596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest002 869596a2c1Sopenharmony_ci * @tc.desc: Test I18n Normalizer 879596a2c1Sopenharmony_ci * @tc.type: FUNC 889596a2c1Sopenharmony_ci */ 899596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest002, TestSize.Level1) 909596a2c1Sopenharmony_ci{ 919596a2c1Sopenharmony_ci I18nErrorCode errorCode = I18nErrorCode::SUCCESS; 929596a2c1Sopenharmony_ci I18nNormalizer normalizer(I18nNormalizerMode::NFD, errorCode); 939596a2c1Sopenharmony_ci EXPECT_EQ(errorCode, I18nErrorCode::SUCCESS); 949596a2c1Sopenharmony_ci 959596a2c1Sopenharmony_ci string text = "\uFB01"; // \uFB01 is fi 969596a2c1Sopenharmony_ci string normalizedText = normalizer.Normalize(text.c_str(), text.length(), errorCode); 979596a2c1Sopenharmony_ci EXPECT_EQ(errorCode, I18nErrorCode::SUCCESS); 989596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText.length(), 3); // 3 is the NFD normalized length of fi. 999596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText, "\uFB01"); 1009596a2c1Sopenharmony_ci 1019596a2c1Sopenharmony_ci text = "\u0032\u2075"; 1029596a2c1Sopenharmony_ci normalizedText = normalizer.Normalize(text.c_str(), text.length(), errorCode); 1039596a2c1Sopenharmony_ci EXPECT_EQ(errorCode, I18nErrorCode::SUCCESS); 1049596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText.length(), 4); // 4 is the expected normalized text length. 1059596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText, "\u0032\u2075"); 1069596a2c1Sopenharmony_ci 1079596a2c1Sopenharmony_ci text = "\u1E9B\u0323"; 1089596a2c1Sopenharmony_ci normalizedText = normalizer.Normalize(text.c_str(), text.length(), errorCode); 1099596a2c1Sopenharmony_ci EXPECT_EQ(errorCode, I18nErrorCode::SUCCESS); 1109596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText.length(), 6); // 6 is the expected normalized text length. 1119596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText, "\u017F\u0323\u0307"); 1129596a2c1Sopenharmony_ci std::string result = normalizer.Normalize(nullptr, 0, errorCode); 1139596a2c1Sopenharmony_ci EXPECT_EQ(result, ""); 1149596a2c1Sopenharmony_ci} 1159596a2c1Sopenharmony_ci 1169596a2c1Sopenharmony_ci/** 1179596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest003 1189596a2c1Sopenharmony_ci * @tc.desc: Test I18n Normalizer 1199596a2c1Sopenharmony_ci * @tc.type: FUNC 1209596a2c1Sopenharmony_ci */ 1219596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest003, TestSize.Level1) 1229596a2c1Sopenharmony_ci{ 1239596a2c1Sopenharmony_ci I18nErrorCode errorCode = I18nErrorCode::SUCCESS; 1249596a2c1Sopenharmony_ci I18nNormalizer normalizer(I18nNormalizerMode::NFC, errorCode); 1259596a2c1Sopenharmony_ci EXPECT_EQ(errorCode, I18nErrorCode::SUCCESS); 1269596a2c1Sopenharmony_ci 1279596a2c1Sopenharmony_ci string text = "\uFB01"; // \uFB01 is fi 1289596a2c1Sopenharmony_ci string normalizedText = normalizer.Normalize(text.c_str(), text.length(), errorCode); 1299596a2c1Sopenharmony_ci EXPECT_EQ(errorCode, I18nErrorCode::SUCCESS); 1309596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText.length(), 3); // 3 is the NFC normalized length of fi. 1319596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText, "\uFB01"); 1329596a2c1Sopenharmony_ci 1339596a2c1Sopenharmony_ci text = "\u0032\u2075"; 1349596a2c1Sopenharmony_ci normalizedText = normalizer.Normalize(text.c_str(), text.length(), errorCode); 1359596a2c1Sopenharmony_ci EXPECT_EQ(errorCode, I18nErrorCode::SUCCESS); 1369596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText.length(), 4); // 4 is the expected normalized text length. 1379596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText, "\u0032\u2075"); 1389596a2c1Sopenharmony_ci 1399596a2c1Sopenharmony_ci text = "\u1E9B\u0323"; 1409596a2c1Sopenharmony_ci normalizedText = normalizer.Normalize(text.c_str(), text.length(), errorCode); 1419596a2c1Sopenharmony_ci EXPECT_EQ(errorCode, I18nErrorCode::SUCCESS); 1429596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText.length(), 5); // 5 is the expected normalized text length. 1439596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText, "\u1E9B\u0323"); 1449596a2c1Sopenharmony_ci} 1459596a2c1Sopenharmony_ci 1469596a2c1Sopenharmony_ci/** 1479596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest004 1489596a2c1Sopenharmony_ci * @tc.desc: Test I18n Normalizer 1499596a2c1Sopenharmony_ci * @tc.type: FUNC 1509596a2c1Sopenharmony_ci */ 1519596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest004, TestSize.Level1) 1529596a2c1Sopenharmony_ci{ 1539596a2c1Sopenharmony_ci I18nErrorCode errorCode = I18nErrorCode::SUCCESS; 1549596a2c1Sopenharmony_ci I18nNormalizer normalizer(I18nNormalizerMode::NFKD, errorCode); 1559596a2c1Sopenharmony_ci EXPECT_EQ(errorCode, I18nErrorCode::SUCCESS); 1569596a2c1Sopenharmony_ci 1579596a2c1Sopenharmony_ci string text = "\uFB01"; // \uFB01 is fi 1589596a2c1Sopenharmony_ci string normalizedText = normalizer.Normalize(text.c_str(), text.length(), errorCode); 1599596a2c1Sopenharmony_ci EXPECT_EQ(errorCode, I18nErrorCode::SUCCESS); 1609596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText.length(), 2); // 2 is the NFKD normalized length of fi. 1619596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText, "\u0066\u0069"); 1629596a2c1Sopenharmony_ci 1639596a2c1Sopenharmony_ci text = "\u0032\u2075"; 1649596a2c1Sopenharmony_ci normalizedText = normalizer.Normalize(text.c_str(), text.length(), errorCode); 1659596a2c1Sopenharmony_ci EXPECT_EQ(errorCode, I18nErrorCode::SUCCESS); 1669596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText.length(), 2); // 2 is the expected normalized text length. 1679596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText, "\u0032\u0035"); 1689596a2c1Sopenharmony_ci 1699596a2c1Sopenharmony_ci text = "\u1E9B\u0323"; 1709596a2c1Sopenharmony_ci normalizedText = normalizer.Normalize(text.c_str(), text.length(), errorCode); 1719596a2c1Sopenharmony_ci EXPECT_EQ(errorCode, I18nErrorCode::SUCCESS); 1729596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText.length(), 5); // 5 is the expected normalized text length. 1739596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText, "\u0073\u0323\u0307"); 1749596a2c1Sopenharmony_ci} 1759596a2c1Sopenharmony_ci 1769596a2c1Sopenharmony_ci/** 1779596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest005 1789596a2c1Sopenharmony_ci * @tc.desc: Test I18n Normalizer 1799596a2c1Sopenharmony_ci * @tc.type: FUNC 1809596a2c1Sopenharmony_ci */ 1819596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest005, TestSize.Level1) 1829596a2c1Sopenharmony_ci{ 1839596a2c1Sopenharmony_ci I18nErrorCode errorCode = I18nErrorCode::SUCCESS; 1849596a2c1Sopenharmony_ci I18nNormalizer normalizer(I18nNormalizerMode::NFKC, errorCode); 1859596a2c1Sopenharmony_ci EXPECT_EQ(errorCode, I18nErrorCode::SUCCESS); 1869596a2c1Sopenharmony_ci 1879596a2c1Sopenharmony_ci string text = "\uFB01"; // \uFB01 is fi 1889596a2c1Sopenharmony_ci string normalizedText = normalizer.Normalize(text.c_str(), text.length(), errorCode); 1899596a2c1Sopenharmony_ci EXPECT_EQ(errorCode, I18nErrorCode::SUCCESS); 1909596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText.length(), 2); // 2 is the NFKC normalized length of fi. 1919596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText, "\u0066\u0069"); 1929596a2c1Sopenharmony_ci 1939596a2c1Sopenharmony_ci text = "\u0032\u2075"; 1949596a2c1Sopenharmony_ci normalizedText = normalizer.Normalize(text.c_str(), text.length(), errorCode); 1959596a2c1Sopenharmony_ci EXPECT_EQ(errorCode, I18nErrorCode::SUCCESS); 1969596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText.length(), 2); // 2 is the expected normalized text length. 1979596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText, "\u0032\u0035"); 1989596a2c1Sopenharmony_ci 1999596a2c1Sopenharmony_ci text = "\u1E9B\u0323"; 2009596a2c1Sopenharmony_ci normalizedText = normalizer.Normalize(text.c_str(), text.length(), errorCode); 2019596a2c1Sopenharmony_ci EXPECT_EQ(errorCode, I18nErrorCode::SUCCESS); 2029596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText.length(), 3); // 3 is the expected normalized text length. 2039596a2c1Sopenharmony_ci EXPECT_EQ(normalizedText, "\u1E69"); 2049596a2c1Sopenharmony_ci} 2059596a2c1Sopenharmony_ci 2069596a2c1Sopenharmony_ci/** 2079596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest006 2089596a2c1Sopenharmony_ci * @tc.desc: Test I18n I18nCalendar 2099596a2c1Sopenharmony_ci * @tc.type: FUNC 2109596a2c1Sopenharmony_ci */ 2119596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest006, TestSize.Level1) 2129596a2c1Sopenharmony_ci{ 2139596a2c1Sopenharmony_ci I18nCalendar buddhistCalendar("zh-Hans", CalendarType::BUDDHIST); 2149596a2c1Sopenharmony_ci buddhistCalendar.Set(UCalendarDateFields::UCAL_YEAR, 2023); 2159596a2c1Sopenharmony_ci int32_t year = buddhistCalendar.Get(UCalendarDateFields::UCAL_YEAR); 2169596a2c1Sopenharmony_ci EXPECT_EQ(year, 2023); 2179596a2c1Sopenharmony_ci I18nCalendar chineseCalendar("zh-Hans", CalendarType::CHINESE); 2189596a2c1Sopenharmony_ci chineseCalendar.SetMinimalDaysInFirstWeek(3); 2199596a2c1Sopenharmony_ci int32_t minimalDaysInFirstWeek = chineseCalendar.GetMinimalDaysInFirstWeek(); 2209596a2c1Sopenharmony_ci EXPECT_EQ(minimalDaysInFirstWeek, 3); 2219596a2c1Sopenharmony_ci I18nCalendar copticCalendar("zh-Hans", CalendarType::COPTIC); 2229596a2c1Sopenharmony_ci copticCalendar.SetFirstDayOfWeek(2); 2239596a2c1Sopenharmony_ci int32_t firstDayOfWeek = copticCalendar.GetFirstDayOfWeek(); 2249596a2c1Sopenharmony_ci EXPECT_EQ(firstDayOfWeek, 2); 2259596a2c1Sopenharmony_ci I18nCalendar ethiopicCalendar("zh-Hans", CalendarType::ETHIOPIC); 2269596a2c1Sopenharmony_ci int64_t date = 1687244448234; 2279596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 2289596a2c1Sopenharmony_ci bool isWeekend = ethiopicCalendar.IsWeekend(date, status); 2299596a2c1Sopenharmony_ci EXPECT_EQ(isWeekend, false); 2309596a2c1Sopenharmony_ci I18nCalendar hebrewCalendar("zh-Hans", CalendarType::HEBREW); 2319596a2c1Sopenharmony_ci std::string displayLocaleTag = "en-US"; 2329596a2c1Sopenharmony_ci std::string displayName = hebrewCalendar.GetDisplayName(displayLocaleTag); 2339596a2c1Sopenharmony_ci EXPECT_EQ(displayName, "Hebrew Calendar"); 2349596a2c1Sopenharmony_ci I18nCalendar gregoryCalendar("zh-Hans", CalendarType::GREGORY); 2359596a2c1Sopenharmony_ci gregoryCalendar.Set(UCalendarDateFields::UCAL_MONTH, 2); 2369596a2c1Sopenharmony_ci int32_t month = gregoryCalendar.Get(UCalendarDateFields::UCAL_MONTH); 2379596a2c1Sopenharmony_ci EXPECT_EQ(month, 2); 2389596a2c1Sopenharmony_ci I18nCalendar indianCalendar("zh-Hans", CalendarType::INDIAN); 2399596a2c1Sopenharmony_ci indianCalendar.Set(UCalendarDateFields::UCAL_WEEK_OF_YEAR, 10); 2409596a2c1Sopenharmony_ci int32_t weekOfYear = indianCalendar.Get(UCalendarDateFields::UCAL_WEEK_OF_YEAR); 2419596a2c1Sopenharmony_ci EXPECT_EQ(weekOfYear, 10); 2429596a2c1Sopenharmony_ci I18nCalendar islamicCivilCalendar("zh-Hans", CalendarType::ISLAMIC_CIVIL); 2439596a2c1Sopenharmony_ci islamicCivilCalendar.Set(UCalendarDateFields::UCAL_WEEK_OF_MONTH, 2); 2449596a2c1Sopenharmony_ci int32_t weekOfMonth = islamicCivilCalendar.Get(UCalendarDateFields::UCAL_WEEK_OF_MONTH); 2459596a2c1Sopenharmony_ci EXPECT_EQ(weekOfMonth, 2); 2469596a2c1Sopenharmony_ci I18nCalendar islamicTblaCalendar("zh-Hans", CalendarType::ISLAMIC_TBLA); 2479596a2c1Sopenharmony_ci islamicTblaCalendar.Set(UCalendarDateFields::UCAL_DATE, 3); 2489596a2c1Sopenharmony_ci int32_t dateValue = islamicTblaCalendar.Get(UCalendarDateFields::UCAL_DATE); 2499596a2c1Sopenharmony_ci EXPECT_EQ(dateValue, 3); 2509596a2c1Sopenharmony_ci I18nCalendar islamicUmalquraCalendar("zh-Hans", CalendarType::ISLAMIC_UMALQURA); 2519596a2c1Sopenharmony_ci islamicUmalquraCalendar.Set(UCalendarDateFields::UCAL_DAY_OF_YEAR, 123); 2529596a2c1Sopenharmony_ci int32_t dayOfYear = islamicUmalquraCalendar.Get(UCalendarDateFields::UCAL_DAY_OF_YEAR); 2539596a2c1Sopenharmony_ci EXPECT_EQ(dayOfYear, 123); 2549596a2c1Sopenharmony_ci I18nCalendar japaneseCalendar("zh-Hans", CalendarType::JAPANESE); 2559596a2c1Sopenharmony_ci japaneseCalendar.Set(UCalendarDateFields::UCAL_DAY_OF_WEEK, 3); 2569596a2c1Sopenharmony_ci int32_t dayOfWeek = japaneseCalendar.Get(UCalendarDateFields::UCAL_DAY_OF_WEEK); 2579596a2c1Sopenharmony_ci EXPECT_EQ(dayOfWeek, 3); 2589596a2c1Sopenharmony_ci} 2599596a2c1Sopenharmony_ci 2609596a2c1Sopenharmony_ci/** 2619596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest007 2629596a2c1Sopenharmony_ci * @tc.desc: Test I18n I18nCalendar 2639596a2c1Sopenharmony_ci * @tc.type: FUNC 2649596a2c1Sopenharmony_ci */ 2659596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest007, TestSize.Level1) 2669596a2c1Sopenharmony_ci{ 2679596a2c1Sopenharmony_ci I18nCalendar persianTblaCalendar("zh-Hans", CalendarType::PERSIAN); 2689596a2c1Sopenharmony_ci persianTblaCalendar.Set(UCalendarDateFields::UCAL_DAY_OF_WEEK_IN_MONTH, 1); 2699596a2c1Sopenharmony_ci int32_t dayOfWeekInMonth = persianTblaCalendar.Get(UCalendarDateFields::UCAL_DAY_OF_WEEK_IN_MONTH); 2709596a2c1Sopenharmony_ci EXPECT_EQ(dayOfWeekInMonth, 1); 2719596a2c1Sopenharmony_ci I18nCalendar defaultCalendar("zh-Hans", CalendarType::UNDEFINED); 2729596a2c1Sopenharmony_ci defaultCalendar.Set(UCalendarDateFields::UCAL_HOUR, 12); 2739596a2c1Sopenharmony_ci int32_t hour = defaultCalendar.Get(UCalendarDateFields::UCAL_HOUR); 2749596a2c1Sopenharmony_ci EXPECT_EQ(hour, 0); 2759596a2c1Sopenharmony_ci defaultCalendar.Set(UCalendarDateFields::UCAL_YEAR, 100); 2769596a2c1Sopenharmony_ci defaultCalendar.Add(UCalendarDateFields::UCAL_YEAR, 100); 2779596a2c1Sopenharmony_ci EXPECT_EQ(defaultCalendar.Get(UCalendarDateFields::UCAL_YEAR), 200); 2789596a2c1Sopenharmony_ci defaultCalendar.Set(UCalendarDateFields::UCAL_MONTH, 10); 2799596a2c1Sopenharmony_ci defaultCalendar.Add(UCalendarDateFields::UCAL_MONTH, 2); 2809596a2c1Sopenharmony_ci EXPECT_EQ(defaultCalendar.Get(UCalendarDateFields::UCAL_MONTH), 0); 2819596a2c1Sopenharmony_ci defaultCalendar.Set(UCalendarDateFields::UCAL_DATE, 20); 2829596a2c1Sopenharmony_ci defaultCalendar.Add(UCalendarDateFields::UCAL_DATE, 15); 2839596a2c1Sopenharmony_ci EXPECT_EQ(defaultCalendar.Get(UCalendarDateFields::UCAL_DATE), 4); 2849596a2c1Sopenharmony_ci defaultCalendar.Set(UCalendarDateFields::UCAL_HOUR, 10); 2859596a2c1Sopenharmony_ci defaultCalendar.Add(UCalendarDateFields::UCAL_HOUR, 11); 2869596a2c1Sopenharmony_ci EXPECT_EQ(defaultCalendar.Get(UCalendarDateFields::UCAL_HOUR), 9); 2879596a2c1Sopenharmony_ci defaultCalendar.Set(UCalendarDateFields::UCAL_MINUTE, 31); 2889596a2c1Sopenharmony_ci defaultCalendar.Add(UCalendarDateFields::UCAL_MINUTE, 31); 2899596a2c1Sopenharmony_ci EXPECT_EQ(defaultCalendar.Get(UCalendarDateFields::UCAL_MINUTE), 2); 2909596a2c1Sopenharmony_ci defaultCalendar.Set(UCalendarDateFields::UCAL_SECOND, 21); 2919596a2c1Sopenharmony_ci defaultCalendar.Add(UCalendarDateFields::UCAL_SECOND, 51); 2929596a2c1Sopenharmony_ci EXPECT_EQ(defaultCalendar.Get(UCalendarDateFields::UCAL_SECOND), 12); 2939596a2c1Sopenharmony_ci defaultCalendar.Set(UCalendarDateFields::UCAL_MILLISECOND, 1000); 2949596a2c1Sopenharmony_ci defaultCalendar.Add(UCalendarDateFields::UCAL_MILLISECOND, 165); 2959596a2c1Sopenharmony_ci EXPECT_EQ(defaultCalendar.Get(UCalendarDateFields::UCAL_MILLISECOND), 165); 2969596a2c1Sopenharmony_ci defaultCalendar.Set(2023, 8, 2); 2979596a2c1Sopenharmony_ci UDate millis = defaultCalendar.GetTimeInMillis(); 2989596a2c1Sopenharmony_ci I18nCalendar checkCalendar("zh-Hans", CalendarType::UNDEFINED); 2999596a2c1Sopenharmony_ci checkCalendar.SetTime(millis); 3009596a2c1Sopenharmony_ci EXPECT_EQ(checkCalendar.Get(UCalendarDateFields::UCAL_YEAR), 2023); 3019596a2c1Sopenharmony_ci EXPECT_EQ(checkCalendar.Get(UCalendarDateFields::UCAL_MONTH), 8); 3029596a2c1Sopenharmony_ci EXPECT_EQ(checkCalendar.Get(UCalendarDateFields::UCAL_DATE), 2); 3039596a2c1Sopenharmony_ci defaultCalendar.SetTime(1684742124645); 3049596a2c1Sopenharmony_ci int32_t compareDays = defaultCalendar.CompareDays(1684742124650); 3059596a2c1Sopenharmony_ci EXPECT_EQ(compareDays, 1); 3069596a2c1Sopenharmony_ci} 3079596a2c1Sopenharmony_ci 3089596a2c1Sopenharmony_ci/** 3099596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest008 3109596a2c1Sopenharmony_ci * @tc.desc: Test I18n I18nBreakIterator 3119596a2c1Sopenharmony_ci * @tc.type: FUNC 3129596a2c1Sopenharmony_ci */ 3139596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest008, TestSize.Level1) 3149596a2c1Sopenharmony_ci{ 3159596a2c1Sopenharmony_ci std::string fakeLocaleTag = "FakeLocaleTag"; 3169596a2c1Sopenharmony_ci I18nBreakIterator brkIterator(fakeLocaleTag); 3179596a2c1Sopenharmony_ci int32_t res = brkIterator.Current(); 3189596a2c1Sopenharmony_ci EXPECT_EQ(res, 0); 3199596a2c1Sopenharmony_ci res = brkIterator.First(); 3209596a2c1Sopenharmony_ci EXPECT_EQ(res, 0); 3219596a2c1Sopenharmony_ci res = brkIterator.Last(); 3229596a2c1Sopenharmony_ci EXPECT_EQ(res, 0); 3239596a2c1Sopenharmony_ci res = brkIterator.Previous(); 3249596a2c1Sopenharmony_ci EXPECT_EQ(res, -1); 3259596a2c1Sopenharmony_ci int32_t offset = 1; 3269596a2c1Sopenharmony_ci res = brkIterator.Next(offset); 3279596a2c1Sopenharmony_ci EXPECT_EQ(res, -1); 3289596a2c1Sopenharmony_ci res = brkIterator.Next(); 3299596a2c1Sopenharmony_ci EXPECT_EQ(res, -1); 3309596a2c1Sopenharmony_ci res = brkIterator.Following(offset); 3319596a2c1Sopenharmony_ci EXPECT_EQ(res, -1); 3329596a2c1Sopenharmony_ci bool status = brkIterator.IsBoundary(offset); 3339596a2c1Sopenharmony_ci EXPECT_FALSE(status); 3349596a2c1Sopenharmony_ci 3359596a2c1Sopenharmony_ci std::string localeTag = "en-Latn-US"; 3369596a2c1Sopenharmony_ci I18nBreakIterator enBrkIterator(localeTag); 3379596a2c1Sopenharmony_ci std::string text = "Test I18nBreakIterator"; 3389596a2c1Sopenharmony_ci enBrkIterator.SetText(text.c_str()); 3399596a2c1Sopenharmony_ci std::string resText; 3409596a2c1Sopenharmony_ci enBrkIterator.GetText(resText); 3419596a2c1Sopenharmony_ci EXPECT_EQ(resText, text); 3429596a2c1Sopenharmony_ci res = enBrkIterator.Next(); 3439596a2c1Sopenharmony_ci EXPECT_EQ(res, 5); 3449596a2c1Sopenharmony_ci} 3459596a2c1Sopenharmony_ci 3469596a2c1Sopenharmony_ci/** 3479596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest009 3489596a2c1Sopenharmony_ci * @tc.desc: Test I18n MeasureData GetDefaultPreferredUnit 3499596a2c1Sopenharmony_ci * @tc.type: FUNC 3509596a2c1Sopenharmony_ci */ 3519596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest009, TestSize.Level1) 3529596a2c1Sopenharmony_ci{ 3539596a2c1Sopenharmony_ci std::string regionTags[] = {"GB", "US", "CN"}; 3549596a2c1Sopenharmony_ci std::string usage = "length"; 3559596a2c1Sopenharmony_ci std::vector<std::string> units; 3569596a2c1Sopenharmony_ci for (size_t i = 0; i < sizeof(regionTags) / sizeof(std::string); ++i) { 3579596a2c1Sopenharmony_ci GetDefaultPreferredUnit(regionTags[i], usage, units); 3589596a2c1Sopenharmony_ci EXPECT_EQ(units.size(), 3); 3599596a2c1Sopenharmony_ci units.clear(); 3609596a2c1Sopenharmony_ci } 3619596a2c1Sopenharmony_ci} 3629596a2c1Sopenharmony_ci 3639596a2c1Sopenharmony_ci/** 3649596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest010 3659596a2c1Sopenharmony_ci * @tc.desc: Test I18n MeasureData GetFallbackPreferredUnit 3669596a2c1Sopenharmony_ci * @tc.type: FUNC 3679596a2c1Sopenharmony_ci */ 3689596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest010, TestSize.Level1) 3699596a2c1Sopenharmony_ci{ 3709596a2c1Sopenharmony_ci std::string regionTags1[] = {"MX", "NL", "NO", "PL", "RU"}; 3719596a2c1Sopenharmony_ci std::string usage = "length-person-informal"; 3729596a2c1Sopenharmony_ci std::vector<std::string> units; 3739596a2c1Sopenharmony_ci for (size_t i = 0; i < sizeof(regionTags1) / sizeof(std::string); ++i) { 3749596a2c1Sopenharmony_ci GetFallbackPreferredUnit(regionTags1[i], usage, units); 3759596a2c1Sopenharmony_ci EXPECT_EQ(units.size(), 2); 3769596a2c1Sopenharmony_ci units.clear(); 3779596a2c1Sopenharmony_ci } 3789596a2c1Sopenharmony_ci 3799596a2c1Sopenharmony_ci std::string regionTag2 = "SE"; 3809596a2c1Sopenharmony_ci usage = "length-person"; 3819596a2c1Sopenharmony_ci GetFallbackPreferredUnit(regionTag2, usage, units); 3829596a2c1Sopenharmony_ci EXPECT_EQ(units.size(), 2); 3839596a2c1Sopenharmony_ci units.clear(); 3849596a2c1Sopenharmony_ci 3859596a2c1Sopenharmony_ci std::string regionTags3[] = {"US", "CN"}; 3869596a2c1Sopenharmony_ci for (size_t i = 0; i < sizeof(regionTags3) / sizeof(std::string); ++i) { 3879596a2c1Sopenharmony_ci GetFallbackPreferredUnit(regionTags3[i], usage, units); 3889596a2c1Sopenharmony_ci EXPECT_EQ(units.size(), 1); 3899596a2c1Sopenharmony_ci units.clear(); 3909596a2c1Sopenharmony_ci } 3919596a2c1Sopenharmony_ci} 3929596a2c1Sopenharmony_ci 3939596a2c1Sopenharmony_ci/** 3949596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest011 3959596a2c1Sopenharmony_ci * @tc.desc: Test I18n MeasureData GetRestPreferredUnit 3969596a2c1Sopenharmony_ci * @tc.type: FUNC 3979596a2c1Sopenharmony_ci */ 3989596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest011, TestSize.Level1) 3999596a2c1Sopenharmony_ci{ 4009596a2c1Sopenharmony_ci std::string regionTags1[] = {"CA", "IN"}; 4019596a2c1Sopenharmony_ci std::string usage = "length-person"; 4029596a2c1Sopenharmony_ci std::vector<std::string> units; 4039596a2c1Sopenharmony_ci for (size_t i = 0; i < sizeof(regionTags1) / sizeof(std::string); ++i) { 4049596a2c1Sopenharmony_ci GetRestPreferredUnit(regionTags1[i], usage, units); 4059596a2c1Sopenharmony_ci EXPECT_EQ(units.size(), 1); 4069596a2c1Sopenharmony_ci units.clear(); 4079596a2c1Sopenharmony_ci } 4089596a2c1Sopenharmony_ci 4099596a2c1Sopenharmony_ci std::string regionTags2[] = {"CN", "DK", "PT", "DE", "GB"}; 4109596a2c1Sopenharmony_ci usage = "length-person-informal"; 4119596a2c1Sopenharmony_ci for (size_t i = 0; i < sizeof(regionTags2) / sizeof(std::string); ++i) { 4129596a2c1Sopenharmony_ci GetRestPreferredUnit(regionTags2[i], usage, units); 4139596a2c1Sopenharmony_ci EXPECT_EQ(units.size(), 2); 4149596a2c1Sopenharmony_ci units.clear(); 4159596a2c1Sopenharmony_ci } 4169596a2c1Sopenharmony_ci 4179596a2c1Sopenharmony_ci std::string regionTag3 = "KR"; 4189596a2c1Sopenharmony_ci usage = "speed-wind"; 4199596a2c1Sopenharmony_ci GetRestPreferredUnit(regionTag3, usage, units); 4209596a2c1Sopenharmony_ci EXPECT_EQ(units.size(), 1); 4219596a2c1Sopenharmony_ci units.clear(); 4229596a2c1Sopenharmony_ci 4239596a2c1Sopenharmony_ci std::string regionTag4 = "XX"; 4249596a2c1Sopenharmony_ci usage = "fake usage"; 4259596a2c1Sopenharmony_ci GetRestPreferredUnit(regionTag4, usage, units); 4269596a2c1Sopenharmony_ci EXPECT_EQ(units.size(), 0); 4279596a2c1Sopenharmony_ci} 4289596a2c1Sopenharmony_ci 4299596a2c1Sopenharmony_ci/** 4309596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest012 4319596a2c1Sopenharmony_ci * @tc.desc: Test I18n MeasureData GetPreferredUnit 4329596a2c1Sopenharmony_ci * @tc.type: FUNC 4339596a2c1Sopenharmony_ci */ 4349596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest012, TestSize.Level1) 4359596a2c1Sopenharmony_ci{ 4369596a2c1Sopenharmony_ci std::string regionTags1[] = { 4379596a2c1Sopenharmony_ci "AT", "BE", "DZ", "EG", "ES", "FR", "HK", "ID", "IL", "IT", "JO", "MY", "SA", "TR", "VN" 4389596a2c1Sopenharmony_ci }; 4399596a2c1Sopenharmony_ci std::string usage = "length-person"; 4409596a2c1Sopenharmony_ci std::vector<std::string> units; 4419596a2c1Sopenharmony_ci for (size_t i = 0; i < sizeof(regionTags1) / sizeof(std::string); ++i) { 4429596a2c1Sopenharmony_ci GetPreferredUnit(regionTags1[i], usage, units); 4439596a2c1Sopenharmony_ci EXPECT_EQ(units.size(), 2); 4449596a2c1Sopenharmony_ci units.clear(); 4459596a2c1Sopenharmony_ci } 4469596a2c1Sopenharmony_ci 4479596a2c1Sopenharmony_ci std::string regionTag2 = "BR"; 4489596a2c1Sopenharmony_ci usage = "length-person-informal"; 4499596a2c1Sopenharmony_ci GetPreferredUnit(regionTag2, usage, units); 4509596a2c1Sopenharmony_ci EXPECT_EQ(units.size(), 2); 4519596a2c1Sopenharmony_ci units.clear(); 4529596a2c1Sopenharmony_ci 4539596a2c1Sopenharmony_ci std::string regionTags3[] = {"BS", "BZ", "PR", "PW"}; 4549596a2c1Sopenharmony_ci usage = "temperature-weather"; 4559596a2c1Sopenharmony_ci for (size_t i = 0; i < sizeof(regionTags3) / sizeof(std::string); i++) { 4569596a2c1Sopenharmony_ci GetPreferredUnit(regionTags3[i], usage, units); 4579596a2c1Sopenharmony_ci EXPECT_EQ(units.size(), 1); 4589596a2c1Sopenharmony_ci units.clear(); 4599596a2c1Sopenharmony_ci } 4609596a2c1Sopenharmony_ci 4619596a2c1Sopenharmony_ci std::string regionTag4 = "XX"; 4629596a2c1Sopenharmony_ci usage = "fake usage"; 4639596a2c1Sopenharmony_ci GetPreferredUnit(regionTag4, usage, units); 4649596a2c1Sopenharmony_ci EXPECT_EQ(units.size(), 0); 4659596a2c1Sopenharmony_ci} 4669596a2c1Sopenharmony_ci 4679596a2c1Sopenharmony_ci/** 4689596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest013 4699596a2c1Sopenharmony_ci * @tc.desc: Test I18n MeasureData 4709596a2c1Sopenharmony_ci * @tc.type: FUNC 4719596a2c1Sopenharmony_ci */ 4729596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest013, TestSize.Level1) 4739596a2c1Sopenharmony_ci{ 4749596a2c1Sopenharmony_ci double value = 10.0; 4759596a2c1Sopenharmony_ci std::string fromUnit = "acre"; 4769596a2c1Sopenharmony_ci std::string fromMeasSys = "US"; 4779596a2c1Sopenharmony_ci std::string toUnit = "foot"; 4789596a2c1Sopenharmony_ci std::string toMeasSys = "US"; 4799596a2c1Sopenharmony_ci int status = Convert(value, fromUnit, fromMeasSys, toUnit, toMeasSys); 4809596a2c1Sopenharmony_ci EXPECT_EQ(status, 0); 4819596a2c1Sopenharmony_ci 4829596a2c1Sopenharmony_ci std::string fakeUnit = "fake unit"; 4839596a2c1Sopenharmony_ci status = Convert(value, fakeUnit, fromMeasSys, toUnit, toMeasSys); 4849596a2c1Sopenharmony_ci EXPECT_EQ(status, 0); 4859596a2c1Sopenharmony_ci status = Convert(value, fromUnit, fromMeasSys, fakeUnit, toMeasSys); 4869596a2c1Sopenharmony_ci EXPECT_EQ(status, 0); 4879596a2c1Sopenharmony_ci 4889596a2c1Sopenharmony_ci toUnit = "hectare"; 4899596a2c1Sopenharmony_ci status = Convert(value, fromUnit, fromMeasSys, toUnit, toMeasSys); 4909596a2c1Sopenharmony_ci EXPECT_EQ(status, 1); 4919596a2c1Sopenharmony_ci EXPECT_TRUE(fabs(value - 4.0468564) < 1e-6); 4929596a2c1Sopenharmony_ci 4939596a2c1Sopenharmony_ci std::string unit = "tablespoon"; 4949596a2c1Sopenharmony_ci std::string measSys = "UK"; 4959596a2c1Sopenharmony_ci std::vector<double> factors = {0.0, 0.0}; 4969596a2c1Sopenharmony_ci ComputeFactorValue(unit, measSys, factors); 4979596a2c1Sopenharmony_ci EXPECT_EQ(factors.size(), 2); 4989596a2c1Sopenharmony_ci EXPECT_TRUE(fabs(factors[0] - 1.77582e-05) < 1e-6); 4999596a2c1Sopenharmony_ci unit = "acre"; 5009596a2c1Sopenharmony_ci factors = {0.0, 0.0}; 5019596a2c1Sopenharmony_ci ComputeFactorValue(unit, measSys, factors); 5029596a2c1Sopenharmony_ci EXPECT_EQ(factors.size(), 2); 5039596a2c1Sopenharmony_ci EXPECT_TRUE(fabs(factors[0] - 4046.856422) < 1e-6); 5049596a2c1Sopenharmony_ci 5059596a2c1Sopenharmony_ci double res = ComputeSIPrefixValue(unit); 5069596a2c1Sopenharmony_ci EXPECT_TRUE(fabs(res - 0) < 1e-6); 5079596a2c1Sopenharmony_ci unit = "deci"; 5089596a2c1Sopenharmony_ci res = ComputeSIPrefixValue(unit); 5099596a2c1Sopenharmony_ci EXPECT_TRUE(fabs(res - 0.1) < 1e-6); 5109596a2c1Sopenharmony_ci 5119596a2c1Sopenharmony_ci unit = "square-acre"; 5129596a2c1Sopenharmony_ci factors = {0.0, 0.0}; 5139596a2c1Sopenharmony_ci ComputePowerValue(unit, measSys, factors); 5149596a2c1Sopenharmony_ci EXPECT_EQ(factors.size(), 2); 5159596a2c1Sopenharmony_ci 5169596a2c1Sopenharmony_ci unit = "fake-per-hour"; 5179596a2c1Sopenharmony_ci factors = {0.0, 0.0}; 5189596a2c1Sopenharmony_ci status = ComputeValue(unit, measSys, factors); 5199596a2c1Sopenharmony_ci EXPECT_EQ(status, 0); 5209596a2c1Sopenharmony_ci unit = "kilometer-per-fake"; 5219596a2c1Sopenharmony_ci factors = {0.0, 0.0}; 5229596a2c1Sopenharmony_ci status = ComputeValue(unit, measSys, factors); 5239596a2c1Sopenharmony_ci EXPECT_EQ(status, 0); 5249596a2c1Sopenharmony_ci} 5259596a2c1Sopenharmony_ci 5269596a2c1Sopenharmony_ci/** 5279596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest014 5289596a2c1Sopenharmony_ci * @tc.desc: Test I18n PhoneNumberFormat 5299596a2c1Sopenharmony_ci * @tc.type: FUNC 5309596a2c1Sopenharmony_ci */ 5319596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest014, TestSize.Level1) 5329596a2c1Sopenharmony_ci{ 5339596a2c1Sopenharmony_ci std::string countryTag = ""; 5349596a2c1Sopenharmony_ci std::map<std::string, std::string> options = { 5359596a2c1Sopenharmony_ci {"type", "INTERNATIONAL"} 5369596a2c1Sopenharmony_ci }; 5379596a2c1Sopenharmony_ci std::unique_ptr<PhoneNumberFormat> formatter = PhoneNumberFormat::CreateInstance(countryTag, options); 5389596a2c1Sopenharmony_ci std::string fakePhoneNumber = "93827393872723482"; 5399596a2c1Sopenharmony_ci bool isValid = formatter->isValidPhoneNumber(fakePhoneNumber); 5409596a2c1Sopenharmony_ci EXPECT_FALSE(isValid); 5419596a2c1Sopenharmony_ci std::string formattedPhoneNumber = formatter->format(fakePhoneNumber); 5429596a2c1Sopenharmony_ci EXPECT_EQ(formattedPhoneNumber, ""); 5439596a2c1Sopenharmony_ci std::unique_ptr<PhoneNumberFormat> formatter1 = std::make_unique<PhoneNumberFormatMock>("XK", options); 5449596a2c1Sopenharmony_ci std::string blocklRegion = formatter1->getLocationName("0038312345678", "zh-CN"); 5459596a2c1Sopenharmony_ci EXPECT_EQ(blocklRegion, ""); 5469596a2c1Sopenharmony_ci std::unique_ptr<PhoneNumberFormat> formatter2 = std::make_unique<PhoneNumberFormatMock>("CN", options); 5479596a2c1Sopenharmony_ci std::string blocklCity = formatter2->getLocationName("13731630016", "zh-CN"); 5489596a2c1Sopenharmony_ci EXPECT_EQ(blocklCity, ""); 5499596a2c1Sopenharmony_ci std::string replaceCity = formatter2->getLocationName("13731930016", "zh-CN"); 5509596a2c1Sopenharmony_ci EXPECT_EQ(replaceCity, "安徽省宣城市2"); 5519596a2c1Sopenharmony_ci std::string number192 = "19200707087"; 5529596a2c1Sopenharmony_ci std::string formattedNumber = formatter2->format(number192); 5539596a2c1Sopenharmony_ci EXPECT_EQ(formattedNumber, "+86 192 0070 7087"); 5549596a2c1Sopenharmony_ci} 5559596a2c1Sopenharmony_ci 5569596a2c1Sopenharmony_ci/** 5579596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest015 5589596a2c1Sopenharmony_ci * @tc.desc: Test I18n I18nTimeZone 5599596a2c1Sopenharmony_ci * @tc.type: FUNC 5609596a2c1Sopenharmony_ci */ 5619596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest015, TestSize.Level1) 5629596a2c1Sopenharmony_ci{ 5639596a2c1Sopenharmony_ci std::string id = "Asia/Shanghai"; 5649596a2c1Sopenharmony_ci bool isZoneID = true; 5659596a2c1Sopenharmony_ci I18nTimeZone timezone1(id, isZoneID); 5669596a2c1Sopenharmony_ci std::string timezoneId = timezone1.GetID(); 5679596a2c1Sopenharmony_ci EXPECT_EQ(timezoneId, "Asia/Shanghai"); 5689596a2c1Sopenharmony_ci 5699596a2c1Sopenharmony_ci id = "Shanghai"; 5709596a2c1Sopenharmony_ci isZoneID = false; 5719596a2c1Sopenharmony_ci I18nTimeZone timezone2(id, isZoneID); 5729596a2c1Sopenharmony_ci timezoneId = timezone2.GetID(); 5739596a2c1Sopenharmony_ci EXPECT_EQ(timezoneId, "Asia/Shanghai"); 5749596a2c1Sopenharmony_ci 5759596a2c1Sopenharmony_ci id = "Auckland"; 5769596a2c1Sopenharmony_ci I18nTimeZone timezone3(id, isZoneID); 5779596a2c1Sopenharmony_ci timezoneId = timezone3.GetID(); 5789596a2c1Sopenharmony_ci EXPECT_EQ(timezoneId, "Pacific/Auckland"); 5799596a2c1Sopenharmony_ci std::string localeTag = "en-Latn-US"; 5809596a2c1Sopenharmony_ci std::string displayName = timezone3.GetDisplayName(localeTag); 5819596a2c1Sopenharmony_ci EXPECT_EQ(timezoneId, "Pacific/Auckland"); 5829596a2c1Sopenharmony_ci 5839596a2c1Sopenharmony_ci std::string fakeId = "fake city id"; 5849596a2c1Sopenharmony_ci std::string cityDisplayName = I18nTimeZone::GetCityDisplayName(fakeId, localeTag); 5859596a2c1Sopenharmony_ci EXPECT_EQ(cityDisplayName, ""); 5869596a2c1Sopenharmony_ci 5879596a2c1Sopenharmony_ci cityDisplayName = I18nTimeZone::GetCityDisplayName(id, localeTag); 5889596a2c1Sopenharmony_ci EXPECT_EQ(cityDisplayName, "Auckland (New Zealand)"); 5899596a2c1Sopenharmony_ci 5909596a2c1Sopenharmony_ci std::string fakeLocale = "fake locale tag"; 5919596a2c1Sopenharmony_ci cityDisplayName = I18nTimeZone::GetCityDisplayName(id, fakeLocale); 5929596a2c1Sopenharmony_ci EXPECT_EQ(cityDisplayName, ""); 5939596a2c1Sopenharmony_ci 5949596a2c1Sopenharmony_ci id = "Pacific/Enderbury"; 5959596a2c1Sopenharmony_ci std::unique_ptr<I18nTimeZone> timezone4 = std::make_unique<I18nTimeZoneMock>(id, true); 5969596a2c1Sopenharmony_ci std::string cityName = timezone4->GetDisplayName("zh-CN", false); 5979596a2c1Sopenharmony_ci EXPECT_EQ(cityName, "菲尼克斯群岛标准时间"); 5989596a2c1Sopenharmony_ci} 5999596a2c1Sopenharmony_ci 6009596a2c1Sopenharmony_ci/** 6019596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest016 6029596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 6039596a2c1Sopenharmony_ci * @tc.type: FUNC 6049596a2c1Sopenharmony_ci */ 6059596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest016, TestSize.Level1) 6069596a2c1Sopenharmony_ci{ 6079596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 6089596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 6099596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 6109596a2c1Sopenharmony_ci std::string message = "您好,您的包裹已送至指定地点,请尽快签收:快递员:刘某某,手机:15912345678,QQ:123456789。"; 6119596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 6129596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 6139596a2c1Sopenharmony_ci EXPECT_EQ(res[0][0], 1); 6149596a2c1Sopenharmony_ci EXPECT_EQ(res[0][1], 32); 6159596a2c1Sopenharmony_ci EXPECT_EQ(res[0][2], 43); 6169596a2c1Sopenharmony_ci} 6179596a2c1Sopenharmony_ci 6189596a2c1Sopenharmony_ci/** 6199596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest017 6209596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 6219596a2c1Sopenharmony_ci * @tc.type: FUNC 6229596a2c1Sopenharmony_ci */ 6239596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest017, TestSize.Level1) 6249596a2c1Sopenharmony_ci{ 6259596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 6269596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 6279596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 6289596a2c1Sopenharmony_ci std::string message = "您好,您的包裹已送至指定地点,请尽快签收:快递员:刘某某,手机:15912345678 15512345678。"; 6299596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 6309596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 6319596a2c1Sopenharmony_ci EXPECT_EQ(res[0][0], 2); 6329596a2c1Sopenharmony_ci EXPECT_EQ(res[0][1], 32); 6339596a2c1Sopenharmony_ci EXPECT_EQ(res[0][2], 43); 6349596a2c1Sopenharmony_ci EXPECT_EQ(res[0][3], 44); 6359596a2c1Sopenharmony_ci EXPECT_EQ(res[0][4], 55); 6369596a2c1Sopenharmony_ci} 6379596a2c1Sopenharmony_ci 6389596a2c1Sopenharmony_ci/** 6399596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest018 6409596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 6419596a2c1Sopenharmony_ci * @tc.type: FUNC 6429596a2c1Sopenharmony_ci */ 6439596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest018, TestSize.Level1) 6449596a2c1Sopenharmony_ci{ 6459596a2c1Sopenharmony_ci std::string localeStr = "en-GB"; 6469596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 6479596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 6489596a2c1Sopenharmony_ci std::string message = "The stunning xxxxxx xxx in Verbier is availble for Christmas - call +44 (0)20 1234 5678."; 6499596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 6509596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 6519596a2c1Sopenharmony_ci EXPECT_EQ(res[0][0], 1); 6529596a2c1Sopenharmony_ci EXPECT_EQ(res[0][1], 68); 6539596a2c1Sopenharmony_ci EXPECT_EQ(res[0][2], 87); 6549596a2c1Sopenharmony_ci} 6559596a2c1Sopenharmony_ci 6569596a2c1Sopenharmony_ci/** 6579596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest019 6589596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 6599596a2c1Sopenharmony_ci * @tc.type: FUNC 6609596a2c1Sopenharmony_ci */ 6619596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest019, TestSize.Level1) 6629596a2c1Sopenharmony_ci{ 6639596a2c1Sopenharmony_ci std::string localeStr = "en-GB"; 6649596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 6659596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 6669596a2c1Sopenharmony_ci std::string message = "RT @missingpeople: RT 32 yo missing since 26/09/2013 from Newry, NI. Seen him? Call 116000."; 6679596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 6689596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 6699596a2c1Sopenharmony_ci EXPECT_EQ(res[0][0], 1); 6709596a2c1Sopenharmony_ci EXPECT_EQ(res[0][1], 84); 6719596a2c1Sopenharmony_ci EXPECT_EQ(res[0][2], 90); 6729596a2c1Sopenharmony_ci} 6739596a2c1Sopenharmony_ci 6749596a2c1Sopenharmony_ci/** 6759596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest020 6769596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 6779596a2c1Sopenharmony_ci * @tc.type: FUNC 6789596a2c1Sopenharmony_ci */ 6799596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest020, TestSize.Level1) 6809596a2c1Sopenharmony_ci{ 6819596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 6829596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 6839596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 6849596a2c1Sopenharmony_ci std::string message = "xxxx海滩 xxxxx xxxxxx街上的饰品店,皮革花朵戒指10000印尼盾,不到10块人民币。"; 6859596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 6869596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 6879596a2c1Sopenharmony_ci EXPECT_EQ(res[0][0], 0); 6889596a2c1Sopenharmony_ci} 6899596a2c1Sopenharmony_ci 6909596a2c1Sopenharmony_ci/** 6919596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest021 6929596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 6939596a2c1Sopenharmony_ci * @tc.type: FUNC 6949596a2c1Sopenharmony_ci */ 6959596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest021, TestSize.Level1) 6969596a2c1Sopenharmony_ci{ 6979596a2c1Sopenharmony_ci std::string localeStr = "en-GB"; 6989596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 6999596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 7009596a2c1Sopenharmony_ci std::string message = "New Job: Java Developer, Dublin, Republic of Ireland, $350000.00 - $45000 per annum."; 7019596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 7029596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 7039596a2c1Sopenharmony_ci EXPECT_EQ(res[0][0], 0); 7049596a2c1Sopenharmony_ci} 7059596a2c1Sopenharmony_ci 7069596a2c1Sopenharmony_ci/** 7079596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest022 7089596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 7099596a2c1Sopenharmony_ci * @tc.type: FUNC 7109596a2c1Sopenharmony_ci */ 7119596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest022, TestSize.Level1) 7129596a2c1Sopenharmony_ci{ 7139596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 7149596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 7159596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 7169596a2c1Sopenharmony_ci std::string message = "您好,关于您的问题,可以拨打(0511) 8812 1234咨询,如果还有其他疑问,可联系刘某某(15512345678)"; 7179596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 7189596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 7199596a2c1Sopenharmony_ci EXPECT_EQ(res[0][0], 2); 7209596a2c1Sopenharmony_ci EXPECT_EQ(res[0][1], 14); 7219596a2c1Sopenharmony_ci EXPECT_EQ(res[0][2], 30); 7229596a2c1Sopenharmony_ci EXPECT_EQ(res[0][3], 49); 7239596a2c1Sopenharmony_ci EXPECT_EQ(res[0][4], 60); 7249596a2c1Sopenharmony_ci} 7259596a2c1Sopenharmony_ci 7269596a2c1Sopenharmony_ci/** 7279596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest023 7289596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 7299596a2c1Sopenharmony_ci * @tc.type: FUNC 7309596a2c1Sopenharmony_ci */ 7319596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest023, TestSize.Level1) 7329596a2c1Sopenharmony_ci{ 7339596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 7349596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 7359596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 7369596a2c1Sopenharmony_ci std::string message = "给10086/10010发了一条短信:“我爱你”,收到了回复:尊敬的用户,我也爱您。"; 7379596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 7389596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 7399596a2c1Sopenharmony_ci EXPECT_EQ(res[0][0], 2); 7409596a2c1Sopenharmony_ci EXPECT_EQ(res[0][1], 1); 7419596a2c1Sopenharmony_ci EXPECT_EQ(res[0][2], 6); 7429596a2c1Sopenharmony_ci EXPECT_EQ(res[0][3], 7); 7439596a2c1Sopenharmony_ci EXPECT_EQ(res[0][4], 12); 7449596a2c1Sopenharmony_ci} 7459596a2c1Sopenharmony_ci 7469596a2c1Sopenharmony_ci/** 7479596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest024 7489596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 7499596a2c1Sopenharmony_ci * @tc.type: FUNC 7509596a2c1Sopenharmony_ci */ 7519596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest024, TestSize.Level1) 7529596a2c1Sopenharmony_ci{ 7539596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 7549596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 7559596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 7569596a2c1Sopenharmony_ci std::string message = "您好,您的包裹已送至指定地点,请尽快签收:快递员:刘某某,手机:159/1234/5678,QQ:123456789。"; 7579596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 7589596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 7599596a2c1Sopenharmony_ci EXPECT_EQ(res[0][0], 1); 7609596a2c1Sopenharmony_ci EXPECT_EQ(res[0][1], 32); 7619596a2c1Sopenharmony_ci EXPECT_EQ(res[0][2], 45); 7629596a2c1Sopenharmony_ci} 7639596a2c1Sopenharmony_ci 7649596a2c1Sopenharmony_ci/** 7659596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest025 7669596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 7679596a2c1Sopenharmony_ci * @tc.type: FUNC 7689596a2c1Sopenharmony_ci */ 7699596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest025, TestSize.Level1) 7709596a2c1Sopenharmony_ci{ 7719596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 7729596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 7739596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 7749596a2c1Sopenharmony_ci std::string message = "您好,您的包裹已送至指定地点,请尽快签收:快递员:刘某某,手机:15912345678/15512345678。"; 7759596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 7769596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 7779596a2c1Sopenharmony_ci EXPECT_EQ(res[0][0], 2); 7789596a2c1Sopenharmony_ci EXPECT_EQ(res[0][1], 32); 7799596a2c1Sopenharmony_ci EXPECT_EQ(res[0][2], 43); 7809596a2c1Sopenharmony_ci EXPECT_EQ(res[0][3], 44); 7819596a2c1Sopenharmony_ci EXPECT_EQ(res[0][4], 55); 7829596a2c1Sopenharmony_ci} 7839596a2c1Sopenharmony_ci 7849596a2c1Sopenharmony_ci/** 7859596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest026 7869596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 7879596a2c1Sopenharmony_ci * @tc.type: FUNC 7889596a2c1Sopenharmony_ci */ 7899596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest026, TestSize.Level1) 7909596a2c1Sopenharmony_ci{ 7919596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 7929596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 7939596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 7949596a2c1Sopenharmony_ci std::string message = "今天一起去看的那个电影太搞笑了,2333333"; 7959596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 7969596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 7979596a2c1Sopenharmony_ci EXPECT_EQ(res[0][0], 0); 7989596a2c1Sopenharmony_ci} 7999596a2c1Sopenharmony_ci 8009596a2c1Sopenharmony_ci/** 8019596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest027 8029596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 8039596a2c1Sopenharmony_ci * @tc.type: FUNC 8049596a2c1Sopenharmony_ci */ 8059596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest027, TestSize.Level1) 8069596a2c1Sopenharmony_ci{ 8079596a2c1Sopenharmony_ci std::string localeStr = "pt-PT"; 8089596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 8099596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 8109596a2c1Sopenharmony_ci std::string message = "Se você tiver alguma dúvida, ligue para 912345678 ou 1820 para consulta"; 8119596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 8129596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 8139596a2c1Sopenharmony_ci EXPECT_EQ(res[0][0], 2); 8149596a2c1Sopenharmony_ci EXPECT_EQ(res[0][1], 40); 8159596a2c1Sopenharmony_ci EXPECT_EQ(res[0][2], 49); 8169596a2c1Sopenharmony_ci EXPECT_EQ(res[0][3], 53); 8179596a2c1Sopenharmony_ci EXPECT_EQ(res[0][4], 57); 8189596a2c1Sopenharmony_ci} 8199596a2c1Sopenharmony_ci 8209596a2c1Sopenharmony_ci/** 8219596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest028 8229596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 8239596a2c1Sopenharmony_ci * @tc.type: FUNC 8249596a2c1Sopenharmony_ci */ 8259596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest028, TestSize.Level1) 8269596a2c1Sopenharmony_ci{ 8279596a2c1Sopenharmony_ci std::string localeStr = "en-GB"; 8289596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 8299596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 8309596a2c1Sopenharmony_ci std::string message = "+44 (0)20 1234 5678 is my phone number. If you need anything, please contact me."; 8319596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 8329596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 8339596a2c1Sopenharmony_ci EXPECT_EQ(res[0][0], 1); 8349596a2c1Sopenharmony_ci EXPECT_EQ(res[0][1], 0); 8359596a2c1Sopenharmony_ci EXPECT_EQ(res[0][2], 19); 8369596a2c1Sopenharmony_ci} 8379596a2c1Sopenharmony_ci 8389596a2c1Sopenharmony_ci/** 8399596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest029 8409596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 8419596a2c1Sopenharmony_ci * @tc.type: FUNC 8429596a2c1Sopenharmony_ci */ 8439596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest029, TestSize.Level1) 8449596a2c1Sopenharmony_ci{ 8459596a2c1Sopenharmony_ci std::string localeStr = "en-GB"; 8469596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 8479596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 8489596a2c1Sopenharmony_ci std::string message = "To book a room, please call (+44 (0)20 1234 5678;ext=588)"; 8499596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 8509596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 8519596a2c1Sopenharmony_ci EXPECT_EQ(res[0][0], 1); 8529596a2c1Sopenharmony_ci EXPECT_EQ(res[0][1], 29); 8539596a2c1Sopenharmony_ci EXPECT_EQ(res[0][2], 48); 8549596a2c1Sopenharmony_ci} 8559596a2c1Sopenharmony_ci 8569596a2c1Sopenharmony_ci/** 8579596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest030 8589596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 8599596a2c1Sopenharmony_ci * @tc.type: FUNC 8609596a2c1Sopenharmony_ci */ 8619596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest030, TestSize.Level1) 8629596a2c1Sopenharmony_ci{ 8639596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 8649596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 8659596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 8669596a2c1Sopenharmony_ci std::string message = "我们提供23 24两种尺寸的屏幕,如有需要,请拨打11808 15512345678。"; 8679596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 8689596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 8699596a2c1Sopenharmony_ci EXPECT_EQ(res[0][0], 1); 8709596a2c1Sopenharmony_ci EXPECT_EQ(res[0][1], 25); 8719596a2c1Sopenharmony_ci EXPECT_EQ(res[0][2], 42); 8729596a2c1Sopenharmony_ci} 8739596a2c1Sopenharmony_ci 8749596a2c1Sopenharmony_ci/** 8759596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest031 8769596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 8779596a2c1Sopenharmony_ci * @tc.type: FUNC 8789596a2c1Sopenharmony_ci */ 8799596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest031, TestSize.Level1) 8809596a2c1Sopenharmony_ci{ 8819596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 8829596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 8839596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 8849596a2c1Sopenharmony_ci std::string message = "售后问题请拨打95528|95188。"; 8859596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 8869596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 8879596a2c1Sopenharmony_ci EXPECT_EQ(res[0][0], 2); 8889596a2c1Sopenharmony_ci EXPECT_EQ(res[0][1], 7); 8899596a2c1Sopenharmony_ci EXPECT_EQ(res[0][2], 12); 8909596a2c1Sopenharmony_ci EXPECT_EQ(res[0][3], 13); 8919596a2c1Sopenharmony_ci EXPECT_EQ(res[0][4], 18); 8929596a2c1Sopenharmony_ci} 8939596a2c1Sopenharmony_ci 8949596a2c1Sopenharmony_ci/** 8959596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest032 8969596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 8979596a2c1Sopenharmony_ci * @tc.type: FUNC 8989596a2c1Sopenharmony_ci */ 8999596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest032, TestSize.Level1) 9009596a2c1Sopenharmony_ci{ 9019596a2c1Sopenharmony_ci std::string localeStr = "en-GB"; 9029596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 9039596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 9049596a2c1Sopenharmony_ci std::string message = "If you need anything, please contact mob:(0)20 1234 5678."; 9059596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 9069596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 9079596a2c1Sopenharmony_ci EXPECT_EQ(res[0][0], 1); 9089596a2c1Sopenharmony_ci EXPECT_EQ(res[0][1], 41); 9099596a2c1Sopenharmony_ci EXPECT_EQ(res[0][2], 56); 9109596a2c1Sopenharmony_ci} 9119596a2c1Sopenharmony_ci 9129596a2c1Sopenharmony_ci/** 9139596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest033 9149596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 9159596a2c1Sopenharmony_ci * @tc.type: FUNC 9169596a2c1Sopenharmony_ci */ 9179596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest033, TestSize.Level1) 9189596a2c1Sopenharmony_ci{ 9199596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 9209596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 9219596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 9229596a2c1Sopenharmony_ci std::string message = "尊敬的客户您好!4G套餐火热申办中,每月最高可获得20G手机上网流量,升级4G套餐享更多优惠。咨询及办理请致电10086。中国移动"; 9239596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 9249596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 9259596a2c1Sopenharmony_ci EXPECT_EQ(res[0][0], 1); 9269596a2c1Sopenharmony_ci EXPECT_EQ(res[0][1], 55); 9279596a2c1Sopenharmony_ci EXPECT_EQ(res[0][2], 60); 9289596a2c1Sopenharmony_ci} 9299596a2c1Sopenharmony_ci 9309596a2c1Sopenharmony_ci/** 9319596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest034 9329596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 9339596a2c1Sopenharmony_ci * @tc.type: FUNC 9349596a2c1Sopenharmony_ci */ 9359596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest034, TestSize.Level1) 9369596a2c1Sopenharmony_ci{ 9379596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 9389596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 9399596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 9409596a2c1Sopenharmony_ci std::string message = "今天晚上10点,我们商量一下10月1日至7日的旅游安排。"; 9419596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 9429596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 9439596a2c1Sopenharmony_ci EXPECT_EQ(res[1][0], 2); 9449596a2c1Sopenharmony_ci EXPECT_EQ(res[1][1], 0); 9459596a2c1Sopenharmony_ci EXPECT_EQ(res[1][2], 7); 9469596a2c1Sopenharmony_ci EXPECT_EQ(res[1][3], 14); 9479596a2c1Sopenharmony_ci EXPECT_EQ(res[1][4], 22); 9489596a2c1Sopenharmony_ci} 9499596a2c1Sopenharmony_ci 9509596a2c1Sopenharmony_ci/** 9519596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest035 9529596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 9539596a2c1Sopenharmony_ci * @tc.type: FUNC 9549596a2c1Sopenharmony_ci */ 9559596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest035, TestSize.Level1) 9569596a2c1Sopenharmony_ci{ 9579596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 9589596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 9599596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 9609596a2c1Sopenharmony_ci std::string message = "7月1日周一到7月5日周五都是工作日,所以在2023年7月6日下午17:00到19:00聚餐。"; 9619596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 9629596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 9639596a2c1Sopenharmony_ci EXPECT_EQ(res[1][0], 2); 9649596a2c1Sopenharmony_ci EXPECT_EQ(res[1][1], 0); 9659596a2c1Sopenharmony_ci EXPECT_EQ(res[1][2], 13); 9669596a2c1Sopenharmony_ci EXPECT_EQ(res[1][3], 22); 9679596a2c1Sopenharmony_ci EXPECT_EQ(res[1][4], 44); 9689596a2c1Sopenharmony_ci} 9699596a2c1Sopenharmony_ci 9709596a2c1Sopenharmony_ci/** 9719596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest036 9729596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 9739596a2c1Sopenharmony_ci * @tc.type: FUNC 9749596a2c1Sopenharmony_ci */ 9759596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest036, TestSize.Level1) 9769596a2c1Sopenharmony_ci{ 9779596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 9789596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 9799596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 9809596a2c1Sopenharmony_ci std::string message = "昨天8:30:00的会议没有讨论出结果,我们2023年11月11日的8:30:00再开一次会吧。"; 9819596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 9829596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 9839596a2c1Sopenharmony_ci EXPECT_EQ(res[1][0], 1); 9849596a2c1Sopenharmony_ci EXPECT_EQ(res[1][1], 22); 9859596a2c1Sopenharmony_ci EXPECT_EQ(res[1][2], 41); 9869596a2c1Sopenharmony_ci} 9879596a2c1Sopenharmony_ci 9889596a2c1Sopenharmony_ci/** 9899596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest037 9909596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 9919596a2c1Sopenharmony_ci * @tc.type: FUNC 9929596a2c1Sopenharmony_ci */ 9939596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest037, TestSize.Level1) 9949596a2c1Sopenharmony_ci{ 9959596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 9969596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 9979596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 9989596a2c1Sopenharmony_ci std::string message = "我们2023年10月23日(周六)一起完成作业,并且2023年10月24日周天 晚上8:00上交。"; 9999596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 10009596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 10019596a2c1Sopenharmony_ci EXPECT_EQ(res[1][0], 2); 10029596a2c1Sopenharmony_ci EXPECT_EQ(res[1][1], 2); 10039596a2c1Sopenharmony_ci EXPECT_EQ(res[1][2], 17); 10049596a2c1Sopenharmony_ci EXPECT_EQ(res[1][3], 26); 10059596a2c1Sopenharmony_ci EXPECT_EQ(res[1][4], 46); 10069596a2c1Sopenharmony_ci} 10079596a2c1Sopenharmony_ci 10089596a2c1Sopenharmony_ci/** 10099596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest038 10109596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 10119596a2c1Sopenharmony_ci * @tc.type: FUNC 10129596a2c1Sopenharmony_ci */ 10139596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest038, TestSize.Level1) 10149596a2c1Sopenharmony_ci{ 10159596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 10169596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 10179596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 10189596a2c1Sopenharmony_ci std::string message = "2023/10/1是国庆节,我们可以在GMT+0800 上午9時30分00秒去参观博物馆,后续星期六 晚上 7:00我们一起吃饭。"; 10199596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 10209596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 10219596a2c1Sopenharmony_ci EXPECT_EQ(res[1][0], 3); 10229596a2c1Sopenharmony_ci EXPECT_EQ(res[1][1], 0); 10239596a2c1Sopenharmony_ci EXPECT_EQ(res[1][2], 9); 10249596a2c1Sopenharmony_ci EXPECT_EQ(res[1][3], 19); 10259596a2c1Sopenharmony_ci EXPECT_EQ(res[1][4], 38); 10269596a2c1Sopenharmony_ci EXPECT_EQ(res[1][5], 47); 10279596a2c1Sopenharmony_ci EXPECT_EQ(res[1][6], 58); 10289596a2c1Sopenharmony_ci} 10299596a2c1Sopenharmony_ci 10309596a2c1Sopenharmony_ci/** 10319596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest039 10329596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 10339596a2c1Sopenharmony_ci * @tc.type: FUNC 10349596a2c1Sopenharmony_ci */ 10359596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest039, TestSize.Level1) 10369596a2c1Sopenharmony_ci{ 10379596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 10389596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 10399596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 10409596a2c1Sopenharmony_ci std::string message = "我们上午 7:30:00 (GMT+8:30)可以去看日出,下午5:00-晚上7:00看日落。"; 10419596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 10429596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 10439596a2c1Sopenharmony_ci EXPECT_EQ(res[1][0], 2); 10449596a2c1Sopenharmony_ci EXPECT_EQ(res[1][1], 2); 10459596a2c1Sopenharmony_ci EXPECT_EQ(res[1][2], 23); 10469596a2c1Sopenharmony_ci EXPECT_EQ(res[1][3], 30); 10479596a2c1Sopenharmony_ci EXPECT_EQ(res[1][4], 43); 10489596a2c1Sopenharmony_ci} 10499596a2c1Sopenharmony_ci 10509596a2c1Sopenharmony_ci/** 10519596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest040 10529596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 10539596a2c1Sopenharmony_ci * @tc.type: FUNC 10549596a2c1Sopenharmony_ci */ 10559596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest040, TestSize.Level1) 10569596a2c1Sopenharmony_ci{ 10579596a2c1Sopenharmony_ci std::string localeStr = "en-GB"; 10589596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 10599596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 10609596a2c1Sopenharmony_ci std::string message = "We'll have dinner at GMT-8:15 PM 17:30:00, and go shopping at tomorrow 8:00."; 10619596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 10629596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 10639596a2c1Sopenharmony_ci EXPECT_EQ(res[1][0], 2); 10649596a2c1Sopenharmony_ci EXPECT_EQ(res[1][1], 21); 10659596a2c1Sopenharmony_ci EXPECT_EQ(res[1][2], 41); 10669596a2c1Sopenharmony_ci EXPECT_EQ(res[1][3], 62); 10679596a2c1Sopenharmony_ci EXPECT_EQ(res[1][4], 75); 10689596a2c1Sopenharmony_ci} 10699596a2c1Sopenharmony_ci 10709596a2c1Sopenharmony_ci/** 10719596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest041 10729596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 10739596a2c1Sopenharmony_ci * @tc.type: FUNC 10749596a2c1Sopenharmony_ci */ 10759596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest041, TestSize.Level1) 10769596a2c1Sopenharmony_ci{ 10779596a2c1Sopenharmony_ci std::string localeStr = "en-GB"; 10789596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 10799596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 10809596a2c1Sopenharmony_ci std::string message = "Our time zone is GMT+12:00."; 10819596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 10829596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 10839596a2c1Sopenharmony_ci EXPECT_EQ(res[1][0], 0); 10849596a2c1Sopenharmony_ci} 10859596a2c1Sopenharmony_ci 10869596a2c1Sopenharmony_ci/** 10879596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest042 10889596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 10899596a2c1Sopenharmony_ci * @tc.type: FUNC 10909596a2c1Sopenharmony_ci */ 10919596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest042, TestSize.Level1) 10929596a2c1Sopenharmony_ci{ 10939596a2c1Sopenharmony_ci std::string localeStr = "en-GB"; 10949596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 10959596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 10969596a2c1Sopenharmony_ci std::string message = "The festivities will take place on Sunday, jan 1, 2023, and run until Wed, 1/4/2023"; 10979596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 10989596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 10999596a2c1Sopenharmony_ci EXPECT_EQ(res[1][0], 2); 11009596a2c1Sopenharmony_ci EXPECT_EQ(res[1][1], 35); 11019596a2c1Sopenharmony_ci EXPECT_EQ(res[1][2], 54); 11029596a2c1Sopenharmony_ci EXPECT_EQ(res[1][3], 70); 11039596a2c1Sopenharmony_ci EXPECT_EQ(res[1][4], 83); 11049596a2c1Sopenharmony_ci} 11059596a2c1Sopenharmony_ci 11069596a2c1Sopenharmony_ci/** 11079596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest043 11089596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 11099596a2c1Sopenharmony_ci * @tc.type: FUNC 11109596a2c1Sopenharmony_ci */ 11119596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest043, TestSize.Level1) 11129596a2c1Sopenharmony_ci{ 11139596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 11149596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 11159596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 11169596a2c1Sopenharmony_ci // std::string message = "2023年1月2日至3日周三是一个好日子,上午可以11:00:00(周三)去逛街"; 11179596a2c1Sopenharmony_ci std::string message = "2023年1月2日至3日是一个好日子,12:00:00(2023年1月3日)一起吃饭。"; 11189596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 11199596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 11209596a2c1Sopenharmony_ci EXPECT_EQ(res[1][0], 2); 11219596a2c1Sopenharmony_ci EXPECT_EQ(res[1][1], 0); 11229596a2c1Sopenharmony_ci EXPECT_EQ(res[1][2], 12); 11239596a2c1Sopenharmony_ci EXPECT_EQ(res[1][3], 19); 11249596a2c1Sopenharmony_ci EXPECT_EQ(res[1][4], 38); 11259596a2c1Sopenharmony_ci} 11269596a2c1Sopenharmony_ci 11279596a2c1Sopenharmony_ci/** 11289596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest044 11299596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 11309596a2c1Sopenharmony_ci * @tc.type: FUNC 11319596a2c1Sopenharmony_ci */ 11329596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest044, TestSize.Level1) 11339596a2c1Sopenharmony_ci{ 11349596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 11359596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 11369596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 11379596a2c1Sopenharmony_ci std::string message = "(2023年1月1日)12:00:00聚会,2023年1月2日,16:00:00返回深圳。"; 11389596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 11399596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 11409596a2c1Sopenharmony_ci EXPECT_EQ(res[1][0], 2); 11419596a2c1Sopenharmony_ci EXPECT_EQ(res[1][1], 0); 11429596a2c1Sopenharmony_ci EXPECT_EQ(res[1][2], 19); 11439596a2c1Sopenharmony_ci EXPECT_EQ(res[1][3], 22); 11449596a2c1Sopenharmony_ci EXPECT_EQ(res[1][4], 40); 11459596a2c1Sopenharmony_ci} 11469596a2c1Sopenharmony_ci 11479596a2c1Sopenharmony_ci 11489596a2c1Sopenharmony_ci/** 11499596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest045 11509596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 11519596a2c1Sopenharmony_ci * @tc.type: FUNC 11529596a2c1Sopenharmony_ci */ 11539596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest045, TestSize.Level1) 11549596a2c1Sopenharmony_ci{ 11559596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 11569596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 11579596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 11589596a2c1Sopenharmony_ci std::string message = "2023年1月3日(今天(本周五))和2023年1月3日(12:00:00)是指同一天"; 11599596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 11609596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 11619596a2c1Sopenharmony_ci EXPECT_EQ(res[1][0], 3); 11629596a2c1Sopenharmony_ci EXPECT_EQ(res[1][1], 0); 11639596a2c1Sopenharmony_ci EXPECT_EQ(res[1][2], 17); 11649596a2c1Sopenharmony_ci EXPECT_EQ(res[1][3], 19); 11659596a2c1Sopenharmony_ci EXPECT_EQ(res[1][4], 28); 11669596a2c1Sopenharmony_ci EXPECT_EQ(res[1][5], 29); 11679596a2c1Sopenharmony_ci EXPECT_EQ(res[1][6], 37); 11689596a2c1Sopenharmony_ci} 11699596a2c1Sopenharmony_ci 11709596a2c1Sopenharmony_ci/** 11719596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest046 11729596a2c1Sopenharmony_ci * @tc.desc: Test I18n EntityRecognizer 11739596a2c1Sopenharmony_ci * @tc.type: FUNC 11749596a2c1Sopenharmony_ci */ 11759596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest046, TestSize.Level1) 11769596a2c1Sopenharmony_ci{ 11779596a2c1Sopenharmony_ci std::string localeStr = "zh-CN"; 11789596a2c1Sopenharmony_ci UErrorCode status = U_ZERO_ERROR; 11799596a2c1Sopenharmony_ci icu::Locale locale = icu::Locale::forLanguageTag(localeStr, status); 11809596a2c1Sopenharmony_ci std::string message = "2023年1月3日今天(本周五)在7:00:00的2023年1月3日可以看日出"; 11819596a2c1Sopenharmony_ci std::unique_ptr<EntityRecognizer> m = std::make_unique<EntityRecognizer>(locale); 11829596a2c1Sopenharmony_ci std::vector<std::vector<int>> res = m->FindEntityInfo(message); 11839596a2c1Sopenharmony_ci EXPECT_EQ(res[1][0], 2); 11849596a2c1Sopenharmony_ci EXPECT_EQ(res[1][1], 0); 11859596a2c1Sopenharmony_ci EXPECT_EQ(res[1][2], 16); 11869596a2c1Sopenharmony_ci EXPECT_EQ(res[1][3], 17); 11879596a2c1Sopenharmony_ci EXPECT_EQ(res[1][4], 34); 11889596a2c1Sopenharmony_ci} 11899596a2c1Sopenharmony_ci 11909596a2c1Sopenharmony_ci/** 11919596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest047 11929596a2c1Sopenharmony_ci * @tc.desc: Test I18n LocaleUtil 11939596a2c1Sopenharmony_ci * @tc.type: FUNC 11949596a2c1Sopenharmony_ci */ 11959596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest047, TestSize.Level1) 11969596a2c1Sopenharmony_ci{ 11979596a2c1Sopenharmony_ci LocaleInfo *locale = new LocaleInfo("zh-Hans-CN"); 11989596a2c1Sopenharmony_ci uint16_t encodedLanguage = LocaleUtil::EncodeLanguageByLocaleInfo(locale); 11999596a2c1Sopenharmony_ci EXPECT_EQ(encodedLanguage, 31336); 12009596a2c1Sopenharmony_ci delete locale; 12019596a2c1Sopenharmony_ci} 12029596a2c1Sopenharmony_ci 12039596a2c1Sopenharmony_ci/** 12049596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest048 12059596a2c1Sopenharmony_ci * @tc.desc: Test I18n LocaleUtil 12069596a2c1Sopenharmony_ci * @tc.type: FUNC 12079596a2c1Sopenharmony_ci */ 12089596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest048, TestSize.Level1) 12099596a2c1Sopenharmony_ci{ 12109596a2c1Sopenharmony_ci LocaleInfo *locale = new LocaleInfo("zh-Hans-CN"); 12119596a2c1Sopenharmony_ci uint16_t encodedScript = LocaleUtil::EncodeScriptByLocaleInfo(locale); 12129596a2c1Sopenharmony_ci EXPECT_EQ(encodedScript, 28275); 12139596a2c1Sopenharmony_ci delete locale; 12149596a2c1Sopenharmony_ci} 12159596a2c1Sopenharmony_ci 12169596a2c1Sopenharmony_ci/** 12179596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest049 12189596a2c1Sopenharmony_ci * @tc.desc: Test I18n LocaleUtil 12199596a2c1Sopenharmony_ci * @tc.type: FUNC 12209596a2c1Sopenharmony_ci */ 12219596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest049, TestSize.Level1) 12229596a2c1Sopenharmony_ci{ 12239596a2c1Sopenharmony_ci LocaleInfo *locale = new LocaleInfo("zh-Hans-CN"); 12249596a2c1Sopenharmony_ci uint16_t encodedRegion = LocaleUtil::EncodeRegionByLocaleInfo(locale); 12259596a2c1Sopenharmony_ci EXPECT_EQ(encodedRegion, 17230); 12269596a2c1Sopenharmony_ci uint16_t result = LocaleUtil::EncodeRegionByLocaleInfo(nullptr); 12279596a2c1Sopenharmony_ci EXPECT_EQ(result, 0); 12289596a2c1Sopenharmony_ci delete locale; 12299596a2c1Sopenharmony_ci} 12309596a2c1Sopenharmony_ci 12319596a2c1Sopenharmony_ci/** 12329596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest050 12339596a2c1Sopenharmony_ci * @tc.desc: Test I18n LocaleUtil 12349596a2c1Sopenharmony_ci * @tc.type: FUNC 12359596a2c1Sopenharmony_ci */ 12369596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest050, TestSize.Level1) 12379596a2c1Sopenharmony_ci{ 12389596a2c1Sopenharmony_ci LocaleInfo locale("zh-Hans-CN"); 12399596a2c1Sopenharmony_ci uint16_t encodedLanguage = LocaleUtil::EncodeLanguage(locale.GetLanguage().c_str()); 12409596a2c1Sopenharmony_ci EXPECT_EQ(encodedLanguage, 31336); 12419596a2c1Sopenharmony_ci} 12429596a2c1Sopenharmony_ci 12439596a2c1Sopenharmony_ci/** 12449596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest051 12459596a2c1Sopenharmony_ci * @tc.desc: Test I18n LocaleUtil 12469596a2c1Sopenharmony_ci * @tc.type: FUNC 12479596a2c1Sopenharmony_ci */ 12489596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest051, TestSize.Level1) 12499596a2c1Sopenharmony_ci{ 12509596a2c1Sopenharmony_ci LocaleInfo locale("zh-Hans-CN"); 12519596a2c1Sopenharmony_ci uint16_t encodedScript = LocaleUtil::EncodeScript(locale.GetScript().c_str()); 12529596a2c1Sopenharmony_ci EXPECT_EQ(encodedScript, 28275); 12539596a2c1Sopenharmony_ci} 12549596a2c1Sopenharmony_ci 12559596a2c1Sopenharmony_ci/** 12569596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest052 12579596a2c1Sopenharmony_ci * @tc.desc: Test I18n LocaleUtil 12589596a2c1Sopenharmony_ci * @tc.type: FUNC 12599596a2c1Sopenharmony_ci */ 12609596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest052, TestSize.Level1) 12619596a2c1Sopenharmony_ci{ 12629596a2c1Sopenharmony_ci LocaleInfo locale("zh-Hans-CN"); 12639596a2c1Sopenharmony_ci uint16_t encodedRegion = LocaleUtil::EncodeRegion(locale.GetRegion().c_str()); 12649596a2c1Sopenharmony_ci EXPECT_EQ(encodedRegion, 17230); 12659596a2c1Sopenharmony_ci} 12669596a2c1Sopenharmony_ci 12679596a2c1Sopenharmony_ci/** 12689596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest053 12699596a2c1Sopenharmony_ci * @tc.desc: Test I18n LocaleUtil 12709596a2c1Sopenharmony_ci * @tc.type: FUNC 12719596a2c1Sopenharmony_ci */ 12729596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest053, TestSize.Level1) 12739596a2c1Sopenharmony_ci{ 12749596a2c1Sopenharmony_ci LocaleInfo locale("zh-Hans-CN"); 12759596a2c1Sopenharmony_ci uint16_t encodedLocale = LocaleUtil::EncodeLocale(locale.GetLanguage().c_str(), locale.GetScript().c_str(), 12769596a2c1Sopenharmony_ci locale.GetRegion().c_str()); 12779596a2c1Sopenharmony_ci EXPECT_EQ(encodedLocale, 17230); 12789596a2c1Sopenharmony_ci} 12799596a2c1Sopenharmony_ci 12809596a2c1Sopenharmony_ci/** 12819596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest054 12829596a2c1Sopenharmony_ci * @tc.desc: Test I18n LocaleUtil 12839596a2c1Sopenharmony_ci * @tc.type: FUNC 12849596a2c1Sopenharmony_ci */ 12859596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest054, TestSize.Level1) 12869596a2c1Sopenharmony_ci{ 12879596a2c1Sopenharmony_ci std::string str1 = "non-empty"; 12889596a2c1Sopenharmony_ci std::string str2 = ""; 12899596a2c1Sopenharmony_ci bool isEmpty = LocaleUtil::IsStrEmpty(str1.c_str()); 12909596a2c1Sopenharmony_ci EXPECT_FALSE(isEmpty); 12919596a2c1Sopenharmony_ci isEmpty = LocaleUtil::IsStrEmpty(str2.c_str()); 12929596a2c1Sopenharmony_ci EXPECT_TRUE(isEmpty); 12939596a2c1Sopenharmony_ci} 12949596a2c1Sopenharmony_ci 12959596a2c1Sopenharmony_ci/** 12969596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest055 12979596a2c1Sopenharmony_ci * @tc.desc: Test I18n LocaleUtil 12989596a2c1Sopenharmony_ci * @tc.type: FUNC 12999596a2c1Sopenharmony_ci */ 13009596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest055, TestSize.Level1) 13019596a2c1Sopenharmony_ci{ 13029596a2c1Sopenharmony_ci LocaleInfo locale("zh-Hans-CN"); 13039596a2c1Sopenharmony_ci uint32_t encodedScript = LocaleUtil::EncodeScript(locale.GetScript().c_str()); 13049596a2c1Sopenharmony_ci char decodedScript[5] = { 0 }; 13059596a2c1Sopenharmony_ci LocaleUtil::DecodeScript(encodedScript, decodedScript); 13069596a2c1Sopenharmony_ci std::string originScript = "Hans"; 13079596a2c1Sopenharmony_ci EXPECT_EQ(originScript.compare(decodedScript), 0); 13089596a2c1Sopenharmony_ci LocaleUtil::DecodeScript(encodedScript, nullptr); 13099596a2c1Sopenharmony_ci} 13109596a2c1Sopenharmony_ci 13119596a2c1Sopenharmony_ci/** 13129596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest056 13139596a2c1Sopenharmony_ci * @tc.desc: Test I18n LocaleUtil 13149596a2c1Sopenharmony_ci * @tc.type: FUNC 13159596a2c1Sopenharmony_ci */ 13169596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest056, TestSize.Level1) 13179596a2c1Sopenharmony_ci{ 13189596a2c1Sopenharmony_ci std::string alphaString = "abc"; 13199596a2c1Sopenharmony_ci std::string nonAlphaString = "abc123abc"; 13209596a2c1Sopenharmony_ci bool isAlpha = LocaleUtil::IsAlphaString(alphaString.c_str(), alphaString.length()); 13219596a2c1Sopenharmony_ci EXPECT_TRUE(isAlpha); 13229596a2c1Sopenharmony_ci isAlpha = LocaleUtil::IsAlphaString(nonAlphaString.c_str(), nonAlphaString.length()); 13239596a2c1Sopenharmony_ci EXPECT_FALSE(isAlpha); 13249596a2c1Sopenharmony_ci isAlpha = LocaleUtil::IsAlphaString(nullptr, nonAlphaString.length()); 13259596a2c1Sopenharmony_ci EXPECT_FALSE(isAlpha); 13269596a2c1Sopenharmony_ci} 13279596a2c1Sopenharmony_ci 13289596a2c1Sopenharmony_ci/** 13299596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest057 13309596a2c1Sopenharmony_ci * @tc.desc: Test I18n LocaleUtil 13319596a2c1Sopenharmony_ci * @tc.type: FUNC 13329596a2c1Sopenharmony_ci */ 13339596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest057, TestSize.Level1) 13349596a2c1Sopenharmony_ci{ 13359596a2c1Sopenharmony_ci std::string numericString = "123"; 13369596a2c1Sopenharmony_ci std::string nonNumericString = "123abc123"; 13379596a2c1Sopenharmony_ci bool isNumeric = LocaleUtil::IsNumericString(numericString.c_str(), numericString.length()); 13389596a2c1Sopenharmony_ci EXPECT_TRUE(isNumeric); 13399596a2c1Sopenharmony_ci isNumeric = LocaleUtil::IsNumericString(nonNumericString.c_str(), nonNumericString.length()); 13409596a2c1Sopenharmony_ci EXPECT_FALSE(isNumeric); 13419596a2c1Sopenharmony_ci isNumeric = LocaleUtil::IsNumericString(nullptr, nonNumericString.length()); 13429596a2c1Sopenharmony_ci EXPECT_FALSE(isNumeric); 13439596a2c1Sopenharmony_ci std::string locale = "ug-CN"; 13449596a2c1Sopenharmony_ci bool rtl = LocaleUtil::IsRTL(locale); 13459596a2c1Sopenharmony_ci EXPECT_TRUE(rtl); 13469596a2c1Sopenharmony_ci} 13479596a2c1Sopenharmony_ci 13489596a2c1Sopenharmony_ci/** 13499596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest058 13509596a2c1Sopenharmony_ci * @tc.desc: Test I18n LocaleUtil 13519596a2c1Sopenharmony_ci * @tc.type: FUNC 13529596a2c1Sopenharmony_ci */ 13539596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest058, TestSize.Level1) 13549596a2c1Sopenharmony_ci{ 13559596a2c1Sopenharmony_ci LocaleInfo *locale1 = new LocaleInfo("zh-Hans-CN"); 13569596a2c1Sopenharmony_ci LocaleInfo *locale2 = new LocaleInfo("en-Latn-US"); 13579596a2c1Sopenharmony_ci bool isMatched = LocaleMatcher::Match(locale1, locale2); 13589596a2c1Sopenharmony_ci EXPECT_FALSE(isMatched); 13599596a2c1Sopenharmony_ci delete locale1; 13609596a2c1Sopenharmony_ci delete locale2; 13619596a2c1Sopenharmony_ci 13629596a2c1Sopenharmony_ci locale1 = new LocaleInfo("zh-Hans-CN"); 13639596a2c1Sopenharmony_ci locale2 = new LocaleInfo("zh-Hant-TW"); 13649596a2c1Sopenharmony_ci isMatched = LocaleMatcher::Match(locale1, locale2); 13659596a2c1Sopenharmony_ci EXPECT_FALSE(isMatched); 13669596a2c1Sopenharmony_ci delete locale1; 13679596a2c1Sopenharmony_ci delete locale2; 13689596a2c1Sopenharmony_ci 13699596a2c1Sopenharmony_ci locale1 = new LocaleInfo("zh-Hans-CN"); 13709596a2c1Sopenharmony_ci locale2 = new LocaleInfo("zh-Hant-TW"); 13719596a2c1Sopenharmony_ci isMatched = LocaleMatcher::Match(locale1, locale2); 13729596a2c1Sopenharmony_ci EXPECT_FALSE(isMatched); 13739596a2c1Sopenharmony_ci delete locale1; 13749596a2c1Sopenharmony_ci delete locale2; 13759596a2c1Sopenharmony_ci 13769596a2c1Sopenharmony_ci locale1 = new LocaleInfo("zh-Hans-CN"); 13779596a2c1Sopenharmony_ci locale2 = new LocaleInfo("zh-Hans-MO"); 13789596a2c1Sopenharmony_ci isMatched = LocaleMatcher::Match(locale1, locale2); 13799596a2c1Sopenharmony_ci EXPECT_TRUE(isMatched); 13809596a2c1Sopenharmony_ci delete locale1; 13819596a2c1Sopenharmony_ci delete locale2; 13829596a2c1Sopenharmony_ci} 13839596a2c1Sopenharmony_ci 13849596a2c1Sopenharmony_ci/** 13859596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest059 13869596a2c1Sopenharmony_ci * @tc.desc: Test I18n LocaleUtil 13879596a2c1Sopenharmony_ci * @tc.type: FUNC 13889596a2c1Sopenharmony_ci */ 13899596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest059, TestSize.Level1) 13909596a2c1Sopenharmony_ci{ 13919596a2c1Sopenharmony_ci LocaleInfo *request = nullptr; 13929596a2c1Sopenharmony_ci LocaleInfo *current = new LocaleInfo("zh-Hans-CN"); 13939596a2c1Sopenharmony_ci LocaleInfo *other = nullptr; 13949596a2c1Sopenharmony_ci int8_t res = LocaleMatcher::IsMoreSuitable(current, other, request); 13959596a2c1Sopenharmony_ci EXPECT_TRUE(res < 0); 13969596a2c1Sopenharmony_ci delete current; 13979596a2c1Sopenharmony_ci current = nullptr; 13989596a2c1Sopenharmony_ci 13999596a2c1Sopenharmony_ci res = LocaleMatcher::IsMoreSuitable(current, other, request); 14009596a2c1Sopenharmony_ci EXPECT_TRUE(res == 0); 14019596a2c1Sopenharmony_ci 14029596a2c1Sopenharmony_ci request = new LocaleInfo("en-GB"); 14039596a2c1Sopenharmony_ci current = new LocaleInfo("en-AU"); 14049596a2c1Sopenharmony_ci res = LocaleMatcher::IsMoreSuitable(current, other, request); 14059596a2c1Sopenharmony_ci EXPECT_TRUE(res > 0); 14069596a2c1Sopenharmony_ci 14079596a2c1Sopenharmony_ci other = new LocaleInfo("en-GB"); 14089596a2c1Sopenharmony_ci res = LocaleMatcher::IsMoreSuitable(current, other, request); 14099596a2c1Sopenharmony_ci EXPECT_TRUE(res < 0); 14109596a2c1Sopenharmony_ci 14119596a2c1Sopenharmony_ci delete request; 14129596a2c1Sopenharmony_ci delete current; 14139596a2c1Sopenharmony_ci delete other; 14149596a2c1Sopenharmony_ci request = new LocaleInfo("iw-Lant-GB"); 14159596a2c1Sopenharmony_ci current = new LocaleInfo("iw-Lant-AU"); 14169596a2c1Sopenharmony_ci other = new LocaleInfo("he-Latn-AU"); 14179596a2c1Sopenharmony_ci res = LocaleMatcher::IsMoreSuitable(current, other, request); 14189596a2c1Sopenharmony_ci EXPECT_TRUE(res > 0); 14199596a2c1Sopenharmony_ci delete other; 14209596a2c1Sopenharmony_ci 14219596a2c1Sopenharmony_ci other = new LocaleInfo("iw-Latn-AG"); 14229596a2c1Sopenharmony_ci res = LocaleMatcher::IsMoreSuitable(current, other, request); 14239596a2c1Sopenharmony_ci EXPECT_TRUE(res < 0); 14249596a2c1Sopenharmony_ci delete request; 14259596a2c1Sopenharmony_ci delete current; 14269596a2c1Sopenharmony_ci delete other; 14279596a2c1Sopenharmony_ci} 14289596a2c1Sopenharmony_ci 14299596a2c1Sopenharmony_ci/** 14309596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest061 14319596a2c1Sopenharmony_ci * @tc.desc: Test I18n GetISO3Language 14329596a2c1Sopenharmony_ci * @tc.type: FUNC 14339596a2c1Sopenharmony_ci */ 14349596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest061, TestSize.Level1) 14359596a2c1Sopenharmony_ci{ 14369596a2c1Sopenharmony_ci std::string language = GetISO3Language("zh"); 14379596a2c1Sopenharmony_ci EXPECT_EQ(language, "zho"); 14389596a2c1Sopenharmony_ci language = GetISO3Language("en"); 14399596a2c1Sopenharmony_ci EXPECT_EQ(language, "eng"); 14409596a2c1Sopenharmony_ci language = GetISO3Language("zh-CN"); 14419596a2c1Sopenharmony_ci EXPECT_EQ(language, "zho"); 14429596a2c1Sopenharmony_ci language = GetISO3Language("en-US"); 14439596a2c1Sopenharmony_ci EXPECT_EQ(language, "eng"); 14449596a2c1Sopenharmony_ci language = GetISO3Language("zz"); 14459596a2c1Sopenharmony_ci EXPECT_EQ(language, ""); 14469596a2c1Sopenharmony_ci language = GetISO3Language("sdfsdf"); 14479596a2c1Sopenharmony_ci EXPECT_EQ(language, ""); 14489596a2c1Sopenharmony_ci} 14499596a2c1Sopenharmony_ci 14509596a2c1Sopenharmony_ci/** 14519596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest062 14529596a2c1Sopenharmony_ci * @tc.desc: Test I18n GetISO3Country 14539596a2c1Sopenharmony_ci * @tc.type: FUNC 14549596a2c1Sopenharmony_ci */ 14559596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest062, TestSize.Level1) 14569596a2c1Sopenharmony_ci{ 14579596a2c1Sopenharmony_ci std::string country = GetISO3Country("CN"); 14589596a2c1Sopenharmony_ci EXPECT_EQ(country, "CHN"); 14599596a2c1Sopenharmony_ci country = GetISO3Country("US"); 14609596a2c1Sopenharmony_ci EXPECT_EQ(country, "USA"); 14619596a2c1Sopenharmony_ci country = GetISO3Country("zh-CN"); 14629596a2c1Sopenharmony_ci EXPECT_EQ(country, "CHN"); 14639596a2c1Sopenharmony_ci country = GetISO3Country("en-US"); 14649596a2c1Sopenharmony_ci EXPECT_EQ(country, "USA"); 14659596a2c1Sopenharmony_ci country = GetISO3Country("ZX"); 14669596a2c1Sopenharmony_ci EXPECT_EQ(country, ""); 14679596a2c1Sopenharmony_ci country = GetISO3Country("zh"); 14689596a2c1Sopenharmony_ci EXPECT_EQ(country, ""); 14699596a2c1Sopenharmony_ci country = GetISO3Country("sdfsdf"); 14709596a2c1Sopenharmony_ci EXPECT_EQ(country, ""); 14719596a2c1Sopenharmony_ci} 14729596a2c1Sopenharmony_ci 14739596a2c1Sopenharmony_ci/** 14749596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest063 14759596a2c1Sopenharmony_ci * @tc.desc: Test I18n lunar calendar 14769596a2c1Sopenharmony_ci * @tc.type: FUNC 14779596a2c1Sopenharmony_ci */ 14789596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest063, TestSize.Level1) 14799596a2c1Sopenharmony_ci{ 14809596a2c1Sopenharmony_ci std::unique_ptr<LunarCalendar> ptr = std::make_unique<LunarCalendar>(); 14819596a2c1Sopenharmony_ci 14829596a2c1Sopenharmony_ci ptr->SetGregorianDate(1900, 1, 31); 14839596a2c1Sopenharmony_ci int32_t year = ptr->GetLunarYear(); 14849596a2c1Sopenharmony_ci int32_t month = ptr->GetLunarMonth(); 14859596a2c1Sopenharmony_ci int32_t day = ptr->GetLunarDay(); 14869596a2c1Sopenharmony_ci bool isLeap = ptr->IsLeapMonth(); 14879596a2c1Sopenharmony_ci EXPECT_EQ(year, 1900); 14889596a2c1Sopenharmony_ci EXPECT_EQ(month, 1); 14899596a2c1Sopenharmony_ci EXPECT_EQ(day, 1); 14909596a2c1Sopenharmony_ci EXPECT_EQ(isLeap, false); 14919596a2c1Sopenharmony_ci 14929596a2c1Sopenharmony_ci ptr->SetGregorianDate(1900, 6, 15); 14939596a2c1Sopenharmony_ci year = ptr->GetLunarYear(); 14949596a2c1Sopenharmony_ci month = ptr->GetLunarMonth(); 14959596a2c1Sopenharmony_ci day = ptr->GetLunarDay(); 14969596a2c1Sopenharmony_ci isLeap = ptr->IsLeapMonth(); 14979596a2c1Sopenharmony_ci EXPECT_EQ(year, 1900); 14989596a2c1Sopenharmony_ci EXPECT_EQ(month, 5); 14999596a2c1Sopenharmony_ci EXPECT_EQ(day, 19); 15009596a2c1Sopenharmony_ci EXPECT_EQ(isLeap, false); 15019596a2c1Sopenharmony_ci 15029596a2c1Sopenharmony_ci ptr->SetGregorianDate(2100, 2, 15); 15039596a2c1Sopenharmony_ci year = ptr->GetLunarYear(); 15049596a2c1Sopenharmony_ci month = ptr->GetLunarMonth(); 15059596a2c1Sopenharmony_ci day = ptr->GetLunarDay(); 15069596a2c1Sopenharmony_ci isLeap = ptr->IsLeapMonth(); 15079596a2c1Sopenharmony_ci EXPECT_EQ(year, 2100); 15089596a2c1Sopenharmony_ci EXPECT_EQ(month, 1); 15099596a2c1Sopenharmony_ci EXPECT_EQ(day, 7); 15109596a2c1Sopenharmony_ci EXPECT_EQ(isLeap, false); 15119596a2c1Sopenharmony_ci 15129596a2c1Sopenharmony_ci ptr->SetGregorianDate(2100, 12, 31); 15139596a2c1Sopenharmony_ci year = ptr->GetLunarYear(); 15149596a2c1Sopenharmony_ci month = ptr->GetLunarMonth(); 15159596a2c1Sopenharmony_ci day = ptr->GetLunarDay(); 15169596a2c1Sopenharmony_ci isLeap = ptr->IsLeapMonth(); 15179596a2c1Sopenharmony_ci EXPECT_EQ(year, 2100); 15189596a2c1Sopenharmony_ci EXPECT_EQ(month, 12); 15199596a2c1Sopenharmony_ci EXPECT_EQ(day, 1); 15209596a2c1Sopenharmony_ci EXPECT_EQ(isLeap, false); 15219596a2c1Sopenharmony_ci} 15229596a2c1Sopenharmony_ci 15239596a2c1Sopenharmony_ci/** 15249596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest064 15259596a2c1Sopenharmony_ci * @tc.desc: Test I18n lunar calendar 15269596a2c1Sopenharmony_ci * @tc.type: FUNC 15279596a2c1Sopenharmony_ci */ 15289596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest064, TestSize.Level1) 15299596a2c1Sopenharmony_ci{ 15309596a2c1Sopenharmony_ci std::unique_ptr<LunarCalendar> ptr = std::make_unique<LunarCalendar>(); 15319596a2c1Sopenharmony_ci ptr->SetGregorianDate(2087, 1, 11); 15329596a2c1Sopenharmony_ci int32_t year = ptr->GetLunarYear(); 15339596a2c1Sopenharmony_ci int32_t month = ptr->GetLunarMonth(); 15349596a2c1Sopenharmony_ci int32_t day = ptr->GetLunarDay(); 15359596a2c1Sopenharmony_ci bool isLeap = ptr->IsLeapMonth(); 15369596a2c1Sopenharmony_ci EXPECT_EQ(year, 2086); 15379596a2c1Sopenharmony_ci EXPECT_EQ(month, 12); 15389596a2c1Sopenharmony_ci EXPECT_EQ(day, 7); 15399596a2c1Sopenharmony_ci EXPECT_EQ(isLeap, false); 15409596a2c1Sopenharmony_ci 15419596a2c1Sopenharmony_ci ptr->SetGregorianDate(2024, 10, 11); 15429596a2c1Sopenharmony_ci year = ptr->GetLunarYear(); 15439596a2c1Sopenharmony_ci month = ptr->GetLunarMonth(); 15449596a2c1Sopenharmony_ci day = ptr->GetLunarDay(); 15459596a2c1Sopenharmony_ci isLeap = ptr->IsLeapMonth(); 15469596a2c1Sopenharmony_ci EXPECT_EQ(year, 2024); 15479596a2c1Sopenharmony_ci EXPECT_EQ(month, 9); 15489596a2c1Sopenharmony_ci EXPECT_EQ(day, 9); 15499596a2c1Sopenharmony_ci EXPECT_EQ(isLeap, false); 15509596a2c1Sopenharmony_ci 15519596a2c1Sopenharmony_ci ptr->SetGregorianDate(1963, 6, 15); 15529596a2c1Sopenharmony_ci year = ptr->GetLunarYear(); 15539596a2c1Sopenharmony_ci month = ptr->GetLunarMonth(); 15549596a2c1Sopenharmony_ci day = ptr->GetLunarDay(); 15559596a2c1Sopenharmony_ci isLeap = ptr->IsLeapMonth(); 15569596a2c1Sopenharmony_ci EXPECT_EQ(year, 1963); 15579596a2c1Sopenharmony_ci EXPECT_EQ(month, 4); 15589596a2c1Sopenharmony_ci EXPECT_EQ(day, 24); 15599596a2c1Sopenharmony_ci EXPECT_EQ(isLeap, true); 15609596a2c1Sopenharmony_ci 15619596a2c1Sopenharmony_ci ptr->SetGregorianDate(1923, 1, 11); 15629596a2c1Sopenharmony_ci year = ptr->GetLunarYear(); 15639596a2c1Sopenharmony_ci month = ptr->GetLunarMonth(); 15649596a2c1Sopenharmony_ci day = ptr->GetLunarDay(); 15659596a2c1Sopenharmony_ci isLeap = ptr->IsLeapMonth(); 15669596a2c1Sopenharmony_ci EXPECT_EQ(year, 1922); 15679596a2c1Sopenharmony_ci EXPECT_EQ(month, 11); 15689596a2c1Sopenharmony_ci EXPECT_EQ(day, 25); 15699596a2c1Sopenharmony_ci EXPECT_EQ(isLeap, false); 15709596a2c1Sopenharmony_ci} 15719596a2c1Sopenharmony_ci 15729596a2c1Sopenharmony_ci/** 15739596a2c1Sopenharmony_ci * @tc.name: I18nFuncTest065 15749596a2c1Sopenharmony_ci * @tc.desc: Test I18n lunar calendar 15759596a2c1Sopenharmony_ci * @tc.type: FUNC 15769596a2c1Sopenharmony_ci */ 15779596a2c1Sopenharmony_ciHWTEST_F(I18nTest, I18nFuncTest065, TestSize.Level1) 15789596a2c1Sopenharmony_ci{ 15799596a2c1Sopenharmony_ci std::unique_ptr<LunarCalendar> ptr = std::make_unique<LunarCalendar>(); 15809596a2c1Sopenharmony_ci ptr->SetGregorianDate(2024, 8, 51); 15819596a2c1Sopenharmony_ci int32_t year = ptr->GetLunarYear(); 15829596a2c1Sopenharmony_ci int32_t month = ptr->GetLunarMonth(); 15839596a2c1Sopenharmony_ci int32_t day = ptr->GetLunarDay(); 15849596a2c1Sopenharmony_ci bool isLeap = ptr->IsLeapMonth(); 15859596a2c1Sopenharmony_ci EXPECT_EQ(year, 2024); 15869596a2c1Sopenharmony_ci EXPECT_EQ(month, 8); 15879596a2c1Sopenharmony_ci EXPECT_EQ(day, 18); 15889596a2c1Sopenharmony_ci EXPECT_EQ(isLeap, false); 15899596a2c1Sopenharmony_ci 15909596a2c1Sopenharmony_ci ptr->SetGregorianDate(2024, 12, 43); 15919596a2c1Sopenharmony_ci year = ptr->GetLunarYear(); 15929596a2c1Sopenharmony_ci month = ptr->GetLunarMonth(); 15939596a2c1Sopenharmony_ci day = ptr->GetLunarDay(); 15949596a2c1Sopenharmony_ci isLeap = ptr->IsLeapMonth(); 15959596a2c1Sopenharmony_ci EXPECT_EQ(year, 2024); 15969596a2c1Sopenharmony_ci EXPECT_EQ(month, 12); 15979596a2c1Sopenharmony_ci EXPECT_EQ(day, 13); 15989596a2c1Sopenharmony_ci EXPECT_EQ(isLeap, false); 15999596a2c1Sopenharmony_ci} 16009596a2c1Sopenharmony_ci} // namespace I18n 16019596a2c1Sopenharmony_ci} // namespace Global 16029596a2c1Sopenharmony_ci} // namespace OHOS