Skip to content

Commit

Permalink
Merge pull request #1920 from berryzplus/feature/add_monospace_test
Browse files Browse the repository at this point in the history
全角幅が半角幅の2倍にならない場合の補正機能をテストするコードの追加
  • Loading branch information
berryzplus committed Jun 8, 2023
2 parents 9e8fa57 + 321623f commit 42b5fc4
Showing 1 changed file with 36 additions and 0 deletions.
36 changes: 36 additions & 0 deletions tests/unittests/test-charcode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,12 @@ class CharWidthCache : public testing::Test {
lf2 = LOGFONT();
lf2.lfCharSet = DEFAULT_CHARSET;
std::wcscpy(lf2.lfFaceName, L"Meiryo");
lf3 = LOGFONT();
lf3.lfCharSet = DEFAULT_CHARSET;
std::wcscpy(lf3.lfFaceName, L"MS Gothic"); // UD デジタル 教科書体 N-B
lf3.lfPitchAndFamily = FIXED_PITCH;
lf3.lfHeight = 10;
lf3.lfWeight = FW_BOLD;

dc = GetDC(nullptr);
font = CreateFontIndirect(&lf1);
Expand All @@ -53,6 +59,7 @@ class CharWidthCache : public testing::Test {

LOGFONT lf1;
LOGFONT lf2;
LOGFONT lf3;
HDC dc;
HFONT font;
HFONT oldFont;
Expand Down Expand Up @@ -158,6 +165,35 @@ TEST_F(CharWidthCache, CalcPxWidthByFont2)
EXPECT_EQ(cache.CalcPxWidthByFont2(L"\xd83c\xdf38"), size.cx);
}

TEST_F(CharWidthCache, CalcPxWidthByFont3)
{
// フォントを作り直して設定する
SelectObject(dc, oldFont);
font = CreateFontIndirect(&lf3);
oldFont = static_cast<HFONT>(SelectObject(dc, font));

// 半角×2≠全角となることを確認する
SIZE size = {};
GetTextExtentPoint32(dc, L"a", 1, &size);
EXPECT_EQ(6, size.cx);
GetTextExtentPoint32(dc, L"", 1, &size);
EXPECT_EQ(11, size.cx);

// フォントを元に戻しておく
font = static_cast<HFONT>(SelectObject(dc, oldFont));
DeleteObject(font);

SelectCharWidthCache(CWM_FONT_EDIT, CWM_CACHE_LOCAL);
InitCharWidthCache(lf3);
CCharWidthCache& cache = GetCharWidthCache();

// 半角×2=全角となることを確認する
constexpr auto halfWidth = 6;
constexpr auto fullWidth = halfWidth * 2;
EXPECT_EQ(cache.CalcPxWidthByFont(L'a'), halfWidth);
EXPECT_EQ(cache.CalcPxWidthByFont(L''), fullWidth);
}

TEST_F(CharWidthCache, FontNo)
{
// 文字幅キャッシュには半角と全角とで異なるフォントを指定することができる。
Expand Down

0 comments on commit 42b5fc4

Please sign in to comment.