diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 6d6532b..efbefec 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -10,13 +10,9 @@ "args": [ "-j9", "ENABLE_DEBUG=1", - "USE_GPSD=1", "all" ], - "group": { - "kind": "build", - "isDefault": true - }, + "group": "build", "problemMatcher": [] }, { @@ -94,7 +90,10 @@ "ENABLE_DEBUG=1", "USE_GPSD=1" ], - "group": "build", + "group": { + "kind": "build", + "isDefault": true + }, "problemMatcher": [] } ] diff --git a/Common/APRSGPSDIdFrameProvider.cpp b/Common/APRSGPSDIdFrameProvider.cpp index b64b770..c4afb62 100644 --- a/Common/APRSGPSDIdFrameProvider.cpp +++ b/Common/APRSGPSDIdFrameProvider.cpp @@ -83,7 +83,7 @@ bool CAPRSGPSDIdFrameProvider::buildAPRSFramesInt(const CAPRSEntry * entry, std: #elif GPSD_API_MAJOR_VERSION <= 16 if(m_gpsdData.fix.status == STATUS_UNK) return false; -#elif +#else #error Unsupported GPSD_API_MAJOR_VERSION #endif diff --git a/Common/AudioUnit.cpp b/Common/AudioUnit.cpp index 0adeac4..5bb4966 100644 --- a/Common/AudioUnit.cpp +++ b/Common/AudioUnit.cpp @@ -72,6 +72,10 @@ void CAudioUnit::setLanguage(const std::string & dir, TEXT_LANG language) ambeFileName = "fr_FR.ambe"; indxFileName = "fr_FR.indx"; break; + case TL_FRANCAIS_2: + ambeFileName = "fr_FR2.ambe"; + indxFileName = "fr_FR2.indx"; + break; case TL_ESPANOL: ambeFileName = "es_ES.ambe"; indxFileName = "es_ES.indx"; diff --git a/Common/Defs.h b/Common/Defs.h index 01edb0c..4cbc343 100644 --- a/Common/Defs.h +++ b/Common/Defs.h @@ -91,6 +91,7 @@ enum TEXT_LANG { TL_DEUTSCH, TL_DANSK, TL_FRANCAIS, + TL_FRANCAIS_2, TL_ITALIANO, TL_POLSKI, TL_ENGLISH_US, diff --git a/Common/RepeaterHandler.cpp b/Common/RepeaterHandler.cpp index b100cf1..15171f7 100644 --- a/Common/RepeaterHandler.cpp +++ b/Common/RepeaterHandler.cpp @@ -2468,6 +2468,7 @@ void CRepeaterHandler::writeLinkingTo(const std::string &callsign) text = CStringUtils::string_format("Linker til %s", callsign.c_str()); break; case TL_FRANCAIS: + case TL_FRANCAIS_2: text = CStringUtils::string_format("Connexion a %s", callsign.c_str()); break; case TL_ITALIANO: @@ -2523,6 +2524,7 @@ void CRepeaterHandler::writeLinkedTo(const std::string &callsign) text = CStringUtils::string_format("Linket til %s", callsign.c_str()); break; case TL_FRANCAIS: + case TL_FRANCAIS_2: text = CStringUtils::string_format("Connecte a %s", callsign.c_str()); break; case TL_ITALIANO: @@ -2578,6 +2580,7 @@ void CRepeaterHandler::writeNotLinked() text = "Ikke forbundet"; break; case TL_FRANCAIS: + case TL_FRANCAIS_2: text = "Non connecte"; break; case TL_ITALIANO: @@ -2636,6 +2639,7 @@ void CRepeaterHandler::writeIsBusy(const std::string& callsign) tempText = CStringUtils::string_format("Optaget fra %s", callsign.c_str()); break; case TL_FRANCAIS: + case TL_FRANCAIS_2: text = "Non connecte"; tempText = CStringUtils::string_format("Occupe par %s", callsign.c_str()); break; @@ -2704,6 +2708,7 @@ void CRepeaterHandler::ccsLinkMade(const std::string& callsign, DIRECTION direct text = CStringUtils::string_format("Linket til %s", callsign.c_str()); break; case TL_FRANCAIS: + case TL_FRANCAIS_2: text = CStringUtils::string_format("Connecte a %s", callsign.c_str()); break; case TL_ITALIANO: @@ -2769,6 +2774,7 @@ void CRepeaterHandler::ccsLinkEnded(const std::string&, DIRECTION direction) tempText = "CCS er afsluttet"; break; case TL_FRANCAIS: + case TL_FRANCAIS_2: text = "Non connecte"; tempText = "CCS a pris fin"; break; @@ -2848,6 +2854,7 @@ void CRepeaterHandler::ccsLinkFailed(const std::string& dtmf, DIRECTION directio tempText = CStringUtils::string_format("%s unknown", dtmf.c_str()); break; case TL_FRANCAIS: + case TL_FRANCAIS_2: text = "Non connecte"; tempText = CStringUtils::string_format("%s inconnu", dtmf.c_str()); break; diff --git a/DGWTimeServer/TimeServerConfig.cpp b/DGWTimeServer/TimeServerConfig.cpp index 0a2f170..53c3118 100644 --- a/DGWTimeServer/TimeServerConfig.cpp +++ b/DGWTimeServer/TimeServerConfig.cpp @@ -112,7 +112,7 @@ bool CTimeServerConfig::loadTimeServer(const CConfig & cfg) else if(format == "text") m_timeServer.format = FORMAT_TEXT_TIME; std::string lang; - ret = cfg.getValue("timeserver", "language", lang, "english_uk_1", {"english_uk_1", "english_uk_2", "english_us_1", "english_us_2", "deutsch_1", "deutsch_2", "francais", "nederlands", "svenska", "espanol", "norsk", "portugues"}) && ret;; + ret = cfg.getValue("timeserver", "language", lang, "english_uk_1", {"english_uk_1", "english_uk_2", "english_us_1", "english_us_2", "deutsch_1", "deutsch_2", "francais", "francais_2", "nederlands", "svenska", "espanol", "norsk", "portugues"}) && ret;; if (lang == "english_uk_1") m_timeServer.language = LANG_ENGLISH_UK_1; else if(lang == "english_uk_2") m_timeServer.language = LANG_ENGLISH_UK_2; else if(lang == "english_us_1") m_timeServer.language = LANG_ENGLISH_US_1; @@ -120,6 +120,7 @@ bool CTimeServerConfig::loadTimeServer(const CConfig & cfg) else if(lang == "deutsch_1" ) m_timeServer.language = LANG_DEUTSCH_1; else if(lang == "detusch_2" ) m_timeServer.language = LANG_DEUTSCH_2; else if(lang == "francais" ) m_timeServer.language = LANG_FRANCAIS; + else if(lang == "francais_2" ) m_timeServer.language = LANG_FRANCAIS_2; else if(lang == "nederlands" ) m_timeServer.language = LANG_NEDERLANDS; else if(lang == "svenska" ) m_timeServer.language = LANG_SVENSKA; else if(lang == "espanol" ) m_timeServer.language = LANG_ESPANOL; diff --git a/DGWTimeServer/TimeServerDefs.h b/DGWTimeServer/TimeServerDefs.h index b6910c2..b92433f 100644 --- a/DGWTimeServer/TimeServerDefs.h +++ b/DGWTimeServer/TimeServerDefs.h @@ -29,6 +29,7 @@ enum LANGUAGE { LANG_DEUTSCH_1, LANG_DEUTSCH_2, LANG_FRANCAIS, + LANG_FRANCAIS_2, LANG_NEDERLANDS, LANG_SVENSKA, LANG_ESPANOL, diff --git a/DGWTimeServer/TimeServerThread.cpp b/DGWTimeServer/TimeServerThread.cpp index e3f90ff..2530f6a 100644 --- a/DGWTimeServer/TimeServerThread.cpp +++ b/DGWTimeServer/TimeServerThread.cpp @@ -186,6 +186,7 @@ void CTimeServerThread::sendTime(unsigned int hour, unsigned int min) words = sendTimeDeDE2(hour, min); break; case LANG_FRANCAIS: + case LANG_FRANCAIS_2: words = sendTimeFrFR(hour, min); break; case LANG_NEDERLANDS: @@ -953,6 +954,10 @@ bool CTimeServerThread::loadAMBE() ambeFileName = "TIME_fr_FR.ambe"; indxFileName = "TIME_fr_FR.indx"; break; + case LANG_FRANCAIS_2: + ambeFileName = "TIME_fr_FR2.ambe"; + indxFileName = "TIME_fr_FR2.indx"; + break; case LANG_NEDERLANDS: ambeFileName = "TIME_nl_NL.ambe"; indxFileName = "TIME_nl_NL.indx"; @@ -1093,6 +1098,7 @@ bool CTimeServerThread::send(const std::vector &words, unsigned int slowData = CStringUtils::string_format(("Es ist %02u:%02u Uhr"), hour, min); break; case LANG_FRANCAIS: + case LANG_FRANCAIS_2: header.setMyCall2(("TIME")); slowData = CStringUtils::string_format(("Il est %02u:%02u"), hour, min); break; diff --git a/DGWTimeServer/example.cfg b/DGWTimeServer/example.cfg index 1274b63..2fedade 100644 --- a/DGWTimeServer/example.cfg +++ b/DGWTimeServer/example.cfg @@ -2,7 +2,7 @@ callsign= # call of the gateway to send time beacons without G letter address= # address of the gateway, defaults to 127.0.0.1 format= # possible values are voice, text, defaults to voice. note that voice also sends text along. -language= # valid values: english_uk_1, english_uk_2, english_us_1, english_us_2, deutsch_1, deutsch_2, francais, nederlands, svenska, espanol, norsk, portugues. Defaults to english_uk_1 +language= # valid values: english_uk_1, english_uk_2, english_us_1, english_us_2, deutsch, francais, francais_2, nederlands, svenska, espanol, norsk, portugues. Defaults to english_uk_1 interval= # valid values are 15, 30 and 60, defaults to 30 [Paths] diff --git a/DStarBase/AMBEFileReader.cpp b/DStarBase/AMBEFileReader.cpp index 119ea4a..349a811 100644 --- a/DStarBase/AMBEFileReader.cpp +++ b/DStarBase/AMBEFileReader.cpp @@ -141,7 +141,7 @@ bool CAMBEFileReader::readIndex() unsigned long start = std::stoul(strt); unsigned long length = std::stoul(leng); - if (start >= m_ambeLength || (start + length) >= m_ambeLength) + if (start >= m_ambeLength || (start + length) > m_ambeLength) CLog::logInfo("The start or end for *%s* is out of range, start: %lu, end: %lu\n", name.c_str(), start, start + length); else m_index[name] = new CIndexRecord(name, start + SILENCE_LENGTH, length); diff --git a/DStarGateway/DStarGatewayConfig.cpp b/DStarGateway/DStarGatewayConfig.cpp index b30bc71..2ca5a6b 100644 --- a/DStarGateway/DStarGatewayConfig.cpp +++ b/DStarGateway/DStarGatewayConfig.cpp @@ -348,12 +348,13 @@ bool CDStarGatewayConfig::loadGateway(const CConfig & cfg) std::string lang; ret = cfg.getValue("gateway", "language", lang, "english_uk", - {"english_uk", "deutsch", "dansk", "francais", "italiano", "polski", + {"english_uk", "deutsch", "dansk", "francais", "francais_2", "italiano", "polski", "english_us", "espanol", "svenska", "nederlands_nl", "nederlands_be", "norsk", "portugues"}) && ret;; if(lang == "english_uk") m_gateway.language = TL_ENGLISH_UK; else if(lang == "deutsch") m_gateway.language = TL_DEUTSCH; else if(lang == "dansk") m_gateway.language = TL_DANSK; else if(lang == "francais") m_gateway.language = TL_FRANCAIS; + else if(lang == "francais_2") m_gateway.language = TL_FRANCAIS_2; else if(lang == "italiano") m_gateway.language = TL_ITALIANO; else if(lang == "polski") m_gateway.language = TL_POLSKI; else if(lang == "english_us") m_gateway.language = TL_ENGLISH_US; diff --git a/Data/Makefile b/Data/Makefile index 24cddfd..36933d7 100644 --- a/Data/Makefile +++ b/Data/Makefile @@ -13,6 +13,8 @@ install: @install -g bin -o dstar -m 0664 TIME_en_US.indx $(DATA_DIR) @install -g bin -o dstar -m 0664 TIME_fr_FR.ambe $(DATA_DIR) @install -g bin -o dstar -m 0664 TIME_fr_FR.indx $(DATA_DIR) + @install -g bin -o dstar -m 0664 TIME_fr_FR2.ambe $(DATA_DIR) + @install -g bin -o dstar -m 0664 TIME_fr_FR2.indx $(DATA_DIR) @install -g bin -o dstar -m 0664 TIME_se_SE.ambe $(DATA_DIR) @install -g bin -o dstar -m 0664 TIME_se_SE.indx $(DATA_DIR) @install -g bin -o dstar -m 0664 de_DE.ambe $(DATA_DIR) @@ -27,6 +29,8 @@ install: @install -g bin -o dstar -m 0664 es_ES.indx $(DATA_DIR) @install -g bin -o dstar -m 0664 fr_FR.ambe $(DATA_DIR) @install -g bin -o dstar -m 0664 fr_FR.indx $(DATA_DIR) + @install -g bin -o dstar -m 0664 fr_FR2.ambe $(DATA_DIR) + @install -g bin -o dstar -m 0664 fr_FR2.indx $(DATA_DIR) @install -g bin -o dstar -m 0664 it_IT.ambe $(DATA_DIR) @install -g bin -o dstar -m 0664 it_IT.indx $(DATA_DIR) @install -g bin -o dstar -m 0664 no_NO.ambe $(DATA_DIR) diff --git a/Data/TIME_fr_FR.ambe b/Data/TIME_fr_FR.ambe index 9cda77e..6c4cc03 100644 Binary files a/Data/TIME_fr_FR.ambe and b/Data/TIME_fr_FR.ambe differ diff --git a/Data/TIME_fr_FR.indx b/Data/TIME_fr_FR.indx index 085f7c8..4118ce5 100644 --- a/Data/TIME_fr_FR.indx +++ b/Data/TIME_fr_FR.indx @@ -1,20 +1,20 @@ -bonjour 0 79 -cinq 80 48 -deux 129 42 -dix 172 55 -et_demie 228 69 -et_quart 298 71 -heure 370 64 -heures 435 64 -huit 500 47 -il_est 548 58 -midi 607 73 -minuit 681 68 -moins_le_quart 750 89 -neuf 840 46 -onze 887 65 -quatre 953 45 -sept 999 49 -six 1049 53 -trois 1103 43 -une 1147 72 +bonjour 0 70 +cinq 70 53 +deux 123 45 +dix 168 50 +et_demie 218 53 +et_quart 271 54 +heure 325 45 +heures 370 45 +huit 415 46 +il_est 461 47 +midi 508 53 +minuit 561 53 +moins_le_quart 614 69 +neuf 683 51 +onze 734 46 +quatre 780 48 +sept 828 49 +six 877 50 +trois 927 45 +une 972 46 diff --git a/Data/TIME_fr_FR.tts.txt b/Data/TIME_fr_FR.tts.txt new file mode 100644 index 0000000..fc0aa8a --- /dev/null +++ b/Data/TIME_fr_FR.tts.txt @@ -0,0 +1,20 @@ +bonjour ... +cinq ... +deux ... +dix ... +et demie ... +et quart ... +heure ... +heures ... +huit ... +il est ... +midi ... +minuit ... +moins le quart ... +neuf ... +onze ... +quatre ... +sept ... +six ... +trois ... +une ... \ No newline at end of file diff --git a/Data/TIME_fr_FR2.ambe b/Data/TIME_fr_FR2.ambe new file mode 100644 index 0000000..d5e5c9f Binary files /dev/null and b/Data/TIME_fr_FR2.ambe differ diff --git a/Data/TIME_fr_FR2.indx b/Data/TIME_fr_FR2.indx new file mode 100644 index 0000000..bcda9b6 --- /dev/null +++ b/Data/TIME_fr_FR2.indx @@ -0,0 +1,20 @@ +bonjour 0 69 +cinq 69 53 +deux 122 46 +dix 168 53 +et_demie 221 52 +et_quart 273 57 +heure 330 49 +heures 379 48 +huit 427 49 +il_est 476 45 +midi 521 53 +minuit 574 54 +moins_le_quart 628 70 +neuf 698 53 +onze 751 50 +quatre 801 48 +sept 849 48 +six 897 53 +trois 950 44 +une 994 47 diff --git a/Data/fr_FR.ambe b/Data/fr_FR.ambe index c81d063..1e1f159 100644 Binary files a/Data/fr_FR.ambe and b/Data/fr_FR.ambe differ diff --git a/Data/fr_FR.indx b/Data/fr_FR.indx index f67b54a..1ac82fd 100644 --- a/Data/fr_FR.indx +++ b/Data/fr_FR.indx @@ -1,44 +1,44 @@ -0 94 29 -1 140 16 -2 173 20 -3 215 19 -4 255 24 -5 298 29 -6 344 34 -7 398 25 -8 440 24 -9 481 23 -alpha 521 29 -bravo 568 27 -charlie 615 30 -delta 666 30 -A 714 21 -B 753 27 -C 796 34 -D 848 30 -E 895 23 -F 936 27 -G 982 27 -H 1026 30 -I 1075 20 -J 1113 29 -K 1162 22 -L 1201 28 -M 1248 28 -N 1295 28 -O 1341 23 -P 1386 21 -Q 1426 23 -R 1466 28 -S 1511 31 -T 1567 21 -U 1606 22 -V 1646 30 -W 1693 46 -X 1756 31 -Y 1806 21 -Z 1844 14 -linkedto 1858 35 -notlinked 1941 46 -linkingto 2008 38 -isbusy 2091 47 +0 0 58 +1 58 44 +2 102 45 +3 147 44 +4 191 49 +5 240 53 +6 293 54 +7 347 49 +8 396 47 +9 443 52 +alpha 495 54 +bravo 549 52 +charlie 601 55 +delta 656 53 +A 709 41 +B 750 52 +C 802 53 +D 855 51 +E 906 45 +F 951 48 +G 999 56 +H 1055 52 +I 1107 46 +J 1153 45 +K 1198 41 +L 1239 47 +M 1286 49 +N 1335 46 +O 1381 46 +P 1427 46 +Q 1473 43 +R 1516 51 +S 1567 48 +T 1615 47 +U 1662 46 +V 1708 54 +W 1762 65 +X 1827 49 +Y 1876 55 +Z 1931 51 +linkedto 1982 65 +notlinked 2047 65 +linkingto 2112 97 +isbusy 2209 58 diff --git a/Data/fr_FR.tts.txt b/Data/fr_FR.tts.txt new file mode 100644 index 0000000..1250107 --- /dev/null +++ b/Data/fr_FR.tts.txt @@ -0,0 +1,44 @@ +0 ... +1 ... +2 ... +3 ... +4 ... +5 ... +6 ... +7 ... +8 ... +9 ... +alpha ... +bravo. ... +charlie ... +delta ... +haa ... +Béé ... +Céé ... +Déé ... +Ee ... +aiffe ... +Géé ... +H ... +iii ... +j ... +Ka ... +aile ... +aimme ... +ainne ... +Oo ... +Péé ... +Kuu ... +air ... +S ... +Téé ... +Uu ... +Véé ... +double véé ... +X ... +i Grec ... +Zed ... +Connecté à ... +Non connecté. ... +Tentative de connexion à ... +Est occupé ... diff --git a/Data/fr_FR2.ambe b/Data/fr_FR2.ambe new file mode 100644 index 0000000..c81d063 Binary files /dev/null and b/Data/fr_FR2.ambe differ diff --git a/Data/fr_FR2.indx b/Data/fr_FR2.indx new file mode 100644 index 0000000..4f642ae --- /dev/null +++ b/Data/fr_FR2.indx @@ -0,0 +1,44 @@ +0 94 29 +1 140 16 +2 173 20 +3 215 19 +4 255 24 +5 298 29 +6 344 34 +7 398 25 +8 440 24 +9 481 23 +alpha 521 29 +bravo 568 27 +charlie 615 30 +delta 666 30 +A 714 21 +B 753 27 +C 796 34 +D 848 30 +E 895 23 +F 936 27 +G 982 27 +H 1026 30 +I 1075 20 +J 1113 29 +K 1162 22 +L 1201 28 +M 1248 28 +N 1295 28 +O 1341 23 +P 1386 21 +Q 1426 23 +R 1466 28 +S 1511 31 +T 1567 21 +U 1606 22 +V 1646 30 +W 1693 46 +X 1756 31 +Y 1806 21 +Z 1844 14 +linkedto 1858 35 +notlinked 1941 46 +linkingto 2008 38 +isbusy 2091 47 diff --git a/README.md b/README.md index acb2f03..3ed7adb 100644 --- a/README.md +++ b/README.md @@ -159,6 +159,8 @@ The testing framwework used is Google Test. # 6. Version History ## 6.1. Version 1.0 - [**Bugfix**] Fix decoding of DTMF commands with leading 0 ([#61](https://github.com/F4FXL/DStarGateway/issues/61)) +- [**Improvement**] Add second French voice ([#60](https://github.com/F4FXL/DStarGateway/issues/60)) +- [**Improvement**] Clarify French "Linking to" announcement ([#60](https://github.com/F4FXL/DStarGateway/issues/60)) - [**Improvement**] Improve threading handling ([#58](https://github.com/F4FXL/DStarGateway/issues/58)) - [**Improvement**] Add Add an option to disable logging of ircddb traffic ([#59](https://github.com/F4FXL/DStarGateway/issues/59)) - [**Bugfix**] Fix repeater not reverting to startup reflector after issueing a command through remote control. ([#57](https://github.com/F4FXL/DStarGateway/issues/57)) diff --git a/Tests/AMBEFileReader/TIME_fr_FR2.ambe b/Tests/AMBEFileReader/TIME_fr_FR2.ambe new file mode 100644 index 0000000..6239b56 Binary files /dev/null and b/Tests/AMBEFileReader/TIME_fr_FR2.ambe differ diff --git a/Tests/AMBEFileReader/TIME_fr_FR2.indx b/Tests/AMBEFileReader/TIME_fr_FR2.indx new file mode 100644 index 0000000..dd43877 --- /dev/null +++ b/Tests/AMBEFileReader/TIME_fr_FR2.indx @@ -0,0 +1,20 @@ +bonjour 0 66 +cinq 66 50 +deux 116 43 +dix 159 53 +et_demie 212 52 +et_quart 264 53 +heure 317 44 +heures 361 44 +huit 405 49 +il_est 454 44 +midi 498 50 +minuit 548 50 +moins_le_quart 598 64 +neuf 662 51 +onze 713 47 +quatre 760 49 +sept 809 46 +six 855 52 +trois 907 41 +une 948 45 diff --git a/Tests/AMBEFileReader/lookup.cpp b/Tests/AMBEFileReader/lookup.cpp index 9f75475..6fcdd27 100644 --- a/Tests/AMBEFileReader/lookup.cpp +++ b/Tests/AMBEFileReader/lookup.cpp @@ -71,30 +71,47 @@ namespace AMBEFileReaderTests std::vector data; res = reader.lookup("0", data); EXPECT_FALSE(res) << "read shall return false on non existent file"; - - for(auto d : data) { - delete d; - } + for(auto d : data) delete d; } - TEST_F(AMBEFileReader_lookup, validId) + class AMBEFileReader_lookup_Param : public ::testing::TestWithParam {}; + TEST_P(AMBEFileReader_lookup_Param, validId) { - std::string indexFile = std::string(std::filesystem::current_path()) + "/AMBEFileReader/fr_FR.indx"; - std::string ambeFile = std::string(std::filesystem::current_path()) + "/AMBEFileReader/fr_FR.ambe"; + std::string indexFile = (std::filesystem::current_path() / "AMBEFileReader/TIME_fr_FR2.indx").string(); + std::string ambeFile = (std::filesystem::current_path() / "AMBEFileReader/TIME_fr_FR2.ambe").string(); + CAMBEFileReader reader(indexFile, ambeFile); bool res = reader.read(); - EXPECT_TRUE(res) << "read shall return true on existent files"; + ASSERT_TRUE(res) << "read shall return true on existent files"; - std::vector data; - res = reader.lookup("0", data); - EXPECT_TRUE(res) << "read shall return true on existent files and valid Id"; - EXPECT_NE(data.size(), 0U) << "Vector shall contain data"; + std::vector data; + const std::string& id = GetParam(); - for(auto d : data) { - delete d; - } + res = reader.lookup(id, data); + EXPECT_TRUE(res) << "lookup shall return true on valid Id: " << id; + EXPECT_NE(data.size(), 0U) << "Vector shall contain data for Id: " << id; + + for (auto* d : data) delete d; } + static std::string ParamName( + const ::testing::TestParamInfo& info) + { + return info.param; + } + + INSTANTIATE_TEST_SUITE_P( + AmbeFileReader_lookup_validIds, + AMBEFileReader_lookup_Param, + ::testing::Values( + "bonjour", "cinq", "deux", "dix", "et_demie", "et_quart", + "heure", "heures", "huit", "il_est", "midi", "minuit", + "moins_le_quart", "neuf", "onze", "quatre", "sept", + "six", "trois", "une" + ), + ParamName + ); + TEST_F(AMBEFileReader_lookup, invalidId) { std::string indexFile = std::string(std::filesystem::current_path()) + "/AMBEFileReader/fr_FR.indx";