public void CharacterVariationCountTest()
        {
            var modifier = new CharacterSymbolModifier("CharacterMap.json");
            var results  = modifier.CharacterVariationCount('a');

            Assert.IsNotNull(results);
            Assert.AreEqual(2, results);
        }
        public void GenerateCharacterVariationsTestNoVariance()
        {
            var modifier = new CharacterSymbolModifier("CharacterMap.json");
            var results  = modifier.GenerateCharacterVariations('k');

            Assert.IsNotNull(results);
            Assert.AreEqual(0, results.Count);
        }
        public void GenerateCharacterVariationsTestMultipleVariance()
        {
            var modifier = new CharacterSymbolModifier("CharacterMap.json");
            var results  = modifier.GenerateCharacterVariations('a');

            Assert.IsNotNull(results);
            Assert.AreEqual(2, results.Count);
            Assert.IsTrue(results.Contains('4'));
            Assert.IsTrue(results.Contains('@'));
        }
        public void GenerateCharacterVariationsTestSingleVariance()
        {
            var modifier = new CharacterSymbolModifier("CharacterMap.json");
            var results  = modifier.GenerateCharacterVariations('e');

            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Count);
            Assert.AreEqual('3', results.FirstOrDefault());

            results = modifier.GenerateCharacterVariations('E');

            Assert.IsNotNull(results);
            Assert.AreEqual(0, results.Count);
        }
Example #5
0
        private void AddWordElements(WordBank wordBank)
        {
            Console.WriteLine("Adding base words...");

            var symbolMapProvided             = !string.IsNullOrWhiteSpace(_symbolMap);
            ICharacterModifier symbolModifier = null;

            if (symbolMapProvided)
            {
                symbolModifier = new CharacterSymbolModifier(_symbolMap);
            }
            var caseModifier = new CharacterCaseModifier();

            foreach (var inputElement in _inputElements)
            {
                WordElement wordElement = new WordElement(inputElement.Key);

                Console.Write($"Word: '{inputElement.Key}'");

                var characterModifiers = new List <ICharacterModifier>();
                if (symbolMapProvided && inputElement.Value.SymbolVariation)
                {
                    Console.Write(" + symbol substitution");
                    wordElement.AddCharacterModifier(symbolModifier);
                }
                if (inputElement.Value.CaseVariation)
                {
                    Console.Write(" + case variation");
                    wordElement.AddCharacterModifier(caseModifier);
                }

                Console.Write(" ... ");
                wordElement.GenerateCharacterVariations();
                Console.WriteLine($"{wordElement.Count} variants");
                wordBank.AddWord(wordElement);
            }

            Console.WriteLine();
        }