lots of exercises in java... from https://github.com/exercism/java

BinarySearchTest.java 3.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. import org.junit.Ignore;
  2. import org.junit.Test;
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.Collections;
  6. import java.util.List;
  7. import static org.junit.Assert.assertEquals;
  8. public class BinarySearchTest {
  9. @Test
  10. public void findsAValueInAnArrayWithOneElement() {
  11. List<Character> listOfUnitLength = Collections.singletonList('6');
  12. BinarySearch<Character> search = new BinarySearch<>(listOfUnitLength);
  13. assertEquals(0, search.indexOf('6'));
  14. }
  15. @Ignore("Remove to run test")
  16. @Test
  17. public void findsAValueInTheMiddleOfAnArray() {
  18. List<String> sortedList = Collections.unmodifiableList(
  19. Arrays.asList("1", "3", "4", "6", "8", "9", "11")
  20. );
  21. BinarySearch<String> search = new BinarySearch<>(sortedList);
  22. assertEquals(3, search.indexOf("6"));
  23. }
  24. @Ignore("Remove to run test")
  25. @Test
  26. public void findsAValueAtTheBeginningOfAnArray() {
  27. List<Integer> sortedList = Collections.unmodifiableList(
  28. Arrays.asList(1, 3, 4, 6, 8, 9, 11)
  29. );
  30. BinarySearch<Integer> search = new BinarySearch<>(sortedList);
  31. assertEquals(0, search.indexOf(1));
  32. }
  33. @Ignore("Remove to run test")
  34. @Test
  35. public void findsAValueAtTheEndOfAnArray() {
  36. List<Integer> sortedList = Collections.unmodifiableList(
  37. Arrays.asList(1, 3, 4, 6, 8, 9, 11)
  38. );
  39. BinarySearch<Integer> search = new BinarySearch<>(sortedList);
  40. assertEquals(6, search.indexOf(11));
  41. }
  42. @Ignore("Remove to run test")
  43. @Test
  44. public void findsAValueInAnArrayOfOddLength() {
  45. List<Integer> sortedListOfOddLength = Collections.unmodifiableList(
  46. Arrays.asList(1, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 634)
  47. );
  48. BinarySearch<Integer> search = new BinarySearch<>(sortedListOfOddLength);
  49. assertEquals(9, search.indexOf(144));
  50. }
  51. @Ignore("Remove to run test")
  52. @Test
  53. public void findsAValueInAnArrayOfEvenLength() {
  54. List<Integer> sortedListOfEvenLength = Collections.unmodifiableList(
  55. Arrays.asList(1, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377)
  56. );
  57. BinarySearch<Integer> search = new BinarySearch<>(sortedListOfEvenLength);
  58. assertEquals(5, search.indexOf(21));
  59. }
  60. @Ignore("Remove to run test")
  61. @Test
  62. public void identifiesThatAValueIsNotIncludedInTheArray() {
  63. List<String> sortedList = Collections.unmodifiableList(
  64. Arrays.asList("1", "3", "4", "6", "8", "9", "11")
  65. );
  66. BinarySearch<String> search = new BinarySearch<>(sortedList);
  67. assertEquals(-1, search.indexOf("7"));
  68. }
  69. @Ignore("Remove to run test")
  70. @Test
  71. public void aValueSmallerThanTheArraysSmallestValueIsNotIncluded() {
  72. List<Integer> sortedList = Collections.unmodifiableList(
  73. Arrays.asList(1, 3, 4, 6, 8, 9, 11)
  74. );
  75. BinarySearch<Integer> search = new BinarySearch<>(sortedList);
  76. assertEquals(-1, search.indexOf(0));
  77. }
  78. @Ignore("Remove to run test")
  79. @Test
  80. public void aValueLargerThanTheArraysSmallestValueIsNotIncluded() {
  81. List<Integer> sortedList = Collections.unmodifiableList(
  82. Arrays.asList(1, 3, 4, 6, 8, 9, 11)
  83. );
  84. BinarySearch<Integer> search = new BinarySearch<>(sortedList);
  85. assertEquals(-1, search.indexOf(13));
  86. }
  87. @Ignore("Remove to run test")
  88. @Test
  89. public void nothingIsIncludedInAnEmptyArray() {
  90. List<Integer> emptyList = Collections.emptyList();
  91. BinarySearch<Integer> search = new BinarySearch<>(emptyList);
  92. assertEquals(-1, search.indexOf(1));
  93. }
  94. }