static void Main(string[] args) { var repo = new WordProvider(); repo.LoadAll("./condenced3.tsv"); var decoder = new AnagramDecoder <WordNode>(repo.Exhibit(), x => x.Kana); Stopwatch stopwatch = new Stopwatch(); while (true) { Console.Write("文章を入力(空値入力で終了) >> "); var accepted = Console.ReadLine(); if (accepted.Length == 0) { break; } stopwatch.Start(); var result = decoder.Analyze(accepted); var count = 0; foreach (var set in result.AsParallel()) { Console.WriteLine(string.Join(" + ", set.Select(x => x.Surface))); count++; } Console.WriteLine($"{count} 件見つかりました。({stopwatch.Elapsed.TotalMilliseconds:0.000} ms)\n"); stopwatch.Reset(); } Console.WriteLine("プログラムを終了"); }
public void UseCase_解1_単語10万() { var decoder = new AnagramDecoder <string>(this.HundredThousandHanshin(), x => x); var result = decoder.Analyze("せいぶちくいつもだね"); Assert.AreEqual(10000, result.Count()); }
static void Main(string[] args) { var repo = new StationRepository(); var decoder = new AnagramDecoder <StationModel>(repo.LoadAll(), x => x.Ruby); Stopwatch stopwatch = new Stopwatch(); while (true) { Console.Write("文章を入力(空値入力で終了) >> "); var accepted = Console.ReadLine(); if (accepted.Length == 0) { break; } stopwatch.Start(); var result = decoder.Analyze(accepted); var count = 0; foreach (var set in result.AsParallel()) { Console.WriteLine(string.Join(" + ", set.Select(x => x.Name))); count++; } Console.WriteLine($"{count} 件見つかりました。({stopwatch.Elapsed.TotalMilliseconds:0.000} ms)\n"); stopwatch.Reset(); } Console.WriteLine("プログラムを終了"); }
public void UseCase_解1_単語3() { var decoder = new AnagramDecoder <string>(new[] { "みしま", "かんなみ", "あたみ" }, x => x); var result = decoder.Analyze("みなみんみましたかあ"); Assert.AreEqual(1, result.Count()); }
public void Method_AddWord_追加後ヒットしない() { var decoder = new AnagramDecoder <string>(new[] { "あお" }, x => x); var result = decoder.Analyze("おあふ"); Assert.AreEqual(0, result.Count()); }
public void UseCase_解2_単語3() { var decoder = new AnagramDecoder <string>(new[] { "あおつ", "あお", "つ" }, x => x); var result = decoder.Analyze("あおつ"); Assert.AreEqual(2, result.Count()); Assert.IsTrue(result.Any(x => x.Count() == 1 && x.Contains("あおつ"))); Assert.IsTrue(result.Any(x => x.Count() == 2 && x.Contains("あお") && x.Contains("つ"))); }
public void Method_AddWord_追加後ヒットする() { var decoder = new AnagramDecoder <string>(new[] { "あお" }, x => x); var result = decoder.Analyze("おあ"); Assert.AreEqual(1, result.Count()); Assert.AreEqual(1, result.First().Count()); Assert.AreEqual("あお", result.First().First()); }