//Returns output digit after traveling through rotors, reflector, and backwards through rotors
        //Also rotates right rotor (others are rotated based on right rotors position)
        public int InputDigitToOutput(int inputIndex)
        {
            int outputDigit = right.InputDigitToOutputForwards(middle.InputDigitToOutputForwards(left.InputDigitToOutputForwards(inputIndex)));

            outputDigit = reflector.InputDigitToOutput(outputDigit);
            outputDigit = left.InputDigitToOutputBackwards(middle.InputDigitToOutputBackwards(right.InputDigitToOutputBackwards(outputDigit)));

            Rotate(right);
            return(outputDigit);
        }