Esempio n. 1
0
        public void SetRotorsEnforcesReflector()
        {
            EnigmaI enigma = new EnigmaI();

            EnigmaRotor[] rotors = new EnigmaRotor[4];
            enigma.SetRotors(rotors);
        }
Esempio n. 2
0
        public void Rotor_IsInTurnoverPosition_True()
        {
            EnigmaRotor Rotor_I = CreateRotorI();

            Rotor_I.SetOffset('Q');
            Assert.IsTrue(Rotor_I.IsInTurnoverPosition);
        }
Esempio n. 3
0
        private static NestedEnigmaMachine BuildEnigma(char[] ringSettings = null)
        {
            if (ringSettings == null)
            {
                ringSettings = new char[] { 'A', 'A', 'A' };
            }
            NestedRotor rotorI = NestedEnigmaMachineTestSupport.CreateRotorI();

            rotorI.SetRingSetting(ringSettings[0]);
            NestedRotor rotorII = NestedEnigmaMachineTestSupport.CreateRotorII();

            rotorII.SetRingSetting(ringSettings[1]);
            NestedRotor rotorIII = NestedEnigmaMachineTestSupport.CreateRotorIII();

            rotorIII.SetRingSetting(ringSettings[2]);
            EnigmaReflector     reflectorB = NestedEnigmaMachineTestSupport.CreateBReflector();
            NestedEnigmaMachine enigma     = new NestedEnigmaMachine();

            EnigmaRotor[] rotors = new EnigmaRotor[4];
            rotors[0] = reflectorB;
            rotors[1] = rotorI;
            rotors[2] = rotorII;
            rotors[3] = rotorIII;

            enigma.SetRotors(rotors);
            return(enigma);
        }
Esempio n. 4
0
        public void ConstructTest_ReflectorBThin()
        {
            string       expectedMapping = "ENKQAUYWJICOPBLMDXZVFTHRGS";
            RotorFactory factory         = new RotorFactory();
            EnigmaRotor  reflector       = factory.GetReflector(Reflector.BThin);

            Assert.AreEqual(expectedMapping, reflector.Mapping);
        }
Esempio n. 5
0
        public void ConstructTest_ReflectorC()
        {
            string       expectedMapping = "FVPJIAOYEDRZXWGCTKUQSBNMHL";
            RotorFactory factory         = new RotorFactory();
            EnigmaRotor  reflector       = factory.GetReflector(Reflector.C);

            Assert.AreEqual(expectedMapping, reflector.Mapping);
        }
Esempio n. 6
0
        public void ConstructTest_ReflectorB()
        {
            string       expectedMapping = "YRUHQSLDPXNGOKMIEBFZCWVJAT";
            RotorFactory factory         = new RotorFactory();
            EnigmaRotor  reflector       = factory.GetReflector(Reflector.B);

            Assert.AreEqual(expectedMapping, reflector.Mapping);
        }
Esempio n. 7
0
        public void ConstructTest_ReflectorA()
        {
            string       expectedMapping = "EJMZALYXVBWFCRQUONTSPIKHGD";
            RotorFactory factory         = new RotorFactory();
            EnigmaRotor  reflector       = factory.GetReflector(Reflector.A);

            Assert.AreEqual(expectedMapping, reflector.Mapping);
        }
Esempio n. 8
0
        public void ConstructTest_ReflectorCThin()
        {
            string       expectedMapping = "RDOBJNTKVEHMLFCWZAXGYIPSUQ";
            RotorFactory factory         = new RotorFactory();
            EnigmaRotor  reflector       = factory.GetReflector(Reflector.CThin);

            Assert.AreEqual(expectedMapping, reflector.Mapping);
        }
        public static EnigmaRotor CreateAlphabeticalRotor()
        {
            EnigmaRotor rotor = new EnigmaRotor("ABCDEFGHIJKLMNOPQRSTUVWXYZ");

            rotor.SetOffset('A');
            rotor.SetTurnover('Y');
            return(rotor);
        }
Esempio n. 10
0
        public void CanSetRotors()
        {
            EnigmaI enigma = new EnigmaI();

            EnigmaRotor[] rotors = new EnigmaRotor[4];
            rotors[0] = new EnigmaReflector();
            enigma.SetRotors(rotors);
        }
Esempio n. 11
0
        public void Rotor_ReverseMappslettersWithOffsetZero()
        {
            char        expected = 'A';
            EnigmaRotor Rotor_I  = CreateRotorI();
            char        actual   = Rotor_I.ReverseConvert('E');

            Assert.AreEqual(expected, actual);
        }
Esempio n. 12
0
        public void SetRotorsEnforcesRotorCount()
        {
            EnigmaI enigma = new EnigmaI();

            EnigmaRotor[] rotors = new EnigmaRotor[3];
            rotors[0] = new EnigmaReflector();
            enigma.SetRotors(rotors);
        }
Esempio n. 13
0
        private static EnigmaRotor CreateRotorI()
        {
            EnigmaRotor rotorI = new EnigmaRotor("EKMFLGDQVZNTOWYHXUSPAIBRCJ");

            rotorI.SetOffset('A');
            rotorI.SetTurnover('Q');
            return(rotorI);
        }
Esempio n. 14
0
        public void Rotor_MapsLettersWithOffsetZero()
        {
            char expected = 'E';

            EnigmaRotor Rotor_I = CreateRotorI();
            char        actual  = Rotor_I.Convert('A');

            Assert.AreEqual(expected, actual);
        }
Esempio n. 15
0
        public void Rotor_ReverseMapsLettersWithOffset27()
        {
            char        expected = 'D';
            EnigmaRotor Rotor_I  = CreateRotorI();

            Rotor_I.Advance(27);
            char actual = Rotor_I.ReverseConvert('K');

            Assert.AreEqual(expected, actual);
        }
Esempio n. 16
0
        public void Rotor_ReverseMappslettersWithRingSetting()
        {
            char        expected = 'A';
            EnigmaRotor Rotor_I  = CreateRotorI();

            Rotor_I.SetRingSetting('B');
            char actual = Rotor_I.ReverseConvert('K');

            Assert.AreEqual(expected, actual);
        }
Esempio n. 17
0
 private EnigmaRotor[] MergeReflectorIntoRotorArray(Reflector reflector, Rotor[] rotors)
 {
     EnigmaRotor[] allRotors = new EnigmaRotor[rotors.Length + 1];
     allRotors[0] = _rotorFactory.GetReflector(reflector);
     for (int i = 0; i < rotors.Length; i++)
     {
         allRotors[i + 1] = _rotorFactory.GetRotor(rotors[i]);
     }
     return(allRotors);
 }
Esempio n. 18
0
        public void Rotor_SetRingSetting()
        {
            char        expected = 'K';
            EnigmaRotor Rotor_I  = CreateRotorI();

            Rotor_I.SetRingSetting('B');
            char actual = Rotor_I.Convert('A');

            Assert.AreEqual(expected, actual);
        }
Esempio n. 19
0
        public void Rotor_MappslettersWithRingSettingAndOffset()
        {
            char        expected = 'W';
            EnigmaRotor Rotor_I  = CreateRotorI();

            Rotor_I.SetRingSetting('F');
            Rotor_I.SetOffset('Y');
            char actual = Rotor_I.Convert('A');

            Assert.AreEqual(expected, actual);
        }
Esempio n. 20
0
        public void ConstructTest_RotorII()
        {
            string       expectedMapping  = "AJDKSIRUXBLHWTMCQGZNPYFVOE";
            char         expectedTurnover = 'E';
            RotorFactory factory          = new RotorFactory();
            EnigmaRotor  result           = factory.GetRotor(Rotor.II);

            Assert.AreEqual(expectedMapping, result.Mapping);
            result.SetOffset(expectedTurnover);
            Assert.IsTrue(result.IsInTurnoverPosition);
        }
Esempio n. 21
0
        public void ConstructTest_RotorV()
        {
            string       expectedMapping  = "VZBRGITYUPSDNHLXAWMJQOFECK";
            char         expectedTurnover = 'Z';
            RotorFactory factory          = new RotorFactory();
            EnigmaRotor  result           = factory.GetRotor(Rotor.V);

            Assert.AreEqual(expectedMapping, result.Mapping);
            result.SetOffset(expectedTurnover);
            Assert.IsTrue(result.IsInTurnoverPosition);
        }
Esempio n. 22
0
        public void ConstructTest_RotorIV()
        {
            string       expectedMapping  = "ESOVPZJAYQUIRHXLNFTGKDCMWB";
            char         expectedTurnover = 'J';
            RotorFactory factory          = new RotorFactory();
            EnigmaRotor  result           = factory.GetRotor(Rotor.IV);

            Assert.AreEqual(expectedMapping, result.Mapping);
            result.SetOffset(expectedTurnover);
            Assert.IsTrue(result.IsInTurnoverPosition);
        }
Esempio n. 23
0
        public void ConstructTest_RotorIII()
        {
            string       expectedMapping  = "BDFHJLCPRTXVZNYEIWGAKMUSQO";
            char         expectedTurnover = 'V';
            RotorFactory factory          = new RotorFactory();
            EnigmaRotor  result           = factory.GetRotor(Rotor.III);

            Assert.AreEqual(expectedMapping, result.Mapping);
            result.SetOffset(expectedTurnover);
            Assert.IsTrue(result.IsInTurnoverPosition);
        }
Esempio n. 24
0
        public void ConstructTest_RotorI()
        {
            string       expectedMapping  = "EKMFLGDQVZNTOWYHXUSPAIBRCJ";
            char         expectedTurnover = 'Q';
            RotorFactory factory          = new RotorFactory();
            EnigmaRotor  result           = factory.GetRotor(Rotor.I);

            Assert.AreEqual(expectedMapping, result.Mapping);
            result.SetOffset(expectedTurnover);
            Assert.IsTrue(result.IsInTurnoverPosition);
        }
Esempio n. 25
0
        public void MultiTurnoversTriggerOnARotor()
        {
            EnigmaRotor rotorI = new EnigmaRotor("EKMFLGDQVZNTOWYHXUSPAIBRCJ");

            rotorI.SetTurnover(new char[] { 'Q', 'S' });
            rotorI.SetOffset('Q');
            bool firstTurnoverWorks = rotorI.IsInTurnoverPosition;

            rotorI.SetOffset('S');
            bool secondTurnoverWorks = rotorI.IsInTurnoverPosition;

            Assert.IsTrue(firstTurnoverWorks && secondTurnoverWorks);
        }
Esempio n. 26
0
        public void ConstructTest_RotorVI()
        {
            string       expectedMapping = "JPGVOUMFYQBENHZRDKASXLICTW";
            char         firstTurnover   = 'Z';
            char         secondTurnover  = 'M';
            RotorFactory factory         = new RotorFactory();
            EnigmaRotor  result          = factory.GetRotor(Rotor.VI);

            Assert.AreEqual(expectedMapping, result.Mapping);
            result.SetOffset(firstTurnover);
            Assert.IsTrue(result.IsInTurnoverPosition);
            result.SetOffset(secondTurnover);
            Assert.IsTrue(result.IsInTurnoverPosition);
        }
Esempio n. 27
0
        public void ConstructTest_RotorVII()
        {
            string       expectedMapping = "NZJHGRCXMYSWBOUFAIVLPEKQDT";
            char         firstTurnover   = 'Z';
            char         secondTurnover  = 'M';
            RotorFactory factory         = new RotorFactory();
            EnigmaRotor  result          = factory.GetRotor(Rotor.VII);

            Assert.AreEqual(expectedMapping, result.Mapping);
            result.SetOffset(firstTurnover);
            Assert.IsTrue(result.IsInTurnoverPosition);
            result.SetOffset(secondTurnover);
            Assert.IsTrue(result.IsInTurnoverPosition);
        }
Esempio n. 28
0
        public void ConstructTest_RotorVIII()
        {
            string       expectedMapping = "FKQHTLXOCBJSPDZRAMEWNIUYGV";
            char         firstTurnover   = 'Z';
            char         secondTurnover  = 'M';
            RotorFactory factory         = new RotorFactory();
            EnigmaRotor  result          = factory.GetRotor(Rotor.VIII);

            Assert.AreEqual(expectedMapping, result.Mapping);
            result.SetOffset(firstTurnover);
            Assert.IsTrue(result.IsInTurnoverPosition);
            result.SetOffset(secondTurnover);
            Assert.IsTrue(result.IsInTurnoverPosition);
        }
Esempio n. 29
0
        private static EnigmaRotor[] BuildRotorArray()
        {
            EnigmaRotor rotorI   = EnigmaIMachineTestSupport.CreateRotorI();
            EnigmaRotor rotorII  = EnigmaIMachineTestSupport.CreateRotorII();
            EnigmaRotor rotorIII = EnigmaIMachineTestSupport.CreateRotorIII();

            EnigmaReflector reflectorB = EnigmaIMachineTestSupport.CreateBReflector();

            EnigmaRotor[] rotors = new EnigmaRotor[4];
            rotors[0] = reflectorB;
            rotors[1] = rotorI;
            rotors[2] = rotorII;
            rotors[3] = rotorIII;

            return(rotors);
        }
Esempio n. 30
0
        public void Rotor_CanSetTurnoverArray()
        {
            EnigmaRotor rotorI = new EnigmaRotor("EKMFLGDQVZNTOWYHXUSPAIBRCJ");

            rotorI.SetTurnover(new char[] { 'Q', 'S' });
        }