コード例 #1
0
ファイル: tests.py プロジェクト: taxpon/pyzxcvbn
    def test_dictionary_guesses(self):

        # Case
        match = {
            "token": "aaaaa",
            "rank": 32
        }
        msg = "base guesses == the rank"
        self.assertEqual(scoring.dictionary_guesses(match), 32, msg)

        # Case
        match = {
            "token": "AAAaaa",
            "rank": 32
        }
        msg = "extra guesses are added for capitalization"
        self.assertEqual(scoring.dictionary_guesses(match), 32 * scoring.uppercase_variations(match), msg)

        # Case
        match = {
            "token": "aaa",
            "rank": 32,
            "reversed": True
        }
        msg = "guesses are doubled when word is reversed"
        self.assertEqual(scoring.dictionary_guesses(match), 32 * 2, msg)

        # Case
        match = {
            "token": 'aaa@@@',
            "rank": 32,
            "l33t": True,
            "sub": {'@': 'a'}
        }
        msg = "extra guesses are added for common l33t substitutions"
        self.assertEqual(scoring.dictionary_guesses(match), 32 * scoring.l33t_variations(match), msg)

        # Case
        match = {
            "token": 'AaA@@@',
            "rank": 32,
            "l33t": True,
            "sub": {'@': 'a'}
        }
        msg = "extra guesses are added for both capitalization and common l33t substitutions"
        expected = 32 * scoring.l33t_variations(match) * scoring.uppercase_variations(match)
        self.assertEqual(scoring.dictionary_guesses(match), expected, msg)
コード例 #2
0
ファイル: tests.py プロジェクト: calellowitz/pyzxcvbn
    def test_dictionary_guesses(self):

        # Case
        match = {
            "token": "aaaaa",
            "rank": 32
        }
        msg = "base guesses == the rank"
        self.assertEqual(scoring.dictionary_guesses(match), 32, msg)

        # Case
        match = {
            "token": "AAAaaa",
            "rank": 32
        }
        msg = "extra guesses are added for capitalization"
        self.assertEqual(scoring.dictionary_guesses(match), 32 * scoring.uppercase_variations(match), msg)

        # Case
        match = {
            "token": "aaa",
            "rank": 32,
            "reversed": True
        }
        msg = "guesses are doubled when word is reversed"
        self.assertEqual(scoring.dictionary_guesses(match), 32 * 2, msg)

        # Case
        match = {
            "token": 'aaa@@@',
            "rank": 32,
            "l33t": True,
            "sub": {'@': 'a'}
        }
        msg = "extra guesses are added for common l33t substitutions"
        self.assertEqual(scoring.dictionary_guesses(match), 32 * scoring.l33t_variations(match), msg)

        # Case
        match = {
            "token": 'AaA@@@',
            "rank": 32,
            "l33t": True,
            "sub": {'@': 'a'}
        }
        msg = "extra guesses are added for both capitalization and common l33t substitutions"
        expected = 32 * scoring.l33t_variations(match) * scoring.uppercase_variations(match)
        self.assertEqual(scoring.dictionary_guesses(match), expected, msg)
コード例 #3
0
ファイル: tests.py プロジェクト: dimagi/pyzxcvbn-deprecated-
    def test_uppercase_variations(self):

        # Case
        pattern_list = [['', 1], ['a', 1], ['A', 2], ['abcdef', 1],
                        ['Abcdef', 2], ['abcdeF', 2], ['ABCDEF', 2],
                        ['aBcdef', binom(6, 1)],
                        ['aBcDef', binom(6, 1) + binom(6, 2)],
                        ['ABCDEf', binom(6, 1)],
                        ['aBCDEf', binom(6, 1) + binom(6, 2)],
                        ['ABCdef',
                         binom(6, 1) + binom(6, 2) + binom(6, 3)]]
        for word, variants in pattern_list:
            msg = "guess multiplier of {} is {}".format(word, variants)
            self.assertEqual(scoring.uppercase_variations({"token": word}),
                             variants, msg)
コード例 #4
0
ファイル: tests.py プロジェクト: calellowitz/pyzxcvbn
    def test_uppercase_variations(self):

        # Case
        pattern_list = [
            ['', 1],
            ['a', 1],
            ['A', 2],
            ['abcdef', 1],
            ['Abcdef', 2],
            ['abcdeF', 2],
            ['ABCDEF', 2],
            ['aBcdef', binom(6, 1)],
            ['aBcDef', binom(6, 1) + binom(6, 2)],
            ['ABCDEf', binom(6, 1)],
            ['aBCDEf', binom(6, 1) + binom(6, 2)],
            ['ABCdef', binom(6, 1) + binom(6, 2) + binom(6, 3)]
        ]
        for word, variants in pattern_list:
            msg = "guess multiplier of {} is {}".format(word, variants)
            self.assertEqual(scoring.uppercase_variations({"token": word}), variants, msg)