public void Includes_A_Number()
    {
        // Arrange

        // Act
        var result = CryptoF.GeneratePassphrase();

        // Assert
        var some = result.AssertSome();

        Assert.Contains(some, x => char.IsNumber(x));
    }
    public void Makes_First_Letters_Upper_Case()
    {
        // Arrange

        // Act
        var result = CryptoF.GeneratePassphrase();

        // Assert
        var some = result.AssertSome();

        Assert.NotEqual(some, some.ToLower());
    }
    public void Uses_Eight_Words()
    {
        // Arrange

        // Act
        var result = CryptoF.GeneratePassphrase();

        // Assert
        var some = result.AssertSome().Split('-');

        Assert.Equal(8, some.Length);
    }
    public void Uses_Correct_Number_Of_Words(int input)
    {
        // Arrange

        // Act
        var result = CryptoF.GeneratePassphrase(input);

        // Assert
        var some = result.AssertSome().Split('-');

        Assert.Equal(input, some.Length);
    }
    public void NumberOfWords_Less_Than_Five_Returns_None_With_CryptographicallySecurePassphrasesMustContainAtLeastFiveWordsMsg(int input)
    {
        // Arrange

        // Act
        var result = CryptoF.GeneratePassphrase(input);

        // Assert
        var none = result.AssertNone().AssertType <CryptographicallySecurePassphrasesMustContainAtLeastFiveWordsMsg>();

        Assert.Equal(input, none.Value);
    }