package fizzbuzz;

/**
 * Calculator to evaluate whether a value a number is divisible by 3, 5 or 15.
 * See https://en.wikipedia.org/wiki/Fizz_buzz#Play for definition and alternative implementations.
 */
public class FizzBuzzCalculator {

    static final String FIZZ = "fizz";
    static final String BUZZ = "buzz";
    static final String FIZZ_BUZZ = FIZZ + BUZZ;
    static final String LUCKY = "lucky";

    private static final int FIZZ_DIVISOR = 3;
    private static final int BUZZ_DIVISOR = 5;

    /**
     * Evaulate {@code fizzbuzz} to establish it's Fizz Buzz value.
     * @param fizzBuzz number to evaluate.
     * @return {@link #FIZZ}, {@link #BUZZ}, {@link #FIZZ_BUZZ} or the original integer.
     */
    public String evaluate(final int fizzBuzz) {
        final boolean isFizz = isDivisibleBy(fizzBuzz, FIZZ_DIVISOR);
        final boolean isBuzz = isDivisibleBy(fizzBuzz, BUZZ_DIVISOR);

        if (isFizz && isBuzz) {
            return FIZZ_BUZZ;
        } else if (isFizz) {
            return FIZZ;
        } else if (isBuzz) {
            return BUZZ;
        } else {
            return String.valueOf(fizzBuzz);
        }
    }


    private static boolean isDivisibleBy(final int dividend, final int divisor) {
        return dividend % divisor == 0;
    }

}

@@ -56,16 +56,8 @@
 r a 
-value a 
 numb
@@ -83,14 +83,37 @@
 3, 5
- or 15
+, 15 or the number contains 3
 .%0A *
@@ -166,16 +166,25 @@
 lay for 
+FizzBuzz 
 definiti
@@ -218,16 +218,104 @@
 tations.
+ This%0A * implementation has a bit of a spin on it as it also calculates %22Lucky numbers%22.
 %0A */%0Apub
@@ -608,16 +608,68 @@
 SOR = 5;
+%0A    private static final String LUCKY_NUMBER = %223%22;
 %0A%0A    /*
@@ -919,32 +919,159 @@
 int fizzBuzz) %7B%0A
+        final String stringFizzBuzz = String.valueOf(fizzBuzz);%0A        final boolean isLucky = containsThree(stringFizzBuzz);%0A
         final bo
@@ -1202,24 +1202,80 @@
 %0A        if 
+(isLucky) %7B%0A            return LUCKY;%0A        %7D else if 
 (isFizz && i
@@ -1457,31 +1457,103 @@
  return 
-S
+s
 tring
-.valueOf(
+FizzBuzz;%0A        %7D%0A    %7D%0A%0A    private static boolean containsThree(final String 
 fizzBuzz
@@ -1545,33 +1545,34 @@
 String fizzBuzz)
-;
+ %7B
 %0A        %7D%0A    %7D
@@ -1564,25 +1564,63 @@
         
-%7D
+return fizzBuzz.contains(LUCKY_NUMBER);
 %0A    %7D%0A%0A
 %0A    pri
@@ -1611,17 +1611,16 @@
 %0A    %7D%0A%0A
-%0A
     priv

Add logic for lucky numbers