     
     
     /**
-    see https://en.wikipedia.org/wiki/Bank_card_number
-    This method will not do any validation - just a check for numbers from at least 1 character and return an assumption about what the card might be
+    See https://en.wikipedia.org/wiki/Bank_card_number
+    This method will not do any validation - just a check for numbers from at least 1 character and return an assumption about what the card might be.
     
     - Returns: CardNetwork object
     */

            throw JudoError(.InvalidCardNetwork, message)
        }
        
        // retrieve the shortest pattern that is left and start moving the characters across
        let patternString = patterns.sort(<)[0]
        
        var patternIndex = patternString.startIndex

    
    
    /**
    Returns a string that matches the format of the number on the card itself based on the spacing pattern
    
    - Parameter configurations: The valid configurations to check for when
    
    - Returns: A formatted String that matches the credit card format
    
    - Throws CardLengthMismatchError: If amount of characters is longer than the maximum character number
    - Throws InvalidCardNumber: If the card number is invalid
    */
    func cardPresentationString(configurations: [Card.Configuration]) throws -> String {
        
        let strippedSelf = self.strippedWhitespaces
        
        // Do not continue if the string is empty or out of range
        if strippedSelf.characters.count == 0 {
            return ""
        } else if strippedSelf.characters.count > Card.maximumLength {
