public static void SuccessfullyVerifyPasswordGeneratedForTheSpecifiedIterationNumber(string password, ulong iterationNumber)
            {
                var authenticator = new Authenticator();
                var verifier      = new PasswordVerifier(authenticator);

                var(isVerified, synchronizationValue) = verifier.VerifyCounterBasedPassword(password, Secret, iterationNumber);

                Assert.True(isVerified && synchronizationValue == iterationNumber);
            }
            public static void SuccessfullyVerifyPasswordGeneratedWithinTheConfiguredSynchronizationWindow(string password, ulong iterationNumber)
            {
                var counterValue = 0uL;                 // 0 is not one of the input values for iterationNumber

                var authenticator = new Authenticator();
                var verifier      = new PasswordVerifier(authenticator, options => options.SynchronizationWindowSize = 13);

                var(isVerified, synchronizationValue) = verifier.VerifyCounterBasedPassword(password, Secret, counterValue);

                Assert.True(isVerified && synchronizationValue == iterationNumber);
            }
            [InlineData("520489")]             // 9
            public static void FailToVerifyPasswordGeneratedOutsideTheConfiguredSynchronizationWindow(string password)
            {
                var counterValue = 0uL;

                var authenticator = new Authenticator();
                var verifier      = new PasswordVerifier(authenticator, options => options.SynchronizationWindowSize = 7);

                var(isVerified, synchronizationValue) = verifier.VerifyCounterBasedPassword(password, Secret, counterValue);

                Assert.False(isVerified);
            }
            public static void FailToVerifyPasswordGeneratedForAnIterationBeforeTheCounterValue()
            {
                var password     = "******";             // iterationNumber = 7
                var counterValue = 9uL;

                var authenticator = new Authenticator();
                var verifier      = new PasswordVerifier(authenticator);

                var(isVerified, synchronizationValue) = verifier.VerifyCounterBasedPassword(password, Secret, counterValue);

                Assert.False(isVerified);
            }