public void Gimei_NewNameメソッドについて_100回連続で呼び出すと男性名と女性名がそれぞれ1個以上_計100個返ってくること() { var counter = new Dictionary <GenderIdentity, int> { { GenderIdentity.Male, 0 }, { GenderIdentity.Female, 0 } }; for (var i = 0; i < 100; i++) { var target = Gimei.NewName(); counter[target.Gender]++; } Assert.GreaterOrEqual(counter[GenderIdentity.Male], 1); Assert.GreaterOrEqual(counter[GenderIdentity.Female], 1); Assert.AreEqual(100, counter[GenderIdentity.Male] + counter[GenderIdentity.Female]); }
public void Gimei_NewNameメソッドについて_100回連続で呼び出しても_KanjiプロパティはBMPの全角文字列とスペース_Hiraganaプロパティはひらがなとスペース_Katakanaプロパティはカタカナとスペースを返すこと() { // 埋め込まれたデータはBMP内の文字しかないという想定 const string kanjiPattern = "^[" + @" " + @"\p{IsCJKRadicalsSupplement}" + @"\p{IsCJKSymbolsandPunctuation}" + @"\p{IsHiragana}" + @"\p{IsKatakana}" + @"\p{IsCJKUnifiedIdeographsExtensionA}" + @"\p{IsCJKUnifiedIdeographs}" + @"\p{IsCJKCompatibilityIdeographs}" + "]+$"; for (var i = 0; i < 100; i++) { var target = Gimei.NewName(); Assert.True(Regex.IsMatch(target.Kanji, kanjiPattern), target.Kanji); Assert.True(Regex.IsMatch(target.Hiragana, @"^[ \p{IsHiragana}]+$"), target.Hiragana); Assert.True(Regex.IsMatch(target.Katakana, @"^[ \p{IsKatakana}]+$"), target.Katakana); } }