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; } } } }
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."); }