X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=Untitled.ipynb;fp=Untitled.ipynb;h=0a8a3e0b4f9d865154fa9fcdb6927cd4f126e672;hb=a718663ac5643f2ee292a6b5784aa4d4ea95ee17;hp=0000000000000000000000000000000000000000;hpb=6889a439393b5de11b205f96afd0e8eb6e2175d8;p=cipher-tools.git diff --git a/Untitled.ipynb b/Untitled.ipynb new file mode 100644 index 0000000..0a8a3e0 --- /dev/null +++ b/Untitled.ipynb @@ -0,0 +1,181 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "from enigma import *" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "e31 = Enigma(reflector_b_spec, \n", + " wheel_i_spec, wheel_i_pegs,\n", + " wheel_v_spec, wheel_v_pegs,\n", + " wheel_iii_spec, wheel_iii_pegs,\n", + " 6, 20, 24, \n", + " 'ua pf rq so ni ey bg hl tx zj')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def advance(e, n):\n", + " def print_state(e):\n", + " print(' self.assertEqual(self.enigma31.wheel_positions, {})'.format(e.wheel_positions))\n", + " print(\" self.assertEqual(cat(self.enigma31.wheel_positions_l), '{}')\".format(cat(e.wheel_positions_l)))\n", + " print(' self.assertEqual(self.enigma31.peg_positions, {})'.format(e.peg_positions))\n", + " print()\n", + " \n", + " \n", + " \n", + " print_state(e)\n", + " for i in range(n):\n", + " print(' self.engima31.advance()')\n", + " e.advance()\n", + " print_state(e)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " self.assertEqual(self.enigma31.wheel_positions, (21, 5, 22))\n", + " self.assertEqual(cat(self.enigma31.wheel_positions_l), 'ayt')\n", + " self.assertEqual(self.enigma31.peg_positions, ([16], [1], [2]))\n", + "\n", + " self.engima31.advance()\n", + " self.assertEqual(self.enigma31.wheel_positions, (21, 5, 23))\n", + " self.assertEqual(cat(self.enigma31.wheel_positions_l), 'ayu')\n", + " self.assertEqual(self.enigma31.peg_positions, ([16], [1], [1]))\n", + "\n", + " self.engima31.advance()\n", + " self.assertEqual(self.enigma31.wheel_positions, (21, 5, 24))\n", + " self.assertEqual(cat(self.enigma31.wheel_positions_l), 'ayv')\n", + " self.assertEqual(self.enigma31.peg_positions, ([16], [1], [0]))\n", + "\n", + " self.engima31.advance()\n", + " self.assertEqual(self.enigma31.wheel_positions, (21, 6, 25))\n", + " self.assertEqual(cat(self.enigma31.wheel_positions_l), 'azw')\n", + " self.assertEqual(self.enigma31.peg_positions, ([16], [0], [25]))\n", + "\n", + " self.engima31.advance()\n", + " self.assertEqual(self.enigma31.wheel_positions, (22, 7, 0))\n", + " self.assertEqual(cat(self.enigma31.wheel_positions_l), 'bax')\n", + " self.assertEqual(self.enigma31.peg_positions, ([15], [25], [24]))\n", + "\n", + " self.engima31.advance()\n", + " self.assertEqual(self.enigma31.wheel_positions, (22, 7, 1))\n", + " self.assertEqual(cat(self.enigma31.wheel_positions_l), 'bay')\n", + " self.assertEqual(self.enigma31.peg_positions, ([15], [25], [23]))\n", + "\n" + ] + } + ], + "source": [ + "e31.set_wheels('a', 'y', 't')\n", + "advance(e31, 5)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " self.assertEqual(self.enigma31.wheel_positions, (21, 6, 21))\n", + " self.assertEqual(cat(self.enigma31.wheel_positions_l), 'azs')\n", + " self.assertEqual(self.enigma31.peg_positions, ([16], [0], [3]))\n", + "\n", + " self.engima31.advance()\n", + " self.assertEqual(self.enigma31.wheel_positions, (22, 7, 22))\n", + " self.assertEqual(cat(self.enigma31.wheel_positions_l), 'bat')\n", + " self.assertEqual(self.enigma31.peg_positions, ([15], [25], [2]))\n", + "\n", + " self.engima31.advance()\n", + " self.assertEqual(self.enigma31.wheel_positions, (22, 7, 23))\n", + " self.assertEqual(cat(self.enigma31.wheel_positions_l), 'bau')\n", + " self.assertEqual(self.enigma31.peg_positions, ([15], [25], [1]))\n", + "\n", + " self.engima31.advance()\n", + " self.assertEqual(self.enigma31.wheel_positions, (22, 7, 24))\n", + " self.assertEqual(cat(self.enigma31.wheel_positions_l), 'bav')\n", + " self.assertEqual(self.enigma31.peg_positions, ([15], [25], [0]))\n", + "\n", + " self.engima31.advance()\n", + " self.assertEqual(self.enigma31.wheel_positions, (22, 8, 25))\n", + " self.assertEqual(cat(self.enigma31.wheel_positions_l), 'bbw')\n", + " self.assertEqual(self.enigma31.peg_positions, ([15], [24], [25]))\n", + "\n", + " self.engima31.advance()\n", + " self.assertEqual(self.enigma31.wheel_positions, (22, 8, 0))\n", + " self.assertEqual(cat(self.enigma31.wheel_positions_l), 'bbx')\n", + " self.assertEqual(self.enigma31.peg_positions, ([15], [24], [24]))\n", + "\n" + ] + } + ], + "source": [ + "e31.set_wheels('a', 'z', 's')\n", + "advance(e31, 5)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.1+" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +}