Fibonacci { public static int of(int i) { if (i == 0) { return 1; } if (i == 1) { return 1; } return Fibonacci.of(i - 2) + Fibonacci.of(i - 1); }  static int of(int i); static List<Integer> sequenceUpTo(int limit);  }
@Test public void fibonacci_of_0_is_1() { assertThat(Fibonacci.of(0)).isEqualTo(1); }
@Test public void fibonacci_of_1_is_1() { assertThat(Fibonacci.of(1)).isEqualTo(1); }
@Test public void fibonacci_of_2_is_2_as_of_fibonacci_of_0_plus_fibonacci_of_1() { assertThat(Fibonacci.of(2)).isEqualTo(2); }
@Test public void fibonacci_of_3_is_3_as_of_fibonacci_of_1_plus_fibonacci_of_2() { assertThat(Fibonacci.of(3)).isEqualTo(3); }
@Test public void fibonacci_of_4_is_5_as_of_fibonacci_of_2_plus_fibonacci_of_3() { assertThat(Fibonacci.of(4)).isEqualTo(5); }