@Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj instanceof DefaultDisjointPath) {
            final DefaultDisjointPath other = (DefaultDisjointPath) obj;
            return (Objects.equals(this.path1, other.path1) && Objects.equals(this.path2, other.path2)) ||
                   (Objects.equals(this.path1, other.path2) && Objects.equals(this.path2, other.path1));
        }
        return false;
    }
@Test
    public void testEquals() {
        new EqualsTester()
                .addEqualityGroup(disjointPath1, sameAsDisjointPath1, disjointPath2)
                .addEqualityGroup(disjointPath3)
                .addEqualityGroup(disjointPath4)
                .testEquals();
    }