A Plugboard
Along the way refactored some things into a super class called Cryptor
This commit is contained in:
		
							parent
							
								
									f997e84639
								
							
						
					
					
						commit
						ed0b46b601
					
				
					 2 changed files with 98 additions and 12 deletions
				
			
		| 
						 | 
				
			
			@ -9,8 +9,9 @@
 | 
			
		|||
import XCTest
 | 
			
		||||
@testable import Enigma
 | 
			
		||||
 | 
			
		||||
let alphaSeries = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 | 
			
		||||
 | 
			
		||||
class RotorTests: XCTestCase {
 | 
			
		||||
    let alphaSeries = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
 | 
			
		||||
    let rotorSeries = "EKMFLGDQVZNTOWYHXUSPAIBRCJ"
 | 
			
		||||
 | 
			
		||||
    func testThatUnadvancedSubstitutionWorks() {
 | 
			
		||||
| 
						 | 
				
			
			@ -28,4 +29,20 @@ class RotorTests: XCTestCase {
 | 
			
		|||
            XCTAssertEqual(try! rotor.encode(plainCharacter), cipherCharacter)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class PlugboardTests: XCTestCase {
 | 
			
		||||
    func testThatEmptyPlugboardPassesThroughAllCharacters() {
 | 
			
		||||
        let plugboard = try! Enigma.Plugboard()
 | 
			
		||||
        for c in alphaSeries.characters {
 | 
			
		||||
            XCTAssertEqual(try! plugboard.encode(c), c)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    func testThatPlugboardPairsAreBidirectional() {
 | 
			
		||||
        let plugboard = try! Enigma.Plugboard(pairs: [("A", "H")])
 | 
			
		||||
        XCTAssertEqual(try! plugboard.encode("A"), "H")
 | 
			
		||||
        XCTAssertEqual(try! plugboard.encode("H"), "A")
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue