public void IsDelegatedToByEstimateGuesses() { var match = new RepeatMatch { Token = "aa", BaseToken = "a", BaseGuesses = PasswordScoring.MostGuessableMatchSequence("a", Core.GetAllMatches("a")).Guesses, BaseMatchItems = new List <Match>(), RepeatCount = 2, i = 1, j = 2, }; var expected = RepeatGuessesCalculator.CalculateGuesses(match); var actual = PasswordScoring.EstimateGuesses(match, "aa"); actual.Should().Be(expected); }
public void CalculatesTheRightNumberOfGuesses(string token, string baseToken, int expectedRepeats) { var baseGuesses = PasswordScoring.MostGuessableMatchSequence(baseToken, Core.GetAllMatches(baseToken)).Guesses; var match = new RepeatMatch { Token = token, BaseToken = baseToken, BaseGuesses = baseGuesses, RepeatCount = expectedRepeats, BaseMatchItems = new List <Match>(), i = 1, j = 2, }; var expected = baseGuesses * expectedRepeats; var actual = RepeatGuessesCalculator.CalculateGuesses(match); actual.Should().Be(expected); }
/// <summary> /// Estimates the attempts required to guess the password. /// </summary> /// <param name="match">The match.</param> /// <returns>The guesses estimate.</returns> public static double CalculateGuesses(RepeatMatch match) { return(match.BaseGuesses * match.RepeatCount); }
private static double RepeatGuesses(Match match) { RepeatMatch rM = (RepeatMatch)match; return(rM.BaseGuesses * rM.RepeatCount); }