net.jqwik.engine.properties.shrinking.AbstractShrinkable Maven / Gradle / Ivy
package net.jqwik.engine.properties.shrinking;
import java.util.*;
import net.jqwik.api.*;
public abstract class AbstractShrinkable implements Shrinkable {
private final T value;
public AbstractShrinkable(T value) {
this.value = value;
}
@Override
public T value() {
return value;
}
@Override
public ShrinkingSequence shrink(Falsifier falsifier) {
return new DeepSearchShrinkingSequence<>(this, this::shrinkCandidatesFor, falsifier);
}
public abstract Set> shrinkCandidatesFor(Shrinkable shrinkable);
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
AbstractShrinkable> that = (AbstractShrinkable>) o;
return value.equals(that.value);
}
@Override
public int hashCode() {
return value.hashCode();
}
@Override
public String toString() {
return String.format("%s<%s>(%s:%s)", //
getClass().getSimpleName(), //
value().getClass().getSimpleName(), //
value(), distance());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy