127 lines
4.1 KiB
C#
127 lines
4.1 KiB
C#
using MaigoLabs.NeedLe.Common;
|
||
|
||
namespace MaigoLabs.NeedLe.Tests.Common;
|
||
|
||
#region ToKatakana
|
||
|
||
public sealed class ToKatakana_ConvertsHiraganaToKatakanaTest : NeedleTestBase
|
||
{
|
||
[Fact]
|
||
public void Execute()
|
||
{
|
||
Assert.Equal("アイウエオ", CommonNormalization.ToKatakana("あいうえお"));
|
||
Assert.Equal("カキクケコ", CommonNormalization.ToKatakana("かきくけこ"));
|
||
Assert.Equal("サシスセソ", CommonNormalization.ToKatakana("さしすせそ"));
|
||
}
|
||
}
|
||
|
||
public sealed class ToKatakana_KeepsKatakanaUnchangedTest : NeedleTestBase
|
||
{
|
||
[Fact]
|
||
public void Execute()
|
||
{
|
||
Assert.Equal("アイウエオ", CommonNormalization.ToKatakana("アイウエオ"));
|
||
}
|
||
}
|
||
|
||
public sealed class ToKatakana_KeepsNonKanaUnchangedTest : NeedleTestBase
|
||
{
|
||
[Fact]
|
||
public void Execute()
|
||
{
|
||
Assert.Equal("abc123", CommonNormalization.ToKatakana("abc123"));
|
||
Assert.Equal("漢字", CommonNormalization.ToKatakana("漢字"));
|
||
}
|
||
}
|
||
|
||
public sealed class ToKatakana_HandlesMixedInputTest : NeedleTestBase
|
||
{
|
||
[Fact]
|
||
public void Execute()
|
||
{
|
||
Assert.Equal("アアa漢", CommonNormalization.ToKatakana("あアa漢"));
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region NormalizeCodePoint
|
||
|
||
public sealed class NormalizeCodePoint_ConvertsFullwidthAsciiToHalfwidthLowercaseTest : NeedleTestBase
|
||
{
|
||
[Fact]
|
||
public void Execute()
|
||
{
|
||
Assert.Equal('a', CommonNormalization.NormalizeCodePoint('A'));
|
||
Assert.Equal('b', CommonNormalization.NormalizeCodePoint('B'));
|
||
Assert.Equal('c', CommonNormalization.NormalizeCodePoint('C'));
|
||
Assert.Equal('1', CommonNormalization.NormalizeCodePoint('1'));
|
||
Assert.Equal('2', CommonNormalization.NormalizeCodePoint('2'));
|
||
Assert.Equal('3', CommonNormalization.NormalizeCodePoint('3'));
|
||
Assert.Equal('!', CommonNormalization.NormalizeCodePoint('!'));
|
||
}
|
||
}
|
||
|
||
public sealed class NormalizeCodePoint_ConvertsFullwidthSpaceToHalfwidthTest : NeedleTestBase
|
||
{
|
||
[Fact]
|
||
public void Execute()
|
||
{
|
||
Assert.Equal(' ', CommonNormalization.NormalizeCodePoint(' '));
|
||
}
|
||
}
|
||
|
||
public sealed class NormalizeCodePoint_ConvertsHalfwidthKanaToFullwidthTest : NeedleTestBase
|
||
{
|
||
[Fact]
|
||
public void Execute()
|
||
{
|
||
Assert.Equal('ア', CommonNormalization.NormalizeCodePoint('ア'));
|
||
Assert.Equal('イ', CommonNormalization.NormalizeCodePoint('イ'));
|
||
Assert.Equal('ウ', CommonNormalization.NormalizeCodePoint('ウ'));
|
||
Assert.Equal('エ', CommonNormalization.NormalizeCodePoint('エ'));
|
||
Assert.Equal('オ', CommonNormalization.NormalizeCodePoint('オ'));
|
||
Assert.Equal('カ', CommonNormalization.NormalizeCodePoint('カ'));
|
||
}
|
||
}
|
||
|
||
public sealed class NormalizeCodePoint_NormalizesVoicedSoundMarksTest : NeedleTestBase
|
||
{
|
||
[Fact]
|
||
public void Execute()
|
||
{
|
||
Assert.Equal(0x3099, CommonNormalization.NormalizeCodePoint('゙')); // halfwidth voiced -> combining
|
||
Assert.Equal(0x309A, CommonNormalization.NormalizeCodePoint('゚')); // halfwidth semi-voiced -> combining
|
||
Assert.Equal(0x3099, CommonNormalization.NormalizeCodePoint('゛')); // fullwidth voiced -> combining
|
||
Assert.Equal(0x309A, CommonNormalization.NormalizeCodePoint('゜')); // fullwidth semi-voiced -> combining
|
||
}
|
||
}
|
||
|
||
public sealed class NormalizeCodePoint_ConvertsHalfwidthPunctuationToFullwidthTest : NeedleTestBase
|
||
{
|
||
[Fact]
|
||
public void Execute()
|
||
{
|
||
Assert.Equal('。', CommonNormalization.NormalizeCodePoint('。'));
|
||
Assert.Equal('「', CommonNormalization.NormalizeCodePoint('「'));
|
||
Assert.Equal('」', CommonNormalization.NormalizeCodePoint('」'));
|
||
Assert.Equal('、', CommonNormalization.NormalizeCodePoint('、'));
|
||
Assert.Equal('・', CommonNormalization.NormalizeCodePoint('・'));
|
||
}
|
||
}
|
||
|
||
public sealed class NormalizeCodePoint_LowercasesRegularAsciiTest : NeedleTestBase
|
||
{
|
||
[Fact]
|
||
public void Execute()
|
||
{
|
||
Assert.Equal('a', CommonNormalization.NormalizeCodePoint('A'));
|
||
Assert.Equal('b', CommonNormalization.NormalizeCodePoint('B'));
|
||
Assert.Equal('c', CommonNormalization.NormalizeCodePoint('C'));
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
|