コード例 #1
0
ファイル: PlayerTest.cs プロジェクト: ushibutatory/fizzbuzz
        public void ConvertText_Fool(BigInteger n, string expected)
        {
            var player = new Player.Builder()
                         .AutoBuild();

            var actual = player.Answer(n);

            Assert.Equal(expected, actual.ConvertedText);
        }
コード例 #2
0
ファイル: PlayerTest.cs プロジェクト: ushibutatory/fizzbuzz
        public void JudgeState(int n, IState expected)
        {
            var player = new Player.Builder()
                         .AutoBuild();

            var actual = player.JudgeState(n);

            Assert.True(expected.GetType() == actual.GetType());
        }
コード例 #3
0
ファイル: PlayerTest.cs プロジェクト: ushibutatory/fizzbuzz
        public void PlainPlayer()
        {
            var player = new Player.Builder()
                         .AddState(State.Default)
                         .Build();

            var results = Enumerable.Range(1, 100).Select(n => player.Answer(n));

            Assert.Empty(results.Where(result => result.OriginalValue.ToString() != result.ConvertedText));
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: ushibutatory/fizzbuzz
        private static int Main(string[] args)
        {
            var app = new CommandLineApplication(throwOnUnexpectedArg: false)
            {
                Name        = "NabeAtsu.App",
                Description = "NabeAtsu Application by .NET Core.",
            };

            // help
            const string helpOption = "-?|-h|--help";

            app.HelpOption(template: helpOption);

            app.Command("run", (command) =>
            {
                command.Description = "実行します。";
                command.HelpOption(helpOption);

                var start = command.Argument("start", "開始する数値");
                var count = command.Argument("count", "数える数");

                command.OnExecute(() =>
                {
                    if (!BigInteger.TryParse(start.Value, out var startValue))
                    {
                        return(command.Execute("-h"));
                    }
                    if (!BigInteger.TryParse(count.Value, out var countValue))
                    {
                        return(command.Execute("-h"));
                    }

                    var endValue = startValue + countValue;

                    // プレイヤーを生成
                    var player = new Player.Builder()
                                 .AutoBuild();

                    var results = player.Answer(startValue, countValue);

                    Console.WriteLine(string.Join(Environment.NewLine, results.Select(result => result.ConvertedText)));

                    return(0);
                });
            });

            app.OnExecute(() =>
            {
                // 引数なしで実行された場合はヘルプ表示
                return(app.Execute("-h"));
            });

            return(app.Execute(args));
        }
コード例 #5
0
        public IActionResult Submit(IndexViewModel form)
        {
            var player = new Player.Builder()
                         .AutoBuild();

            var results = player.Answer(form.Start, form.Count);

            return(View("Index", new IndexViewModel
            {
                AppSettings = _appSettings,
                Start = form.Start,
                Count = form.Count,
                Results = results,
            }));
        }