public void TestPunHelper(string theme, PunCategory category) { var synSets = WordNetEngine.GetSynSets(theme).ToList(); var puns = PunHelper.GetPuns( category, theme, synSets, WordNetEngine, PronunciationEngine, SpellingEngine, PunStrategyFactory.AllFactories ) .ToList(); puns.Should().HaveCountGreaterThan(2); TestOutputHelper.WriteLine(puns.Count + " puns"); foreach (var(newPhrase, oldPhrase) in puns.Select(x => (x.NewPhrase, x.OldPhrase)) .Distinct()) { TestOutputHelper.WriteLine($"{newPhrase} ({oldPhrase})"); } }
public void Find() { if (string.IsNullOrWhiteSpace(Theme)) { IsGenerating = false; return; } IsGenerating = true; PunList = null; RevealedWords.Clear(); Console.WriteLine(@"Getting Puns"); var puns = SynSets.Except(CrossedOffSynsets) .SelectMany(synSet => PunHelper.GetPuns(PunCategory, Theme, synSet, WordNetEngine.Value, PronunciationEngine.Value)); PunList = puns .Distinct() .GroupBy(x => x.Word, StringComparer.OrdinalIgnoreCase) .OrderByDescending(x => x.Count()) .ToList(); Console.WriteLine($@"{PunList.Count} Puns Got"); IsGenerating = false; }
public int TestPunHelper() { var strategies = new List <PunStrategyFactory>() { PunStrategyFactory.GetByName(Strategy) }; int punCount = 0; foreach (var theme in Themes) { var synSets = _fixture.WordNetEngine.GetSynSets(theme).ToList(); foreach (var category in Enum.GetValues <PunCategory>()) { var puns = PunHelper.GetPuns( category, theme, synSets, _fixture.WordNetEngine, _fixture.PronunciationEngine, _fixture.SpellingEngine, strategies ) .ToList(); punCount += puns.Count; } } return(punCount); }