### Question:
Versioned { @Override public boolean equals(Object other) { if (!(other instanceof Versioned)) { return false; } Versioned<V> that = (Versioned) other; return Objects.equal(this.value, that.value) && Objects.equal(this.version, that.version) && Objects.equal(this.creationTime, that.creationTime); } Versioned(V value, long version, long creationTime);  Versioned(V value, long version); V value(); long version(); long creationTime(); synchronized Versioned<U> map(Function<V, U> transformer); static U valueOrElse(Versioned<U> versioned, U defaultValue); static U valueOrNull(Versioned<U> versioned); @Override int hashCode(); @Override boolean equals(Object other); @Override String toString();  }### Answer:
@Test public void testEquals() { new EqualsTester() .addEqualityGroup(stats1, stats1) .addEqualityGroup(stats2) .testEquals(); }