Exemplo n.º 1
0
        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("プログラムを終了");
        }
Exemplo n.º 2
0
        public void UseCase_解1_単語10万()
        {
            var decoder = new AnagramDecoder <string>(this.HundredThousandHanshin(), x => x);
            var result  = decoder.Analyze("せいぶちくいつもだね");

            Assert.AreEqual(10000, result.Count());
        }
Exemplo n.º 3
0
        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("プログラムを終了");
        }
Exemplo n.º 4
0
        public void UseCase_解1_単語3()
        {
            var decoder = new AnagramDecoder <string>(new[] { "みしま", "かんなみ", "あたみ" }, x => x);

            var result = decoder.Analyze("みなみんみましたかあ");

            Assert.AreEqual(1, result.Count());
        }
Exemplo n.º 5
0
        public void Method_AddWord_追加後ヒットしない()
        {
            var decoder = new AnagramDecoder <string>(new[] { "あお" }, x => x);

            var result = decoder.Analyze("おあふ");

            Assert.AreEqual(0, result.Count());
        }
Exemplo n.º 6
0
        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("つ")));
        }
Exemplo n.º 7
0
        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());
        }