예제 #1
0
        public void TestScharnhorstPlugboardSettings()
        {
            Dictionary <string, string> pb = new Dictionary <string, string>();

            pb.Add("A", "N");
            pb.Add("E", "Z");
            pb.Add("H", "K");
            pb.Add("I", "J");
            pb.Add("L", "R");
            pb.Add("M", "Q");
            pb.Add("O", "T");
            pb.Add("P", "V");
            pb.Add("S", "W");
            pb.Add("U", "X");

            plugBoard        = new PlugboardBase();
            plugBoard.Layout = pb;

            Assert.AreEqual <string>("W", plugBoard.MapCharacter("S"));
            Assert.AreEqual <string>("O", plugBoard.MapCharacter("T"));
            Assert.AreEqual <string>("Z", plugBoard.MapCharacter("E"));
            Assert.AreEqual <string>("X", plugBoard.MapCharacter("U"));

            Assert.AreEqual <string>("Z", plugBoard.MapCharacter("E"));
            Assert.AreEqual <string>("L", plugBoard.MapCharacter("R"));
            Assert.AreEqual <string>("Z", plugBoard.MapCharacter("E"));
            Assert.AreEqual <string>("I", plugBoard.MapCharacter("J"));

            Assert.AreEqual <string>("O", plugBoard.MapCharacter("T"));
            Assert.AreEqual <string>("N", plugBoard.MapCharacter("A"));
            Assert.AreEqual <string>("A", plugBoard.MapCharacter("N"));
        }
예제 #2
0
 public EnigmaSettings(IRotor etw, List <IRotor> rotors, IPlugboard plugboard, List <int> rotorPositions)
 {
     EntryWheel     = etw;
     Rotors         = rotors;
     PlugBoard      = plugboard;
     RotorPositions = rotorPositions;
 }
예제 #3
0
        public void Initialize()
        {
            // Mock plugboard mapping
            Dictionary <string, string> pb = new Dictionary <string, string>();

            pb.Add("A", "E");
            pb.Add("F", "T");
            pb.Add("R", "Q");
            pb.Add("L", "B");
            pb.Add("X", "Z");
            pb.Add("Y", "O");
            pb.Add("H", "I");

            plugBoard = new PlugboardBase(pb);
        }
예제 #4
0
 public Keyboard(IPlugboard plugboard)
 {
     _plugboard = plugboard;
 }
예제 #5
0
 public EnigmaMachineBase(IPlugboard plugBoard, IScramblerUnit scramblerUnit)
 {
     PlugBoard     = plugBoard;
     ScramblerUnit = scramblerUnit;
 }
예제 #6
0
 public void Cleanup()
 {
     plugBoard = null;
 }
예제 #7
0
 public PlugboardController(IEnigmaSettings enigmaSettings)
 {
     _enigmaSettings = enigmaSettings;
     _plugboard      = _enigmaSettings.Plugboard;
 }