# kata ## [FizzBuzz](https://kata-log.rocks/fizz-buzz-kata) ```java import static org.assertj.core.api.Assertions.assertThat; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.stream.IntStream; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; class FizzBuzzKataTest { public static final int START = 1; public static final int END = 10; public static final String FIZZ_BUZZ = "FizzBuzz"; public static final String FIZZ = "Fizz"; public static final String BUZZ = "Buzz"; /* * 한 줄에 1~100까지 출력 * 3의 배수 "Fizz" * 5의 배수 "Buzz" * 3과 5의 공배수 "FizzBuzz" * */ @Nested class fizzBuzzTest { int[] numbers; Map<Integer, String> result; @BeforeEach void setUp() { numbers = IntStream.rangeClosed(START, END).toArray(); result = new HashMap<>(); Arrays.stream(numbers).forEachOrdered(number -> result.put(number, calculateFizzBuzz(number))); } @DisplayName("값을 검증한다") @Test void assert_value() { result.forEach((key, value) -> { if (key % 3 == 0 && key % 5 == 0) { assertThat(value).isEqualTo("FizzBuzz"); } else if (key % 3 == 0) { assertThat(value).isEqualTo("Fizz"); } else if (key % 5 == 0) { assertThat(value).isEqualTo("Buzz"); } else { assertThat(value).isEqualTo(String.valueOf(key)); } }); } } @DisplayName("값을 프린트한다") @Test void print_value() { String value = IntStream.rangeClosed(START, END) .mapToObj(this::calculateFizzBuzz) .reduce((a, b) -> a + " " + b) .orElse(""); System.out.print(value); } private String calculateFizzBuzz(int number) { if (number % 3 == 0 && number % 5 == 0) { return FIZZ_BUZZ; } else if (number % 3 == 0) { return FIZZ; } else if (number % 5 == 0) { return BUZZ; } else { return String.valueOf(number); } } } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up