@Test public void numbersOccurringOddNumberOfTimes() throws Exception { assertThat(arrayOperations.numbersOccurringOddNumberOfTimes(null), is(new int[0])); assertThat(arrayOperations.numbersOccurringOddNumberOfTimes(new int[0]), is(new int[0])); assertThat(arrayOperations.numbersOccurringOddNumberOfTimes(new int[] {1, 1}), is(new int[0])); assertThat( arrayOperations.numbersOccurringOddNumberOfTimes(new int[] {1, 2, 2}), is(new int[] {1})); assertThat( arrayOperations.numbersOccurringOddNumberOfTimes(new int[] {1, 1, 2, 3, 3}), is(new int[] {2})); assertThat( arrayOperations.numbersOccurringOddNumberOfTimes(new int[] {1, 1, 2, 2, 3, 4, 5}), is(new int[] {3, 4, 5})); assertThat( arrayOperations.numbersOccurringOddNumberOfTimes(new int[] {1, 1, 2, 2, 3, 3, 5, 5, 5}), is(new int[] {5})); }