A DESCRIPTION OF THE PROBLEM :
Version(in java.lang.module), using the String in it to calc hashcode(). And equals using compareTo() == 0, which impls by anthor way.
---------- BEGIN SOURCE ----------
import java.lang.module.ModuleDescriptor.Version;
import org.testng.annotations.Test;
import org.testng.annotations.DataProvider;
import static org.testng.Assert.*;
@Test
public class VersionTest {
// equal version strings
@DataProvider(name = "equalVersions")
public Object[][] equalVersions() {
return new Object[][]{
{ "1", "1.0.0" },
{ "1.0", "1.0.0" },
{ "1.0-beta", "1.0.0-beta" },
{ "01", "1" }, // Leading zeros in version number
{ "1.0.1.0", "1.0.1" }, // Trailing zero in version number
{ "1.0-alpha.0", "1.0-alpha" }, // Trailing zero in pre-release
};
}
/**
* Test compareTo with equal versions.
*/
@Test(dataProvider = "equalVersions")
public void testCompareEqualsVersions(String vs1, String vs2) {
Version v1 = Version.parse(vs1);
assertTrue(v1.compareTo(v1) == 0);
Version v2 = Version.parse(vs2);
assertTrue(v2.compareTo(v2) == 0);
v1.equals(v2);
assertTrue(v1.compareTo(v2) == 0);
assertTrue(v2.compareTo(v1) == 0);
assertEquals(v1, v2);
assertEquals(v2, v1);
assertEquals(v1.hashCode(), v2.hashCode(), "Hash codes must match for equal versions");
}
}
---------- END SOURCE ----------
Version(in java.lang.module), using the String in it to calc hashcode(). And equals using compareTo() == 0, which impls by anthor way.
---------- BEGIN SOURCE ----------
import java.lang.module.ModuleDescriptor.Version;
import org.testng.annotations.Test;
import org.testng.annotations.DataProvider;
import static org.testng.Assert.*;
@Test
public class VersionTest {
// equal version strings
@DataProvider(name = "equalVersions")
public Object[][] equalVersions() {
return new Object[][]{
{ "1", "1.0.0" },
{ "1.0", "1.0.0" },
{ "1.0-beta", "1.0.0-beta" },
{ "01", "1" }, // Leading zeros in version number
{ "1.0.1.0", "1.0.1" }, // Trailing zero in version number
{ "1.0-alpha.0", "1.0-alpha" }, // Trailing zero in pre-release
};
}
/**
* Test compareTo with equal versions.
*/
@Test(dataProvider = "equalVersions")
public void testCompareEqualsVersions(String vs1, String vs2) {
Version v1 = Version.parse(vs1);
assertTrue(v1.compareTo(v1) == 0);
Version v2 = Version.parse(vs2);
assertTrue(v2.compareTo(v2) == 0);
v1.equals(v2);
assertTrue(v1.compareTo(v2) == 0);
assertTrue(v2.compareTo(v1) == 0);
assertEquals(v1, v2);
assertEquals(v2, v1);
assertEquals(v1.hashCode(), v2.hashCode(), "Hash codes must match for equal versions");
}
}
---------- END SOURCE ----------