### Question:
ListTransformation { public ListTransformation(ObservableList<SourceType> modelList, final Function<SourceType, TargetType> function) { this.function = function; initListEvents(); this.modelListProperty().set(modelList); } ListTransformation(ObservableList<SourceType> modelList,
			final Function<SourceType, TargetType> function);  ListTransformation(final Function<SourceType, TargetType> function); @Deprecated ListProperty<SourceType> modelListProperty(); @Deprecated void setModelList(ObservableList<SourceType> modelList); @Deprecated ObservableList<SourceType> getModelList(); ListProperty<SourceType> sourceListProperty(); void setSourceList(ObservableList<SourceType> sourceList); ObservableList<SourceType> getSourceList(); ReadOnlyListProperty<TargetType> targetListProperty(); ObservableList<TargetType> getTargetList();  }### Answer:
@Test public void testListTransformation() { ListTransformation<String, Integer> transformation = new ListTransformation<>(String::length); assertThat(transformation.getSourceList()).isEmpty(); assertThat(transformation.getTargetList()).isEmpty(); transformation.getSourceList().add("hello"); assertThat(transformation.getTargetList()).contains(5); transformation.getSourceList().add("world"); assertThat(transformation.getTargetList()).contains(5, 5); transformation.getSourceList().add("test"); assertThat(transformation.getTargetList()).contains(5, 5, 4); }