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); }
public void RotorsAdvanceAlongCryptString() { String expected = "BDZGO"; NestedEnigmaMachine enigma = BuildEnigma(); enigma.SetRingSetting("AAA"); String actual = enigma.Crypt("AAAAA"); Assert.AreEqual(expected, actual); }
public void GetSetRotorSettings() { string expected = "ABC"; NestedEnigmaMachine enigma = BuildEnigma(); enigma.SetRotorOffset(expected); string actual = enigma.GetRotorSettings(); Assert.AreEqual(expected, actual); }
public void SteckersAlterOutput() { String expected = "Y"; NestedEnigmaMachine enigma = BuildEnigma(); enigma.SetRingSetting("AAA"); enigma.Setcker('B', 'Y'); String actual = enigma.Crypt("A"); Assert.AreEqual(expected, actual); }
public void RotorsAdvanceAlongCryptString_2() { String expected = "DDWCRLRHLZBMHDGCMYOKMIZWNHUACPCYYGWQSN"; //NestedRotor rotorI = CreateRotorI(); //NestedRotor rotorII = CreateRotorII(); //NestedRotor rotorIII = CreateRotorIII(); //Reflector reflectorB = CreateBReflector(); //EnigmaMachine enigma = new EnigmaMachine(rotorI, rotorII, rotorIII, reflectorB); NestedEnigmaMachine enigma = BuildEnigma(); enigma.SetRingSetting("AAA"); String actual = enigma.Crypt("MAYBEINVADINGFRANCEWASNTSUCHAGREATIDEA"); Assert.AreEqual(expected, actual); }
public void RotorsAdvanceAlongCryptString_WithRingSetting() { String expected = "EWTYX"; //NestedRotor I = CreateRotorI(); //I.SetRingSetting('B'); //NestedRotor II = CreateRotorII(); //II.SetRingSetting('B'); //NestedRotor III = CreateRotorIII(); //III.SetRingSetting('B'); //Reflector rB = CreateBReflector(); //EnigmaMachine enigma = new EnigmaMachine(I, II, III, rB); NestedEnigmaMachine enigma = BuildEnigma(new char[] { 'B', 'B', 'B' }); enigma.SetRingSetting("AAA"); String actual = enigma.Crypt("AAAAA"); Assert.AreEqual(expected, actual); }
public void EnigmaTakesOffsetKey() { NestedEnigmaMachine enigma = BuildEnigma(); enigma.SetRingSetting("AAA"); }
public void CanGetRotorSettings() { NestedEnigmaMachine enigma = BuildEnigma(); enigma.GetRotorSettings(); }
public void CanCreateEnigmaMachine() { NestedEnigmaMachine enigma = new NestedEnigmaMachine(); }