- Common ways to obtain DictionaryGuess
private void myMethod () {}
@Override public double exec(Match match) { match.baseGuesses = (double) match.rank; int uppercaseVariations = uppercaseVariations(match); int l33tVariations = l33tVariations(match); int reversedVariations = match.reversed ? 2 : 1; return match.rank * uppercaseVariations * l33tVariations * reversedVariations; }
@Override public double exec(Match match) { match.baseGuesses = (double) match.rank; int uppercaseVariations = uppercaseVariations(match); int l33tVariations = l33tVariations(match); int reversedVariations = match.reversed ? 2 : 1; return match.rank * uppercaseVariations * l33tVariations * reversedVariations; }
@Test public void testDictionaryGuessesMixed() throws Exception { Map<Character, Character> sub = new HashMap<>(); sub.put('@', 'a'); Match match = new Match.Builder(Pattern.Dictionary, 0, 0, "AaA@@@").sub(sub).l33t(true).rank(32).build(); String msg = "extra guesses are added for both capitalization and common l33t substitutions"; int expected = 32 * new DictionaryGuess().l33tVariations(match) * new DictionaryGuess().uppercaseVariations(match); assertEquals(msg, expected, new DictionaryGuess().exec(match), 0.0); }
@Test public void testDictionaryGuessesCapitalization() throws Exception { Match match = new Match.Builder(Pattern.Dictionary, 0, 0, "AAAaaa").rank(32).build(); String msg = "extra guesses are added for capitalization"; assertEquals(msg, 32 * new DictionaryGuess().uppercaseVariations(match), new DictionaryGuess().exec(match), 0.0); }