### Question:
Version implements Comparable<Version>, Serializable { @NotNull public Version truncate(final int n) { if (elements.length <= n) return this; if (n < 0) throw new IllegalArgumentException("Negative desired size: " + n); int m = n; while (m > 0 && elements[m-1] == 0) m--; if (m == 0) return ZERO; final int[] newElements = new int[m]; System.arraycopy(this.elements, 0, newElements, 0, m); return new Version(newElements); } private  Version(@NotNull final int[] elements); static Version of(@NotNull final String string); static Version of(@NotNull final int... elements); static Version of(@NotNull final Integer[] elements); int get(int index); int size(); @NotNull Version truncate(final int n); @NotNull Version truncateNegatives(); int compareTo(@NotNull final Version that); int compareTo(final int... that); boolean isOrGreater(final int... than); boolean isOrGreater(@NotNull final Version than); boolean less(final int... than); boolean less(@NotNull final Version than); @Override boolean equals(final Object o); @Override int hashCode(); @NotNull String toString(); @NotNull String toString(int minimumElements, int maximumElements); @NotNull int[] toArray(); static final Version ZERO; }### Answer:
@Test public void truncate_ZERO() { Version z = Version.ZERO; Version z1 = z.truncate(1); assertThat(z1).isSameAs(z); }