public void DecryptFromResources(string inputName, int key, string sampleName, double accuracy, dynamic sup)
        {
            LettersSetSettings((TypeLettersSupport)sup);
            string expect = Properties.Resources.ResourceManager.GetString(inputName);
            string sample = Properties.Resources.ResourceManager.GetString(sampleName);
            CharacterFrequencyAnalyzer an = new CharacterFrequencyAnalyzer(sample);
            string dec = an.Decrypt(Encryption.Encrypt(expect, key));
            int    errors = 0; int all = 0;

            for (int i = 0; i < dec.Length || i < expect.Length; i++)
            {
                if (i < dec.Length || i < expect.Length)
                {
                    if (LettersSupport.Contains(expect[i]))
                    {
                        all++;
                        if (dec[i] != expect[i])
                        {
                            errors++;
                        }
                    }
                }
                else
                {
                    Console.Write($"{i}:{(i < dec.Length ? dec[i] : expect[i])}");
                }
            }
            Console.WriteLine();
            double accuracyCurrent = 1 - (double)errors / all;

            Console.WriteLine("accuracy: " + accuracyCurrent);
            Console.WriteLine("dec: " + dec);
            Assert.IsTrue(accuracyCurrent > accuracy);
        }
Пример #2
0
        public void AnalyzeTest_EmptyTestZero()
        {
            Dictionary <int, int> result = CharacterFrequencyAnalyzer.Analyze(new List <string> {
                ""
            });

            Assert.IsNotNull(result);
            Assert.IsFalse(result.Any(e => e.Value > 0));
        }
Пример #3
0
        public void AnalyzeTest_SingleSet_Digits()
        {
            Dictionary <int, int> result = CharacterFrequencyAnalyzer.Analyze(new List <string> {
                "123"
            });

            Assert.AreEqual(1, result['1']);
            Assert.AreEqual(1, result['2']);
            Assert.AreEqual(1, result['3']);

            // Select where element(s) e are NOT(a,b or c)
            IEnumerable <int> allOtherCharacters = result.Where(e => !(e.Key == '1' || e.Key == '2' || e.Key == '3')).Select(e => e.Value);

            Assert.IsTrue(allOtherCharacters.All(e => e == 0));
        }
Пример #4
0
        public void AnalyzeTest_SingleSet_UpperCase()
        {
            Dictionary <int, int> result = CharacterFrequencyAnalyzer.Analyze(new List <string> {
                "ABC"
            });

            Assert.AreEqual(1, result['A']);
            Assert.AreEqual(1, result['B']);
            Assert.AreEqual(1, result['C']);

            // Select where element(s) e are NOT(A,B or C)
            IEnumerable <int> allOtherCharacters = result.Where(e => !(e.Key == 'A' || e.Key == 'B' || e.Key == 'C')).Select(e => e.Value);

            Assert.IsTrue(allOtherCharacters.All(e => e == 0));
        }
Пример #5
0
        public void AnalyzeTest_SingleSet_Symbols()
        {
            List <string> input = new List <string> {
                ",./;'", "a!"
            };
            Dictionary <int, int> result = CharacterFrequencyAnalyzer.Analyze(input);

            Assert.AreEqual(1, result[',']);
            Assert.AreEqual(1, result['.']);
            Assert.AreEqual(1, result['/']);
            Assert.AreEqual(1, result[';']);
            Assert.AreEqual(1, result['\'']);


            // Select where element(s) e are NOT(a,b or c)
            IEnumerable <int> allOtherCharacters = result.Where(e => input.Any(s => s.Contains(e.Key.ToString())))
                                                   .Select(e => e.Value);

            Assert.IsTrue(allOtherCharacters.All(e => e == 0));
        }
        public void Decrypt(string expect, int key, string sample)
        {
            CharacterFrequencyAnalyzer an = new CharacterFrequencyAnalyzer(sample);

            Assert.AreEqual(expect, an.Decrypt(Encryption.Encrypt(expect, key)));
        }