### Question:
CharComparisonStep implements ComparisonStep<T> { @Override public boolean isEqual(T object1, T object2) { return valueExtractor.applyAsChar(object1) == valueExtractor.applyAsChar(object2); } CharComparisonStep(ToCharFunction<? super T> valueExtractor); @Override boolean isEqual(T object1, T object2);  }### Answer:
@Test void givenValuesAreEqualItShouldReturnTrue() { CharComparisonStep<TestData> hashStep = new CharComparisonStep<>(TestData::getValue); boolean result = hashStep.isEqual(new TestData('c'), new TestData('c')); assertThat(result) .isTrue(); }
@Test void givenValuesAreNotEqualItShouldReturnFalse() { CharComparisonStep<TestData> hashStep = new CharComparisonStep<>(TestData::getValue); boolean result = hashStep.isEqual(new TestData('a'), new TestData('b')); assertThat(result) .isFalse(); }