Example #1
0
        private async Task Start()
        {
            Console.WriteLine("Starting session...");

            using (IAkinatorClient client = new AkinatorClient(Language.German, ServerType.Person))
            {
                var question = await client.StartNewGame();

                var answer = GetAnswerFor(question);
                do
                {
                    question = await client.Answer(answer);

                    if (client.GuessIsDue(question))
                    {
                        var guess = await client.GetGuess();

                        if (VerifyGuess(guess))
                        {
                            break;
                        }
                    }

                    answer = GetAnswerFor(question);
                } while (true);
            }

            Console.WriteLine("Ending session...");
            Console.ReadLine();
        }
        public async Task SimpleWorkflowTest_English_Object()
        {
            using (IAkinatorClient client = new AkinatorClient(Language.English, ServerType.Animal))
            {
                var question = await client.StartNewGame();

                while (true)
                {
                    var nextQuestion = await client.Answer(AnswerOptions.Yes);

                    if (!client.GuessIsDue(nextQuestion))
                    {
                        continue;
                    }

                    var guess = await client.GetGuess();

                    if (!guess.Any())
                    {
                        Assert.Fail("No guess was found");
                    }
                    else
                    {
                        break;
                    }
                }
            }
        }
Example #3
0
        public async Task SimpleWorkflowTest_AllLanguages()
        {
            var stopwatch = new Stopwatch();

            stopwatch.Start();

            var allLanguages = Enum.GetValues(typeof(Language)).Cast <Language>();
            var tasks        = allLanguages.AsParallel().Select(async language =>
            {
                var elapsedLanguage = stopwatch.ElapsedMilliseconds;
                var servers         = await m_serverLocator.SearchAllAsync(language).ConfigureAwait(false);
                foreach (var server in servers)
                {
                    try
                    {
                        Console.WriteLine($"Testing - Language {language}, Type {server.ServerType} - STARTED");
                        using IAkinatorClient client = new AkinatorClient(server);
                        await client.StartNewGame();
                        while (true)
                        {
                            var _ = await client.Answer(AnswerOptions.Yes).ConfigureAwait(false);
                            if (!client.GuessIsDue())
                            {
                                continue;
                            }

                            var guess = await client.GetGuess().ConfigureAwait(false);
                            if (!guess.Any())
                            {
                                Assert.Fail("No guess was found");
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        Assert.Fail(e.ToString());
                    }
                    finally
                    {
                        Console.WriteLine($"Testing - Language {language}, Type {server.ServerType} - DONE");
                    }
                }

                elapsedLanguage = stopwatch.ElapsedMilliseconds - elapsedLanguage;
                Console.WriteLine($"Took: {elapsedLanguage}ms");
            });

            await Task.WhenAll(tasks);

            Console.WriteLine($"Test done. Took {stopwatch.Elapsed.TotalSeconds}s.");
        }