public void CanExtractWordpartsFromStandardPartSequence()
        {
            const string wordPartSquence =
                "al, albums, aver, bar, barely, be, befoul, bums, by, cat, con, convex, ely, foul, here, hereby, jig, jigsaw, or, saw, tail, tailor, vex, we, weaver";

            IWordExtractor wordExtractor = new WordExtractor(new WordExtractorSettings());

            WordGroup wordGroup = wordExtractor.ExtractWords(wordPartSquence);

            Assert.IsNotNull(wordGroup);
            Assert.AreEqual(wordGroup.PartWords.Count, 17);
            Assert.AreEqual(wordGroup.WordTags.Count, 8);
        }
        public void CanComposeWordsFromMessyCasingNonAlphaWordPartSequenceIgnoreCase()
        {
            const string wordPartSequence = "tty /.,<>?Minute snotty, min people ple min. -  forrest  befoul ute sno";

            IWordExtractor wordExtractor = new WordExtractor(new WordExtractorSettings
                {
                    IgnoreCase = true
                });

            WordComposer wordComposer = new WordComposer(wordExtractor);

            List<string> composedWords = wordComposer.Compose(wordPartSequence);

            Assert.IsNotNull(composedWords);
            Assert.AreEqual(composedWords.Count, 2);

            foreach (var composedWord in composedWords)
            {
                Assert.AreEqual(composedWord.Length, wordExtractor.WordExtractorSettings.WordLength);
            }
        }
        public void CanComposeWordsFromOriginalWordPartSequence()
        {
            WordExtractorSettings wordExtractorSettings = new WordExtractorSettings {
                WordLength = 6,
                IgnoreCase = true
            };

            const string wordPartSequence = "al, albums, aver, bar, barely, be, befoul, bums, by, cat, con, convex, ely, foul, here, hereby, jig, jigsaw, or, saw, tail, tailor, vex, we, weaver";

            IWordExtractor wordExtractor = new WordExtractor(wordExtractorSettings);
            WordComposer wordComposer = new WordComposer(wordExtractor);

            List<string> composedWords = wordComposer.Compose(wordPartSequence);

            Assert.IsNotNull(composedWords);
            Assert.AreEqual(composedWords.Count, 8);

            foreach (var composedWord in composedWords)
            {
                Assert.AreEqual(composedWord.Length, wordExtractor.WordExtractorSettings.WordLength);
            }
        }