[+] Add initial locale tests
This commit is contained in:
parent
0b8362a90d
commit
2ca710f145
@ -1 +1 @@
|
|||||||
Subproject commit 9e26996463b70f00bcdfa7e8439a8012c237683c
|
Subproject commit ef04d2bac3e2644d86ae707c877381aa55e05781
|
80
Tests/Public/8. Hello Locale/Main.cpp
Normal file
80
Tests/Public/8. Hello Locale/Main.cpp
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
/***
|
||||||
|
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
|
||||||
|
|
||||||
|
File: Main.cpp
|
||||||
|
Date: 2022-2-18
|
||||||
|
Author: Reece
|
||||||
|
***/
|
||||||
|
#include <AuroraRuntime.hpp>
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
|
static void PrintLocale()
|
||||||
|
{
|
||||||
|
auto locale = AuLocale::GetLocale();
|
||||||
|
AuLogInfo("Localization information...");
|
||||||
|
AuLogInfo("language: {}, country : {}, codeset : {})", locale.language, locale.country, locale.codeset);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(TranslateEncoding, utf16to8)
|
||||||
|
{
|
||||||
|
AuString outUTF8;
|
||||||
|
static const unsigned char rawData[]
|
||||||
|
{
|
||||||
|
0x3D, 0xD8, 0x02, 0xDC
|
||||||
|
};
|
||||||
|
|
||||||
|
auto readWrittenPair = AuLocale::Encoding::DecodeUTF8(AuMemory::MemoryViewRead(rawData), outUTF8, AuLocale::ECodePage::eUTF16);
|
||||||
|
ASSERT_EQ(readWrittenPair.second, 4);
|
||||||
|
ASSERT_EQ(readWrittenPair.first, 4);
|
||||||
|
|
||||||
|
static const unsigned char rawDataUtf8[]
|
||||||
|
{
|
||||||
|
0xF0, 0x9F, 0x90, 0x82
|
||||||
|
};
|
||||||
|
ASSERT_EQ(outUTF8, AuString(rawDataUtf8, rawDataUtf8 + AuArraySize(rawDataUtf8)));
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(TranslateEncoding, jptoutf8)
|
||||||
|
{
|
||||||
|
static const unsigned char rawData[14] = {
|
||||||
|
0x82, 0xB1, 0x82, 0xF1, 0x82, 0xC9, 0x82, 0xBF, 0x82, 0xCD, 0x90, 0xA2,
|
||||||
|
0x8A, 0x45
|
||||||
|
};
|
||||||
|
|
||||||
|
auto readWrittenPair = AuLocale::Encoding::DecodeUTF8(AuMemory::MemoryViewRead(rawData), {}, AuLocale::ECodePage::eSJIS);
|
||||||
|
ASSERT_EQ(readWrittenPair.second, 0x15);
|
||||||
|
|
||||||
|
static const unsigned char referenceUtf8[21]
|
||||||
|
{
|
||||||
|
0xE3, 0x81, 0x93, 0xE3, 0x82, 0x93, 0xE3, 0x81, 0xAB, 0xE3, 0x81, 0xA1,
|
||||||
|
0xE3, 0x81, 0xAF, 0xE4, 0xB8, 0x96, 0xE7, 0x95, 0x8C
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned char decodedUtf8[21] = {};
|
||||||
|
AuLocale::Encoding::DecodeUTF8(AuMemory::MemoryViewRead(rawData), AuMemory::MemoryViewWrite(decodedUtf8), AuLocale::ECodePage::eSJIS);
|
||||||
|
|
||||||
|
ASSERT_EQ(AuString(decodedUtf8, decodedUtf8 + AuArraySize(decodedUtf8)), AuString(referenceUtf8, referenceUtf8 + AuArraySize(referenceUtf8)));
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(TranslateEncoding, jpstreamingbuffered)
|
||||||
|
{
|
||||||
|
static const unsigned char rawData[]
|
||||||
|
{
|
||||||
|
0x82, 0xB1, 0x82, 0xF1, 0x82, 0xC9, 0x82, 0xBF, 0x82, 0xCD, 0x90, 0xA2,
|
||||||
|
0x8A
|
||||||
|
};
|
||||||
|
|
||||||
|
auto readWrittenPair = AuLocale::Encoding::DecodeUTF8(AuMemory::MemoryViewRead(rawData), {}, AuLocale::ECodePage::eSJIS);
|
||||||
|
ASSERT_EQ(readWrittenPair.second, 0x12);
|
||||||
|
ASSERT_EQ(readWrittenPair.first, 0xc);
|
||||||
|
}
|
||||||
|
|
||||||
|
void RunTests()
|
||||||
|
{
|
||||||
|
Aurora::RuntimeStartInfo info;
|
||||||
|
info.console.fio.enableLogging = false;
|
||||||
|
info.console.forceToolKitWindow = false;
|
||||||
|
Aurora::RuntimeStart(info);
|
||||||
|
|
||||||
|
PrintLocale();
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user