@Override
    public boolean equals(Object other) {
        if (other instanceof Path) {
            return getRelative().equals(((Path) other).getRelative());
        }
        return false;
    }
@Test
    public void testEquals() {
        assertEquals(getAbsolutePath(), getAbsolutePath());
        assertEquals(getAbsolutePath(), getRelativePath());
        assertEquals(getAbsolutePath(), getWithSlashes());
        assertEquals(getAbsolutePath(), getAppended());
        assertNotEquals(getAbsolutePath(), getOne());

        assertEquals(getRelativePath(), getAbsolutePath());
        assertEquals(getRelativePath(), getRelativePath());
        assertEquals(getRelativePath(), getWithSlashes());
        assertEquals(getRelativePath(), getAppended());
        assertNotEquals(getRelativePath(), getOne());

        assertEquals(getWithSlashes(), getAbsolutePath());
        assertEquals(getWithSlashes(), getRelativePath());
        assertEquals(getWithSlashes(), getWithSlashes());
        assertEquals(getWithSlashes(), getAppended());
        assertNotEquals(getWithSlashes(), getOne());

        assertEquals(getAppended(), getAbsolutePath());
        assertEquals(getAppended(), getRelativePath());
        assertEquals(getAppended(), getWithSlashes());
        assertEquals(getAppended(), getAppended());
        assertNotEquals(getAppended(), getOne());

        assertNotEquals(getOne(), getAbsolutePath());
        assertNotEquals(getOne(), getRelativePath());
        assertNotEquals(getOne(), getWithSlashes());
        assertNotEquals(getOne(), getAppended());
        assertEquals(getOne(), getOne());
    }